Commit Graph

160 Commits

Author SHA1 Message Date
Joakim Erdfelt c548cba71c WebSocket - fixing windowed parse issue with masked frames 2013-08-20 12:56:32 -07:00
Joakim Erdfelt 34f03cb0e8 WebSocket / releasing (header) buffer acquired during generation 2013-08-20 09:57:57 -07:00
Joakim Erdfelt 8e66da396e Merge branch 'jetty-9.1-wssplitframe' into jetty-9.1 2013-08-19 15:27:09 -07:00
Joakim Erdfelt 3dbcc04b73 Breaking apart WebSocketFrame into sub-frame types
+ Performance improvements?
+ Less copying of data
2013-08-19 15:26:07 -07:00
Simone Bordet 45724b63ec Improved masking performance by using ints instead of bytes. 2013-08-19 22:11:52 +02:00
Joakim Erdfelt 980effaede WebSocket - reducing memory footprint of WebSocketFrame by not using boolean fields 2013-08-13 12:09:43 -07:00
Joakim Erdfelt 1e39b7d476 WebSocket / Performance - cleaning up tests from fallout on bug 414913
+ Copying payload in test cases for comparison reasons, as the reuse of
  payloads by the implementation now means that the payload might be
  masked by a random client side mask.
+ Cleaning up Abnormal Close handling for idle timeout cases
+ Fixing logging a tag
+ Fixing intermittent test failure in jsr EchoTest
2013-08-12 16:29:25 -07:00
Joakim Erdfelt 46b3dc10c8 414913 - WebSocket / Performance - reduce ByteBuffer allocation/copying during generation/writing
+ Splitting Header bytes from payload bytes.
+ returning List<ByteBuffer> from WriteBytesProvider now
+ returning possibly more than 1 frame per
  WriteBytesProvider.getByteBuffers() for submission to
  Endpoint.write()'s gathered write of multiple bytebuffers
2013-08-12 16:29:25 -07:00
Joakim Erdfelt 833aa6723d WebSocket - More concurrency fixes found by FindBugs 2013-08-01 13:51:18 -07:00
Joakim Erdfelt 07041f6439 JSR-356 making HTTP Header map use TreeMap(String.CASE_INSENSITIVE_ORDER) 2013-08-01 10:50:01 -07:00
Joakim Erdfelt 28b3ee8b13 WebSocket - breaking out unfinished MUX extension into its own module 2013-07-30 15:09:40 -07:00
Joakim Erdfelt 702b675e86 JSR-356 Fixing dispatching for Streaming reads 2013-07-30 12:49:04 -07:00
Joakim Erdfelt d7d4e415ea JSR-356 - making use of ServiceLoader technique for finding Extensions 2013-07-24 14:46:59 -07:00
Joakim Erdfelt 89b22d0c90 Adding timeouts on problematic tests to prevent CI abort 2013-06-19 20:53:23 -07:00
Joakim Erdfelt ffceb642c5 JSR-356 cleaning up MessageInputStream and MessageReader 2013-06-05 10:34:38 -07:00
Joakim Erdfelt 3f3b9fda61 JSR-356 attempting to rethink the InputStream handling 2013-06-04 15:10:44 -07:00
Joakim Erdfelt c872b95c04 JSR-356 more work on supporting Streams 2013-05-30 16:25:38 -07:00
Joakim Erdfelt 4c455e4f9b JSR-356 - cleaning up Writer support
+ Eliminating AppendableByteBuffer in favor of direct CharBuffer use
+ Renaming Utf8ByteBuffer to Utf8CharBuffer to better suit usage
2013-05-28 15:09:48 -07:00
Joakim Erdfelt eaf8e46570 JSR-356 - Adding Writer support.
+ Introducing AppendableByteBuffer and Utf8ByteBuffer
+ Adding MessageWriter implementation based on Utf8ByteBuffer
2013-05-28 12:51:50 -07:00
Joakim Erdfelt 48dea3bb1d JSR-356 adding basic MessageOutputStream support for writing to an OutputStream 2013-05-23 15:51:40 -07:00
Joakim Erdfelt 9f82849900 Merge from [master] to [javawebsocket-jsr] 2013-05-09 12:10:57 -07:00
Joakim Erdfelt f2528642d9 Making Jetty WebSocket API Echo Examples more consistent (for doc) 2013-05-06 13:47:28 -07:00
Joakim Erdfelt 9ad5ab1ed5 406449 - Session's disconnect not detected
+ Vastly cleaned up IOState and ConnectionState behavior
2013-04-30 15:54:41 -07:00
Joakim Erdfelt ef77b854fa 404911 - WebSocketCloseTest fails spuriously
+ Renabling test
+ Using EventQueue from jetty-test-helper instead
+ Standarizing HttpResponseHeaderParser into websocket-common so that
  remaining bytebuffer logic is maintained in one place.
