471 Commits

Author SHA1 Message Date
Simone Bordet
6827c5b045 Fixes #514 - Allow ExecutionStrategy to be configurable.
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:20:31 +02:00
Joakim Erdfelt
6fb338e50d Updating to version 9.3.9-SNAPSHOT 2016-04-11 16:20:50 -07:00
Joakim Erdfelt
bb4f3c4882 Updating to version 9.3.9.M1 2016-04-11 15:35:22 -07:00
Simone Bordet
f0a1ccf4d3 Fixes #504 - HTTP/2 client transport cannot send request after idle timeout.
Made sure that the idle timeout mechanism notifies the destination
that the connection will close.

Also reviewed the close protocol to be: notify destination, then abort,
then close. In this way, HTTP/2 can send RST_STREAM before the
connection is closed.
2016-04-11 19:15:17 +02:00
Simone Bordet
5c3e068cb3 Fixes #481 - Event response.success notified without waiting for content callback for HTTP/2 transport.
Improved fix, notifying the response.success event using a
CompletableCallback to avoid that HttpReceiver.responseContent()
fails the update from ResponseState.TRANSIENT.
2016-04-11 12:55:37 +02:00
Simone Bordet
5c147288ef Fixes #481 - Event response.success notified without waiting for content callback for HTTP/2 transport.
Fixed by notifying the response.success event only when the callback
is succeeded.
2016-04-04 15:40:25 +02:00
Simone Bordet
4f68d44a50 Fixes #477 - HTTP/2 client transport must not send absolute-form :path pseudo-header.
Reducing the target to a path if it is in absolute-form.
2016-04-01 19:16:52 +02:00
Simone Bordet
ce04cadb79 Fixes #233 - Add message to idle TimeoutException. 2016-04-01 14:44:26 +02:00
Greg Wilkins
8b228073e3 Issue #448 - RFC2616 Compliance Mode should track and report RFC7230 violations
Efficiency improvements
2016-03-24 11:37:39 +11:00
Simone Bordet
0e0edbb6db Fixes #441 (Simplify direct HTTP/2 over TLS HttpClient usage)
Added useALPN property to HttpClientTransportOverHTTP2 to disable
usage of ALPN and therefore allow direct HTTP/2 over TLS.
2016-03-18 10:49:03 +01:00
Simone Bordet
18aeca6567 Fixes #242 (Expose HTTP/2 LastStream error) 2016-03-16 22:14:09 +01:00
Joakim Erdfelt
13fde643ed Merge branch 'release-9.3.8' into jetty-9.3.x 2016-03-16 10:03:29 -07:00
Greg Wilkins
1c5a1fc6a2 Issue #431
Suppress stack traces from unit tests
2016-03-16 18:19:40 +11:00
Simone Bordet
26f8deddf7 Introduced Callback.Nested.
Refactored code that was using nested callbacks and removed
unnecessary overrides now that we have default methods.
2016-03-15 15:24:44 +01:00
Joakim Erdfelt
c68d3b1d8d Updating to version 9.3.9-SNAPSHOT 2016-03-14 09:07:52 -07:00
Joakim Erdfelt
1f3b3f31f4 Updating to version 9.3.8.v20160314 2016-03-14 08:30:20 -07:00
Simone Bordet
8af356bc0d Issue #305 (NPE when notifying the session listener if the channel is closed before a session has been opened)
Added guard against NPE. It was needed since the connection may not
be present if the connect operation failed.
2016-03-07 17:00:52 +01:00
Simone Bordet
6311c03dcc Merged pull request #396. 2016-03-07 10:46:22 +01:00
Greg Wilkins
d1fc5eb67d Revert "Issue #346 HttpParser RFC2616 Compliance mode"
This reverts commit 58e5a54ab6e65eacac87dd2421b21b4848b59ccf.
RFC7430 allows empty header values
2016-03-05 11:03:32 +01:00
Greg Wilkins
58e5a54ab6 Issue #346 HttpParser RFC2616 Compliance mode
Ignore headers without values.
2016-03-05 11:03:11 +01:00
Jinho Shin
3facfb6066 Add a overridable method 'onClose' in HttpClientTransportOverHTTP2.
- able to look GoAwayFrame through 'onClose' method.

