53 Commits

Author SHA1 Message Date
Simone Bordet
b3fda0b733 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-20 23:11:16 +02:00
Simone Bordet
d073780dde Refactored tests. 2016-06-20 23:10:44 +02:00
Simone Bordet
7ef22c8ebd Fixes #648 - Problem using InputStreamResponseListener to handle HTTP/2 responses.
The fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=484446
reimplemented InputStreamResponseListener using callbacks rather than
blocking waits.

However, HTTP/2 behaves a little differently than HTTP/1.
Where in HTTP/1 until the callback was completed no further calls to
onContent() were made, with HTTP/2 additional calls are made until
the flow control window is exhausted.

For this reason InputStreamResponseListener must queue content chunks
rather than dealing only with one chunk at a time.
2016-06-20 23:10:44 +02:00
Simone Bordet
b912c700ee Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-25 19:27:46 +02:00
Simone Bordet
f3a805887e Fixes #542 - Support Connection.Listener bean on clients.
Introduced ClientConnectionFactory.customize() to look for
Connection.Listener beans.
ClientConnectionFactory implementation calls customize() when they
create a Connection instance, so the Connection.Listener beans are
registered onto the Connection.
2016-05-25 19:27:08 +02:00
Simone Bordet
9a5d8f3943 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-06 17:43:49 +02:00
Simone Bordet
1056536155 Moved HttpClientLoadTest to "tests" module to test all transports. 2016-05-06 17:10:46 +02:00
Simone Bordet
e2f252f817 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-11 19:39:04 +02: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
abf0307e5e Merged branch 'jetty-9.3.x' into 'master'. 2016-04-11 12:56:09 +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
5aef3ba3e4 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-04 15:41:04 +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
Greg Wilkins
c1b03c6d8c Issue #431
HttClientTest cleanup
2016-03-17 09:58:29 +11:00
Joakim Erdfelt
3624339ec6 Merge branch 'jetty-9.3.x' 2016-03-16 10:29:29 -07:00
Greg Wilkins
1c5a1fc6a2 Issue #431
Suppress stack traces from unit tests
2016-03-16 18:19:40 +11:00
Simone Bordet
5f22bede3a Merged branch 'jetty-9.3.x' into 'master'. 2016-03-15 22:04:45 +01:00
Simone Bordet
3cd568c9b1 Fixes #428 (Exception logged during HttpClientTest)
Removed printStackTrace() call.
2016-03-15 22:04:26 +01:00
Simone Bordet
14c985802e Merged branch 'jetty-9.3.x' into 'master'. 2016-03-10 22:32:24 +01:00
Simone Bordet
e6c2c81bea Issue #417 (HttpClient: review support for OPTIONS *)
Implemented support for OPTIONS * HTTP/1.1 requests.
2016-03-10 16:10:45 +01:00
Simone Bordet
d4cd34d2ba Merged branch 'jetty-9.3.x' into 'master'. 2016-03-07 17:01:20 +01: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
8aa3207164 Improved test by making requests carry a unique identifier. 2016-02-29 11:58:08 +01:00
Simone Bordet
7938c9f86f Merged branch 'jetty-9.3.x' into 'master'. 2016-02-26 10:37:47 +01:00
Greg Wilkins
8068aeead9 Fixed unit test race
Test was assuming that receiving completed response on client
always happened before server processing had completed.
Added a spin test.
2016-02-17 11:11:52 +01:00
Greg Wilkins
496be5e05f Issue #84 Ignored test 2016-02-16 17:08:10 +01:00
Simone Bordet
cb79379b79 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-05 18:14:56 +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
Joakim Erdfelt
ac24196b0d Happy New Year 2016 2016-01-04 14:34:20 -07:00
Joakim Erdfelt
cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Simone Bordet
c66a4d5aa7 Merged branch 'jetty-9.3.x' into 'master'. 2015-12-24 10:47:10 +01:00
Simone Bordet
24b99d4b33 Introduced factory methods for HTTP2Client and HttpClient. 2015-12-24 10:38:51 +01:00
Simone Bordet
3fb354f884 Merged branch 'jetty-9.3.x' into 'master'. 2015-12-21 13:02:04 +01:00
Simone Bordet
aa46a51b33 Added factory method to create HTTP2Client. 2015-12-18 15:57:26 +01:00
Simone Bordet
988e596c71 484585 - Avoid sending request using a connection that is idle timing out.
Added guard to avoid that the idle timeout expires just before
sending the request.

