Commit Graph

103 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
Simone Bordet f974c74329 Implemented HTTP2Client connect timeout. 2015-02-09 16:22:21 +01:00
Simone Bordet 85edb7e573 Improved configurability of HTTP2Client. 2015-02-09 14:24:09 +01:00
Simone Bordet 02b5732720 First take at implementing the HttpClientTransport for HTTP2. 2015-02-09 09:11:56 +01:00