2530 Commits

Author SHA1 Message Date
Greg Wilkins
a5b1845e60
Disable ipv6 test for #6624 (#6625) (#6629)
Temp disable of test that is breaking the build.
2021-08-17 16:15:00 +10:00
Simone Bordet
dbc0ce7c13
Fixes #6372 - Review socket options configuration (#6610)
* Fixes #6372 - Review socket options configuration

Introduced in ClientConnector:

* tcpNoDelay
* reusePort
* receiveBufferSize
* sendBufferSize

Reworked configuration of socket options in ClientConnector.
JMX-ified ClientConnector.

Introduced reusePort in ServerConnector.
Updated server modules with the new reusePort property.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-08-13 17:39:52 +02:00
Ludovic Orban
15bef0c9ed #6327 rework testRequestIdleTimeout and merge http(s) and fcgi test
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-08-12 10:47:24 +02:00
Ludovic Orban
1a15f2c48d #6327 enable more disabled tests, using awaitility and shortening wasteful sleeps
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-08-12 10:47:24 +02:00
Ludovic Orban
0108a197e8 #6327 enable disabled HttpConnectionLifecycleTest tests, using awaitility to remove wasteful sleeps
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-08-12 10:47:24 +02:00
Ludovic Orban
56eed8211e #6327 enable HttpClientTest.testRequestIdleTimeout
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-08-12 10:47:24 +02:00
Simone Bordet
49a08450c2
Fixes #6043 - Reimplement UnixSocket support based on Java 16. (#6522)
Fixes #6043 - Reimplement UnixSocket support based on Java 16.

* Introduced new module "jetty-server-unixdomain".
It uses reflection to access the Java 16 Unix-Domain classes to keep compatibility with the other modules and the build.
* Added Jetty module with only HTTP/1.1 support for now (requires review of the modules to reuse them with various connectors).
* Updated documentation to mention UnixDomainServerConnector.
* Updated client libraries to support Unix-Domain.
* Updated PROXY protocol implementation to support Unix-Domain.
* Replaced unix.socket.tmp with better named jetty.unixdomain.dir property.
Defaulted jetty.unixdomain.dir property to system property user.home under Windows.
Simplified code that runs Unix-Domain tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-08-05 10:04:37 +02:00
Ludovic Orban
bd11d6f682 #6491 add defensive check and introduce HttpParser.isTerminated()
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-07-28 10:14:19 +02:00
Joakim Erdfelt
a4053578cb
Merge pull request #6547 from eclipse/jetty-10.0.x-optimize-imports
Remove unused import lines
2021-07-27 12:53:01 -05:00
Joakim Erdfelt
fdc210f382
Remove unused imports
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-07-27 08:03:00 -05:00
Joakim Erdfelt
330fc0ba0b
Merge pull request #6537 from eclipse/jetty-10.0.x-tls-test-revamp
Issue #5684 - Update TLS tests
2021-07-27 07:44:21 -05:00
Ludovic Orban
c9a5d8df58 #6322 Use RetainableByteBuffer and write a new pool for it
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-07-24 11:14:21 +02:00
Joakim Erdfelt
713136fb0e
Issue #5684 - Update TLS tests
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-07-23 13:33:57 -05:00
Ludovic Orban
e1daaed90b #6443 wait for handshake to be done before closing the socket
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-07-08 11:57:39 +02:00
Joakim Erdfelt
c245a70893 Updating to version 10.0.7-SNAPSHOT 2021-06-29 10:51:22 -05:00
Joakim Erdfelt
37e7731b4b Updating to version 10.0.6 2021-06-29 10:27:56 -05:00
Ludovic Orban
c753ca0db5 #6455 disable MaxDuration mechanism in testConnectionMaxUsage as it clashes with the test's assertions
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-06-29 10:18:56 +02:00
Simone Bordet
1a594cef60 Fixes #6382 - HttpClient TimeoutException message reports transient values.
Now using consistently HttpConversation.getTimeout() to report the accurate value.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 734d3b672c32a2c9527855885914e87ba721310c)
2021-06-21 18:36:02 +02:00
Simone Bordet
b8d6e3f010
Fixes #6410 - Use SocketAddress instead of InetSocketAddress. (#6414)
* Fixes #6410 - Use SocketAddress instead of InetSocketAddress.

