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
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