+ Making BlockingClient also use HttpResponseHeaderParser
2013-04-26 15:37:46 -07:00
Joakim Erdfelt b2e675ebad Merge branch 'master' into javawebsocket-jsr 2013-04-17 07:16:03 -07:00
Joakim Erdfelt 824675d072 Guarding ExtensionStack.toString() from NPE 2013-04-16 06:49:33 -07:00
Joakim Erdfelt e0d353629f JSR-356 - updates to Session tracking and start of PathMappings
+ Refactored websocket-commons Session creation to be factory based
+ Introduced new org.eclipse.jetty.websocket.common.SessionFactory
+ Made websocket-client and websocket-server use new SessionFactory
+ Introduced JsrSessionFactory to allow for consistent Session creation
  even in the Jsr (no more duplciate Session creation)
+ Using JsrSessionFactory in javax-websocket-client-impl
+ Introducing PathMappings to hopefully replace jetty-util's PathMap
+ Using standard ClientEndpointConfig when appropriate.
+ Introducing JettyClientEndpointConfig for annotation based
  configurations
+ Renaming EchoSocket used in javax.websocket client testing to
  JettyEchoSocket to better indicate that its the Jetty server side
  implementation and not the javax.websocket client side socket.
+ Changed IncomingFrames.incomingError() parameter from
  WebSocketException to Throwable to match behavior on the JSR
2013-04-09 11:21:59 -07:00
Joakim Erdfelt fc7526b739 [JSR-356] Refactoring annotated callables to handle any-order rule 2013-03-26 17:30:49 -07:00
Joakim Erdfelt fd8f2b9753 Merge from [master] -> [javawebsocket-jsr] 2013-03-11 10:57:08 -07:00
Joakim Erdfelt 9e78529a17 402154 - WebSocket / Session.setIdleTimeout(ms) should support in-place idle timeout changes
+ Made WebSocketSession delegate idle timeouts to LogicalConnection,
   that way the EndPoint or Mux can manage the idle timeout accordingly.
2013-03-01 09:24:03 -07:00
Joakim Erdfelt 370bdafc15 Reverting direct ByteBuffer commits
+ Reverting commit : 5621f87c81
  + Reverting commit : bbcf0c77b8
2013-02-26 10:41:40 -07:00
Joakim Erdfelt bbcf0c77b8 Switching to direct ByteBuffers 2013-02-23 16:44:49 -07:00
Joakim Erdfelt 5621f87c81 Switching to direct ByteBuffers 2013-02-23 16:44:49 -07:00
Joakim Erdfelt 4fb1bc80da 393473 - Add support for JSR-356 (javax.websocket) draft
+ Refactoring EventDriver to be more pluggable (for jsr endpoints)
2013-02-13 13:37:26 -07:00
Joakim Erdfelt 43231d8451 393473 - Add support for JSR-356 (javax.websocket) draft
+ Restarting branch, copying over work from November with new JSR-356
   Draft 012 api in mind.
2013-02-12 16:19:35 -07:00
Joakim Erdfelt 9ae3c94b22 399520 - Websocket needs session idle timeouts
+ Integrated suggestions about AbstractConnection.onReadTimeout()
 + Enabled tests on client side
