Commit Graph

300 Commits

Author SHA1 Message Date
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
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