* Updated Maven plugins to versions that support JDK 9.
* Added jdk9 profiles to the build files.
* Introduced modules jetty-alpn-java-client and jetty-alpn-java-server
containing a pure JDK 9 implementation of ALPN.
* Wired ALPN connection factories (client and server) to use the proper
ALPN implementation based on the JDK platform version (8 or 9).
The fix notifies the transport when a reset frame is received,
allowing the transport to fail the write callback which then notifies
the application, either by throwing (in case of blocking writes) or
by calling error listeners.
Also added a guard, in HttpChannel.handle() for the ERROR_DISPATCH case,
that checks if the response is already committed, and if so, abort
the transport - similar to what's already there for 9.4.
Introduced isAllowed(InetAddress, HttpServletRequest) so that it
would be possible to make access decisions also based on request
information such as context, path, headers, etc.
* Issue #586 Enhancement for detection of insufficient threads
Do not count acceptors and selectors at server level if connector uses own dedicated thread pool
Signed-off-by: vladimir.bukhtoyarov <jsecoder@mail.ru>
ConnectionFactories may be added after the connector is started.
As such there is always the possibility that creating a new
connection fails because there is no available ConnectionFactory for
that protocol.
Rather than failing with an IllegalStateException instead of a
NullPointerException, we now check at connector start whether the
SslConnectionFactory is properly configured.
This should catch 99% of the cases, where the connector is
misconfigured, reporting the error earlier and explicitly
(connector does not start) rather later and hidden (connection cannot
be created).
Now testing the return value of onEarlyEOF() and calling the
application when the value is true.
This means that the application can now consume the early EOF and the
spin does not happen.