Commit Graph

244 Commits

Author SHA1 Message Date
Greg Wilkins 3a6879d3e8 expanded tabs in indents 2014-07-23 16:49:05 +10:00
Greg Wilkins 7f62f2600b refactored URI handling 2014-07-20 10:23:47 +10: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
Joakim Erdfelt 7b3fc2cecf Enabling testcase, reducing logging level 2014-05-29 11:42:50 -07:00
Joakim Erdfelt f00cd9f6ec Enabling and fixing testcase 2014-05-29 11:41:44 -07:00
Joakim Erdfelt bcf52e14f0 435206 - Can't add Cookie header on websocket ClientUpgradeRequest
+ Fixed competing cookie setters between WebSocketClient's use of
  CookieStore and UpgradeRequest.setCookies()
+ Added some utility methods to LazyList (for lack of existence of
  ListUtil or CollectionUtil in jetty-util)
2014-05-20 11:57:35 -07:00
Joakim Erdfelt cd003dcea0 Adjusting test timeouts for slow systems 2014-05-13 09:23:54 -07:00
Joakim Erdfelt 8b118ba66d Allowing alternate timeout check in testcase 2014-05-08 13:10:23 -07:00
Joakim Erdfelt 74e7195356 433262 - WebSocket / Advanced close use cases
+ because of the race condition in close on testNetworkCongestion(), the
  test has been modified to allow for either close condition as valid.
2014-05-07 16:14:50 -07:00
Joakim Erdfelt 8e957b5a23 Reducing the noise on websocket testing 2014-05-05 12:09:58 -07:00
Joakim Erdfelt c03388b640 431459 - Jetty WebSocket compression extensions fails to handle big messages properly
+ Setting compression extensions to default unregistered state until
  they can be stablized.
2014-05-05 12:09:58 -07:00
Greg Wilkins 51c5a4c833 425421 ContainerLifeCycle does not start added beans in started state 2014-05-05 14:53:53 +02:00
Greg Wilkins 2e261b75d6 433692 improved buffer resizing 2014-04-29 20:36:13 +02:00
Joakim Erdfelt 1fb578165f 433262 - WebSocket / Advanced close use cases
+ Improved test case handling of frame reading (to prevent future
  false failures)
+ Improved AbstractWebSocketConnection handling of close -> disconnect
  to only trigger on successful write (or failure) of close frame flush
  attempt.
+ Flusher close on all forms of disconnect, even half-closed.
2014-04-25 07:33:29 -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
Simone Bordet 75cc42a647 Improved dump() output. 2014-02-19 23:18:14 +01:00
Simone Bordet b8df85ec48 Session open and close are now logged at debug level. 2014-02-18 18:51:05 +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
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
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
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 259c624558 425038 - WebSocketClient leaks file handles when exceptions are thrown from open()
+ Close connection on open() exception
2014-01-07 13:19:01 -07: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 a12fd9ea03 Happy New Year - 2014! 2014-01-02 14:50:14 -07: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 48fe92d939 423185 - Update permessage-deflate for finalized spec
+ Adding support for new permessage-deflate parameters
+ Tested against pywebsocket (rev 790)
+ Tested against Chrome Canary 32
2013-12-09 16:20:14 -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
Joakim Erdfelt aba3a41a34 More fixes for Windows build 2013-11-04 16:50:18 -07:00
Greg Wilkins f567bddad9 global clean up imports 2013-11-04 13:48:03 +11:00
Greg Wilkins eb3bb660b5 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/util/DigestAuthentication.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpReceiverTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpSenderTest.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpField.java
	jetty-server/src/test/java/org/eclipse/jetty/server/AbstractHttpTest.java
	jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/HeadersBlockGenerator.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/parser/HeadersBlockParser.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketFrame.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/DeflateCompressionMethodTest.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/PerMessageDeflateExtensionTest.java
