Commit Graph

524 Commits

Author SHA1 Message Date
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
Jesse McConnell e3fd0056cf [maven-release-plugin] prepare for next development iteration 2015-03-10 08:00:22 -05:00
Jesse McConnell 9d648f4000 [maven-release-plugin] prepare release jetty-9.2.10.v20150310 2015-03-10 08:00:14 -05:00
Simone Bordet b7715fb3eb Merged branch 'jetty-9.2.x' into 'master'. 2015-03-07 23:26:59 +01:00
Simone Bordet a13a55e242 Introduced LeakDetector.id() to be consistent in logging the resource ID. 2015-03-07 22:32:59 +01:00
Joakim Erdfelt 130afb9535 Merge branch 'jetty-9.2.x'
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/LeakTrackingConnectionPool.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientLoadTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientUploadDuringServerShutdown.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
	jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SynDataReplyDataLoadTest.java
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/TooFastClientTest.java
2015-03-06 15:57:52 -07:00
Joakim Erdfelt 74ee154bb1 Cleaning up LeakTrackingByteBufferPool / LeakDetector
+ Making use of LeakTrackingByteBufferPool more consistent
+ Using MappedByteBufferPool.Tagged where appropriate in test cases
+ Adding leak count tracking to LeakDetector
+ Adding leak count tracking to LeakTrackingByteBufferPool
+ Renaming websocket LeakTrackingBufferPool to
  LeakTrackingBufferPoolRule to reflect junit @Rule usage
+ Making websocket LeakTrackingBufferPoolRule always use
  MappedByteBufferPool.Tagged
+ Fixed various grammar concerns
2015-03-06 14:27:58 -07:00
Jesse McConnell 1659d83978 [maven-release-plugin] prepare for next development iteration 2015-02-24 10:38:33 -06:00
Jesse McConnell dc0c3f4c52 [maven-release-plugin] prepare release jetty-9.2.9.v20150224 2015-02-24 10:38:28 -06:00
Jesse McConnell ce5db2ca55 [maven-release-plugin] prepare for next development iteration 2015-02-17 16:02:22 -06:00
Jesse McConnell 26b7597928 [maven-release-plugin] prepare release jetty-9.2.8.v20150217 2015-02-17 16:02:16 -06:00
Joakim Erdfelt c52f100ec3 Making WebSocket use new Upgrade mechanism
+ Also fixes websocket server prefill bytes issue
+ Adjusting client side to also use/benefit from new Upgrade mechanism
2015-02-13 15:16:48 -07:00
Greg Wilkins 0f7ee8d607 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpVersion.java
	jetty-io/src/main/java/org/eclipse/jetty/io/EndPoint.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
2015-02-13 11:45:56 +11:00
Greg Wilkins 2b2a70a93a 459845 Support upgrade
Added the concept of UpgradeFrom and UpgradeTo connections that support
transferring a buffer with content before opening new connection.
Aded EndPoint.update method as utility
2015-02-13 11:41:18 +11:00
Joakim Erdfelt 30dda86b20 Merge branch 'jetty-9.2.x' 2015-02-12 09:59:52 -07:00
Joakim Erdfelt 23e9246115 Adding TooFastClientTest for websocket server
+ test performs a client upgrade + 2 websocket frames all at once.
  not waiting for the upgrade response before sending those frames.
+ currently set to @Ignore until we can address how to copy this extra
  buffer information from the Http side to the WebSocket side.
2015-02-12 09:30:31 -07:00
Jesse McConnell aa22842c20 [maven-release-plugin] prepare for next development iteration 2015-01-16 17:48:29 -06:00
Jesse McConnell 8c58a9abc4 [maven-release-plugin] prepare release jetty-9.2.7.v20150116 2015-01-16 17:48:23 -06:00
Jesse McConnell 81bb8411d1 [maven-release-plugin] prepare for next development iteration 2015-01-16 12:06:36 -06:00
Jesse McConnell 7865f88b81 [maven-release-plugin] prepare release jetty-9.2.7.v20150116 2015-01-16 12:06:30 -06:00
Jesse McConnell db991355a2 [maven-release-plugin] prepare for next development iteration 2015-01-16 10:41:45 -06:00
Jesse McConnell 6930abb8d3 [maven-release-plugin] prepare release jetty-9.2.7.v20140116 2015-01-16 10:41:39 -06:00
Jesse McConnell 9225b124a4 [maven-release-plugin] prepare for next development iteration 2015-01-16 08:21:35 -06:00
Jesse McConnell ebd563e64d [maven-release-plugin] prepare release 9.2.7.v20140116 2015-01-16 08:21:29 -06:00
Simone Bordet 8a27385bc3 Merged branch 'jetty-9.2.x' into 'master'. 2015-01-09 12:51:13 +01: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
Greg Wilkins e1cc5fb487 Merge remote-tracking branch 'origin/master' into jetty-9.3-ewyk
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/QueuedHttpInput.java
	jetty-util/src/main/java/org/eclipse/jetty/util/thread/NonBlockingThread.java
