Updated VirtualThreadPool to limit the number of concurrent virtual threads using a Semaphore.
Updated modules and documentation.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Updated VirtualThreadPool to limit the number of concurrent virtual threads using a Semaphore.
Updated modules and documentation.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Implemented "priming" of HTTP/1.1 connections using ConnectionPool.preCreateConnections(int) and HttpClientTransportOverHTTP.setInitializeConnections(true).
This sends `OPTIONS * HTTP/1.1` to the server.
I tried to implement this feature by forcing a write of 0 bytes from the layer above `SslConnection`, but it did not work when using TLS because in both WriteFlusher and SslConnection the fact that there are 0 bytes left to write is treated specially.
Other HTTP versions have no problems because they must initialize the connection by e.g. sending a SETTINGS frame, so they would also initialize TLS.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Rather than making LifeCycle AutoCloseable, just implement AutoCloseable in the client components.
Update tests to use try-with-resources accordingly.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Now `HttpClient` removed the `Expect` header if there is no request content.
* Changed AbstractProxyServlet and ProxyHandler check for request content: now the Content-Type header is not taken into consideration.
* Now the server avoids sending the 100 Continue response if there is no request content.
* Now the request body is not defaulted if missing, but just kept null.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* use standard surefire directory to have result parse via Jenkins
Signed-off-by: Olivier Lamy <olamy@apache.org>
* h2spec last snapshot
Signed-off-by: Olivier Lamy <olamy@apache.org>
* use h2-spec-maven-plugin version 1.0.13
Signed-off-by: Olivier Lamy <olamy@apache.org>
---------
Signed-off-by: Olivier Lamy <olamy@apache.org>
Now also the HttpReceiver.responseContentAvailable() is serialized, so that the access to `this.contentSource` is serialized with failure, and protected by a call to `exchange.isResponseCompleteOrTerminated()`.
Before, it was possible that a thread failed the response, nulling out `this.contentSource`, while another thread was just about to call `responseContentAvailable()` -- this was the case for HTTP/2 in particular, where content is notified asynchronously, rather than being created by a call to `ContentSource.read()`.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Now the code examples is a packaging=jar module and it's not under a profile.
The extra execution to compile the code examples is not necessary anymore.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Renamed the `version` attribute to `jetty-version`, and now using the POM value, rather than a hard-coded one.
Removed references to Asciidoctor from the main POM.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Added documentation for advanced TLS configuration.
Updated the javadoc-url attribute to the new javadocs URI.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* Changed ContentSender demand from iterate()+IDLE to succeeded()+SCHEDULED.
This ensures that there is no re-iteration in case a 100 Continue response arrives.
This, in turn, avoids that the demand is performed multiple times, causing ISE to be thrown.
* Changed the 100 Continue action of the proxy Servlet/Handler, that provides the request content, to be executed by the HttpSender, rather than by the HttpReceiver.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
invoker:install should include test dependencies as well as they are used by the tests, this issue can happen only when not snapshots have been deployed of demos new versions
Fixes#11926 - Authority Customizer.
Introduced AuthorityCustomizer to synthesize the authority from the Host header (or serverName:serverPort), and related documentation.
Removed additional check on authority's host in `HttpCompliance`, as it was too strict and in the wrong place (authority checks should be factored out elsewhere for all HTTP protocol versions).
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
* add target/jetty-home as part of the cache as it is useful with jetty-home module
Signed-off-by: Olivier Lamy <olamy@apache.org>
* include files from src/main/webapp in the cache checkksum
Signed-off-by: Olivier Lamy <olamy@apache.org>
---------
Signed-off-by: Olivier Lamy <olamy@apache.org>