+ Upgrading to jetty-test-helper 4.0
+ Removing use of org.eclipse.jetty.toolchain.test.SimpleRequest
+ Removing use of org.eclipse.jetty.toolchain.test.http.SimpleHttpParser
+ Removing use of org.eclipse.jetty.toolchain.test.http.SimpleHttpResponse
+ Updating long since deprecated (and now removed) known quirky methods
in jetty-test-helper and the test classes.
+ Mappings are persisted if added to the NativeWebSocketConfiguration
before that configuration is started. Otherwise they are cleared
out on configuration.stop() lifecycle (like before)
+ Making WebSocketServletFactory always load a new
WebSocketServerFactory
+ Making WebSocketServerFactory need a ServletContext
to construct it, if appropriate (the WebSocketHandler
approach doesn't use a ServletContext)
+ NativeWebSocketConfiguration is now a bean of
ServerContainer
+ Removed WebSocketServletFactory.init(ServletContext) method
+ Renamed WebSocketServletFactory.init() to .start()
+ Renamed WebSocketServletFactory.cleanup() to .stop()
+ CDI & Websocket now works
+ Using a ServletContextListener now works
+ DecoderFactory and EncoderFactory now work
+ WebSocketServerContainerInitializer now initializes the
MappedWebSocketCreator, WebSocketServerFactory, and
ServerContainer directly, but puts the components needed
by WebSocketUpgradeFilter into ServletContext attributes
that it can obtain in its own init()
+ Added optional org.eclipse.jetty.websocket.jsr356.addDynamicFilter
init-param/attribute key to disable/enable the automatic addition
of the WebSocketUpgradeFilter during JSR356 init (to allow
WEB-INF/web.xml specified filter to operate instead)
+ Added WebSocketServerContainerINitializer.isEnabledViaContext()
to make testing the init-param and attributes more generic
+ Tests for WebSocket upgrade now evaluates the request
from least common feature to most common feature, so as
minimize the testing of the request object on every request
+ Removing SessionListener
+ Work in CDI layer for WebSocketContainerScope is reused for
session tracking on the parent scope of the WebSocketSession only.
no more multi-listener behavior
+ Reworked JsrSession ID behavior to not be based on AtomicLong
+ AbstractWebSocketConnection now has .hashCode and .equals
+ Reworked PerMessageDeflateExtensionTest to test with different
modes (http/ws vs https/wss), different messages sizes, and
input buffer sizes (these various configurations do trigger
the reported bug)
+ Made CompressExtension loop over the input buffer if the buffer
happens to not be entirely consumed.
+ WebSocket Connection objects no longer need to
hold a reference to the WebSocketSession object
eliminating another reference to the WebSocketSession
that could hold GC efforts to clean it up