Simone Bordet
016fc6569f
Fixes #558 - HTTP/2 server hangs when thread pool is low on threads.
...
Modified ExecuteProduceConsume to test for Rejectable tasks when
trying to execute a task in low threads mode, and if so, reject them
immediately.
2016-05-12 00:13:35 +02:00
Simone Bordet
2c787bbc05
Merged branch 'jetty-9.4.x' into 'master'.
2016-05-11 13:57:32 +02:00
Simone Bordet
d8961139f3
Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'.
2016-05-11 13:57:08 +02:00
Simone Bordet
1fc40864e1
Issue #558 (HTTP/2 server hangs when thread pool is low on threads).
...
Verify that rejecting tasks avoids hanging the server when in low
threads mode.
2016-05-11 13:05:16 +02:00
Simone Bordet
8ac23d187a
Added tests to verify input data consumption.
...
Verify that input data is consumed at the end of a request handling,
either when input is not read and when an exception is thrown,
to make sure that the session flow control is not stalled.
2016-05-11 13:05:16 +02:00
Simone Bordet
f4353695e5
Merged branch 'jetty-9.4.x' into 'master'.
2016-05-07 14:51:29 +02:00
Simone Bordet
19c63703ea
Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'.
2016-05-07 14:50:56 +02:00
Simone Bordet
c14833a7f1
Fixes #552 (Improve HTTP/2 idle timeout handling)
...
Made sure that the stream idle timeout is reset for every stream read
and write.
Made sure that both the stream and the session idle timeouta are reset
for buffered data reads.
2016-05-07 14:45:34 +02:00
Joakim Erdfelt
c09f31a51d
Bumping up master to version 10.0.0-SNAPSHOT
2016-04-29 11:47:15 -07:00
Simone Bordet
a37fdcd0e2
Fixes #514 - Allow ExecutionStrategy to be configurable.
...
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:28:52 +02:00
Simone Bordet
6827c5b045
Fixes #514 - Allow ExecutionStrategy to be configurable.
...
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:20:31 +02:00
Joakim Erdfelt
6fb338e50d
Updating to version 9.3.9-SNAPSHOT
2016-04-11 16:20:50 -07:00
Joakim Erdfelt
bb4f3c4882
Updating to version 9.3.9.M1
2016-04-11 15:35:22 -07:00
Joakim Erdfelt
c68d3b1d8d
Updating to version 9.3.9-SNAPSHOT
2016-03-14 09:07:52 -07:00
Joakim Erdfelt
1f3b3f31f4
Updating to version 9.3.8.v20160314
2016-03-14 08:30:20 -07:00
Greg Wilkins
d1fc5eb67d
Revert "Issue #346 HttpParser RFC2616 Compliance mode"
...
This reverts commit 58e5a54ab6
.
RFC7430 allows empty header values
2016-03-05 11:03:32 +01:00
Greg Wilkins
58e5a54ab6
Issue #346 HttpParser RFC2616 Compliance mode
...
Ignore headers without values.
2016-03-05 11:03:11 +01:00
Simone Bordet
bd62320285
Issue #360 (Improve HTTP/2 stream interleaving)
...
Fixed by making the interleave quantum be the frame size rather than
the flow control window size.
Reworked HTTP2Flusher.process() to be simpler and properly
interleave frames.
2016-02-29 18:45:30 +01:00
Simone Bordet
2c11372bc4
Merged branch 'jetty-9.3.x' into 'master'.
2016-02-29 17:17:09 +01:00
Simone Bordet
cec3694355
Consistently using BufferUtil, especially clearToFill() and
...
flipToFlush().
2016-02-29 16:31:38 +01:00
Simone Bordet
b8fcc5112f
Issue #372 (Data race in HttpReceiverOverHTTP2)
...
Fixed implementations of onData() to properly complete the callback
and to copy the data if they use it asynchronously.
2016-02-29 14:39:27 +01:00
Simone Bordet
f727e2bac3
Merged branch 'jetty9.3.x' into 'master'.
2016-02-13 11:32:53 +01:00
Simone Bordet
0eef227e84
487750 - HTTP/2 push must not be recursive.
...
Avoid recursive pushes by pushing the whole resource tree on the
primary request, and avoid pushes for synthetic requests generated by
the pushes.
2016-02-13 11:15:58 +01:00
Joakim Erdfelt
e0ce545ad7
Updating to version 9.3.8-SNAPSHOT
2016-01-15 17:15:14 -07:00
Joakim Erdfelt
c0b191119b
Updating to version 9.3.7.v20160115
2016-01-15 16:40:15 -07:00
Joakim Erdfelt
b7f9c9aca9
Updating to version 9.3.7-SNAPSHOT
2016-01-13 08:21:01 -07:00
Joakim Erdfelt
21ca3f6690
Updating to version 9.3.7.RC1
2016-01-13 07:30:24 -07:00
Joakim Erdfelt
ac24196b0d
Happy New Year 2016
2016-01-04 14:34:20 -07:00
Joakim Erdfelt
cd39fd84fe
Happy New Year 2016
2016-01-04 14:31:22 -07:00
Simone Bordet
c66a4d5aa7
Merged branch 'jetty-9.3.x' into 'master'.
2015-12-24 10:47:10 +01:00
Simone Bordet
30694b675b
484876 - Make simpler to customize the FlowControlStrategy.
...
Introduced FlowControlStrategy.Factory along with getters and setters
in relevant classes.
2015-12-24 10:32:36 +01:00
Simone Bordet
8045b0cf67
Merged branch 'jetty-9.3.x' into 'master'.
2015-12-23 16:21:53 +01:00
Simone Bordet
7a33efdf66
484861 - Improve FlowControlStrategy stall handling.
...
Changed the way on[Session|Stream]Stalled() is notified.
Instead that from within the HTTP2Flusher, those methods are now
called from onDataSending(), invoking them only once per stall.
2015-12-23 15:42:25 +01:00
Simone Bordet
802948259e
Merged branch 'jetty-9.3.x' into 'master'.
2015-12-23 11:26:11 +01:00
Simone Bordet
a5983c560a
Avoid allocating the ALPNClientConnectionFactory if there is no
...
SslContextFactory.
2015-12-23 11:20:19 +01:00
Simone Bordet
14a3b2eab2
484818 - Expose interesting HTTP/2 attributes and operations via JMX.
...
Initial work to expose already existing attributes on the client.
2015-12-23 11:08:25 +01:00
Simone Bordet
b7ab9e0a22
484818 - Expose interesting HTTP/2 attributes and operations via JMX.
...
Initial work to expose already existing attributes on the server.
2015-12-23 11:08:25 +01:00
Simone Bordet
ca6eaafdbf
Merged branch 'jetty-9.3.x' into 'master'.
2015-12-15 15:42:36 +01:00
Simone Bordet
717fc7819d
484262 - Race condition between GOAWAY disconnect and ability to make new request.
...
Fixed by making sure that when a peer received a GOAWAY frame, it
does not also notify the onFailure() callback.
2015-12-15 15:35:04 +01:00
Simone Bordet
50041395f9
Merged branch 'jetty-9.3.x' into 'master'.
2015-11-25 14:00:19 +01:00
Simone Bordet
3c54806d47
482959 - Local stream count never decrements when closing a stream causing IllegalStateException.
...
This issue was caused by removeStream(IStream, boolean) to take a
boolean parameter that indicated whether the close of the stream was
caused by a sent frame (local) or by a received frame (remote).
However, this was wrong, since a local stream may be closed by
receiving a frame. This error was causing the local and remote stream
counts held by HTTP2Session to be decremented wrongly, causing the
IllegalStateException mentioned in the bug report.
Fixed by decrementing the stream counters based on whether the stream
itself is local or remote.
2015-11-25 12:58:02 +01:00
Simone Bordet
279e56d336
481718 - Improve stream interleaving.
...
Introduced the constraint in the API that Stream.headers() and
Stream.data() calls cannot be invoked if the previous operation did
not complete.
Improved interleaving by appending unfinished DATA frames at the end
of the queue, rather than prepending them.
2015-11-09 21:58:48 +01:00
Joakim Erdfelt
edf686fe0a
Updating to version 9.3.7-SNAPSHOT
2015-11-06 12:13:00 -07:00
Joakim Erdfelt
d737e1c638
Updating to version 9.3.6.v20151106
2015-11-06 11:09:32 -07:00
Greg Wilkins
7843b7348e
480827 Implemented Unix Domain Socket Connector
...
Squashed commit of the following:
commit fbb680ba7cdb73495524ea9e5b0f49caee7f68d8
Merge: ed2550b 64ea0db
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Nov 6 10:44:00 2015 +1100
Merge branch 'master' into unix-socket
commit ed2550b50f978e1984e19fbda642baf450dbe6a1
Merge: 88d7b35 de137ab
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Nov 5 18:41:25 2015 +1100
Merge branch 'master' into unix-socket
commit 88d7b35f885de2da7dec836e6e4ae2b522d517f0
Merge: 7d4155f 3e2658a
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Nov 5 17:38:27 2015 +1100
Merge branch 'master' into unix-socket
commit 7d4155fe4a407d493683b66709bc638879b0b422
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Nov 5 17:24:48 2015 +1100
Unix socket configuration
commit 2737b19f73ad153c20e1762874558a5d62849f90
Merge: cd0cc2e 92cc44c
Author: Greg Wilkins <gregw@webtide.com>
Date: Wed Nov 4 15:13:40 2015 +1100
Merge branch 'master' into unix-socket
Conflicts:
jetty-server/src/main/java/org/eclipse/jetty/server/SecureRequestCustomizer.java
commit cd0cc2ef36a558d948bf26aff4f9e3519da2f823
Merge: 639753b 303f98e
Author: Greg Wilkins <gregw@webtide.com>
Date: Mon Nov 2 12:21:19 2015 +1100
Merge branch 'master' into unix-socket
commit 639753b5ed37778d7231acfe9d52039aed66351e
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 30 15:42:58 2015 +1100
local connectors report NOIP address
commit 6d38c4195f145b99f775a06d546960b119094b0c
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 30 12:11:13 2015 +1100
Gentler ssl close test
commit 40b46b66a738c9187f859d522a0165bb09b113c8
Merge: b7eb082 fa53b11
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 30 11:09:42 2015 +1100
Merge branch 'master' into unix-socket
commit b7eb082be44864c058b6f01b10364013596d3650
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 30 08:34:30 2015 +1100
SecureRequestCustomizer for UnixSockets
commit edbb3c080200b4c6aa2836eff6c81bf31a73a8c1
Merge: 90e8cc0 de7ac72
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Oct 29 19:47:05 2015 +1100
Merge branch 'master' into unix-socket
commit 90e8cc060ff6dc4b249818db38334ffa543f002f
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Oct 29 19:31:50 2015 +1100
use proxy connection
commit b1772ef5dcac9ddf9bb5ecda1cda6d038ca21755
Merge: e95a932 9fe7332
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Oct 29 16:46:29 2015 +1100
Merge branch 'master' into unix-socket
commit e95a932bda5a96bf98ada4fb47664790af2aa0a2
Author: Greg Wilkins <gregw@webtide.com>
Date: Wed Oct 28 15:58:25 2015 +1100
fixed config
commit f8963b2ed6b6b4b96f1d9403194c9d50ab1f12fd
Merge: 9c56b53 8b27484
Author: Greg Wilkins <gregw@webtide.com>
Date: Wed Oct 28 15:34:28 2015 +1100
Merge branch 'master' into unix-socket
commit 9c56b53cbec20d98e5cb05cf8d1f668fe84b95e0
Merge: 298a311 39768f8
Author: Greg Wilkins <gregw@webtide.com>
Date: Mon Oct 26 13:04:34 2015 +1100
Merge branch 'master' into unix-socket
commit 298a311af952ad3ef5d1c7635deabf47bddaa1c6
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 23 15:24:19 2015 +1100
Async accepting
commit 8266753d124c04ec8bca8aa02be1ef3d826d6769
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 23 14:45:35 2015 +1100
set acceptors
commit 6a56c5b9e19063fcb95cdc1228adf723c0d41362
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 23 11:44:54 2015 +1100
licence
commit d80e5748e6c4327bae57de2af01983990dd2afe0
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 23 11:24:14 2015 +1100
unixsocket work in progress adding modules
commit cf0c1153d9966cc7182ba29411527b4341c34da6
Merge: 645b671 c39bfa2
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 23 08:52:01 2015 +1100
Merge branch 'master' into unix-socket
commit 645b6712d37282c26011a95c8c98e45c249b2e5f
Author: Greg Wilkins <gregw@webtide.com>
Date: Fri Oct 23 08:49:52 2015 +1100
IP headers
commit 67b210b9ea81af68ce3848a114bbbd1b80a8ca52
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Oct 22 23:48:57 2015 +1100
working with haproxy
commit e4fce9cf5d896a9a29a7c6280fcaa0336dfcc0f2
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Oct 22 18:25:09 2015 +1100
unixsocket working
commit 6f013788cad44e6641cd89720c5e7f3652cdc257
Author: Greg Wilkins <gregw@webtide.com>
Date: Thu Oct 22 15:39:55 2015 +1100
work in progress
2015-11-06 11:17:46 +11:00
Simone Bordet
5062756135
Merged branch 'jetty-9.3.x' into 'master'.
2015-11-02 12:17:00 +01:00
Simone Bordet
58027a3421
481225 - Secondary resources with query parameters are not properly pushed.
...
Fixed by making PushCacheFilter remember the query parameters for
secondary resources, so that the PUSH_PROMISE frame can be correctly
generated with the query parameters.
2015-11-02 11:37:17 +01:00
Greg Wilkins
9fe7332413
Implemented v2 of the ProxyConnection protocol
2015-10-29 16:45:50 +11:00
Simone Bordet
964afc3020
Merged branch 'jetty-9.3.x' into 'master'.
2015-10-19 12:35:26 +02:00
Simone Bordet
3c26ffb227
480061 - HTTP/2 server doesn't send GOAWAY frame when shutting down.
...
Fixed by overriding Connection.close() and sending the GOAWAY from
there, which is triggered when the SelectorManager stops.
This allowed simplification of client code too.
2015-10-19 12:18:01 +02:00
Joakim Erdfelt
dde32787c4
Updating to version 9.3.6-SNAPSHOT
2015-10-12 15:47:37 -07:00
Joakim Erdfelt
29722bd880
Updating to version 9.3.5.v20151012
2015-10-12 15:10:39 -07:00
Simone Bordet
ccbd626cb2
479537 - Server preface sent after client preface reply.
...
Fixed by anticipating the onPreface() callback on server before
processing the client preface's SETTINGS frame.
2015-10-12 18:36:53 +02:00
Simone Bordet
3fd8a2e666
479537 - Server preface sent after client preface reply.
...
Fixed by anticipating the onPreface() callback on server before
processing the client preface's SETTINGS frame.
2015-10-12 17:52:19 +02:00
Joakim Erdfelt
2cce7510e1
Updating to 9.3.5-SNAPSHOT
2015-10-08 17:49:09 -07:00
Joakim Erdfelt
9cf0e34a1d
Updating to version 9.4.0-SNAPSHOT
2015-10-07 15:41:32 -07:00
Joakim Erdfelt
37296bec3c
Updating to version 9.3.4.v20151007
2015-10-07 14:58:38 -07:00
Simone Bordet
0ca40b59c6
479277 - HttpClient with HTTP/2 transport does not work for "https" URLs.
...
Fixed by reworking how ClientConnectionFactories are handled by both
HTTP2Client and by HttpClientTransportOverHTTP2, to avoid that the
latter wraps the nested factories with SslConnection twice.
2015-10-07 21:39:02 +02:00
Simone Bordet
0c9eba0485
478275 - Priority information in HEADERS frame is not sent.
...
Now the priority information present in HEADERS frame is correctly
generated and sent as part of the HEADERS frame.
2015-09-25 13:00:26 +02:00
Simone Bordet
d0bc20385a
477885 - Jetty HTTP2 client fails to connect with Netty server - HTTP2 client preface missing or corrupt.
...
Fixed by starting to read from the server only after having sent the
client preface.
2015-09-20 16:55:22 +02:00
Simone Bordet
edce119c0e
477270 - Add ability to send a single PRIORITY frame.
...
Also fixed the mistake of sending the stream id as the parent stream id.
2015-09-14 11:51:19 +02:00
Simone Bordet
dbd66b131b
Introduced a HeadersFrame constructor for HEADERS frames with
...
unspecified stream id, to be used when creating new frames.
2015-09-14 11:51:19 +02:00
Jesse McConnell
6409366499
[maven-release-plugin] prepare for next development iteration
2015-08-27 10:11:29 -05:00
Jesse McConnell
3086adc965
[maven-release-plugin] prepare release jetty-9.3.3.v20150827
2015-08-27 10:11:21 -05:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Greg Wilkins
a2e051c4e0
made StreamResetTest test less of a race
2015-02-13 16:15:08 +11:00
Greg Wilkins
4db654ad32
Organised http2 imports
2015-02-13 13:43:32 +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
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
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
cdd2b0a9d2
refacted SelectorManager to have a ManagedSelector
2014-12-17 16:29:24 +01:00
Greg Wilkins
7b41e78f74
Improved HttpChannelOverHTTP2 recycling
2014-12-05 08:36:51 +01: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
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
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
ef4e0a9e7c
Made the test more reliable.
2014-09-17 20:56:05 +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
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
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
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
Simone Bordet
20963c9c61
Refactored host and port to local variables.
2014-08-12 18:54:50 +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
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
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
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
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
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
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
Simone Bordet
35f0103add
Added HTTP2 tests for multiple requests.
2014-08-03 00:27:28 +02:00
Simone Bordet
87c4c5efd3
Updated to point to webtide.com, now HTTP/2 enabled.
2014-08-02 00:02:25 +02:00
Simone Bordet
51e4885911
Made HTTP2Client support SSL so that it can be used to test websites that serve HTTP2.
2014-08-01 19:03:29 +02:00
Simone Bordet
67fd213263
Moved http2.parser.ErrorCode to http2.ErrorCodes.
2014-08-01 15:03:49 +02:00
Greg Wilkins
30123607c6
Major refactor of metadata and HttpURI
...
This refactor strives to remove duplication between the Metadata class and the HttpURI class.
Both classes have been made mutable (as they partially were anyway so best not to pretend).
HttpURI now holds the decomposed strings rather than a single string with indexes. This allows it to be rebuilt after changing just parts of the URI. It is now a lot more similar to the
JVM URI class and we could consider replacing it (after checking peformance).
Next step is to refactor the Request class to prevent it duplicating these fields.
2014-07-24 15:49:52 +10:00
Greg Wilkins
f9ffefbe13
refactored to avoid copying MetaData.Request instances
2014-07-11 16:35:25 +10:00
Simone Bordet
603985dcd2
Implemented gentler shutdown in case of reading -1.
...
This allows big responses to be sent even if the request half closes
the connection.
2014-06-27 17:06:07 +02:00
Simone Bordet
f09b81835e
Improved handling of RST_STREAM frames.
2014-06-24 12:35:06 +02:00
Simone Bordet
4211653095
Fixed tests.
2014-06-18 16:09:52 +02:00
Greg Wilkins
beb5918c3c
fixed client
2014-06-18 13:59:02 +02:00
Simone Bordet
9d9260e634
Implemented idle timeout functionality for streams.
2014-06-18 13:57:37 +02:00
Simone Bordet
4dca6a71d3
Update Parser constructor to take additional parameters needed by
...
HpackDecoder.
2014-06-18 11:40:11 +02:00
Simone Bordet
9c95e29088
Implemented idle timeout functionality for both client and server.
2014-06-18 11:18:48 +02:00
Simone Bordet
82a2dfd03a
Fixed infinite loop when receiving a SETTINGS frame.
2014-06-17 18:51:09 +02:00
Simone Bordet
6d1e5c9a07
Fixed tests to make the generator and the parser have the same scope.
2014-06-17 11:04:32 +02:00
Simone Bordet
31b7f0a592
Fixed references to MetaData, that has been moved to the jetty-http module.
2014-06-17 09:28:50 +02:00
Simone Bordet
334db9fe72
Updated version to 9.3.0-SNAPSHOT.
2014-06-16 21:33:03 +02:00
Simone Bordet
a500701bda
Fixed notification of Session's promise upon connect: it must be
...
notified only after we have successfully sent the preface bytes.
2014-06-15 16:39:23 +02:00
Simone Bordet
18c3e395df
More flow control tests.
2014-06-13 23:03:49 +02:00
Simone Bordet
b3aa67e0a9
Implemented PING functionality.
2014-06-13 17:59:17 +02:00
Simone Bordet
388262227e
Split the generation of frames into 2: flow-controlled and
...
non-flow-controlled.
This gives better code separation and proper removal of streams when
flow controlled frames complete.
2014-06-13 16:28:54 +02:00
Simone Bordet
b30152df27
Removed generation of padding bytes, which simplified the code a lot.
...
Implemented slicing of flow controlled data to never exceed the flow
control window.
2014-06-13 14:08:56 +02:00
Simone Bordet
5ed4f312cd
Implemented flow control.
2014-06-13 13:51:42 +02:00
Simone Bordet
8e4c6b7fdd
Put some more flesh on the HTTP2 implementation.
2014-06-11 18:26:48 +02:00