Commit Graph

18241 Commits

Author SHA1 Message Date
Simone Bordet 26c2d34439 Issue #4809 - Set a max number of requests per connection.
Improved Pool.reserve(int) logic to take into account the
fact that an entry can accommodate maxMultiplex acquires.

This reduces connection openings for HTTP/2 in case of
spikes of requests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-13 16:52:06 +02:00
Oleg Mozzhechkov bffd6a2c0f #5150 - Infinite connection timeout support in ManagedSelector
Signed-off-by: Oleg Mozzhechkov <oleg.mozzhechkov@gmail.com>
2020-08-13 17:36:16 +03:00
Joakim Erdfelt e7a07074f5
Setting DemoBaseTest.testAsyncRest() as @Tag("external")
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-13 08:42:44 -05:00
Simone Bordet 1b3cb2ea8d
Merge pull request #5144 from eclipse/jetty-9.4.x-5104-incorrect_via_header
Jetty 9.4.x 5104 incorrect via header
2020-08-13 14:22:18 +02:00
Simone Bordet 7b3dccc1bf Issue #5104 - AbstractProxyServlet include incorrect protocol version in Via header when accessed over H2.
Added HttpFields.computeField() for HttpHeader too and updated usages.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-13 11:50:43 +02:00
Simone Bordet c3598e814b Merged branch 'jetty-9.4.x-5104-incorrect_via_header-2' into 'jetty-9.4.x-5104-incorrect_via_header'. 2020-08-13 11:33:50 +02:00
Greg Wilkins a933b1645c simplified loops
unmodifiable found list

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-08-13 11:27:37 +02:00
Greg Wilkins f31604cff2 added test. Fixed bugs
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-08-13 11:17:19 +02:00
Simone Bordet faea7c9ac1 Fixes #5104 - AbstractProxyServlet include incorrect protocol version in Via header when accessed over H2.
Fixed javadocs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-13 11:05:38 +02:00
Greg Wilkins f1a13521df improved implementation
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-08-13 10:06:31 +02:00
Simone Bordet 79d340fdb6 Fixes #5104 - AbstractProxyServlet include incorrect protocol version in Via header when accessed over H2.
* Introduced HttpFields.computeField() to put/append header values.
* Reworked AbstractProxyServlet.addViaHeader().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-13 00:08:52 +02:00
Joakim Erdfelt 9b5b43a2fd
Fixing KeyStoreScannerTest
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-12 15:50:11 -05:00
Joakim Erdfelt e632d2454b
Merge pull request #5131 from eclipse/jetty-9.4.x-5129-extraclasspath-glob
Issue #5129 - WebAppContext.setExtraClasspath(String) cleanup
2020-08-12 10:08:53 -05:00
Joakim Erdfelt e1e8e50112
Merge pull request #5130 from eclipse/jetty-9.4.x-remove-overlay-deployer
Remove long dead jetty-overlay-deployer module
2020-08-12 10:04:43 -05:00
Travis Spencer b2ab05c44a Issue #5104 - Fix protocol version in Via header to work with H2 and other protocols
Signed-off-by: Travis Spencer <travis@curity.io>
2020-08-12 16:55:34 +02:00
Simone Bordet 4a0af046b8 Closes #4809 - Set a max number of requests per connection.
Implemented as part of #4975.

Added a test case that proves that the connection is closed
when the max usage count is reached.

