Jesse McConnell
f8734f23ce
[maven-release-plugin] prepare for next development iteration
2015-08-25 14:10:01 -05:00
Jesse McConnell
e9edf4c24b
[maven-release-plugin] prepare release jetty-9.3.3.v20150825
2015-08-25 14:09:54 -05:00
Simone Bordet
545fa0f72b
475605 - Add support for multi-homed destinations.
...
If DNS lookup returns multiple IP addresses, HttpClient tries to
connect to the first; failing that, to the second, and so on.
2015-08-24 12:31:08 +02:00
Simone Bordet
fd335d6c3e
Guarded against NPE.
2015-08-20 16:31:09 +02:00
Simone Bordet
69b90ef59b
474888 - HttpClient JMX support.
2015-08-13 15:16:14 +02:00
Simone Bordet
aa684a5dcc
470311 - Introduce a proxy-protocol module.
...
Support for the PROXY protocol is now enabled via 2 new modules:
proxy-protocol and proxy-protocol-ssl, respectively for the HTTP
connector and the SSL connector.
2015-08-11 12:17:24 +02:00
Joakim Erdfelt
3c99c9c9b9
Merge branch 'release-9.3.2'
2015-08-03 10:27:52 -07:00
Simone Bordet
2a4095590d
473955 - NPE in PushCacheFilter.
...
Fixed by normalizing to "/" the missing path of a referrer URI.
2015-07-30 19:48:38 +02:00
Joakim Erdfelt
4b3879845d
[maven-release-plugin] prepare for next development iteration
2015-07-30 07:02:10 -07:00
Joakim Erdfelt
6b7e9ac4b0
[maven-release-plugin] prepare release jetty-9.3.2.v20150730
2015-07-30 07:02:02 -07:00
Simone Bordet
25ed10d205
473118 - HTTP/2 server does not retrieve Host header from client.
2015-07-28 12:26:53 +02:00
Greg Wilkins
607239028c
470727 - Thread Starvation of selector wakeups.
...
Changed the CallBack.NonBlocking to a default Callback.isNonBlocking, so that wrapping callbacks can determine if they are NonBlocking or not.
2015-07-22 17:31:54 +10:00
Jesse McConnell
9b790c38ce
[maven-release-plugin] prepare for next development iteration
2015-07-14 11:42:34 -05:00
Jesse McConnell
b35d32f2b8
[maven-release-plugin] prepare release jetty-9.3.1.v20150714
2015-07-14 11:42:28 -05:00
Simone Bordet
9549001d8c
472422 - Custom status codes result in a NumberFormatException while using http2.
...
Fixed constructor that was passing the name as the value.
Also other cleanups.
2015-07-11 16:30:05 +02:00
Simone Bordet
c367ea8a85
441020 - Support HEADERS followed by CONTINUATION+.
2015-07-08 18:55:47 +02:00
Greg Wilkins
30f8eb234e
Allow HTTP2C to be configured separately from HTTP2
2015-06-17 15:01:17 +10:00
Joakim Erdfelt
cf6c4a914e
Updating version to 9.3.1-SNAPSHOT
2015-06-15 10:25:49 -07:00
Joakim Erdfelt
1a9da9f9e4
Updating versions to 9.3.0.v20150612
2015-06-12 09:34:24 -07:00
Joakim Erdfelt
c6ac82f50b
Merge branch 'master' into release-9.3
2015-06-12 09:30:46 -07:00
Joakim Erdfelt
7c737a587b
Removing [version] sections in modules
2015-06-12 09:14:34 -07:00
Joakim Erdfelt
496b4dfc83
[maven-release-plugin] prepare for next development iteration
2015-06-11 15:08:36 -07:00
Joakim Erdfelt
f53c5d8fac
[maven-release-plugin] prepare release jetty-9.3.0.v20150611
2015-06-11 15:08:29 -07:00
Joakim Erdfelt
916efd6aa7
469860 - Add module metadata versioning to support backwards compat
...
+ Adding [version] section to all existing jetty 9.3 distro modules
+ Updating testcases in jetty-start with new [version] sections too
+ Adding extra testcases for versioned modules
2015-06-10 10:59:18 -07:00
Simone Bordet
a6ff4da9b1
Made the cipher comparator a constant field.
2015-05-26 18:03:55 +02:00
Simone Bordet
1a6db17799
Added test for push with query parameters.
2015-05-26 18:03:55 +02:00
Simone Bordet
3288eb392f
468313 - PushCacheFilter wrongly associates primary resources to themselves.
...
Fixed by not associating secondary resources that are the same as the
primary resource.
2015-05-26 18:03:55 +02:00
Greg Wilkins
bd27e7d2d4
467730 - HTTP2 requires enabled ciphers to be sorted by blacklist
2015-05-21 01:41:12 +10:00
Greg Wilkins
356600716d
Draft 14 9.2.2 protection
2015-05-13 10:26:45 +10:00
Greg Wilkins
5d041ad54f
466645 Allow XmlConfiguration Properties to use Elements or Attributes
2015-05-07 16:24:11 +10:00
Simone Bordet
80f46432da
Updated example to show also pushed resources.
2015-05-04 12:33:10 +02:00
Simone Bordet
39591f3443
466283 - Support specifying ALPN protocols in HTTP2Client.
2015-05-04 12:33:10 +02:00
Simone Bordet
64033e0958
Improved toString().
2015-05-04 12:33:10 +02:00
Greg Wilkins
8b39e7ffb8
464629 JDK8 Socket customization
...
Added the SocketCustomizationListener class which may be added as a bean to either a Connector or a ConnectionFactory
so that customizations may be made per connector by connection type or even per connection factory.
SSL is unwrapped.
2015-04-30 11:46:10 +10:00
Simone Bordet
a6cc4ff2f5
465857 - Support HTTP/2 clear-text server-side upgrade.
...
Fixed and test both types of upgrade, from HTTP/1.1 via its
upgrade mechanism, and direct HTTP/2.
2015-04-29 22:27:50 +02:00
Simone Bordet
df63400dbe
Introduced overridable configure(SocketChannel) method.
...
This allows subclasses to configure the socket with rarely used
options such as the traffic class and or SocketOptions.
2015-04-29 09:46:26 +02:00
Simone Bordet
2de8eb936d
464708 - Support HttpConfiguration.delayDispatchUntilContent in HTTP/2.
2015-04-24 12:36:53 +02:00
Simone Bordet
3d5164b651
Hiding exception stack printed by a successful test.
2015-04-24 12:26:36 +02:00
Joakim Erdfelt
9e6c8eade1
464727 - Update Javadoc for Java 8 DocLint
2015-04-22 12:43:22 -07:00
Simone Bordet
e868ab0b0d
464706 - HTTP/2 and async I/O: onDataAvailable() not called.
...
Changed HTTPServerConnection to return a Runnable to be run by the
execution strategy also in case of content.
This allows onDataAvailable() to be called at the proper times.
2015-04-15 17:21:17 +02:00
Simone Bordet
0360b1cc5b
Made test more reliable.
2015-04-14 22:18:45 +02:00
Simone Bordet
55e74c6867
460187 - infinite recursion in sending error.
...
Added test case.
2015-04-14 22:11:59 +02:00
Simone Bordet
599ab9bb1b
460671 - Rationalize property names.
...
Property format is now "jetty.<module|component>.<propertyName>".
Updated all references with new properties.
2015-04-13 16:21:48 +02:00
Simone Bordet
ffadcd6757
444721 - PushCacheFilter cleanup/improvements.
...
Ported the "maxAssociations" functionality from SPDY's ReferrerPushStrategy.
Added JMX support.
Removed __renew__ special path in favour of a JMX method.
Added clearPushCache() JMX method.
Made push reentrant by eliminating the check for "org.eclipse.jetty.pushed".
2015-04-10 15:22:49 +02:00
Greg Wilkins
663ff827ed
Blacklist ciphers only for h2-16 and later
2015-04-09 10:31:45 +10:00
Greg Wilkins
1cb0449be3
Organised imports
2015-03-26 12:32:15 +11:00
Simone Bordet
999177ccc2
Fixed race sending SETTINGS with INITIAL_WINDOW_SIZE.
...
Before, the sender was updating the window size after the SETTINGS
frame was written.
This was leading to a race where the receiver saw the updated window
size and sent DATA frames; these were received by the original sender
before it had the chance to update its local window size, causing an
error.
Now, the update of the window size happen just before writing the
SETTINGS frame to avoid this race.
2015-03-25 19:24:28 +01:00
Simone Bordet
d20c7707b7
Merged branch 'jetty-9.2.x' into 'master'.
2015-03-24 20:56:26 +01:00
Simone Bordet
e255bda694
459845 - Support upgrade from http1 to http2.
...
Simplified upgrade mechanism, and made it available through clearer
internal APIs.
2015-03-20 15:02:40 +01:00
Simone Bordet
2a21f8cb2f
Renamed ISession.control() to ISession.frames().
2015-03-20 15:02:07 +01:00
Simone Bordet
4107444beb
Tests for async proxy functionality.
2015-03-20 14:53:11 +01:00
Greg Wilkins
caacebc223
459845 - Support upgrade from http1 to http2
...
functioning implementation. Not exactly the most elegant solution, but works with nghttp2 -u
2015-03-19 12:02:54 +11:00
Simone Bordet
81f29576e6
Prevented NPE in abort().
2015-03-16 08:17:25 +01:00
Simone Bordet
4f0c63734c
462162 - StackOverflowException when response commit fails.
...
Fixed HttpChannel to avoid to stack overflow in case of unusual
exceptions thrown while committing.
Now it directly calls the transport to try to send a 500.
2015-03-15 12:10:27 +01:00
Greg Wilkins
3f795da26c
459845 - Support upgrade from http1 to http2
...
Generalised Upgrade Connection Factories
2015-03-13 13:59:29 +11:00
Simone Bordet
ffb15aa5fb
Made test more reliable.
...
Testing for stream.isClosed() is done in StreamCloseTest.
The tests were failing because receiving the headers does not mean
the sending the headers has notified the callback yet, and hence
closed the stream.
2015-03-12 20:54:40 +01:00
Simone Bordet
feed8ea158
Small refactoring of HTTP/2 upgrade code.
2015-03-12 19:08:26 +01:00
Greg Wilkins
b7d719be5f
459845 - Support upgrade from http1 to http2
...
Parse setting frame.
2015-03-13 00:54:33 +11:00
Simone Bordet
005870811d
Fixed compilation issue: using Jetty's B64Code instead of JDK8 Base64.
2015-03-12 11:06:30 +01:00
Greg Wilkins
0dd58d2efe
459845 - Support upgrade from http1 to http2
...
Moved the sneaky direct upgrade to its own method and added support to detect a standard upgrade.
The standard upgrade now creates the h2c connection and decodes the settings header, but it does not yet process the
settings nor send a response to the request.
2015-03-12 16:52:17 +11:00
Simone Bordet
a7cfc3dc2d
Renamed methods in FlowControlStrategy.
2015-03-11 20:38:40 +01:00
Simone Bordet
36f317382f
More flow control tests.
2015-03-11 18:43:00 +01:00
Simone Bordet
8673c6bba7
Clarified test and made it more reliable.
2015-03-11 17:12:38 +01:00
Simone Bordet
1dbf2be343
423974 - Optimize flow control.
...
Don't send the window update if the stream is closed.
2015-03-11 17:11:16 +01:00
Simone Bordet
560ec6301e
423974 - Optimize flow control.
...
Made the buffering flow control strategy the default.
2015-03-11 16:27:31 +01:00
Simone Bordet
48887377c9
459081 - http2 push failures.
...
Introduced ExecutionStrategy.dispatch() to handle the case where
resources that are being pushed block.
2015-03-11 00:12:57 +01:00
Simone Bordet
4caf991e44
Made test run only under JDK 8.
2015-03-02 16:39:31 +01:00
Simone Bordet
9f76995086
Restored ALPN tests.
2015-03-02 13:17:26 +01:00
Simone Bordet
73821e7ac6
461052 - Local streams created after INITIAL_WINDOW_SIZE setting have wrong send window.
...
Fixed by tracking both send and recv initial stream windows.
This is needed because both client and server may send an
INITIAL_WINDOW_SIZE setting, and they must be treated
separately.
2015-02-27 19:21:35 +01:00
Simone Bordet
b533aa6ce5
Made tests more stable.
...
Naked writes could throw WritePendingException.
Now we wait until the client has finished sending the reply to the
server SETTINGS frame, then we do the naked write.
2015-02-27 12:30:42 +01:00
Simone Bordet
7c315ebce5
Fixed test.
2015-02-24 15:59:32 +01:00
Simone Bordet
6ad90c259c
Fixed test.
2015-02-24 14:51:30 +01:00
Joakim Erdfelt
aac427ab8c
Fixing compile error
2015-02-23 18:16:30 -07:00
Greg Wilkins
5d6bb9f5d0
460210 - ExecutionStragegy producer for SelectManager calls onOpen from produce method
...
Additional refactoring to better handle HttpInput state. Moved the unready and read possible states into the HttpChannelState
2015-02-23 23:06:23 +11:00
Simone Bordet
58ea526b56
Notifying client connection's promise from onOpen().
...
The client connection's promise was succeeded in the context of a
call to SelectorManager.newConnection().
This was wrong, since succeeding the promise may trigger the send
of a request *before* the connection is actually linked to the
endPoint and opened.
This change moves the succeeding of the client connection's promise
to the connection onOpen() method.
2015-02-20 18:23:31 +01:00
Joakim Erdfelt
08b4bd439e
Fixing tests on http2-hpack
...
+ HttpField.nameHashCode() fixed to actually be US-ASCII case
insensitive per documentation
+ Since removal of MetaData equals/hashcode, the comparison
of the MetaData and MetaData.Response is now done entirely
within the HpackTest
2015-02-20 10:16:03 -07:00
Greg Wilkins
b60ea47ef4
Revert "Revert "Fixed AsyncIO double dispatch""
...
This reverts commit 8bd94ec6be
.
This is a revert of the revert to add back in the useful debug, plus some TODO comments describing the problems
2015-02-20 00:18:29 +11:00
Greg Wilkins
8bd94ec6be
Revert "Fixed AsyncIO double dispatch"
...
This reverts commit 968063c1ab
.
2015-02-20 00:03:40 +11:00
Greg Wilkins
968063c1ab
Fixed AsyncIO double dispatch
2015-02-19 18:13:31 +11:00
Simone Bordet
59ae845d30
Guarding against null streams when resetting.
...
This is possible when receiving a frame for a non-existent stream:
it is replied with a reset, but the stream object is never created.
2015-02-18 23:00:37 +01:00
Simone Bordet
84b8882624
Using TestTracker Rule in test classes.
2015-02-18 23:00:37 +01:00
Simone Bordet
d4809e9b79
Improved handling of the stream close state.
...
Now the stream close state is updated when the frame has been
successfully written, and when it is received.
The stream is closed in case of failures.
Just after the stream close state update, if the stream is closed
then it is removed from the session.
2015-02-18 23:00:37 +01:00
Greg Wilkins
e18573f4a3
460211 Fixed Idle race in ExecuteProduceRun
...
Reimplemented ExecuteProduceRun with a spin lock
2015-02-18 21:47:22 +11:00
Greg Wilkins
cb5d91df19
ignored bad http2 client test
2015-02-18 09:20:27 +11:00
Simone Bordet
fbf7679e34
Fixed compilation issue after merge.
2015-02-15 20:54:36 +01:00
Simone Bordet
28b9a0927c
Merged branch 'jetty-9.2.x' into 'master'.
2015-02-15 20:51:49 +01:00
Simone Bordet
5a40ed5a0d
Fixed test, and added test to check close state of pushed streams.
2015-02-13 18:08:39 +01:00
Simone Bordet
ff7e0e626a
Implemented notification of session failure events.
2015-02-13 14:18:08 +01:00
Simone Bordet
9677988960
Removed TODO.
2015-02-13 13:11:59 +01:00
Greg Wilkins
a2e051c4e0
made StreamResetTest test less of a race
2015-02-13 16:15:08 +11:00
Greg Wilkins
c090f179a7
459845 - Support upgrade from http1 to http2/websocket
...
Added jetty-http2c.xml and http2c.mod
2015-02-13 15:06:24 +11:00
Greg Wilkins
4db654ad32
Organised http2 imports
2015-02-13 13:43:32 +11:00
Greg Wilkins
98e3a28794
459845 - Support upgrade from http1 to http2/websocket
...
Added test harness for h2c upgrade.
2015-02-13 13:41:14 +11:00
Greg Wilkins
c3332e7d2e
459845 - Support upgrade from http1 to http2/websocket
...
Added support for unofficial "upgrade" from http/1 to h2c
2015-02-13 12:16:03 +11:00
Joakim Erdfelt
7811c10727
Fixing http2-client test quirk when
2015-02-12 14:42:02 -07:00
Simone Bordet
0677735550
Simplified HTTP/2 parser and its listener.
...
It is not possible to perform asynchronous processing of the content
of DATA frames, because otherwise the parser has to stop, stalling
all other streams.
Parser.Listener methods were returning boolean in a vestigial attempt
to handle asynchronous data processing, and have now been converted to
return void.
2015-02-12 19:43:52 +01:00
Greg Wilkins
a147cee480
459731 - Update for drafts hpack-11 and http2-17
2015-02-12 14:45:12 +11:00
Jan Bartel
b45389ad87
Fix http2 osgi manifests and tests
2015-02-12 10:32:16 +11:00
Joakim Erdfelt
20fa13605c
459655 - Remove SPDY and NPN
...
+ Flattening protonego-* to alpn.mod + alpn-impl/alpn-${java.version}
2015-02-11 10:58:10 -07:00
Simone Bordet
360b72a29e
HTTP/2 API Javadocs.
2015-02-11 17:44:05 +01:00
Simone Bordet
be860741d5
459655 - Remove SPDY and NPN.
...
Cleanup of javadocs, comments, XML and other text files.
2015-02-11 16:18:07 +01:00
Greg Wilkins
2162455b72
Removed SPDY and NPN
...
Because jetty 9.3 is targetted for HTTP2, we have removed support for SPDY and NPN.
2015-02-11 14:20:06 +11:00
Simone Bordet
44d262c65a
Renamed GatheringCallback to CountingCallback.
2015-02-10 13:16:41 +01:00
Simone Bordet
273854835f
Made HttpClientTransportOverHTTP2 a ContainerLifeCycle, so that it
...
can manage the start/stop of HTTP2Client.
2015-02-09 17:33:10 +01:00
Simone Bordet
3855024bba
Added tests for HTTP2Client idle timeout.
2015-02-09 16:53:22 +01:00
Simone Bordet
f974c74329
Implemented HTTP2Client connect timeout.
2015-02-09 16:22:21 +01:00
Simone Bordet
85edb7e573
Improved configurability of HTTP2Client.
2015-02-09 14:24:09 +01:00
Simone Bordet
d0f0aa7c9f
Fixed removal of streams upon sending the response HEADERS frame.
2015-02-09 13:26:01 +01:00
Simone Bordet
7066f65e8c
423974 - Optimize flow control.
...
Implemented a buffering FlowControlStrategy that reduces the amount
of WindowUpdate exchanges.
2015-02-09 13:25:32 +01:00
Simone Bordet
fa72356d1d
Fixed failure of stalled frames.
2015-02-09 09:11:56 +01:00
Simone Bordet
02b5732720
First take at implementing the HttpClientTransport for HTTP2.
2015-02-09 09:11:56 +01:00
Greg Wilkins
14cd10b676
experimenting with push API
2015-02-06 13:48:34 +11:00
Greg Wilkins
f6cfe07a69
added direct buffer configuration
2015-02-05 10:02:01 +11: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
Simone Bordet
5bed6323c1
Reworked buffer releasing to ensure that it is always executed before
...
fillInterested() is called.
This is needed to avoid race conditions where fillInterested()
triggers a new thread entering onFillable() and acquiring a new buffer
while the previous thread is releasing the previous buffer.
2015-01-02 18:43:07 +01:00
Greg Wilkins
beacb948b1
Allow configuration of ExecutionStrategy
...
eg -Dorg.eclipse.jetty.io.ManagedSelector.ExecutionStrategy=org.eclipse.jetty.util.thread.ExecutionStrategy$ExecuteProduceRun
2015-01-01 17:04:00 +01:00
Greg Wilkins
3af9b145a3
Deprecated the AbstractConnection dispatchIO mechanism
2015-01-01 16:18:13 +01:00
Greg Wilkins
3f59bc4c14
refactored HttpConnector for EWYK - work in progress
2014-12-23 17:15:27 +01:00
Greg Wilkins
ebaf84b97e
Refactored HttpInput to use poison pills
2014-12-21 10:43:37 +01:00
Simone Bordet
448f150ac4
Cleaned up ExecutionStrategy by adding javadocs, removing methods not
...
used and renaming classes and methods to better names.
2014-12-19 11:25:09 +01:00
Simone Bordet
4ccd5207b5
Switched ExecutionStrategy to EWYK.
2014-12-18 17:14:34 +01:00
Simone Bordet
e35c51eb7d
Implemented dispatch to the application using an ExecutionStrategy.
...
Now instead of having the channel to dispatch when it detects that it
has to call the application (upon receiving a HEADERS frame, or upon
a push "fake" request), now the whole mechanism is controlled by an
ExecutionStrategy.
2014-12-18 17:14:34 +01:00
Simone Bordet
7f98b64658
Clearing the buffer in case of parser errors that lead to a
...
connection failure.
2014-12-18 17:14:34 +01:00
Simone Bordet
1c2c83e962
Added TODO to remove references to ByteBuffer.array() without
...
checking whether the ByteBuffer does have a backing array.
2014-12-18 17:14:34 +01:00
Greg Wilkins
cdd2b0a9d2
refacted SelectorManager to have a ManagedSelector
2014-12-17 16:29:24 +01:00
Greg Wilkins
dfe9dc3115
Further experimentation with PushBuilder
2014-12-09 12:27:39 +01:00
Greg Wilkins
06b1efc182
Added alternate push API and example
2014-12-05 17:47:25 +01:00
Greg Wilkins
7b41e78f74
Improved HttpChannelOverHTTP2 recycling
2014-12-05 08:36:51 +01:00
Greg Wilkins
2536c1cc3f
Handle HTTP2-16 black listed ciphers
2014-12-04 14:17:25 +01:00
Greg Wilkins
c3472f01c4
updated hpack for draft 10 name changes
2014-12-04 10:27:14 +01:00
Greg Wilkins
4296d84a7b
updated hpack for draft 10 name changes
2014-12-04 10:17:06 +01:00
Greg Wilkins
0a144ed3ac
453487 Recycle HttpChannelOverHTTP2
...
This is an initial recyling of the channel. The pool is a concurrent linked list, but it may be better to use an array backed list/stack that can easily enforce a maximum pool size.
The pool is currently on the session listener, when it really should be on the HTTP2ServerConnection, but more refactoring is needed for that.
Also the pool is currently inaccessible to the push mechanism
2014-11-28 12:09:59 +11:00
Greg Wilkins
f853adb43c
fixed debug
2014-11-21 16:01:31 +11:00
Joakim Erdfelt
d4d6cfdfa7
Removing virtual module [ssl-protonego]
...
+ This virtual module, rolled the ssl + protonego + (xml) into
http2 & spdy modules instead.
2014-11-17 14:08:19 -07:00
Greg Wilkins
5b60e0c98d
support h2-15 and h2-14
2014-11-14 10:53:37 +11:00
Greg Wilkins
e3bda4efbe
446564 Refactored RequestLog Mechanism
...
RequestLog can now be set on the HttpChannel and is called during the onCommitted callback.
The RequestLog may be set either on the server or via an updated RequestLogHandler that can
be applied to a specific context.
2014-10-31 13:31:29 +11:00
Greg Wilkins
31e448ffd6
Removed duplication of HttpGenerator$Info vs http.MetaData
...
Use MetaData throughout code base
2014-10-24 15:51:20 +11:00
Greg Wilkins
ec79a6f88e
Improve HTTP header pre-encoding
...
The HttpContent class has been reworked to store HttpField instances, we may be generated on
demand or instances of PreEncodedHttpField.
The encoding of HTTP2 fields has been generalized to handle both indexed and literal fields, selected
by header enum set.
Default servlet and response classes have been cleaned up in how they set response headers.
2014-10-16 12:31:37 +11:00
Greg Wilkins
8c85b2f591
improved http2 static entry generation
2014-10-15 14:04:54 +11: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
Simone Bordet
8af9ea4030
Calling notIdle() to avoid the idle timeout triggers when sending frames.
2014-09-26 10:13:16 +02:00
Simone Bordet
9a1acd59fc
Made test more robust.
2014-09-26 10:13:15 +02:00
Jesse McConnell
3095a179f9
[maven-release-plugin] prepare for next development iteration
2014-09-24 12:24:31 -05:00
Jesse McConnell
390f3200cc
[maven-release-plugin] prepare release jetty-9.3.0.M0
2014-09-24 12:24:23 -05:00
Greg Wilkins
a573430840
PushCacheFilter handles multiple hosts and ports
2014-09-22 11:10:13 +10:00
Greg Wilkins
fc4bfc8a66
improved debug logging
2014-09-21 15:03:54 +10:00
Simone Bordet
51631c2a46
Made the test more robust, avoiding WritePendingExceptions.
2014-09-19 10:33:09 +02:00
Simone Bordet
bfda3620f3
444485 - Client resets stream, pending server data is failed, write hangs.
...
Fixed by ensuring that when a failure happens, either by catching an
exception or by failing a callback, we always call completed() and
abort the channel (via new method terminate()).
2014-09-18 16:31:16 +02:00
Simone Bordet
418a493337
More simplifications for the send() implementation.
2014-09-18 11:50:18 +02:00
Greg Wilkins
0acee9851f
minor cleanups of exceptions
2014-09-18 18:23:48 +10:00
Simone Bordet
ef4e0a9e7c
Made the test more reliable.
2014-09-17 20:56:05 +02:00
Simone Bordet
3e602117b4
Improved send() implementation to be more clear, and covered also a
...
missing case where the callback may have not been notified.
2014-09-17 18:07:22 +02:00
Simone Bordet
5370f3c8cb
442950 - Embedded Jetty client requests to localhost hangs with high cpu usage (NIO OP_CONNECT Solaris/Sparc).
2014-09-01 12:06:18 +02:00
Simone Bordet
17c8f71724
Renamed onConnect() to onAccept() to reflect its server-side role.
2014-08-21 11:54:03 +02:00
Simone Bordet
c07ea68b51
Improved configurability of stream idle timeout.
2014-08-21 11:54:03 +02:00
Simone Bordet
75c1322adc
Rewritten close workflow to make sure that connections are correctly closed.
2014-08-21 11:54:03 +02:00
Simone Bordet
7a61c96ba1
Removed debug logging (wrongly assumes the ByteBuffer has a backing array).
2014-08-21 11:54:03 +02:00
Simone Bordet
c10e5e8833
Renamed PushTest -> PushCacheFilterTest.
2014-08-21 11:54:02 +02:00
Simone Bordet
c15480644f
442083 - Client resets stream, pending server data is failed, connection closed.
...
Introduced ResetException, and using it when failing frames of streams
that have been reset already.
HttpTransportOverHTTP2.abort(Throwable) checks for this exception and
does not close the connection.
2014-08-19 18:40:01 +02:00
Simone Bordet
d4f140ff65
Ignoring HEADERS, PUSH_PROMISE and DATA if the stream cannot be found.
...
This typically happens when the stream has been reset.
2014-08-19 13:43:24 +02:00
Simone Bordet
20076fcdc5
Moved reset() from Session to Stream.
2014-08-19 13:41:52 +02:00
Simone Bordet
09d54eacab
Accounting for the session flow control window in case of reset streams.
2014-08-19 13:38:43 +02:00
Simone Bordet
728a7c3442
Made push functionality honor configuration parameter sent via SETTINGS.
2014-08-15 18:34:20 +02:00
Simone Bordet
c7987b154a
Reverted logging of HTTP2 tests from DEBUG to INFO.
2014-08-15 17:29:38 +02:00
Greg Wilkins
1c71040eca
moved config plugin to profile
2014-08-15 19:53:52 +10:00
Greg Wilkins
b47f9ef605
cleaned up OSGi manifest creation
2014-08-15 19:35:49 +10:00
Simone Bordet
48b1f9f3f1
Implemented HTTP/2 push functionality.
...
A PushCacheFilter contains the logic to associate secondary resources
to primary resources.
PushCacheFilter calls a Jetty-specific API on the request dispatcher:
Dispatcher.push(ServletRequest). This is a technology preview of the
push functionality slated for Servlet 4.0.
The push() invocation arrives to the transport and it is converted to
HTTP/2 specific PUSH_PROMISE, along with the mechanism to simulate
the request for the secondary resource.
2014-08-14 23:05:35 +02:00
Greg Wilkins
a14d843382
ignored osgi-spdy tests
2014-08-14 15:18:28 +10:00
Greg Wilkins
68a3ca8e31
improved debug logging of settings
2014-08-13 12:00:32 +10:00
Simone Bordet
a97d4642ab
Improved toString() methods for frames.
2014-08-12 23:01:03 +02:00
Simone Bordet
20963c9c61
Refactored host and port to local variables.
2014-08-12 18:54:50 +02:00
Simone Bordet
814c84a212
Introduced configuration properties for ALPN/NPN advertised protocols.
...
No more need to copy protonego-alpn.xml to a jetty.base to specify
which protocols are advertised and in which order.
Instead, simply specify:
alpn.protocols=h2-14,http/1.1
alpn.defaultProtocol=http/1.1
in start.ini (in the example above for http2).
2014-08-12 18:54:33 +02:00
Simone Bordet
e147ce9528
Updated flow control implementation to detect when senders exceed
...
allowed windows.
2014-08-12 16:37:41 +02:00
Simone Bordet
4f4c3604a2
Made the test more reliable.
2014-08-12 16:27:33 +02:00
Simone Bordet
d2fa4dca60
Introduced configuration properties for ALPN/NPN advertised protocols.
...
No more need to copy protonego-alpn.xml to a jetty.base to specify
which protocols are advertised.
Instead, simply specify:
protonego.protocols=h2-14,http/1.1
protonego.defaultProtocol=http/1.1
in start.ini (in the example above for http2).
2014-08-11 23:59:26 +02:00
Simone Bordet
107a4fff20
Fixed handling of INITIAL_WINDOW_SIZE setting.
...
It must update only stream windows, and not the session window.
2014-08-11 18:43:50 +02:00
Simone Bordet
187c42fa4a
Closing the flusher instead of just disconnecting after a GO_AWAY.
...
This ensures that frames that may have been added to the flusher queue
concurrently after the GO_AWAY are properly failed and the queue
drained.
2014-08-11 11:30:49 +02:00
Simone Bordet
59a9c0890c
Fixed off-by-one in counting the padding bytes.
2014-08-08 23:53:18 +02:00
Simone Bordet
f8086dc7c2
Refactored the send of the SETTINGS frame from the client.
...
It's now sent after a call to onPreface(), which has been moved to
the common interface Session.Listener (from ServerSession.Listener),
so that client applications can customize the SETTINGS to send to the
server.
2014-08-08 23:52:20 +02:00
Simone Bordet
ab96bf775f
Removed unneeded casting to DataFrame.
2014-08-08 18:19:02 +02:00
Greg Wilkins
5da39140df
remove old TODOs
2014-08-08 18:30:56 +10:00
Simone Bordet
6b9a069d9d
Waiting for all the frames to arrive before stopping.
2014-08-08 01:11:59 +02:00
Simone Bordet
466d8db8d8
Sending a SETTINGS frame after the preface, as required by the spec.
2014-08-08 01:11:59 +02:00
Simone Bordet
69927b935e
Don't send a window update if the length is zero.
2014-08-08 01:11:59 +02:00
Greg Wilkins
287e86b7aa
decomposed https,http2 and spdy modules to share ServerConnector
2014-08-07 12:58:12 +10:00
Greg Wilkins
64e49a1fe5
work around classloaders for field preencoders
2014-08-07 09:10:35 +10:00
Simone Bordet
55dec378fc
Merged branch 'jetty-http2' into 'http2_flow_control'
2014-08-06 15:43:56 +02:00
Simone Bordet
abd139cc1b
Reworked flow control implementation. Splitted HTTP2Flusher out of HTTP2Session.
...
Flow control window updates are now processed by the flusher, so that
it is the only component that handles window updates.
In the process of this refactoring, HTTP2Flusher was refactored out
of HTTP2Session.
2014-08-06 15:42:36 +02:00
Simone Bordet
2cd53831c0
Refactored onReadTimeout() to parent class.
2014-08-06 15:39:29 +02:00
Greg Wilkins
17f46665df
preencoded httpfield optimisation
2014-08-06 21:09:26 +10:00
Greg Wilkins
b5971484a5
Basic push mechanism skeleton
2014-08-06 10:50:55 +10:00
Simone Bordet
22cdca9131
Merge branch 'jetty-http2' into http2_flow_control
2014-08-05 10:01:30 +02:00
Greg Wilkins
6b3c8d06a9
partial 100 continues support in http2
2014-08-05 16:14:53 +10:00
Greg Wilkins
d7f2c42e2d
misc optimisation of http2 field creation
2014-08-05 12:55:37 +10:00
Simone Bordet
636c7eaeae
Fixed handling of max concurrent streams.
...
There is a difference between the value set via configuration, that
always refer to remote streams (streams initiated by remote peers),
and the value received via SETTINGS frame, that always refer to local
streams (streams initiated locally).
2014-08-05 02:01:34 +02:00
Greg Wilkins
48d68a4916
handle http/1 host header in http/2
2014-08-05 09:21:27 +10:00
Simone Bordet
ac7aa4decc
Flow control needs improvements.
2014-08-05 00:28:06 +02:00
Simone Bordet
20925ded97
Fixed insertion of frame header buffer at the right index.
...
In case the lease is not empty, the frame header buffer must not be
inserted at index 0, but just before the frame body buffer.
2014-08-04 12:15:14 +02:00