Signed-off-by: Jinho Shin <drdoteam@gmail.com>
2016-03-05 12:54:14 +09:00
Simone Bordet
cec3694355 Consistently using BufferUtil, especially clearToFill() and
flipToFlush().
2016-02-29 16:31:38 +01:00
Simone Bordet
b8fcc5112f Issue #372 (Data race in HttpReceiverOverHTTP2)
Fixed implementations of onData() to properly complete the callback
and to copy the data if they use it asynchronously.
2016-02-29 14:39:27 +01:00
Simone Bordet
aa6de825b7 Issue #372 (Data race in HttpReceiverOverHTTP2)
Fixed by copying the buffer passed to onData().
2016-02-29 14:02:17 +01:00
Simone Bordet
aadfae936c Issue #366 (Avoid HTTP2Flusher reentrancy).
Made HTTP2Flusher termination to be atomic and non-reentrant.
2016-02-29 11:32:39 +01:00
Greg Wilkins
55eb54799f Issue #346 HttpParser RFC2616 Compliance mode
Added HttpParser.Compliance field to HttpConnectionFactory
2016-02-19 11:41:07 +01:00
Simone Bordet
48c4e08b94 Issue #347 (Avoid sending request using a connection that is idle timing out).
Fixed by improving the guard with a timestamp, and checking that the
time elapsed from the last timestamp is enough to prove it is a real
idle timeout.
2016-02-19 11:36:06 +01:00
Simone Bordet
1cce6fd69f Improved logging. 2016-02-19 11:36:06 +01:00
Simone Bordet
26b6c848f3 Issue #80 (Spin loop in case of HTTP/2 prefaces without H2C).
Fixed by changing the state of the parser before calling the parser
handler callbacks, and by closing the parser if the upgrade to HTTP/2
is not successful.
2016-02-15 20:50:22 +01:00
Simone Bordet
0eef227e84 487750 - HTTP/2 push must not be recursive.
Avoid recursive pushes by pushing the whole resource tree on the
primary request, and avoid pushes for synthetic requests generated by
the pushes.
2016-02-13 11:15:58 +01:00
Simone Bordet
a1a8f6aeae 486589 - HttpRequest has a wrong HTTP Version in HTTP/2. 2016-02-10 15:04:36 +01:00
Simone Bordet
6306f06e2f Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-02-09 18:12:04 +01:00
Simone Bordet
4a7fae30fb 486829 - Cancel stream error after a failed request with the HTTP/2.0 client.
Fixed by properly notifying the callback even when the exchange has
already been aborted.
2016-02-05 18:12:37 +01:00
Simone Bordet
98cd85287c 487354 - Aborted request or response does not send RST_STREAM frame.
Fixed by sending a RST_STREAM frame when the channel is aborted.
2016-02-05 18:12:37 +01:00
Simone Bordet
460c778ca1 Added Javadocs. 2016-02-05 18:12:37 +01:00
Joakim Erdfelt
e0ce545ad7 Updating to version 9.3.8-SNAPSHOT 2016-01-15 17:15:14 -07:00
Joakim Erdfelt
c0b191119b Updating to version 9.3.7.v20160115 2016-01-15 16:40:15 -07:00
Joakim Erdfelt
b7f9c9aca9 Updating to version 9.3.7-SNAPSHOT 2016-01-13 08:21:01 -07:00
Joakim Erdfelt
21ca3f6690 Updating to version 9.3.7.RC1 2016-01-13 07:30:24 -07:00
Joakim Erdfelt
cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Simone Bordet
fdadc942e9 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Added flow control stall times and improved dump().
2015-12-28 14:30:24 +01:00
Simone Bordet
997b868ecd 484878 - Make BufferingFlowControlStrategy.bufferRatio configurable via JMX.
Made the property writable.
2015-12-24 12:10:20 +01:00
Simone Bordet
7598062bbb Improved logging. 2015-12-24 10:36:17 +01:00
Simone Bordet
30694b675b 484876 - Make simpler to customize the FlowControlStrategy.
Introduced FlowControlStrategy.Factory along with getters and setters
in relevant classes.
2015-12-24 10:32:36 +01:00
Simone Bordet
59680d47d3 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Exposed number of session stalls.
2015-12-23 16:19:08 +01:00
Simone Bordet
7a33efdf66 484861 - Improve FlowControlStrategy stall handling.
Changed the way on[Session|Stream]Stalled() is notified.
Instead that from within the HTTP2Flusher, those methods are now
called from onDataSending(), invoking them only once per stall.
2015-12-23 15:42:25 +01:00
Simone Bordet
a5983c560a Avoid allocating the ALPNClientConnectionFactory if there is no
SslContextFactory.
2015-12-23 11:20:19 +01:00
Simone Bordet
14a3b2eab2 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Initial work to expose already existing attributes on the client.
2015-12-23 11:08:25 +01:00
Simone Bordet
b7ab9e0a22 484818 - Expose interesting HTTP/2 attributes and operations via JMX.
Initial work to expose already existing attributes on the server.
2015-12-23 11:08:25 +01:00
Simone Bordet
8f4cc73613 484585 - Avoid sending request using a connection that is idle timing out.
Rewritten handling of idle timeouts in light of issue #484718.
2015-12-21 11:47:05 +01:00