Feature/hc5 serverbootstrap convenience methods#555
Feature/hc5 serverbootstrap convenience methods#555cdw8j wants to merge 133 commits intoapache:5.3.xfrom cdw8j:feature/hc5-serverbootstrap-convenience-methods
Conversation
…ation - Added `plusAsBlank` flag to `URIBuilder` to dynamically configure whether '+' should be interpreted as a space in query parameters. - Implemented `setPlusAsBlank` method to update the flag and re-parse the query accordingly.
… functional changes)
- Reduces boilerplate when the same pattern is used
…oring (#490) This change enhances monitoring capabilities for the IOReactor thread pool, providing better insights into performance and potential bottlenecks.
… to protocol interceptors
…cefully shutting classic SSL sockets for compatibility with Oracle JDK 1.8
…ncorrectly reporting its state as CLOSED immediately after its instantiation until #onConnect event has been triggered
…nd extensibility; added classic i/o and TLS compatibility tests
… with older versions of Nginx
… make use of test SocksProxy
This change ensures compliance with RFC 9110, Section 6.6.1, by guaranteeing that a valid Date header is always present.
- The class was package-private so I made the method also package-private - The method could be private - The method being final allows the JVM the option to inline it at runtime
- Fail-fast in SingleAuthorityResolver construction for null URIAuthority input instead of NPE in apply() - Note: A null router has no negative side-effects in SingleAuthorityResolver itself
call The following now define singletons: - org.apache.hc.core5.http.impl.routing.UriPathRouter.BestMatcher - org.apache.hc.core5.http.impl.routing.UriPathRouter.OrderedMatcher - org.apache.hc.core5.http.impl.routing.UriPathRouter.RegexMatcher
- Use the result value Args.notNull() to assign instance variable - Resolves all Javadoc warnings in URIAuthority
instances Note: Host is immutable and therefore safe to pass on and reuse
…when failing enqueued requests that never got executed
…ailing to send GOAWAY frame
…when releasing resources
…r in case of abnormal / premature exchange termination
…ed stream as a protocol violation
…erver endpoint as a protocol error
… than the last seen)
…terminates the request on the client if the server has sent the complete response (the stream has been closed remotely)
…e field after decompression
…e endpoint failing to send GOAWAY frame (corrected)
…ommand queue to activate streams reserved with a push promise
| return this; | ||
| } | ||
|
|
||
| public final ServerBootstrap setLocalAuthResolver() { |
There was a problem hiding this comment.
This one is really not worth the API clutter IMO.
There was a problem hiding this comment.
I agree the setServerInfo() is arguable, but the setLocalAuthResolver() really makes life easier on application side, because it avoids the clutter related to creating a custom RequestRouter. Should I create a pull request only for the setLocalAuthResolver()?
There was a problem hiding this comment.
Removed the setServerInfo() from pull request
|
|
Hello @ok2c , so I changed my request as you suggested and removed the |
@cdw8j Sorry I missed that. No, there will be no API changes in the stable branch. No way. Please change the target branch to master if you want your changes accepted. |
| * | ||
| * @since 5.3.6 | ||
| */ | ||
| public final ServerBootstrap enableLocalAuthorityResolver() { |
…erBootstrap classes
|
My git rebase completely messed things up .. sorry I will close this request and create a new one. |
I have added two convenience methods to the ServerBootstrap that allow simple customization of the RequestRouter in the HttpServer (custom server info string and switching LOCAL_AUTHORITY_RESOLVER scheme). While it is possible to create an HttpServer with such a custom RequestRouter within the application, this results in really messy and complicated code, which can easily be spared with these very simple convenience methods.