Commit Graph

1340 Commits

Author SHA1 Message Date
Ludovic Orban 814dc69803 Get rid of addContent() by making produceContent() return Content instead.
Make EOF and errors be special content.
Transition to a much simplified FSM by using the needContent() / produceContent() model.
Implement blocking on top of async, this way there is only one FSM.
(Milestone 6)

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-11-03 17:30:25 +01:00
Ludovic Orban a4258ec9c0 Merge all HttpInput* impls into a single class, push all differences to HttpChannel* impls (Milestone 5)
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-11-03 17:30:25 +01:00
Ludovic Orban d0f04a8eae addContent now returns void (Milestone 4)
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-11-03 17:30:25 +01:00
Ludovic Orban 946f334810 http2 impl (Milestone 2)
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-11-03 17:30:25 +01:00
olivier lamy 651f23ee25 Merge branch 'jetty-9.4.x' into jetty-10.0.x 2020-10-28 12:12:07 +10:00
Olivier Lamy 47885f7ecb
Jetty 9.4.x h2spec-maven-plugin now check if docker is available (new version fixing issues with generated junit file) (#5497)
* skip h2spec if no docker available

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* active snapshot-repositories for jenkins build

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* h2spec plugin 1.0.1

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* new snapshot to debug jenkins

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* simplify build to ease debug

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* force snapshot download:

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* use h2spec release 1.0.2

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* remove commented sections

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* no need of this profile

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* profile not needed anymore

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-10-28 12:07:49 +10:00
Joakim Erdfelt e726eefb0b Updating to version 9.4.34-SNAPSHOT 2020-10-20 18:55:39 -05:00
Joakim Erdfelt 1be6875565 Updating to version 9.4.33.v20201020 2020-10-20 18:28:51 -05:00
Simone Bordet a949afef64 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-10-19 18:24:38 +02:00
Simone Bordet 8de2fbce49 Code cleanup, merging streams[Opened|Closed] from subclasses into HTTP2Session.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-10-18 13:01:40 +02:00
Joakim Erdfelt 1e9c736692
Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-10-16 17:51:32 -05:00
Joakim Erdfelt e6fb4c3ac4 More fixes to allow project to build on Windows 10 2020-10-16 16:45:25 -05:00
Joakim Erdfelt 07d35d32ae Fixing windows build/test issues. 2020-10-16 15:39:38 -05:00
Lachlan Roberts 5800f4605f Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-10-16 15:37:24 +11:00
Simone Bordet c73ad40511 Code cleanup.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-10-15 15:41:57 +02:00
Joakim Erdfelt 85e257fc98 Updating to version 9.4.33-SNAPSHOT 2020-09-30 11:53:09 -05:00
Joakim Erdfelt de97d26f7b Updating to version 9.4.32.v20200930 2020-09-30 11:03:24 -05:00
Joakim Erdfelt cc7ad29a91
Fixing bad merge: synchronized to AutoLock
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-09-30 09:46:21 -05:00
Simone Bordet c2df8c172b Improvements to the Jetty documentation.
Ported the HTTP/2 documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-30 10:37:46 +02:00
gregw b7a4c36286 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: gregw <gregw@webtide.com>
2020-09-16 18:31:51 +02:00
Ludovic Orban a37ab389aa
increase the connector's idle timeout to make sure the idle timeout does not fire spuriously. (#5281)
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-09-16 16:14:11 +02:00
Greg Wilkins 780e1207c7
Issue #5254 List/Show modules (#5257)
* Issue #5254 List/Show modules

 * simplified --list-modules output
 * added --show-module

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* improve module descriptions

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-09-14 18:07:16 +02:00
Olivier Lamy ccab123f20 h2s spec maven plugin 1.0.0 with h2spec 2.6.0 (#5231)
* use our fork of h2spec-maven-plugin and upgrade version

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-09-14 21:07:53 +10:00
Olivier Lamy 3849a9118f
h2s spec maven plugin 1.0.0 with h2spec 2.6.0 (#5231)
* use our fork of h2spec-maven-plugin and upgrade version

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* add a profile to run spec server

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* use h2spec plugin new version

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* version h2spec 1.0.0

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* exclude specs we know not working

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* use our own package name

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* test no exclusion

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* restore known failure

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* h2spec maven plugin version 1.0.0

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* change default port for manual testing

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-09-14 21:01:10 +10:00
Simone Bordet f40efbf6de Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-09-10 13:38:50 +02:00
Simone Bordet 892a715bea Small javadocs fixes.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-10 13:35:06 +02:00
Simone Bordet b997410845 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-09-10 13:26:15 +02:00
Simone Bordet f81bf7f945
Fixes #3766 - Introduce HTTP/2 API to batch frames. (#5222)
* Fixes #3766 - Introduce HTTP/2 API to batch frames.

Introduced Stream.FrameList to hold HEADERS+DATA+HEADERS frames.
These are often used by the client and by the server when the
request/response content is known and FrameList will allow to
send them in a single TCP write, rather than multiple ones.

Rewritten HttpSenderOverHTTP2.sendHeaders() and
HttpTransportOverHTTP2.sendHeaders() to take advantage of
FrameList.

Now using ConcurrentHashMap as a client context, because
with DEBUG logging enabled it may be access concurrently.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-10 10:13:14 +02:00
Simone Bordet 3f0b1573ec Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-09-02 17:45:45 +02:00
Simone Bordet 1e90d13127 Fixes #5103 - Proxy sets protocol version to 2.0 instead of 1.1 when accessed from H2 client.
Fixed by removing the explicit version copy.
Leaving it at default would make the client transport
decide the version based on the transport protocol it uses.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-02 16:39:02 +02:00
Simone Bordet 30303c7979 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-08-25 16:15:33 +02:00
Jan Bartel 77779ed6d8
Issue #4996 - Regularlize logging (#5167)
* Issue #4996 Regularize logging

Signed-off-by: Jan Bartel <janb@webtide.com>

Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-08-24 17:15:13 +02:00
Simone Bordet 0af5f676cd Issue #5147 - HTTP2 RoundRobinConnectionPool with maxUsage
Reworked HTTP/2 release after an exchange is terminated.

Previously, the release was bound to 2 events: onStreamClosed(),
introduced for #2796, and exchangeTerminated().
Unfortunately, if the former happens before the latter and
closes the connection, the latter will see the exchange as
aborted, while in fact it was successful, causing what
reported in #5147, an AsynchronousCloseException.

Now, the release is always performed by the exchangeTerminated()
event. With respect to #2796, the stream is always already
closed by the time the exchangeTerminated() event fires (it
was not before).

Reworked the implementation of RoundRobinConnectionPool using
a lock and aggressively trying to open new connections.

A second fix is related to HttpDestination.release(Connection).
If the connection is closed for e.g. overuse, we need to trigger
the processing of queued requests via send(create: true).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-08-22 22:10:08 +02:00
olivier lamy c198d26e6b Updating to version 10.0.0-SNAPSHOT 2020-08-11 16:47:55 +08:00
olivier lamy 429b091578 Updating to version 10.0.0.beta1 2020-08-11 16:47:54 +08:00
Simone Bordet c49035570e Merged branch 'jetty-10.0.x' into 'jetty-10.0.x-convert_synchronized_to_autolock'. 2020-08-04 16:32:55 +02:00
Simone Bordet 2fe01626a5 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-07-31 17:47:37 +02:00
Ludovic Orban e9dad975e6 Re-implement HTTP connection pooling with a non-queuing algorithm
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-07-31 10:36:43 +02:00
Simone Bordet 089e51f0bc Fixes #5083 - Convert synchronized usages to AutoLock.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-29 15:34:01 +02:00
Simone Bordet 8d69fc41a7 Fixes #5083 - Convert synchronized usages to AutoLock.
* Replaced relevant usages of synchronized with AutoLock.
* Made AutoLock serializable since classes that use it may be stored in the HttpSession.
* Added convenience methods to AutoLock to execute lambdas with the lock held.
* Introduced AutoLock.WithCondition to use a Lock and a Condition together.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-27 23:14:05 +02:00
Simone Bordet a33b0e290e Avoid using a protected Logger instance.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-27 16:05:03 +02:00
Joakim Erdfelt fe9deae849 Updating to version 9.4.32-SNAPSHOT 2020-07-23 13:53:47 -05:00
Joakim Erdfelt 450ba27947 Updating to version 9.4.31.v20200723 2020-07-23 12:46:54 -05:00
Lachlan Roberts c09e4d6f86 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-16 08:46:29 +10:00
Lachlan Roberts de1b6745c5 the DO NOT EDIT comment in .mod files should start with '#'
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-15 16:47:22 +10:00
olivier lamy eefe3d202b revert fail release
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-07-10 15:04:22 +10:00
olivier lamy 9619a5a743 Updating to version 10.0.0.beta1 2020-07-10 14:23:28 +10:00
Simone Bordet 113595254b Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-07-09 16:19:24 +02:00
Simone Bordet 94956d6e8b Issue #4904 - WebsocketClient creates more connections than needed.
Fixed MaxConcurrentStreamsTest - it was always broken.
The problem was that the call to super.onSettings(...) was done
_after_ sending the request, so the connection pool was still
configured with the default maxMultiplex=1024.

Also fixed AbstractConnectionPool to avoid a second call to
activate() if we are not trying to create a new connection.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-09 16:18:15 +02:00
olivier lamy aaeffb719e Updating to version 10.0.0-SNAPSHOT 2020-07-09 12:25:34 +10:00