2013-02-12 13:51:06 -07:00
Joakim Erdfelt 1480f3d8fc 399669 - Remove WebSocketConnection in favor of websocket.api.Session 2013-01-31 12:09:04 -07:00
Joakim Erdfelt b2951bdf5d 396428 - Test for WebSocket masking on client fragments per RFC 6455 Sec 5.1 2013-01-30 13:51:49 -07:00
Joakim Erdfelt 60088fa274 399515 - Websocket-client connect issues should report to websocket onError handlers 2013-01-30 12:15:15 -07:00
Joakim Erdfelt 4f48bc7e7b 399343 - OnWebSocketConnect should use api.Session parameter instead.
+ Changed method signature for WebSocketListener and the various
  @OnWebSocket* annotations
2013-01-29 13:22:38 -07:00
Joakim Erdfelt 871b64cf38 Bug 399344 - Add missing @OnWebSocketError annotation 2013-01-29 13:22:38 -07:00
Joakim Erdfelt 2e216dddb7 Consolidating WebSocketPolicy.setMax*Size() into single setMaxMessageSize() 2013-01-18 09:27:56 -07:00
Joakim Erdfelt 4660f35210 393733 - WebSocketClient interface should support multiple connections
+ Removing deprecated methods from Session
+ Fixing client side UpgradeConnection to handle extension via new
  ExtensionStack object
+ Making ExtensionStack.getNegotiatedExtensions() return
  List<ExtensionConfig> instead of List<String>
+ Fixing tests that relied on changes
2013-01-16 15:11:57 -07:00
Joakim Erdfelt eff1262e49 398105 - Clean up WebSocketPolicy 2013-01-16 15:11:56 -07:00
Jesse McConnell e1c516c7d1 merge from jetty-8 and update license blocks. 2013-01-11 17:04:53 -06:00
Joakim Erdfelt 1936a0fc51 Fixing harmless NPE seen during testing. 2012-12-21 14:00:36 -07:00
Joakim Erdfelt ecb472f30b Introducing WriteBytesProvider 2012-12-14 16:12:48 -07:00
Joakim Erdfelt 9bbfcd7e62 More websocket threading issues
* Using new IOState object in AbstractWebSocketConnection to better
  manage close handshake state and replies.
* Cleaning up many bad BufferPool.release() calls against ByteBuffers
  that didn't arrive from BufferPool.acquire()
* Removing many ByteBuffer.wrap() calls.
* Fixing FrameCompression / MessageCompression extension handling
  of ByteBuffers
2012-12-12 11:06:15 -07:00
Joakim Erdfelt baaf94eeae Fixing write of large websocket frames (25MB+)
+ Using ForkInvoker from util
+ Using FrameBytes logic from SPDY
+ Fixing bad flush logic
+ Fixing lazy BufferPool.release() logic
+ Fixing Buffer reuse issue
+ Fixing BlockheadServer to use ExtensionStack
+ Moving WriteResultFuture helper classes out of tests into main
+ Introducing common IOState handling for common close handshake use
2012-12-10 09:23:18 -07:00
Joakim Erdfelt 11cbe274af 395344 Move JSR-356 (Java WebSocket API) work off to Jetty 9.1.x 2012-11-28 16:55:13 -07:00
Greg Wilkins 97d2130a8f jetty-9 no debugging checked in 2012-11-19 15:08:53 +11:00
Joakim Erdfelt 169498cd9d Fixing Frame Decompress to work in Chrome 20.x 2012-11-12 20:52:54 -07:00
Joakim Erdfelt 42ec683297 Merge from 'master' to 'ws-refactor' 2012-11-12 16:22:11 -07:00
Joakim Erdfelt 884f1a3eff New ExtensionStack to manage Extensions easier and more consistently 2012-11-12 16:02:05 -07:00
Joakim Erdfelt 8548331735 Ripping out javax.net.websocket.extension.* SPI as it is going away 2012-11-12 12:36:39 -07:00
Joakim Erdfelt a7968c07be Rolling Extension and ExtensionConfig change into rest of websocket-common 2012-11-06 15:51:23 -07:00
Joakim Erdfelt 2e3447f6ef Making .common pass all existing tests 2012-11-05 17:57:39 -07:00
Joakim Erdfelt 053f91c8a0 Refactoring .core to .common and updating for .api 2012-11-05 17:18:44 -07:00
Joakim Erdfelt c1ce7780a6 Updating rest for websocket-api 2012-11-05 12:01:42 -07:00
Joakim Erdfelt d19f177cae First step 2012-11-02 11:42:44 -07:00