Removed usages of InetSocketAddress in method signatures where possible.
Deprecated old methods, and added new methods with SocketAddress.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-06-17 10:18:08 +02:00
Joakim Erdfelt
9d2d1e29b7 Updating to version 10.0.6-SNAPSHOT 2021-06-11 09:42:42 -05:00
Joakim Erdfelt
dc21b2d73c Updating to version 10.0.5 2021-06-11 09:18:00 -05:00
Jan Bartel
900c71902c
Issue #6327 Remove DisabledOnJre or test where appropriate (#6386)
Signed-off-by: Jan Bartel <janb@webtide.com>
2021-06-10 21:26:16 +10:00
Joakim Erdfelt
987066aac1 Updating to version 10.0.5-SNAPSHOT 2021-06-04 13:28:47 -05:00
Joakim Erdfelt
5523480c54 Updating to version 10.0.4 2021-06-04 13:09:44 -05:00
Simone Bordet
21aba4a724 Fixes #6323 - HttpClient requests with redirects gets stuck/never calls onComplete()
* Reworked the total timeout handling.
* Now a CyclicTimeouts handles the exchanges in each HttpDestination,
and a CyclicTimeouts handles the exchanges in each HttpConnection
(rather than in HttpChannel).
* Now adjusting the total timeout for copied requests generated by
redirects and authentication.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 2e7d17400f44097b95f2110ba5b595ec90fbe03f)
2021-06-04 12:12:40 +02:00
Simone Bordet
c151b04535 Fixes #5931 - SslConnection should implement getBytesIn()/getBytesOut(). (#6335)
Updated ConnectionStatistics to report both the stats of all connections,
and the stats grouped by connection class.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit f902d12fe8b7a69d7f697db0ce8ff4495c9e2141)
2021-06-03 15:16:12 +02:00
Simone Bordet
cfcb2efa80
Fixes #6276 - Support non-standard domains in SNI and X509. (#6296) (#6311)
* Fixes #6276 - Support non-standard domains in SNI and X509. (#6296)

Improved support for IP addresses in X509 (after #5379).
Introduced SslContextFactory.Client.SniProvider to allow applications to specify the SNI names to send to the server.
Improved logging of SNI processing.
Skip X509 matching over IP addresses when the host does
not look like an IP address, to avoid reverse DNS lookup.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 04df6d4ec2f232d94e8365b75dd7b38e68676abd)
2021-05-24 16:57:57 +02:00
Simone Bordet
9ace21992e Updated POM versions to 10.0.4-SNAPSHOT.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-05-21 17:07:46 +02:00
Simone Bordet
92f6eabb26 Fixes #6272 - Reduce allocation in HttpClient when notifying content listeners.
Avoid to allocate ContentListeners for every response.
Avoid using Java streams to reduce allocation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-05-17 10:28:28 +02:00
Simone Bordet
27db8ed65b
Fixes #6251 - Use CyclicTimeout for HTTP2Streams. (#6267)
* Fixes #6251 - Use CyclicTimeout for HTTP2Streams.

