Commit Graph

8688 Commits

Author SHA1 Message Date
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 395e8f1c8b Adding examples of managing the websocket extensions 2014-02-19 11:32:18 -07:00
Joakim Erdfelt 6b1f17b503 Demonstration of BFINAL 2014-02-19 11:32:18 -07:00
Joakim Erdfelt c1f547e2b3 Adding javadoc 2014-02-19 11:32:18 -07:00
Jan Bartel fc7e353394 373952 Ensure MongoSessionManager un/binds session attributes on refresh only if necessary 2014-02-19 14:59:31 +11:00
Jan Bartel 8384b0febe 428418 JettyStopMojo prints some messages on System.err 2014-02-19 12:06:10 +11: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 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 5d8b00a098 Avoid boxing of the number of bytes flushed. 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
Greg Wilkins f092561a8a 428383 limit white space between requests 2014-02-18 10:02:00 +11:00
Greg Wilkins 352a1303e0 424899 Initialize GzipHandler mimeTypes 2014-02-17 13:04:27 +11:00
Greg Wilkins abb70b3bca 427738 fixed XSS in async-rest demo 2014-02-17 13:03:33 +11:00
Greg Wilkins c12748a9e3 428238 Test HEAD request with async IO 2014-02-17 12:40:45 +11:00
Greg Wilkins 1f02dfc24f 428238 Test HEAD request with async IO 2014-02-17 12:32:28 +11:00
Greg Wilkins d83cb54db2 removed servlet-api-3.1.b08 dependency 2014-02-17 12:24:14 +11: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
Jan Bartel 075e6a7363 428157 Methods of anonymous inner classes can't be called via xml 2014-02-14 16:03:29 +11:00
Jan Bartel b88724f23c 426490 HttpServletResponse.setBufferSize(0) results in tight loop (100% cpu hog) 2014-02-14 11:57:53 +11:00
Joakim Erdfelt cff7c9dbcb Cleaning up websocket connection open/close in favor of session open/close 2014-02-13 16:22:55 -07:00
Greg Wilkins 18e19260ff Apply changes resulting from the quickstart project 2014-02-13 12:31:14 +11:00
Joakim Erdfelt 1eb87fdddc Fixing jndi lock property key to include 'jetty' portion 2014-02-12 17:02:48 -07:00
Joakim Erdfelt e93097c09c Introducing JNDI deep binding optional behavior.
+ Adding "org.eclipse.jetty.jndi.deepBinding" to NamingContext as
  either an env setting or a System property to control deep binding
  behavior that is presently being used by OpenEJB
2014-02-12 17:02:47 -07:00
Joakim Erdfelt 30c5998d3c minor cleanup 2014-02-12 17:02:47 -07:00
Jesse McConnell 70fb1a98b7 Merge branch 'release-9' 2014-02-12 10:06:59 -06: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
Jesse McConnell 86f46c9ee4 Updating VERSION.txt top section 2014-02-10 10:48:14 -06:00
Jesse McConnell 206b2ebf35 Merge branch 'master' into release-9 2014-02-10 10:46:02 -06:00
Simone Bordet 51e8b83954 427699 - WebSocket upgrade response sends Sec-WebSocket-Protocol twice.
The problem was that UpgradeResponse was setting the subProtocol as a
header, and HandshakeRFC6455 was extracting it and *adding* it again.

Fixed by removing the code in HandshakeRFC6455.
2014-02-10 14:43:22 +01:00
Simone Bordet b37c68db3b 427690 - Remove Mux Extension and related support. 2014-02-10 13:10:58 +01: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 95c728c12f Do not track null ByteBuffers that are being released. 2014-02-10 09:46:16 +01:00
Jan Bartel ec8dabfa5b Update realm.properties for test-spec-webapp for use with jetty-maven-plugin 2014-02-07 12:16:05 +11: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