2013-11-03 18:22:09 +11:00
Mikhail Mazursky 6b0269a16d [Bug 420930] Use Charset to specify character encoding
Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-11-02 14:44:36 +06:00
Joakim Erdfelt 6f1eb712e9 Cleaning up imports 2013-11-01 10:03:40 -07:00
Joakim Erdfelt dbc4f5357a Merge fixes
+ @Ignore on PathMapTest
2013-10-18 16:12:19 -07:00
Joakim Erdfelt d6d54e048b Merge branch 'master' into jetty-9.1
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ErrorPageErrorHandler.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/io/UpgradeConnection.java
	jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientTest.java
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/AnnotatedMaxMessageSizeTest.java
2013-10-18 16:12:00 -07:00
Joakim Erdfelt 61dc8e1eff 419814 - Annotation properties maxMessageSize and inputBufferSize don't work
+ Ensured that WebSocketPolicy from annotations is propagated properly
  during connection creation.
2013-10-18 10:25:51 -07:00
Joakim Erdfelt 1ccba6e172 Clean up class + param order consistency 2013-09-26 10:30:29 -07:00
Greg Wilkins b52d7f09b0 418068 WebSocketClient has lazy or injected Executor 2013-09-26 18:06:55 +10: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 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
Greg Wilkins 070ce9dd22 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
	jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
2013-09-09 15:41:17 +10:00
Mikhail Mazursky 767faece5c [Bug 415999] Fix some of FindBugs warnings
Mostly not closed streams/DB resources are fixed. But also less
important things.

Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-09-09 00:24:31 -04:00
Joakim Erdfelt 73f06c2a14 412205 - SSL handshake failure leads to unresponsive UpgradeConnection
+ Passing failure() back out of the UpgradeConnection
2013-09-03 13:15:04 -07:00
Greg Wilkins e4235ea070 415744 - Reduce Future usage in websocket 2013-08-23 19:58:46 +10: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 3dbcc04b73 Breaking apart WebSocketFrame into sub-frame types
+ Performance improvements?
+ Less copying of data
2013-08-19 15:26:07 -07:00
Joakim Erdfelt 26faa5f0d7 WebSocket - fixing flush->write->complete spinning loop 2013-08-16 13:08:10 -07:00
Joakim Erdfelt e39b48c90d Fixing up javadoc issues in WebSocket classes 2013-08-14 10:54:07 -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 07041f6439 JSR-356 making HTTP Header map use TreeMap(String.CASE_INSENSITIVE_ORDER) 2013-08-01 10:50:01 -07:00
Joakim Erdfelt e2f02a7a8a JSR-356 fixing ServerContainer.setDefault*() method behavior 2013-07-31 14:25:54 -07:00
Joakim Erdfelt 9ebf890d51 WebSocket - supporting WriteCallback in jetty RemoteEndpoint
+ new RemoteEndpoint.sendBytes(ByteBuffer, WriteCallback)
+ new RemoteEndpoint.sendString(String, WriteCallback)
2013-07-30 15:25:41 -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 4d36627a63 JSR-356 fixing NPE on bufferPool 2013-07-30 14:32:41 -07:00
Joakim Erdfelt d967dafe45 JSR-356 - Refactoring Annotated method parameter detection and use 2013-07-24 12:32:15 -07:00
Joakim Erdfelt 5d45486b8d JSR-356 - Cleaning up sendObject(Object) behavior between Basic & Async 2013-07-15 10:43:39 -07:00
Joakim Erdfelt 931cfa10ce Merge branch 'master' into javawebsocket-jsr
Conflicts:
	jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/TomcatServerQuirksTest.java
2013-06-18 12:41:20 -07:00
Joakim Erdfelt be2cf578ce 400503 - WebSocket - squelch legitimate Exceptions during testing to avoid false positives 2013-06-17 16:34:21 -07:00
Joakim Erdfelt 2da8c9c306 Merge branch 'master' into javawebsocket-jsr
Conflicts:
	jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ReferrerPushStrategyTest.java
	jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/io/UpgradeConnection.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/events/EventDriver.java
	jetty-websocket/websocket-server/src/main/java/org/eclipse/jetty/websocket/server/ServletWebSocketRequest.java
	jetty-websocket/websocket-server/src/main/java/org/eclipse/jetty/websocket/server/WebSocketServerFactory.java
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/WebSocketLoadRFC6455Test.java
2013-06-17 10:54:10 -07:00
Joakim Erdfelt 02de232411 405313 - Websocket client SSL hostname verification is broken, always defaults to raw IP as String
+ After discussion with simone, we have changed from using IP address to
  hostnames in both websocket and spdy.