2015-01-08 15:21:01 +01:00
Joakim Erdfelt a3201a3c81 Happy New Year 2015 2015-01-07 17:06:59 -07:00
Joakim Erdfelt 6a0668b7a1 Happy New Year 2015 2015-01-07 17:03:30 -07:00
Greg Wilkins 3af9b145a3 Deprecated the AbstractConnection dispatchIO mechanism 2015-01-01 16:18:13 +01:00
Joakim Erdfelt a79b154d1b 456209 - Bad ContextClassLoader in WebSocket onMessage
+ Sets the class loader on an incoming frame to the
  class loader that loaded the web socket session

Also-by: Michael MacFadden <michael@macfadden.org>
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2014-12-29 12:10:55 -07:00
Jan Bartel bc22ba72dc [maven-release-plugin] prepare for next development iteration 2014-12-05 16:45:12 +01:00
Jan Bartel 1cc075cf98 [maven-release-plugin] prepare release jetty-9.2.6.v20141205 2014-12-05 16:45:01 +01:00
Jesse McConnell 127b48c932 [maven-release-plugin] prepare for next development iteration 2014-12-03 09:00:57 -06:00
Jesse McConnell 028f4b9610 [maven-release-plugin] prepare release jetty-9.2.6.v20141203 2014-12-03 09:00:46 -06:00
Jesse McConnell 1263d1f3c8 [maven-release-plugin] prepare for next development iteration 2014-12-03 08:26:47 -06:00
Jesse McConnell 5c7f706496 [maven-release-plugin] prepare release jetty-9.2.6.v20141203 2014-12-03 08:26:35 -06:00
Jesse McConnell 09846e324d [maven-release-plugin] prepare for next development iteration 2014-11-12 17:13:19 -06:00
Jesse McConnell 97d2bd95a6 [maven-release-plugin] prepare release jetty-9.2.5.v20141112 2014-11-12 17:13:14 -06:00
Jesse McConnell 5d0595cabd [maven-release-plugin] prepare for next development iteration 2014-11-03 13:46:58 -06:00
Jesse McConnell 772ff0bfd4 [maven-release-plugin] prepare release jetty-9.2.4.v20141103 2014-11-03 13:46:52 -06:00
Jesse McConnell 1c4a08b35b [maven-release-plugin] prepare for next development iteration 2014-10-31 09:58:16 -05:00
Jesse McConnell a4ff7bf841 [maven-release-plugin] prepare release jetty-9.2.4.v20141031 2014-10-31 09:58:10 -05:00
Jesse McConnell e1b73a64eb [maven-release-plugin] prepare for next development iteration 2014-10-30 11:28:41 -05:00
Jesse McConnell 5770cc1179 [maven-release-plugin] prepare release jetty-9.2.4.v20141030 2014-10-30 11:28:35 -05:00
Jesse McConnell 58eb6740ec [maven-release-plugin] prepare for next development iteration 2014-10-28 14:20:30 -05:00
Jesse McConnell 19a44846cf [maven-release-plugin] prepare release jetty-9.2.4.v20141028 2014-10-28 14:20:24 -05:00
Simone Bordet 8d2efaf7eb 445167 - Allow configuration of dispatch after select.
Introduced parameter "dispatchIO" in the relevant factories so that
they can be configured by users and connections will be created
taking into account this parameter.

For less configurable connection factories, this parameter is
currently hardcoded to either true or false depending on the case.
For example, ALPN and NPN connections have it to false, since they
don't do any blocking operation in onFillable().
2014-09-26 10:13:16 +02:00
Simone Bordet a8b461fe91 Cosmetics: removed unused imports, cleaned up source code, improved javadocs. 2014-09-26 10:13:16 +02:00
Joakim Erdfelt 0bf68a07ae 442495 - Bad Context ClassLoader in JSR356 WebSocket onOpen
+ Fixing onOpen context classloader to be that of the context
  that started the WebSocketUpgradeFilter (which will be the
  same as the WebAppContext in most cases)