Reworked the way idle timeouts are handled, to support the case where
the idle timeout just expired and the request can be tried on a
different connection/channel.
2015-12-18 15:56:31 +01:00
Simone Bordet
8542715665 Merged branch 'jetty-9.3.x' into 'master'. 2015-12-11 12:26:47 +01:00
Simone Bordet
c3889873f6 484167 - GOAWAY frames aren't handling disconnects appropriately on Client.
Fixed by overriding onClose() to listen for GOAWAY frames, and acting
appropriately.
2015-12-11 12:25:54 +01:00
Simone Bordet
fc4aacc38a Merged branch 'jetty-9.3.x' into 'master'. 2015-12-09 11:57:38 +01:00
Simone Bordet
0bd1e0ad7d 481116 - Introduce connection pooling also for HTTP/2 transport.
Implemented connection pooling for multiplexed transports.
Reworked the ConnectionPool code and its relationship with
HttpDestination.
2015-10-30 15:33:12 +01:00
Simone Bordet
08c59628c9 Added FastCGI transport to HttpClientTransport tests. 2015-10-26 11:01:09 +01:00
Simone Bordet
0ca40b59c6 479277 - HttpClient with HTTP/2 transport does not work for "https" URLs.
Fixed by reworking how ClientConnectionFactories are handled by both
HTTP2Client and by HttpClientTransportOverHTTP2, to avoid that the
latter wraps the nested factories with SslConnection twice.
2015-10-07 21:39:02 +02:00
Simone Bordet
6300480c0b Forwarding HttpClient properties to HTTP2Client at startup. 2015-09-29 12:16:00 +02:00
Simone Bordet
3201d0acd2 477878 - HttpClient over HTTP/2 doesn't close upload stream.
Clarified the difference between last and consumed in HttpContent.
Fixed HTTP/2 transport to behave correctly in case of last content.
2015-09-25 19:31:40 +02:00
Simone Bordet
b78fee10f5 Refactored to made it easier to use by subclasses. 2015-09-21 10:17:27 +02:00
Simone Bordet
460673f04b 477890 - Overwhelmed HTTP/2 server discards data.
HttpInput was using a bounded ArrayQueue with max capacity 64.
The queue was overflowing if there were more than 64 reads within the
flow control window capacity.

Fixed by replacing the ArrayQueue with ArrayDeque, which is unbounded.
2015-09-21 09:34:15 +02:00
Greg Wilkins
1cb0449be3 Organised imports 2015-03-26 12:32:15 +11:00
Simone Bordet
58ea526b56 Notifying client connection's promise from onOpen().
The client connection's promise was succeeded in the context of a
call to SelectorManager.newConnection().
This was wrong, since succeeding the promise may trigger the send
of a request *before* the connection is actually linked to the
endPoint and opened.

This change moves the succeeding of the client connection's promise
to the connection onOpen() method.
2015-02-20 18:23:31 +01:00
Simone Bordet
273854835f Made HttpClientTransportOverHTTP2 a ContainerLifeCycle, so that it
can manage the start/stop of HTTP2Client.
2015-02-09 17:33:10 +01:00
Simone Bordet
53813d94a9 Reduced logging level in test configuration. 2015-02-09 17:00:48 +01:00
Simone Bordet
3855024bba Added tests for HTTP2Client idle timeout. 2015-02-09 16:53:22 +01:00