2013-06-14 11:40:37 -07:00
Joakim Erdfelt 536b8d9504 410469 - UpgradeRequest is sent twice when using SSL, one fails warning about WritePendingException
+ Removing manual connectionOpened() in favor of letting endpoint notify.
2013-06-11 08:56:53 -07:00
Joakim Erdfelt 97854b6c5b JSR-356 adding support for ClientEndpointConfig.Configurator 2013-05-22 15:15:05 -07:00
Joakim Erdfelt ce0435e099 Cleaning up test output 2013-05-09 14:29:59 -07:00
Joakim Erdfelt 9f82849900 Merge from [master] to [javawebsocket-jsr] 2013-05-09 12:10:57 -07:00
Joakim Erdfelt 4a95621c8b Creating basic websocket-client examples 2013-05-08 14:18:23 -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 a4644dc780 JSR-356 working out server endpoint creation 2013-04-23 11:06:01 -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 4dea484853 Merge branch 'master' into javawebsocket-jsr 2013-04-04 12:03:30 -07:00
Simone Bordet 72219d016b 404610 - Reintroduce ability to disallow TLS renegotiation. 2013-04-04 17:11:01 +02:00
Joakim Erdfelt 3a66b3ec3f JSR-356 first working annotated @ClientEndpoint echo test 2013-03-28 10:51:45 -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 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 dbf3662f90 Refinement of factorymethod approach in WebSocketClient (for cometd to use) 2013-02-22 10:49:49 -07:00
Joakim Erdfelt 12814b02ed Making WebSocketClient connection stuff pluggable via factory methods 2013-02-22 10:43:47 -07:00
Joakim Erdfelt 61470cde2e 401427 - WebSocket messages sent from onConnect fail to be read by jetty websocket-client
+ Adding carryover of bytes remaining from UpgradeConnection to
   AbstractWebSocketConnection.parser
2013-02-21 15:32:37 -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 ebaffcfd27 399535 - Websocket-client connect should have configurable connect timeout
+ Made default value for connectTimeout be exposed from SelectorManager.
 + Added javadoc on time unit.
2013-02-12 12:56:46 -07:00
Joakim Erdfelt 5c68d23138 400512 - ClientUpgradeRequet.addExtension() should fail if extension is not installed 2013-02-12 11:37:16 -07:00
Joakim Erdfelt d505f481a4 400255 - Using WebSocket.maxMessageSize results in IllegalArgumentException 2013-02-11 16:24:13 -07:00
Joakim Erdfelt 1480f3d8fc 399669 - Remove WebSocketConnection in favor of websocket.api.Session 2013-01-31 12:09:04 -07:00
Joakim Erdfelt 728201fa3e Making Simone jubilantly happy :-) 2013-01-30 14:02:52 -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 25b0bd73a6 399516 - Websocket UpgradeException should contain HTTP Request/Response information
+ Added UpgradeException.requestURI and UpgradeException.responseStatusCode
2013-01-30 13:13:29 -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 f46ad8bbab Using HttpCookieStore.Empty from jetty-util instead 2013-01-30 09:56:09 -07:00
Joakim Erdfelt 5e8aa4eeb3 399421 - Add websocket.api.Session.disconnect() for harsh low level connection disconnect 2013-01-29 15:56:30 -07:00
Joakim Erdfelt cd38a7999e 399397 - websocket-client needs better upgrade failure checks
+ Adding checks on response status code and Connection header (along
  with unit tests)
2013-01-29 14:44:56 -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