154 Commits

Author SHA1 Message Date
Joakim Erdfelt
ed22d7e0de 464727 - Update Javadoc for Java 8 DocLint 2015-04-22 16:11:01 -07:00
Greg Wilkins
1cb0449be3 Organised imports 2015-03-26 12:32:15 +11:00
Joakim Erdfelt
dc81cda742 Using Jetty component listeners for CDI 2015-03-12 10:09:52 -07:00
Joakim Erdfelt
31ee46d482 453834 - CDI Support for WebSocket
+ 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
2015-03-12 10:09:52 -07:00
Joakim Erdfelt
87246263b8 453834 - CDI Support for WebSocket
+ 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.
2015-03-12 10:09:52 -07:00
Joakim Erdfelt
1f3097ff16 453834 - CDI Support for WebSocket
+ Adding scopes to websocket to help with CDI integration
2015-03-12 10:09:30 -07:00
Joakim Erdfelt
0c930c8640 Rename EnhancedInstantiator to DecoratedObjectFactory 2015-03-12 10:06:03 -07:00
Joakim Erdfelt
d6911b431f 453834 - CDI Support for WebSocket
+ Attempting to get new socket @Inject working
2015-03-12 10:04:50 -07:00
Joakim Erdfelt
5c3e30d136 453834 - CDI Support for WebSocket
+ Changing util.Decorators to util.EnhancedInstantiator to reflect true
  usage
+ Adding EnhancedInstantiator to JSR-356
2015-03-12 10:04:50 -07:00
Joakim Erdfelt
f7b382064f 457017 - Reflective call to websocket methods that fail have ambiguous
exceptions 

+ Making JSR onOpen close and use onError properly, as well we
unwrapping the InvocationTargetException cause as to WHY the call to
onOpen failed.
2015-01-08 12:06:53 -07:00
Joakim Erdfelt
6a0668b7a1 Happy New Year 2015 2015-01-07 17:03:30 -07:00
Simone Bordet
745f757552 Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-07-15 18:49:14 +02:00
Greg Wilkins
55ca09a00e 438190 findbug improvements 2014-07-10 14:41:32 +10:00
Joakim Erdfelt
a41dd1caf5 436874 - WebSocket client throwing a NullPointer when handling a pong
+ Adding NPE guard for PONG with no payload.
2014-06-11 08:30:52 -07:00
Joakim Erdfelt
f2ea8351b6 429390 - Decoders and Encoders are not registered for non-annotated ClientEndpoint
+ Adding EncoderTest to verify reported bug
+ Fixing SimpleEndpointMetadata to propagate the encoder/decoder list
  when present.
2014-05-22 13:12:39 -07:00
Joakim Erdfelt
900dea3719 433262 - WebSocket / Advanced close use cases
+ ClientCloseTest implementation of various outlined use cases.
2014-04-22 16:07:45 -07:00
Joakim Erdfelt
47e7583ada 430088 - OnMessage*Callable decoding of streaming binary or text is not thread safe
+ Adding testcase for Decoder.TextStream and lots of short messages with
  order indicator (for the order in which they were sent)
  Test case validates that all of the messages were received, not that
  they were in any particular order (as the use of Streaming prevents
  reliable ordering)
+ Adding defensive copy of callable array in order to prevent any
  possibility of concurrency issues with streams and dispatched
  calls.
2014-03-17 15:05:55 -07:00
Joakim Erdfelt
a3e5e0858c 428595 - JSR-356 / ClientContainer does not support SSL
+ Default SslContextFactory initialized
+ Setting for trustAll configurable via System property
    "org.eclipse.jetty.websocket.jsr356.ssl-trust-all"={bool}
2014-03-06 13:28:56 -07:00
Simone Bordet
f465a13d6d 428435 - Large streaming message fails in MessageWriter.
Fixed buffering, synchronization and callback notification in the
websocket stream implementation classes.
2014-02-24 14:28:10 +01:00
Simone Bordet
1ac6b82912 428232 - Rework batch mode / buffering in websocket.
Introduced the automatic batch mode, akin to Jetty 8's WebSocket
implementation.
Now, if there are no more frames to process, and the previous frames
have been aggregated, FrameFlusher auto-flushes the aggregated frames.
This simplifies applications because they don't need to call flush()
explicitly.
2014-02-18 18:31:49 +01:00
Simone Bordet
4bdca367dd 428232 - Rework batch mode / buffering in websocket.
Refactored FrameFlusher to handle aggregation of frames to support
JSR 356's batch mode.

Now FrameFlusher can aggregate frames as long as the FlushMode they
were sent is AUTO. When a frame that has FlushMode SEND arrives,
it will trigger the flush of the aggregate buffer (and eventually
also other queued frames).
A special BINARY frame is used to implement explicit flush()
invocations.
2014-02-18 18:31:48 +01:00
Simone Bordet
8e5c06b95c 428232 - Rework batch mode / buffering in websocket.
Refactored OutgoingFrames.outgoingFrame() to take an additional
parameter, FlushMode. This is in preparation for handling this new
parameter in FrameFlusher.
2014-02-18 18:31:48 +01:00
Joakim Erdfelt
cff7c9dbcb Cleaning up websocket connection open/close in favor of session open/close 2014-02-13 16:22:55 -07:00
Simone Bordet
cfe248c67b 427128 - Cookies are not sent to the server.
Implemented/fixed handling of cookies sent by client to server.
2014-02-03 12:49:58 +01:00
Simone Bordet
5e3c8821bb If ClientContainer is being stopped, then we can unregister it from
the ShutdownThread.