2014-09-23 11:33:44 +02:00
Joakim Erdfelt 901707b894 444617 - Expose local and remote socket address to applications
+ Exposing 2 new automatically added userProperties
  * "javax.websocket.endpoint.localAddress" 
  * "javax.websocket.endpoint.remoteAddress"
  these are both java.net.InetSocketAddress objects
2014-09-23 11:33:44 +02:00
Joakim Erdfelt 0dca1b0794 442495 - Bad Context ClassLoader in JSR356 WebSocket onOpen
+ Fixing onOpen context classloader to be that of the context
  that started the WebSocketUpgradeFilter (which will be the
  same as the WebAppContext in most cases)
2014-09-22 14:37:00 -07:00
Joakim Erdfelt d6082b2d65 444617 - Expose local and remote socket address to applications
+ Exposing 2 new automatically added userProperties
  * "javax.websocket.endpoint.localAddress" 
  * "javax.websocket.endpoint.remoteAddress"
  these are both java.net.InetSocketAddress objects
2014-09-22 12:43:37 -07:00
Joakim Erdfelt 9249ebb6ef Using 9.2.4-SNAPSHOT for branch 2014-09-11 06:10:44 -07:00
Jesse McConnell 9bfeb2221f [maven-release-plugin] prepare release jetty-9.2.3.v20140905 2014-09-05 09:19:23 -05:00
Greg Wilkins edcb56ae6b Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
2014-08-29 12:41:52 +10:00
Greg Wilkins eee2ba206e 435322 Added a idleTimeout to the SharedBlockerCallback 2014-08-29 11:55:06 +10:00
Joakim Erdfelt cb42ef2167 [maven-release-plugin] prepare for next development iteration 2014-07-23 11:18:01 -07:00
Joakim Erdfelt dc62cb5ac7 [maven-release-plugin] prepare release jetty-9.2.2.v20140723 2014-07-23 11:17:55 -07:00
Greg Wilkins 853e020210 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-07-16 15:31:48 +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
Greg Wilkins 5e281dd449 Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-util/src/main/java/org/eclipse/jetty/util/IteratingCallback.java
2014-07-10 14:43:39 +10:00
Greg Wilkins 55ca09a00e 438190 findbug improvements 2014-07-10 14:41:32 +10:00
Simone Bordet 2608af8f0d Merged branch 'origin/master' into 'jetty-http2'. 2014-06-26 11:54:50 +02:00
Simone Bordet f2f19ee3ba Improved changes introduced by a746d78. 2014-06-26 10:08:13 +02:00
Greg Wilkins a746d78951 438079 435322 Fixed Iterating Callback fail handling and removed per send instance 2014-06-25 19:20:03 +02:00
Simone Bordet 334db9fe72 Updated version to 9.3.0-SNAPSHOT. 2014-06-16 21:33:03 +02:00
Jesse McConnell c3ee0711ca [maven-release-plugin] prepare for next development iteration 2014-06-09 13:37:54 -05:00
Jesse McConnell 06b494eeac [maven-release-plugin] prepare release jetty-9.2.1.v20140609 2014-06-09 13:37:49 -05:00
Jesse McConnell 10b6c574ae Merge branch 'master' into release-9 2014-06-09 13:07:22 -05:00
Greg Wilkins bb4d42f139 Merge remote-tracking branch 'origin' into jetty-http2 2014-06-04 15:09:19 +02:00
Greg Wilkins 8f4aeeeb8d updated version to 10.0.0-SNAPSHOT 2014-06-04 15:08:54 +02:00
Joakim Erdfelt 7412951373 Removing experimental testcase that is no longer relevant 2014-05-29 11:46:36 -07:00
Jesse McConnell 2e859e4ae2 [maven-release-plugin] prepare for next development iteration 2014-05-26 12:04:15 -05:00
Jesse McConnell 71ad2114c5 [maven-release-plugin] prepare release jetty-9.2.0.v20140526 2014-05-26 12:04:08 -05:00
Jesse McConnell d59dbe936b [maven-release-plugin] prepare for next development iteration 2014-05-23 09:59:19 -05:00
Jesse McConnell edc7646a4c [maven-release-plugin] prepare release jetty-9.2.0.v20140523 2014-05-23 09:59:13 -05: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 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 5b009dbe15 Adding FrameDebugExtension ability 2014-05-16 08:32:30 -07:00
Joakim Erdfelt e0e00b0aed 430418 - Jetty 9.1.3 and Chrome 33 permessage-deflate do not work together
+ Updating Compress/PerMessageDeflate extensions for latest spec
  document, http://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-18
  Intra-frame tail 0000FFFF is now being preserved for
  permessage-deflate
