Commit Graph

117 Commits

Author SHA1 Message Date
Joakim Erdfelt b95e454f7d 417022 - Access current HttpConnection from Request not ThreadLocal
+ Adjusting WebSocketServerFactory.upgrade() to receive HttpConnection
  from Request object instead of ThreadLocal.
2014-03-11 12:12:44 -07:00
Joakim Erdfelt 5d36a4cb73 428594 - File upload with onMessage and InputStream fails
+ Adding unit test to verify reported behavior
2014-03-06 13:19:30 -07:00
Simone Bordet 4031bc7f3b Reduced websocket memory footprint by releasing the HTTP machinery
(request and response) after the upgrade.
2014-02-24 23:44:21 +01: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
Greg Wilkins d349d640c0 428859 Do not auto initialise jsr356 websocket if no annotations or EndPoints discovered 2014-02-24 16:31:56 +11: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
Simone Bordet ad15b27a01 427700 - Outgoing extensions that create multiple frames should flush
them in order and atomically.

Refactored PerMessageDeflateExtension and DeflateFrameExtension
introducing superclass CompressExtension that factors in common
functionalities.
2014-02-14 22:21:59 +01:00
Joakim Erdfelt 1ff01f36eb Fixing SessionTest failures on windows due to file locking 2014-01-14 15:09:57 -07:00
Joakim Erdfelt 29dec203ba Turning on some leak detection in websocket testing 2014-01-08 14:54:57 -07:00
Joakim Erdfelt 9df519c40f 423948 - Cleanup and consolidate testing utilities in WebSocket
+ Created websocket-common-tests.jar artifact
+ Consolidated duplicate code from other websocket-* modules
  into the websocket-common test artifact
2014-01-08 10:47:45 -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 5380430b75 Tweaking idle timeout 2013-12-20 13:22:01 -07:00
Joakim Erdfelt 6d70aab61d 423915 - WebSocket / Active connection from IOS that goes into airplane mode not disconnected on server side
+ Working testcase for JSR-356
2013-12-12 16:58:42 -07:00
Joakim Erdfelt 5941e9db83 Fixing various warnings / imports 2013-12-12 14:46:40 -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 eb2f3acfbd 423804 - WebSocket / JSR improper use of ServerEndpointConfig.Configurator.getNegotiatedSubprotocol()
+ Correcting BasicServerEndpointConfigurator response for no subprotocol
+ Correcting JsrCreator assumption for no subprotocol
2013-12-11 17:00:28 -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
Joakim Erdfelt e097ec1ae2 import cleanup 2013-11-15 09:00:16 -07: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 5965e695fa Cleaning up modules 2013-10-24 14:06:50 -07:00
Joakim Erdfelt 1eca1e7c3c Making subprotocol negotiation behavior report warnings on bad configuration 2013-10-10 09:04:45 -07:00
Joakim Erdfelt 2944339893 Fixing websocket browser test utility header lookup 2013-10-10 08:43:49 -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 d2c3d7cf09 418603 - cannot specify a custom ServerEndpointConfig.Configurator
+ Fixing bad assumption on annotations possibly being null
2013-10-03 09:13:37 -07:00
Joakim Erdfelt b966545a95 417152 - WebSocket / Do all setup in websocket specific ServletContainerInitializer
+ removing etc/jetty-websockets.xml (now irrelevant)
2013-09-26 10:13:12 -07:00
Greg Wilkins b52d7f09b0 418068 WebSocketClient has lazy or injected Executor 2013-09-26 18:06:55 +10:00
Joakim Erdfelt edf0e4f707 Removing websocket.mod ini-template, as using the mod is the same as the ini-template 2013-09-24 09:02:04 -07:00
Joakim Erdfelt cd236bc016 417152 - WebSocket / Do all setup in websocket specific ServletContainerInitializer
+ Removed WebSocketConfiguration class entirely + annotation handlers
+ Renamed ServerAppliationConfigListener to
  WebSocketServerContainerInitializer
+ Embedded jetty code that used to use:
  WebSocketContainer.configureContext(context) now uses
  WebSocketServerContainerInitializer.configureContext(context)
2013-09-23 13:30:14 -07:00
Jan Bartel 73d0ed8d71 417561 Refactor annotation related code
Rename and refactor ServletContainerInitializerListener
2013-09-19 22:31:36 +10:00
Jan Bartel d4c035a06f 417561 Refactor annotation related code to remove some deadwood 2013-09-19 15:43:38 +10:00
Joakim Erdfelt aa5705fd78 417490 - WebSocket / @PathParam annotated parameters are null when the servlet mapping uses a wildcard
+ Fixing ServletUpgradeRequest.getRequestPath() to conform to behavior
 found in WebSocketUpgradeFilter.doFilter()
2013-09-18 06:35:12 -07:00
Jan Bartel f44787075a 417382 - Upgrade to asm 4.1 and refactor annotation parsing 2013-09-17 13:12:54 +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 eecc17ee67 WebSocket / cleaning up example 2013-09-12 12:23:53 -07:00
Joakim Erdfelt cda13d76d4 Adding example of websocket streaming read/write 2013-09-12 12:19:45 -07:00
Joakim Erdfelt 0dcea8f2a2 Make sure client also has values set. 2013-09-12 10:49:30 -07:00
Greg Wilkins 43c92f8117 416812 - Don't start WebSocketClient for every context
turn off for all contexts in demo
2013-09-12 20:44:13 +10: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 dc59080fca WebSocket / Fixing pathmap matching when query parameters are provided 2013-09-11 07:24:25 -07:00
Joakim Erdfelt aa9aea00be Adding back missing enable check, correcting javadoc 2013-09-09 19:04:55 -07:00
Joakim Erdfelt d3421070cb Adding back ENABLE attribute for JSR-356 2013-09-09 19:01:23 -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 7e3ef36f16 Revert "416812 Only start WebSocketContainer if enabled by attribute"
This reverts commit a1cba900c5.
2013-09-09 09:28:33 -07:00
Greg Wilkins a1cba900c5 416812 Only start WebSocketContainer if enabled by attribute 2013-09-09 12:27:15 +10:00