This happens when ClientContainer is added as a managed bean to a
ContainerLifeCycle and the container is stopped.
2014-02-03 12:09:27 +01:00
Joakim Erdfelt
44a7d23516 423646 - WebSocket / JSR / WebSocketContainer (Client) should have its LifeCycle stop on standalone use
+ Set Daemon on Executor and Scheduler threads to allow them to shutdown
  with the JVM
2014-01-07 13:08:10 -07:00
Joakim Erdfelt
b59057c184 424863 - IllegalStateException "Unable to find decoder for type <javax.websocket.PongMessage>"
+ Expanding testing of PongMessage
+ Ensuring that .addMessage(MessageHandler.Whole<PongMessage>) works
+ Ensuring that ping or pong messages all goto assigned message
  handler for PongMessage, for both extends Endpoint and
  annotated @OnMessage
2014-01-06 17:54:57 -07:00
Joakim Erdfelt
8016065823 424706 - The setMaxIdleTimeout of javax.websocket.Session does not take any affect
+ Making sure that JsrSession updates Connection on use of
  setMaxIdleTimeout after a connection has been opened.
2014-01-06 15:07:02 -07:00
Joakim Erdfelt
a12fd9ea03 Happy New Year - 2014! 2014-01-02 14:50:14 -07:00
Joakim Erdfelt
5cf9640cfa 423724 - WebSocket / Rename MessageAppender.appendMessage to .appendFrame 2013-12-20 13:22:01 -07:00
Greg Wilkins
ab9040bb63 424497 - Allow concurrent async sends 2013-12-20 11:49:33 +11:00
Joakim Erdfelt
9a20a534b5 423646 - WebSocket / JSR / WebSocketContainer (Client) should have its LifeCycle stop on standalone use
+ Not working (yet), but narrowed down the problem.
2013-12-18 05:51:24 -07:00
Joakim Erdfelt
bc7afdc172 423476 - WebSocket / JSR / @OnMessage(maxMessageSize=20000000) not properly supported
+ Correcting @OnMessage handling of max message size for TEXT/BINARY
  from both @ClientEndpoint and @ServerEndpoint usage
+ Testcases to prevent regression.
2013-12-12 13:20:49 -07:00
Joakim Erdfelt
120e0e59ca Cleanup (Imports / StandardCharset / Dead APIs) 2013-12-11 17:27:58 -07:00
Joakim Erdfelt
1eac013485 422192 - ClientContainer.getOpenSessions() always returns null
+ Adding SessionListener and using it judiciously
2013-12-04 12:24:48 -07:00
Greg Wilkins
0a52c64d16 421697 - IteratingCallback improvements
Use the iteratingcallback for websocket
use gather writes for websocket
always write entire websocket payload
2013-11-21 15:11:56 +11:00
Greg Wilkins
f567bddad9 global clean up imports 2013-11-04 13:48:03 +11:00
Joakim Erdfelt
6f1eb712e9 Cleaning up imports 2013-11-01 10:03:40 -07:00
Joakim Erdfelt
a0ddb2c5d7 418632 - WebSocket / Jsr annotated @OnMessage with InputStream fails to be called
+ Fixed load order issue with binary vs text
+ Fixed decoder assignment for InputStream
+ Added unit tests to prevent regression of this feature
2013-10-03 16:07:49 -07:00
Joakim Erdfelt
8d5013e15f 418625 - WebSocket / Jsr RemoteEndpoint.sendObject(java.nio.HeapByteBuffer) doesn't find encoder
+ Adding fallback lookup using isAssignable(type) if basic map based
  lookup fails first.  Remembers successful isAssignable(type) match
  for future lookups via basic map approach.
2013-10-03 14:05:04 -07:00
Greg Wilkins
b52d7f09b0 418068 WebSocketClient has lazy or injected Executor 2013-09-26 18:06:55 +10:00
Joakim Erdfelt
7f85842666 417134 - WebSocket / Jsr ServerEndpointConfig.Configurator.getNegotiatedExtensions() is never used
+ Extensions pre-negotiated via
  ServerEndpointConfig.Configurator.getNegotiatedExtensions are not
  properly handled.
+ Added JsrBrowserDebugTool (Jsr version of BrowserDebugTool)
2013-09-12 15:25:02 -07:00
Joakim Erdfelt
4b3541b7d1 WebSocket / making sure that filter always sees the correct target path, regardless of servlets 2013-09-11 08:56:19 -07:00
Joakim Erdfelt
aeac72a684 416812 - Don't start WebSocketClient for every context
+ Lazy initializing WebSocketClient connection manager
  to avoid holding threads that the selector manager
  will allocate.
2013-09-09 12:06:57 -07:00
Joakim Erdfelt
ed0f49f819 416763 - WebSocket / Jsr Session.getPathParameters() is empty
+ Adding support for `extends Endpoint` based endpoints as well
2013-09-06 14:35:22 -07:00
Joakim Erdfelt
fe4a778334 416764 - WebSocket / Jsr Session.getRequestURI() is missing scheme + host + port + query parameters
+ Relying on WebSocketSession.getRequestURI() instead.
2013-09-06 13:57:05 -07:00
Joakim Erdfelt
50d98ab527 416763 - WebSocket / Jsr Session.getPathParameters() is empty
+ Ensuring this works as intended with new test case
2013-09-06 13:40:49 -07:00
Joakim Erdfelt
975d9870d2 WebSocket - more code cleanup 2013-08-20 16:28:51 -07:00
Joakim Erdfelt
8c77fe2404 WebSocket - addressing bug in Partial message support 2013-08-20 15:31:12 -07:00
Joakim Erdfelt
e39b48c90d Fixing up javadoc issues in WebSocket classes 2013-08-14 10:54:07 -07:00