117 Commits

Author SHA1 Message Date
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
Greg Wilkins
b60ea47ef4 Revert "Revert "Fixed AsyncIO double dispatch""
This reverts commit 8bd94ec6be2c597effa3fdcf44c5d3211767e7e8.
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 968063c1ab64e9d19045c14850d35b137c569894.
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
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
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
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
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
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
3855024bba Added tests for HTTP2Client idle timeout. 2015-02-09 16:53:22 +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
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
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
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
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
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
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
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
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
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
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
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