* Fixes#8863 - Provide a possibility to name virtual threads
Reworked the VirtualThreads APIs to be based on `Executor` rather than just `boolean`.
Introduced Jetty module `threadpool-virtual-preview`.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Fixes#8913 - Review Jetty XML syntax to allow calling JDK methods
Now `<Call>`, `<Get>` and `<Set>` elements can use the `class` attribute
to specify the exact class to perform method lookup.
Improved support for `<Property>`, `<SystemProperty>` and `<Env>` so that
attribute `name` is now optional (as specified in the DTD), and a
`deprecated` attribute may be present instead.
This is necessary to terminally deprecate properties that have
no replacement.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Ignore date based headers if etag ones are present.
* Also avoid parsing dates unless necessary.
* Check a resource has a lastModified date
Signed-off-by: Greg Wilkins <gregw@webtide.com>
+ Fix for circular dependency loop
test-distribution ->
jetty-home ->
jetty-documentation ->
jetty-asciidoctor-extensions ->
test-distribution
+ Remove any deps on anything in org.eclipse.jetty from new module
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
* Fixes#8678 - Jetty client receives GO_AWAY and continue to send traffic on same connection
* Now upon receiving the GOAWAY, the connection is removed from the pool, so it cannot be used by new requests.
* HTTP2Session.removeStream() now happens _after_ notifying HEADERS and DATA events, although the Stream state change still happens before.
This is necessary to avoid that a "close" event is notified before a "headers" or "data" event.
With these changes, the race window of a client acquiring a connection while the server is closing it is reduced, but it is impossible to close it completely.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Issue #8822 - NPE on deflater.reset() called after deflater.end()
Now waiting for the server to finish writing even in case of HEAD method,
otherwise the test exit races with the server finishing to fake-write the response content.
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
* Fixes#7117 - Timeout with Expect 100 continue when using ProxyServlet.
Now getReader() tests whether it has to send a 100 continue in case getInputStream()
is not called because the reader is reused.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Issue #8716 - Handle bad host/authority headers better
* Remove extra `Host` header in testcase that doesn't deal with bad Host headers
* Create URIUtil.isRegName
* Correcting HostPortTest.testValidAuthority
* Correcting RequestTest.testInvalidHostHeader
* Remove clonable, set to final
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
* Fixes#8770 - Review whether to send request body in redirects.
Now the original request body is re-sent only if the redirect status code is 307 or 308.
In the other cases, it is a redirect to a GET method, so the Location is followed without resending the body, and the content headers are removed.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Don't care about stop failures in this test
* More consistent ConnectTimeoutTest
+ using IANA example.com (as it will route to a
real machine, and will never have this
specific port open)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Now a completed future is returned from shutdown() if the session is already closed.
Moved the notification of the CompletableFuture to terminate(), which is always invoked.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* @Tag("flaky") use instead of @Disabled
* Tweaking timeouts on some tests
* Tweaking timeouts on some tests
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>