2014-05-14 13:02:12 -07:00
Simone Bordet a2b6c69525 Fixed field initialization problem. 2014-05-14 21:25:04 +02:00
Joakim Erdfelt cd003dcea0 Adjusting test timeouts for slow systems 2014-05-13 09:23:54 -07:00
Joakim Erdfelt 832332aaad 434685 - WebSocket read/parse does not discard remaining network buffer after unrecoverable error case
+ Make all future onFillable events after a fundamental read/parse
  exception discard the network buffer.
2014-05-12 16:36:47 -07:00
Joakim Erdfelt f9fad8f49f 434395 - WebSocket / memory leak, WebSocketSession not cleaned up in abnormal closure cases
+ Cleanup for read, bug fix for this occurred in prior commits
  surrounding CLOSE handling
2014-05-08 14:08:20 -07:00
Joakim Erdfelt 8ff1cec570 433262 - WebSocket / Advanced close use cases
+ AWSC.Flusher.onFailure() now uses IOState properly.
+ IOState now tracks the final CLOSED CloseInfo atomically
+ Renamed IOState.onReadEOF() to .onReadFailure(Throwable)
+ Added IOState.onWriteFailure(Throwable)
2014-05-07 13:12:09 -07:00
Joakim Erdfelt fa5a5f3507 Adding javadoc 2014-05-07 13:12:09 -07:00
Joakim Erdfelt 8e957b5a23 Reducing the noise on websocket testing 2014-05-05 12:09:58 -07:00
Greg Wilkins 2e261b75d6 433692 improved buffer resizing 2014-04-29 20:36:13 +02:00
Joakim Erdfelt 703deea1df Tidying up ws-test-client read operations (in hope that it will address test failures on jenkins) 2014-04-25 12:48:04 -07: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 2bc9accd98 433262 - WebSocket / Advanced close use cases
+ Fixing bad assumptions in unit tests where the client would send a few
  frames to test the protocol behavior followed by the close frame.
  But the test expected the server to initiate the close, but this setup
  of the tests would mean that the client initiated the close.
