Commit Graph

254 Commits

Author SHA1 Message Date
Simone Bordet 8cf15659be Issue #2349 - Review HTTP/2 max streams enforcement. (#2389)
* Issue #2349 - Review HTTP/2 max streams enforcement.

Changed the max concurrent remote streams enforcement algorithm.
It is now based on the stream count and the closing stream count,
updated atomically in a state machine in HTTP2Stream.

Fixed Javadoc.

Fixed close() method.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-28 13:10:11 +11:00
Joakim Erdfelt a74a328024 Merge branch 'release-9.4.9' into jetty-9.4.x 2018-03-21 16:33:56 -05:00
Simone Bordet 8251ed5a12
Fixes #2311 - TimeoutException when server sends unexpected content. (#2324)
Now exiting the parse loop when the response is complete; if there
are bytes remaining in the buffer, then it's cleared out.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-21 16:25:18 +01:00
Joakim Erdfelt c3cc138a3b Updating to version 9.4.10-SNAPSHOT 2018-03-20 08:25:59 -05:00
Joakim Erdfelt 1f8159b1e4 Updating to version 9.4.9.v20180320 2018-03-20 07:18:24 -05:00
Simone Bordet b00bb2adb2 Reverted logging level back to INFO.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-15 16:07:51 +01:00
Simone Bordet 21bdb367fd Fixes #2313 - Dump HTTP/2 channel state.
Dumping also HttpChannelOverHTTP2 when dumping the HTTP2Stream.
The channel is now stored as a field in HTTP2Stream rather than
as an attribute to save the attributes map allocation.
Consequently, IStream has now getter/setter for the property
"attachment" that is used to store the channel without having
a type dependency on HttpChannel.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-10 15:11:40 +01:00
Simone Bordet b71cd70bf7 Fixes #2297 - HTTP/2 client transport should honor HttpClient.connectBlocking.
Introduced property connectBlocking in HTTP2Client so that it can
be forwarded by HttpClient and then used for HTTP/2 connects.