Introduced CyclicTimeouts to manage many entities that may timeout.
Rewritten HttpDestination request timeouts using CyclicTimeouts.
HTTP2Stream does not inherit from IdleTimeout anymore; now a
CyclicTimeouts in HTTP2Session manages the stream timeouts.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-05-16 20:37:33 +02:00
Simone Bordet
de2d764290 Fixes #6254 - Total timeout not enforced for queued requests.
Fixed logic in HttpDestination.RequestTimeouts, where now a timeout
is scheduled only when the expiration time is less than the existing one.
Various code cleanups.
Renamed HttpDestination.TimeoutTask to RequestTimeouts for clarity.
Improved javadocs, code comments and logging.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
(cherry picked from commit 5f23689aa7f44c0660ba2ad92c7c6a15d7c4af15)
(cherry picked from commit da50e06b640d448d42e642c842cf9bc647797a49)
(cherry picked from commit 88ac10439a8b5ec1c34aaab4ccbf0f590aee33f8)
2021-05-12 10:19:11 +02:00
Simone Bordet
9176d83423 Improvements to the Jetty documentation.
Clarified that HttpClient cannot be stopped from its own threads.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-04-20 17:41:07 +02:00
Olivier Lamy
a0796d1055 Updating to version 10.0.3-SNAPSHOT 2021-03-26 06:31:31 +00:00
Olivier Lamy
7bd207b309 Updating to version 10.0.2 2021-03-26 06:13:42 +00:00
Olivier Lamy
d27363fa55 back to 10.0.2-SNAPSHOT
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-03-26 06:10:47 +00:00
Jesse McConnell
7a9e01ac56
Updating to version 10.0.3-SNAPSHOT 2021-03-25 10:38:15 -05:00
Jesse McConnell
aac6bfbd48
Updating to version 10.0.2 2021-03-25 10:21:44 -05:00
Simone Bordet
6fca106160 Reverted version to 10.0.2-SNAPSHOT.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-03-25 16:02:45 +01:00
Olivier Lamy
3d0574d64c Updating to version 10.0.3-SNAPSHOT 2021-03-25 04:10:39 +00:00
Olivier Lamy
ab235ad687 Updating to version 10.0.2 2021-03-25 03:57:25 +00:00
Joakim Erdfelt
8ed8dc62e3 Updating to version 10.0.2-SNAPSHOT 2021-02-19 13:06:42 -06:00
Joakim Erdfelt
d0bfd9145d Updating to version 10.0.1 2021-02-19 12:43:50 -06:00
Joakim Erdfelt
e81c847998
Happy New Year 2021 (Jetty 10 edition)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-01-21 15:05:57 -06:00
Simone Bordet
e1f62c4905 Issue #5799 - Allow specifying the duration an object can stay in a pool.
Fixed AbstractConnectionPool.accept() to wrap the entry into an EntryHolder.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-01-14 20:09:15 +01:00
Ludovic Orban
058a488c30 Merge remote-tracking branch origin/jetty-9.4.x into jetty-10.0.x
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-01-12 16:22:11 +01:00
Ludovic Orban
0dec883fda implement connection pool max duration 2021-01-12 15:41:56 +01:00
Simone Bordet
847e8c612f Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-01-12 11:30:00 +01:00
Simone Bordet
6e1cd862e4
Fixes #5845 - Use UTF-8 encoding for client basic auth if requested. (#5847)
* Fixes #5845 - Use UTF-8 encoding for client basic auth if requested.

* Introduced get/setCharset in BasicAuthenticator on server-side.
* Looking for the "charset" parameter on the client-side, and if there, use it.
* Added test case.
* Code cleanups.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-01-12 11:26:33 +01:00
Simone Bordet
f836f87754 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-01-11 11:23:12 +01:00
Simone Bordet
403d5ec318
Fixes #5855 - HttpClient may not send queued requests. (#5856)
Changed the AbstractConnectionPool.acquire() logic to call tryCreate() even
when create=false.

This is necessary when e.g. a sender thread T2 with create=true steals a
connection whose creation was triggered by another sender thread T1.
In the old code, T2 did not trigger the creation of a connection, possibly
leaving a request queued.
In the new code, T2 would call tryCreate(), possibly triggering
the creation of a connection.

This change re-introduces the fact that when sending e.g. 20 requests
concurrently, 20+ connections may be created.

However, it is better to err on creating more than creating less and leaving
requests queued.

Further refactoring moved field pending from Pool to AbstractConnectionPool.
As a consequence, AbstractConnectionPool.tryCreate() now performs a 
demand/supply calculation to decide whether to create a new connection.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Greg Wilkins <gregw@webtide.com>
2021-01-07 16:05:24 +01:00