2014-04-23 12:56:00 -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 db2c6c20b9 Test failure fix 2014-04-15 10:16:52 -07:00
Joakim Erdfelt cad7d3f5ed Attempt to work out websocket close notification issue that simone raised 2014-04-15 10:14:03 -07:00
Greg Wilkins c5e1e249e7 set version for 9.2.x 2014-03-31 11:35:06 +11:00
Greg Wilkins 710ea48244 430654 430242 - Closeable SharedBlockingCallback 2014-03-22 09:36:09 +11:00
Greg Wilkins 5d83a43cce 430242 - added SharedBlockingCallback to support threadsafe blocking 2014-03-22 08:42:03 +11:00
Greg Wilkins 138dfba560 Revert "430242 - added SharedBlockingCallback to support threadsafe blocking"
This reverts commit 9c30e7a303.
2014-03-21 17:55:48 +11:00
Greg Wilkins 9c30e7a303 430242 - added SharedBlockingCallback to support threadsafe blocking 2014-03-13 21:12:55 +11:00
Greg Wilkins 4de73d508b 430242 - added SharedBlockingCallback to support threadsafe blocking 2014-03-13 14:46:00 +11:00
Jesse McConnell 0ec0d452e9 [maven-release-plugin] prepare for next development iteration 2014-03-07 09:10:08 -06:00
Jesse McConnell 1e555567a9 [maven-release-plugin] prepare release jetty-9.1.3.v20140225 2014-03-07 09:10:08 -06:00
Joakim Erdfelt f282ffe897 429779 - masked zero length websocket frame gives NullPointerException during streaming read
+ Corrected payload buffer copying to ignore null and empty payloads
2014-03-06 11:29:42 -07:00
Joakim Erdfelt b3bfe2783f Fixing WebSocketSession.suspend() 2014-02-24 08:08:11 -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 7db67ff58f Removed @SuppressWarnings("ForLoopReplaceableByForEach") because
it is a non standard warning not treated by the compiler but only
by IDEs. Relevant lines have comments in any case.
2014-02-21 14:50:45 +01:00
Simone Bordet 7d6c1548b1 428232 - Rework batch mode / buffering in websocket.
Fixed missing notification of the FLUSH_FRAME.
2014-02-20 22:17:16 +01:00
Simone Bordet c3c4d059a6 Removed unnecessary synchronization. 2014-02-20 15:44:22 +01:00
Greg Wilkins 15952aeee4 428232 - Rework batch mode / buffering in websocket. 2014-02-21 00:54:32 +11:00
Simone Bordet 75cc42a647 Improved dump() output. 2014-02-19 23:18:14 +01:00
Joakim Erdfelt 6b1f17b503 Demonstration of BFINAL 2014-02-19 11:32:18 -07: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 3240e7383b 428232 - Rework batch mode / buffering in websocket.
Improved logging by wrapping LOG.debug() calls in a
if (LOG.isDebugEnabled()) statement to avoid boxing of primitive
values.
2014-02-18 18:31:49 +01:00
Simone Bordet 0786da6cd0 428232 - Rework batch mode / buffering in websocket.
Avoid to create a new ByteBuffer just to create the mask integer,
saves allocation cost.
2014-02-18 18:31:49 +01:00
Simone Bordet 61b4b0f029 428232 - Rework batch mode / buffering in websocket.
Better default size for SimpleTextMessage Utf8StringBuilder,
to avoid multiple expansions and data copy of the underlying array.
2014-02-18 18:31:48 +01:00
Simone Bordet 996cc8bd92 428232 - Rework batch mode / buffering in websocket.
Optimized FrameFlusher to not create iterators when iterating over a
list, saving allocation costs.
2014-02-18 18:31:48 +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 d2f1954fa0 427700 - Outgoing extensions that create multiple frames should flush
them in order and atomically.

Optimized CompressExtension to reduce data copying at minimum on the
write path.
2014-02-15 17:53:37 +01:00
Simone Bordet a8e4caca90 427700 - Outgoing extensions that create multiple frames should flush
them in order and atomically.

Removed unused code.
2014-02-15 17:53:23 +01:00
Simone Bordet a2a90c5c87 427700 - Outgoing extensions that create multiple frames should flush
them in order and atomically.

Modified FragmentExtension to use a Queue and IteratingCallback to
make sure that frames are iteratively fragmented.
The creation of the next fragment only happens when there is a callback
from the next outgoing layer.
2014-02-14 22:21:59 +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 81b8990dec 427700 - Outgoing extensions that create multiple frames should flush
them in order and atomically.

Modified DeflateFrameExtension to use a Queue and IteratingCallback to
make sure that frames are iteratively compressed in chunks.
The compression of the next chunk only happen when there is a callback
from the next outgoing layer.
2014-02-14 22:21:59 +01:00
Simone Bordet 53b1ee9e47 427700 - Outgoing extensions that create multiple frames should flush
them in order and atomically.

Modified ExtensionStack to use a Queue and IteratingCallback to make
sure that messages are processed sequentially.
2014-02-14 22:21:59 +01:00
Jesse McConnell eb0aea46ce set versions.txt file to new version and fix mistaken developmentVersion 2014-02-10 13:48:29 -06:00
Jesse McConnell f3d38dfb15 [maven-release-plugin] prepare for next development iteration 2014-02-10 11:17:14 -06:00
Jesse McConnell 8f6cbc9111 [maven-release-plugin] prepare release jetty-9.1.2.v20140210 2014-02-10 11:17:07 -06:00
Simone Bordet 66a19bd646 Avoided to copy the frame payload if we happen to have it all
available.
2014-02-10 12:56:54 +01:00
Simone Bordet 18d2180cdc 427588 - WebSocket Parser leaks ByteBuffers.
Fixed by having the Parser release the payload ByteBuffer.
Also reworked WebSocketFrame.reset() method, and made sure
that outgoing frames also don't leak ByteBuffers.
2014-02-10 12:21:50 +01:00
Simone Bordet 21d938f12d 427587 - MessageInputStream must copy the payload.
Forgot to flip the buffer.
2014-02-06 22:39:02 +01:00
Simone Bordet cf37533d87 427587 - MessageInputStream must copy the payload. 2014-02-06 21:18:21 +01:00
Jesse McConnell 91429ea123 Merge branch 'release-9' 2014-01-10 09:11:25 -06:00
Jesse McConnell b82ec6e668 [maven-release-plugin] prepare for next development iteration 2014-01-08 16:47:09 -06:00
Jesse McConnell b99623a21d [maven-release-plugin] prepare release jetty-9.1.1.v20140108 2014-01-08 16:47:01 -06: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 f0eeb27921 424847 - Deadlock in deflate-frame (webkit binary)
+ Moving notification flows to outside of the synchronization blocks
2014-01-07 11:47:19 -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
Simone Bordet 8d621a9331 424043 - IteratingCallback Idle race.
A few renamings and fixes to avoid IllegalStateExceptions.
2013-12-15 23:51:04 +01:00
Simone Bordet 41fc2b8f87 424043 - IteratingCallback Idle race.
Renamed Next enum to Action, and renamed some constant of the State
enum to avoid confusion with the Action enum.