Also introduced HTTP2Client.bindAddress, again forwarded from HttpClient.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-07 11:52:28 +01:00
Greg Wilkins 74055b9837
Jetty 9.4.x 2293 pending multiplexed (#2294)
Issue #2293 Pending Multiplexed Connections

Added a AtomicBiInteger to allow both total connections and pending connections to be encoded in the
same atomic int.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-03-07 19:31:22 +11:00
Greg Wilkins 7138dc3828
Jetty 9.4.x #1918 scalable scheduler3 (#2101)
* Scalable scheduler changes for #1918
* Added HttpChannel.destroy to destroy CyclicTimer
* fixed rebase with HttpConnectionOverFCGI
* renamed to acquire
* Destroying the HttpChannel consistently in all transports.
* updated headers
* cleanup after final review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-01-10 16:56:41 +01:00
Joakim Erdfelt 41ed9f29f4 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2018-01-09 09:37:25 -06:00
Joakim Erdfelt fa4c7b0ca9 Issue #2108 - Updating license headers for year 2018 2018-01-09 08:39:37 -06:00
Simone Bordet c35b832251 Fixes #2088 - Recycle HTTP/2 channels on the client.
Recycled channels also for FCGI.
Small improvements to HTTP/2 too.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-01-05 17:19:06 +01:00
Simone Bordet 48c77b8608
Fixes #2088 - Recycle HTTP/2 channels on the client. (#2089)
Removed the distinction between pushed and non-pushed channels; only
non-pushed channels are released and recycled if they're not failed.

Properly resetting HttpReceiverOverHTTP2.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-01-04 07:09:08 -08:00
Simone Bordet e86e8a752c Issue #1973 - Implement minimum response data rate (#2012)
* Code cleanups.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Improved test case handler.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Improved exception message.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Issue #1973 - Implement minimum response data rate.

Implemented response content data rate control in HttpOutput.

Introduced a WriteFlusher.Listener interface that produces events
for every flush(). These events are forwarded to the Connection
and from there to the HttpOutput so that the data rate control can
be enforced.

Both HTTP/1.1 and HTTP/2 are implemented.
Data rate control for HTTP/1.1 is approximate because it will count
also headers bytes and the chunk bytes, while for HTTP/2 is precise.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Issue #1973 - Implement minimum response data rate.

Addressed review comments.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2017-12-27 15:07:32 +01:00
Simone Bordet d3db89d7e3 Fixes #2019 - Expose HttpClientTransport in JMX.
Added missing @ManagedObject annotation to AbstractConnectorHttpClientTransport.

Also exported to JMX the "multiplexed" attribute for the FCGI transport
and the "useALPN" attribute for the HTTP/2 transport.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2017-12-14 12:28:46 +01:00
Joakim Erdfelt ff53002fac Updating to version 9.4.9-SNAPSHOT 2017-11-21 13:11:31 -07:00
Joakim Erdfelt 82b8fb23f7 Updating to version 9.4.8.v20171121 2017-11-21 12:33:52 -07:00
Jesse McConnell a72eb0001d Updating to version 9.3.23-SNAPSHOT 2017-10-30 15:39:57 -05:00
Jesse McConnell 705048cc49 Updating to version 9.3.22.v20171030 2017-10-30 15:16:29 -05:00
Joakim Erdfelt d9865a02ba Updating to version 9.4.8-SNAPSHOT 2017-09-14 08:44:27 -07:00
Joakim Erdfelt 80fb788d0c Updating to version 9.4.7.v20170914 2017-09-14 07:35:18 -07:00
Joakim Erdfelt 585f126b48 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x-clean 2017-08-08 09:24:41 -07:00
Simone Bordet 191b6e044f Fixes #1656 - Improve configurability of ConnectionPools.
Introduced ConnectionPool.Factory and HttpClientTransport.connectionPoolFactory.
This allows applications to create a ConnectionPool given the HttpDestination.
2017-08-08 09:14:19 -07:00
stephane martin b078485d63 HTTP/2 :authority: declaration should omit default ports in jetty-client (#1611)
Change-Id: I2b4f8e8373e3ba16361a37fd1f6549a4a2d97d60
Signed-off-by: Stéphane Martin <stephane.martin@neotys.com>
2017-08-08 09:13:33 -07:00
Joakim Erdfelt a7bcac6d75 Updating to version 9.3.20.v20170531 2017-08-08 09:07:35 -07:00
Joakim Erdfelt 11a544d6ac Updating to version 9.3.22-SNAPSHOT 2017-08-01 11:26:37 -07:00
Joakim Erdfelt bb1d69ca52 Updating to version 9.3.21.M0 2017-08-01 10:47:04 -07:00
stephane martin 4f1e583b85 HTTP/2 :authority: declaration should omit default ports in jetty-client (#1611)
Change-Id: I2b4f8e8373e3ba16361a37fd1f6549a4a2d97d60
Signed-off-by: Stéphane Martin <stephane.martin@neotys.com>
2017-06-13 19:26:19 +02:00
Joakim Erdfelt 6a3c40e935 Updating to version 9.4.7-SNAPSHOT 2017-05-31 17:26:34 -07:00
Joakim Erdfelt 8ba0f2d95d Updating to version 9.4.6.v20170531 2017-05-31 16:22:52 -07:00
Joakim Erdfelt 429380d36a Updating to version 9.3.21-SNAPSHOT 2017-05-31 16:10:04 -07:00
Joakim Erdfelt 0f3b1cbe36 Updating to version 9.3.20.v20170531 2017-05-31 15:24:57 -07:00
Christoph Dreis e9f398cf41 Deprecate ConcurrentHashSet (#1570)
Signed-off-by: dreis2211 <christoph.dreis@freenet.de>
2017-05-30 21:46:11 +02:00
Joakim Erdfelt cf56168f7d Updating to version 9.3.20-SNAPSHOT 2017-05-02 15:26:56 -07:00
Joakim Erdfelt d36d57d5c7 Updating to version 9.3.19.v20170502 2017-05-02 14:31:51 -07:00
Joakim Erdfelt 782f36f157 Updating to version 9.4.6-SNAPSHOT 2017-05-02 14:29:09 -07:00
Joakim Erdfelt 9d8ad7489c Updating to version 9.4.5.v20170502 2017-05-02 13:22:18 -07:00
Joakim Erdfelt 92ea5bda21 Updating to version 9.4.5-SNAPSHOT 2017-04-14 14:43:36 -07:00
Joakim Erdfelt 3dc8f557c6 Updating to version 9.4.4.v20170414 2017-04-14 13:20:17 -07:00
Joakim Erdfelt 9e2aeda052 Updating to version 9.3.19-SNAPSHOT 2017-04-06 07:47:53 -07:00
Joakim Erdfelt 63273aa40b Updating to version 9.3.18.v20170406 2017-04-06 06:31:02 -07:00
Simone Bordet c285d6f8bb Fixes #612 - Support HTTP Trailer.
Added support on both the server and the client, for HTTP/1 and HTTP/2.
2017-04-03 22:25:50 +02:00
Joakim Erdfelt 1360b863dc Updating to version 9.4.4-SNAPSHOT 2017-03-17 10:53:54 -07:00
Joakim Erdfelt 95e94b49d8 Updating to version 9.4.3.v20170317 2017-03-17 09:54:58 -07:00
Joakim Erdfelt a6a0ab991f Updating to version 9.3.18-SNAPSHOT 2017-03-17 09:48:19 -07:00
Joakim Erdfelt 307d23975e Updating to version 9.3.17.v20170317 2017-03-17 09:07:39 -07:00
Greg Wilkins 0a2da4822d Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-06 14:20:23 +11:00
Simone Bordet affeb67f1a Issue #1375 - Support pushed resources in HTTP client.
Implemented in the non-API HttpRequest class.
2017-03-05 19:01:08 +01:00
Joakim Erdfelt 523fab30bd Updating to version 9.4.3-SNAPSHOT 2017-02-20 08:13:31 -07:00
Joakim Erdfelt 4a674b9cc9 Updating to version 9.4.2.v20170220 2017-02-20 06:22:45 -07:00
Jesse McConnell d0c33ebe8b Updating to version 9.4.2-SNAPSHOT 2017-01-20 10:49:06 -06:00
Jesse McConnell 556ecbcdcf Updating to version 9.4.1.v20170120 2017-01-20 09:47:53 -06:00
Jesse McConnell 66b43ecda8 Updating to version 9.3.17-SNAPSHOT 2017-01-20 09:33:43 -06:00
Jesse McConnell df03355d00 Updating to version 9.3.16.v20170120 2017-01-20 09:06:48 -06:00
Simone Bordet 0c8273f2ca Happy New Year 2017. 2017-01-19 19:26:41 +01:00
Simone Bordet 07838b057f Happy New Year 2017. 2017-01-19 18:54:03 +01:00
Simone Bordet 347c48d657 Revert "resolve merge and update license headers"
This reverts commit 53b31b03dd, reversing
changes made to 4565c186d7.
2017-01-19 18:26:43 +01:00
Jesse McConnell 53b31b03dd resolve merge and update license headers 2017-01-19 09:33:16 -06:00
Simone Bordet f8e3b1f9c2 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-17 11:38:45 +01:00
Simone Bordet 9e9ee03d7f Issue #1073 - JDK9 support in Jetty 9.3.x.
Fixed dependencies for modules that run tests that require ALPN.
2017-01-17 11:32:20 +01:00
Simone Bordet e539d0b1fd Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-12 17:52:45 +01:00
Simone Bordet 11d669092a Issue #1073 - JDK9 support in Jetty 9.3.x.
* Updated Maven plugins to versions that support JDK 9.
* Added jdk9 profiles to the build files.
* Introduced modules jetty-alpn-java-client and jetty-alpn-java-server
containing a pure JDK 9 implementation of ALPN.
* Wired ALPN connection factories (client and server) to use the proper
ALPN implementation based on the JDK platform version (8 or 9).
2017-01-12 15:41:02 +01:00
Joakim Erdfelt 7494914ff6 Updating to version 9.3.16-SNAPSHOT 2016-12-20 13:09:32 -07:00
Joakim Erdfelt 680ecd646b Updating to version 9.3.15.v20161220 2016-12-20 12:31:58 -07:00
Jesse McConnell 6a7e5dd4f5 Updating to version 9.4.1-SNAPSHOT 2016-12-08 09:41:50 -06:00
Jesse McConnell c54efb5929 Updating to version 9.4.0.v20161208 2016-12-08 08:56:45 -06:00
Jesse McConnell f8338b3f59 Updating to version 9.4.1-SNAPSHOT 2016-12-07 10:32:41 -06:00
Jesse McConnell dac1d17a2d Updating to version 9.4.0.v20161207 2016-12-07 09:47:30 -06:00
Joakim Erdfelt 2c38511828 Updating to version 9.3.15-SNAPSHOT 2016-10-28 13:01:34 -07:00
Joakim Erdfelt 14611d2f76 Updating to version 9.3.14.v20161028 2016-10-28 12:21:02 -07:00
Simone Bordet b741b454af Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-10-25 15:45:56 +02:00
Simone Bordet 33eb768d69 Fixes #1029 - Restore Request.setHttpVersion().
Also cleaned up the asymmetry in MetaData between the setter
(setHttpVersion()) and the getter (getVersion()).
2016-10-25 15:45:29 +02:00
Joakim Erdfelt ade14ba34b Updating to version 9.3.14-SNAPSHOT 2016-10-14 11:33:51 -07:00
Joakim Erdfelt c3a78e70a8 Updating to version 9.3.13.v20161014 2016-10-14 10:39:37 -07:00
Jesse McConnell 863913b64e set for dev 2016-09-30 19:05:47 +00:00
Jesse McConnell b91cc8a4ea set for release 2016-09-30 18:01:20 +00:00
Simone Bordet 716c595cdf Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-26 12:20:22 +02:00
Simone Bordet a1a132a601 Fixes #959 - CompleteListener invoked twice for HTTP/2 transport and response content. 2016-09-26 10:16:31 +02:00
Joakim Erdfelt 6cf10172ca Updating to version 9.3.13-SNAPSHOT 2016-09-15 07:34:52 -07:00
Joakim Erdfelt 8b35fdc5a5 Updating to version 9.3.12.v20160915 2016-09-15 06:48:16 -07:00
Simone Bordet 448100ff80 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-06 12:02:01 +02:00
Simone Bordet 6d485b2777 Fixes #902 - Expect: 100-Continue does not work with HTTP/2.
Improved handling of the 100 status code in both client and server.
2016-09-06 12:01:24 +02:00
Simone Bordet 13f638f710 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-14 23:29:36 +02:00
Simone Bordet 11bc5cce66 Fixes #839 - Test Failure: MaxConcurrentStreamsTest.testOneConcurrentStream().
Fixed race condition where the prime request response was arriving to
the client before the server had finished to clean up and remove the
prime stream. Subsequent client requests were rejected because the
prime stream was still "alive".
2016-08-14 23:25:03 +02:00
Simone Bordet c5a2770790 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 17:12:25 +02:00
Simone Bordet ea20a5f2ef Fixes #836 - Test Failure: HttpClientTransportOverHTTP2Test.testLastStreamId()
Fixed race condition: the completion was happening before the stream
promise for the request was succeeded.
2016-08-12 17:10:43 +02:00
Simone Bordet 6f20feddcb Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 14:57:47 +02:00
Simone Bordet 9f9e9ecaf9 Changes for Issue #824 (#825)
* Issue #824 - Implement notifications of asynchronous error conditions for HTTP/2.

Introduced new method HttpChannelState.asyncError() to be called in
case of asynchronous errors, i.e. those errors that do not happen in
the HttpChannel.handle() loop.

Implemented HTTP/2 callbacks to call HttpChannelState.asyncError()
and plug in the existing error handling mechanism.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Issue #824 - Implement notifications of asynchronous error conditions for HTTP/2.

Improved implementation to ignore idle timeouts for streams and
session in case that requests are being handled, matching the HTTP/1.1
behavior.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2016-08-12 11:02:52 +02:00
Simone Bordet c3b37cfbff Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-09 22:50:06 +02:00
John Gardiner Myers c1694ba9c3 Add protected HttpClientTransportOverHTTP2.getHttpClient() accessor
Signed-off-by: John Gardiner Myers <jgmyers@proofpoint.com>
2016-08-09 22:45:54 +02:00
Simone Bordet f695d9cf31 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-06 12:31:47 +02:00
Simone Bordet 45695e08aa Fixes #792 - [HTTP/2] Socket seems to be not closed completely.
Now sending the GOAWAY and then disconnecting from doStop(), ensuring
that the underlying TCP connection is closed even if the server does
not close.
2016-08-06 12:31:20 +02:00
Greg Wilkins 9b0951d5c5 increase test timeout 2016-08-05 17:04:14 +10:00
Simone Bordet a38feda9a0 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-29 12:09:27 +02:00
Simone Bordet 2cdea3601b Fixes #790 - AsyncContentListener semantic broken with HTTP/2 transport.
Now using an IteratingCallback to buffer DATA frames and delivering
their content respecting AsyncContentListener semantic.
2016-07-29 12:08:55 +02:00
Joakim Erdfelt 6e1b1cdb36 Updating to version 9.3.12-SNAPSHOT 2016-07-21 19:07:19 -07:00
Joakim Erdfelt 9fd6d4354e Updating to version 9.3.11.v20160721 2016-07-21 18:37:09 -07:00
Jesse McConnell ae931538ab [maven-release-plugin] prepare for next development iteration 2016-06-22 13:59:10 -05:00
Jesse McConnell df1ed4fb03 [maven-release-plugin] prepare release jetty-9.3.11.M0 2016-06-22 13:59:06 -05:00