Remove the metadata cache per endpoint class, to allow deployment of the same class with different EndpointConfig settings.
JavaxServerFrameHandlerFactory now matches for decoders before matching for basic onMessage signatures.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
- WebSocketCoreSession now updates the context classloader before invoking application code.
- JavaxWebSocketConfiguration now protectAndExposes JavaxWebSocketClientContainerProvider
so it can be discovered by the ServiceLoader in a webapp.
* Issue #4148 - config for jetty specific settings with javax WebSockets
* Make every jetty EndpointConfig implementation a wrapper
* Remove BasicEndpointConfig and use Client or Server specific ones
+ Introducing HttpContainerScope to track HttpClient specific
ByteBufferPool, SslContextFactory, and Executor.
+ New private WebSocketClient constructor that use HttpContainerScope
+ Deprecated many constructors as irrelevant now that HttpClient
is an option to create a WebSocketClient.
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
* Allow WebSocket extension selection to be done from UpgradeListener
* improve generation of extension string
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Added tests for WebSocket client negotiation of requested internal extensions. Changed the algorithm to remove from the requested list rather than add to the negotiated one.
Fixed other issues with the parsing of ExtensionConfig not giving correct errors for invalid content.
- test that Frame buffer is unchanged after sending
- Generator and FrameFlusher no longer modify frame payload
- permessage-deflate no longer modify frame payload
- remove Buffer allocation from Generator
- outgoing autoFragment no longer modifies buffer
- minor cleanups and optimizations from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Added FragmentingFlusher to abstract the fragmentation of frames.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Handle failure case of Fragmenting Flusher
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* Fragment outgoing frames before the ExtensionStack
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* update javadoc
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* separate frame size validation for incoming and outgoing frames
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* fix test
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* reimplement FragmentingFlusher with the new TransformingFlusher
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
* rework ByteAccumulator to avoid unnecessary data copies
* use ByteAccumulator instead of BAOS for ws compression
* outgoing autoFragment working with permessage-deflate
* ByteAccumulator now uses fixed maxFrameSize and no ByteBufferPool
* rework deflate code and introduce TransformingFlusher
* use transforming flusher for outgoing compression
* general clean up CompressExtension and subclasses
* remove forward incoming method
* use flusher to fragment for the decompressing of incoming frames
* fix broken tests
* updates to TransformingFlusher
* tests for CompressExtension with no payload
* ByteAccumulator uses the BufferPool for the final buffer
* remove increased maxFrameSize from autobahn tests as we now autoFragment
* add test for gzip bomb
* fix typo
* use Throwable failure instead of canEnqueue
* changes to TransformingFlusher from review
* remove per frame deflate extension
* remove accumulation of data to maxFrameSize in CompressExtension
* race between finished being set and callback being completed
* cleanup of transforming flusher
* fix issues with the TransformingFlushers
* add internal parameters for deflate and inflate BufferSize
* missing licence header
* wip
* don't use same extension config instances in negotiated extensions
* changes to TransformingFlusher from review
* fix internal extensions requested by client
* javadoc update
* javadoc and cleanup from review
* remove ByteAccumulator
* fix module-info
* null out current on callback completion
* remove override of succeeded and failed
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>