Simplified succeeded() and failed(Throwable) code,
covering also cases not covered before.

Fixed case SCHEDULED in succeeded() that was returning in case the
compareAndSet failed.

Fixed race in perform(), where 2 threads may execute concurrently
after having returned from process().

Vastly improved javadocs and comments.
2013-12-15 00:47:55 +01:00
Greg Wilkins 7141483356 424043 - IteratingCallback Idle race 2013-12-14 09:14:12 +11:00
Joakim Erdfelt 46ef022cf4 421314 - Websocket / Connect attempt with Chrome 32+ fails with "Some extension already uses the compress bit"
+ Reworked extension negotiation to be more consistent with the changes
  to the spec that Chrome 32 are introducing.  Namely that first
  extension to claim RSV bit wins, all other conflicting extensions are
  ignored.
2013-12-13 12:30:26 -07:00
Joakim Erdfelt 5c296c99d8 Cleaning up tests 2013-12-13 12:30:25 -07:00
Greg Wilkins 0104374adb 423048 - Receiving a PING while sending a message kills the connection
Optimised to remove msgLock and just have a concurrent state machine on msgType
2013-12-13 11:51:05 +11: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 7af074bafb 423048 - Receiving a PING while sending a message kills the connection
+ Removed msgLock on control frames.
+ Moved sendPing() and sendPong() to async frame handling
+ Squelched a mess of stacktraces in the testing output
2013-12-12 16:08:53 -07:00
Joakim Erdfelt 5941e9db83 Fixing various warnings / imports 2013-12-12 14:46:40 -07:00
Joakim Erdfelt ecf3b8a68f 421189 - WebSocket / AbstractExtension's WebSocketPolicy is not Session-specific
+ Ensuring that the EventDriver managed policy is used by the
  ExtensionStack
2013-12-12 13:51:01 -07:00
Joakim Erdfelt 120e0e59ca Cleanup (Imports / StandardCharset / Dead APIs) 2013-12-11 17:27:58 -07:00
Joakim Erdfelt 5b77679ecf Attempted fix for intermittent test failures around MessageInputStream 2013-12-10 13:01:12 -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 db777310b5 WebSocket / RFC-6455: Section 5.1 frame masking validation 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 bae646de72 gave test more time 2013-11-28 13:55:42 +11:00
Greg Wilkins 23091e2272 421697 - IteratingCallback improvements
made gather size configurable
2013-11-21 16:00:50 +11: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 1eb2997efd 421697 - IteratingCallback improvements
avoid wrapping writeCallback
Idle state added to IteratingCallback for SPDY
2013-11-21 14:52:39 +11:00
Greg Wilkins 41f60bd152 421697 - IteratingCallback improvements
Cleanup WebSocket impl first