Improved logging.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-12 16:14:51 +02:00
olivier lamy 3c6c5075f8 fix missing SslContextFactory
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-08-12 18:51:39 +08:00
Greg Wilkins 25e3f1c1e0
Pool class refinements (#5117)
* Some updates to the new Pool class:

 + fixed a race with pending reservations
 + use a pending counter
 + Reservation API to simplify Entry API
 + removed public methods on Entry API

* Some updates to the new Pool class:

 + fixed a race with pending reservations
 + use a pending counter
 + Reservation API to simplify Entry API
 + removed public methods on Entry API

* Updates from review

* Updates from review
Tests for cache size and acquire with creator

* Method no longer required with Reservation

* update from the feedback on the feedback of the feedback from the review.

Moved enable to Entry, removed Reservation class and clarified usage in javadoc

* Issue #5095 XmlConfiguration locking  Use pool instead of static shared instance

fixed javadoc

* Issue #5095 XmlConfiguration locking  Use pool instead of static shared instance

fixed javadoc

* Issue #5095 XmlConfiguration locking  Use pool instead of static shared instance

fixed javadoc

* Issue #5095 XmlConfiguration locking  Use pool instead of static shared instance

updates from review
2020-08-12 11:27:25 +02:00
olivier lamy bc185e3cae use https for external call
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-08-12 09:48:33 +08:00
Olivier Lamy 12667497e1
Jetty 9.4.x surefire 3.0.0 m5 (#5136)
* test surefire 3.0.0-M5

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* simplify code to avoid some timeout

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-08-12 10:27:12 +10:00
Simone Bordet f73b282050
Merge pull request #5128 from eclipse/jetty-9.4.x-5079-ipv6_brackets
Fixes #5079 - :authority header for IPv6 address not having square br…
2020-08-11 20:04:46 +02:00
Simone Bordet 2e73f80d34 Fixes #5079 - :authority header for IPv6 address not having square brackets.
Reverted code changes to HttpClient.normalizeHost().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-11 20:03:42 +02:00
Simone Bordet 897e766f24 Fixes #5079 - :authority header for IPv6 address not having square brackets.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-11 19:18:11 +02:00
Joakim Erdfelt d91cab0354
Issue #5129 - Directories discovered via classpath glob are not valid
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-11 10:44:05 -05:00
Joakim Erdfelt 4a19ef4bb2 Issue #5129 - disabling ResourceTest.testGlobPath on WINDOWS for stability 2020-08-11 08:51:04 -05:00
Joakim Erdfelt a700708165
Removing dead maven modules
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-11 08:30:34 -05:00
Joakim Erdfelt ac14312c99
Removing overlay-deployer documentation
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-11 08:29:23 -05:00
Joakim Erdfelt 150dc22f0a
Issue #5129 - Reverting Resource.fromReferences()
+ Will migrate to jetty-10.0.x

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-11 08:15:27 -05:00
Lachlan cbd4c38f3d
Issue #5121 - always use isDebugEnabled() check before debug logging in WebSocket (#5123)
* Issue #5121 - always use isDebugEnabled() check before logging in CompressExtension

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #5121 - always use isDebugEnabled() check before debug logging

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #5121 - always use isDebugEnabled() check before debug logging in WebSocket

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-11 11:51:39 +02:00
Joakim Erdfelt 5b8c343a2b
Issue #5129 - Fleshing out glob testcase a bit more
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-10 14:46:32 -05:00
Joakim Erdfelt 52f5218900
Issue #5129 - Resource.fromReferences no longer needs DefaultFactory
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-10 14:42:02 -05:00
Joakim Erdfelt e8098986e6
Issue #5129 - Simplify Resource reference list behavior
+ Introduce new Resource.fromReferences to help with
  parsing delimited resource reference lists.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-10 11:30:39 -05:00
Joakim Erdfelt 55f4e4fa63
Issue #5129 - WebAppContext.setExtraClasspath(String) cleanup
+ More tests for both relative and absolute path references
+ More testing that will trigger quirks on Windows builds
  so that we can catch regressions faster
+ Reworked WebInfConfiguration to be glob aware in a way
  similar to how WebAppClassLoader behaves.
+ Reworked Resource.newResource(String) to delegate
  canonical path resolution to PathResource
+ Guarded PathResource's usage of Path.toAbsolutePath()
  to ignore valid conditions where the Path cannot be
  resolved to an absolute path (yet)
+ Normalize resolved paths in PathResource

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-10 10:42:38 -05:00
Joakim Erdfelt 4957c091d0
Correct typo
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-10 10:40:56 -05:00
Simone Bordet 867621af89 Fixes #5079 - :authority header for IPv6 address not having square brackets.
Fixed Jenkins failures by disabling tests that require IPv6 if it is not available.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-10 14:52:57 +02:00
Simone Bordet dd4c1dbac0 Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-5079-ipv6_brackets'. 2020-08-08 23:21:14 +02:00
Joakim Erdfelt dcf867cd2b
Issue #3916 - Improve multi range response Content-Length calc
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-08 11:34:25 -05:00
Joakim Erdfelt 2206b3edae
Issue #3916 - Fixing broken Content-Length evaluation
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-08 07:18:02 -05:00
Joakim Erdfelt a1a0afaf59 Remove long dead jetty-overlay-deployer module 2020-08-07 11:30:18 -05:00
Simone Bordet d53d9d8a1d Fixes #5079 - :authority header for IPv6 address not having square brackets.
On the client:
* Origin.Address.host is passed through HostPort.normalizeHost(),
so that if it is IPv6 is bracketed.
Now the ipv6 address passed to an `HttClient` request is bracketed.
* HttpRequest was de-bracketing the host, but now it does not anymore.

On the server:
* Request.getLocalAddr(), getLocalName(), getRemoteAddr(),
getRemoteHost(), getServerName(), when dealing with an IPv6 address,
return it bracketed.
The reason to return bracketed IPv6 also from *Addr() methods is that
if it is used with InetAddress/InetSocketAddress it still works, but
often it is interpreted as a URI host so brackets are necessary.
* DoSFilter was blindly bracketing - now it does not.

Added a number of test cases, and fixed those that expected
non-bracketed IPv6.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-07 15:53:19 +02:00
Lachlan Roberts 8a3ff775d5 Issue #5122 - make number of active WS Sessions a managed attribute on SessionTracker
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-06 20:45:06 +10:00
Lachlan Roberts be429f0910 Issue #5122 - add specialized Connection.Listener for WebSocket ConnectionStatistics
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-06 20:38:02 +10:00
Simone Bordet 1f14dfa427 Code cleanups.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-06 11:23:48 +02:00
Jan Bartel 4f57810217
Issue #5081 - HouseKeeper synchronization (#5099)
* Issue #5081 HouseKeeper synchronization

Signed-off-by: Jan Bartel <janb@webtide.com>
2020-08-05 15:33:27 +02:00
Lachlan Roberts f416d87e8d Merge remote-tracking branch 'origin/jetty-9.4.x-3974-AsyncMiddleManServletTest' into jetty-9.4.x 2020-08-05 09:28:11 +10:00
Lachlan Roberts 8f545998a8 Issue #3974 - re-enable AsyncMiddleManServletTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-04 23:08:24 +10:00
Lachlan 8af767f3a6
Merge pull request #5109 from eclipse/jetty-9.4.x-5108-SessionTrackerScalability
Issue #5108 - improve scalability of WebSocket SessionTrackers
2020-08-04 20:28:28 +10:00
Lachlan Roberts 85c4fc5335 Issue #5108 - use set based on ConcurrentHashMap and remove synchronized blocks
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-03 18:26:14 +10:00
Lachlan Roberts d37501dce0 Issue #5108 - use HashSet for SessionTrackers to improve scalability
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-03 10:40:12 +10:00
Simone Bordet 344cdf514f
Merge pull request #4975 from lorban/http-connection-pools
Improve client http connection pools
2020-07-31 16:02:32 +02:00