+ 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.
The Loader has been simplified to now just be a switch between loading from the context loader,
the same loader as another class or the system loader. Multiple loaders will never be tried.
A new runWithServerClassAccess(PriviledgedAction) method has been added to WebAppClassLoader, that
is now used during configuration for actions that need access to both the WEB-INF/lib classes and
the server classes (eg jetty-web.xml and env.xml).
The JMX MBean mechanism has also been modified to look for an MBean class in the same loader that
object came from before attempting the context loader (only if different).
+ 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
+ Reducing looping references Session -> otherObj -> Session
+ Using Container LifeCycle bean management more consistently
+ All sessions are now child beans
+ A stopped session that hasn't been closed, will auto-close now
+ Using SessionListener more consistently
+ Client ConnectionManager no longer tracks Sessions
+ EventDriver stop cleans up its Session references
+ Moving all DummyConnection test classes to websocket-common:tests
+ Breaking down jetty-cdi into 3 modules
* cdi-core
* cdi-servlet
* cdi-websocket
+ Creating WebSocketScope for cdi-websocket
+ Creating @Produces for jetty websocket api session
and javax.websocket.Session
+ Unit tests for new functionality
+ Verifying ServletContextHandler behavior of Decorators
+ Marking old ServletContextHandler methods as deprecated
+ Updates to DecoratedObjectFactory
+ Removing customized weld scopes/context (for now)
+ Deferring JSR356 ServerContainer endpoint init
till Container.doStart() to allow weld to init properly first
+ Removing JSR356 BasicServerEndpointConfigurator in favor
of ContainerDefaultEndpointConfigurator
+ Only decorating server endpoints if they were created by
ContainerDefaultEndpointConfigurator, all others are trusted
to be complete and injected already.