+ Logic for size on Generator was backwards.
+ Logic in Generator for RSV flags was incorrect.
+ Generalizing flagsInUse for Parser too
2013-11-21 12:40:32 +11:00
Joakim Erdfelt 9172d6115b [maven-release-plugin] prepare for next development iteration 2013-11-15 16:58:44 -07:00
Joakim Erdfelt 6feeab6ec3 [maven-release-plugin] prepare release jetty-9.1.0.v20131115 2013-11-15 16:58:36 -07:00
Joakim Erdfelt 7bbc0ff4df [maven-release-plugin] rollback the release of jetty-9.1.0.v20131115 2013-11-15 16:33:52 -07:00
Joakim Erdfelt 1126e68971 [maven-release-plugin] prepare for next development iteration 2013-11-15 16:03:28 -07:00
Joakim Erdfelt d6418c73d4 [maven-release-plugin] prepare release jetty-9.1.0.v20131115 2013-11-15 16:03:20 -07:00
Joakim Erdfelt 6c372b9440 Reverting <version> to 9.1.0-SNAPSHOT 2013-11-15 15:36:26 -07:00
Jesse McConnell b5345caed1 [maven-release-plugin] prepare for next development iteration 2013-11-14 15:27:52 -06:00
Jesse McConnell 1582aa196d [maven-release-plugin] prepare release jetty-9.1.0.v20131114 2013-11-14 15:27:37 -06:00
Jesse McConnell 63f20d4518 [maven-release-plugin] prepare for next development iteration 2013-11-07 10:42:54 -06:00
Jesse McConnell dc2fd1b9ce [maven-release-plugin] prepare release jetty-9.1.0.RC2 2013-11-07 10:42:41 -06:00
Joakim Erdfelt d426138d0b Fixing logic error in max length for ByteAccumulator 2013-11-06 17:30:49 -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 50a960ef70 410656 - WebSocketSession.suspend() hardcoded to return null 2013-11-01 10:01:42 -07:00
Joakim Erdfelt 513d2ca758 Fixing @WebSocket(maxBinaryMessageSize=#} handling 2013-10-30 09:29:57 -07:00
Joakim Erdfelt 275008d207 attempting to fix occasional test failure 2013-10-23 12:19:22 -07:00
Greg Wilkins 33b10efcaa Merge remote-tracking branch 'origin/release-9' 2013-10-14 11:12:31 +11:00
Joakim Erdfelt 180d9a55df 418792 - Session getProtocolVersion always returns null
+ Backporting just the getProtocolVersion from jetty 9.1
2013-10-07 16:45:21 -07:00
Jesse McConnell 856a24b65a [maven-release-plugin] prepare for next development iteration 2013-09-30 14:46:09 -05:00
Jesse McConnell f466f03c6a [maven-release-plugin] prepare release jetty-9.0.6.v20130930 2013-09-30 14:46:00 -05:00
Jesse McConnell 0b3f431d27 set version back to 9.0.6-SNAPSHOT 2013-09-30 12:33:06 -05:00
Jesse McConnell 0525498ad3 [maven-release-plugin] prepare for next development iteration 2013-09-19 15:06:31 -05:00
Jesse McConnell c05a725db6 [maven-release-plugin] prepare release jetty-9.0.6.v20130919 2013-09-19 15:06:17 -05:00
Joakim Erdfelt 5445c42ffe 417133 - WebSocket / deflate-frame should accumulate decompress byte buffers properly
+ Adding ByteAccumulator to make job easier and more sane (with a
  minimum of byte buffer copying.
2013-09-12 13:59:15 -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 be2385276f WebSocket / Fixing support for permessage-deflate extension 2013-08-28 11:49:54 -07:00
Joakim Erdfelt 20fbd95bf1 395444 - Websockets not working with Chrome (deflate problem)
+ Hopefully final fix to deflate-frame
+ Splitting out extension named 'deflate-frame' (last spec'd standard) from
  'x-webkit-deflate-frame' (standard in use by chrome + safari)
2013-08-27 14:20:07 -07:00
Joakim Erdfelt 098b1e174b WebSocket - making flush loop and callback notify more consistent 2013-08-23 10:57:05 -07:00
Greg Wilkins bddf536caa fixed header 2013-08-23 20:07:05 +10:00
Greg Wilkins e4235ea070 415744 - Reduce Future usage in websocket 2013-08-23 19:58:46 +10:00
Joakim Erdfelt 4d9cb44536 WebSocket - Calling setPayload() outside of ContinuationFrame 2013-08-20 16:51:11 -07:00
Joakim Erdfelt e56fddfc4a WebSocket - Calling setPayload() outside of TextFrame and BinaryFrame 2013-08-20 16:45:26 -07:00
Joakim Erdfelt a089780701 WebSocket - Calling setPayload() outside of PingFrame and PongFrame 2013-08-20 16:39:26 -07:00
Joakim Erdfelt 975d9870d2 WebSocket - more code cleanup 2013-08-20 16:28:51 -07:00
Joakim Erdfelt c6a4af4f78 WebSocket - cleaning up frame initialization and use 2013-08-20 15:45:07 -07:00