Commit Graph

112 Commits

Author SHA1 Message Date
Joakim Erdfelt 9319f10425 Updating to version 10.0.1-SNAPSHOT 2020-12-02 15:30:13 -06:00
Joakim Erdfelt b9645a1737 Updating to version 10.0.0 2020-12-02 15:04:53 -06:00
Lachlan 121d898517
Move websocket-util classes into websocket-core (#5705)
- Merge websocket-util classes into websocket-core
- rename websocket-util-server to websocket-servlet
- remove websocket-util

* merge websocket-util into websocket-core-common
* move websocket-util-server implementation to websocket-core-server
* rename websocket-util-server to websocket-servlet
* Negotiator should not need the WebSocketComponents, give this to handshaker instead
* fix tests and WebSocketConfigurations
* move exception classes in websocket-core-common
* move MessageSinks and util to internal package
* create internal package for websocket-core-client
* fix JPMS warnings for websocket common modules
* Fixed exports declarations to make MethodHandles.publicLookup() working properly.
* fix broken tests with wrong WebSocketUpgradeFilter package name
* remove -T3 option to not have parallel build
* no need of jacoco here
* do no reuse forks
* remove logback dependency and disable debug log level
* make this test dynamic instead of hardcoded version...
* use -fae
* change websocket-servlet bundle symbolic name
* cleanup changes
* restore bugs....
* Updates after review.

Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: olivier lamy <oliver.lamy@gmail.com>
2020-12-02 11:10:15 +11:00
Lachlan Roberts e4502865b7 use WebSocketClient instead of NetworkFuzzer in the primitive echo tests
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-26 15:37:36 +11:00
Lachlan Roberts 3b22c6bc66 fix broken test: AltFilterTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-16 15:57:28 +11:00
Lachlan Roberts 6dad0b1b7e rename WebSocketMapping to WebSocketMappings
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-14 10:46:09 +11:00
Lachlan Roberts f857ac9756 fix failures from incorrectly configured WebSocketUpgradeFilters
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-04 15:13:59 +11:00
Lachlan Roberts 792531d124 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-10-16 17:08:01 +11:00
Joakim Erdfelt 857e888e8b
Issue #5401 - Move HttpTester to jetty-http
+ leaving jetty-http-tools alone

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-10-07 14:50:31 -05:00
Lachlan Roberts 14e6bd196e update javadoc for JDK MethodHandles bug tests, stop stacktrace in DistributionTests
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-09-14 17:28:57 +10:00
Simone Bordet 466ec0c2d5 Disabled tests broken in Java 15 due to a JVM bug.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-09-02 18:52:10 +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
Lachlan Roberts de1077c375 Fix WebSocketServerExamplesTest to work with surefire update
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-13 22:04:56 +10: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
Lachlan Roberts 9027e17095 Issue #5044 - rename the ClientUpgradeRequest to CoreClientUpgradeRequest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-30 12:51:42 +10:00
Lachlan Roberts e13d26ab45 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4919-WebSocketContainerStop
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-24 13:39:07 +10:00
Lachlan Roberts 695d239ac5 Issue #4919 - all websocket containers to implement Graceful shutdown interface
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-23 00:09:43 +10:00
Lachlan Roberts 9f7f2e3e56 WebSocket server now only closes gracefully if the Server stopTimeout is set
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-20 15:49:15 +10:00
Lachlan Roberts 0818f54be8 cleanup the ws javax EchoSocket test class
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-20 15:32:46 +10:00
Lachlan Roberts c94e82470d Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4919-WebSocketContainerStop 2020-07-17 15:32:10 +10:00
Lachlan Roberts 0a30525653 Issue #5043 - allow WebSocketListener / Endpoint anonymous classes to be used
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-16 12:44:54 +10:00
Lachlan Roberts 00777fe05a Issue #5043 - add testing for WebSocketListener / Endpoint as anonymous classes
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-16 12:21:03 +10:00
Simone Bordet 7b05567b52 Issue #4808 - Review HttpClient Request header APIs.
For some reason, Request.getHeaders() returned HttpFields,
but HttpRequest.getHeaders() returned HttpFields.Mutable,
and it was obviously wrong.

Fixed WebSocket code that was relying on this API error.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-13 16:44:07 +02: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
olivier lamy aaeffb719e Updating to version 10.0.0-SNAPSHOT 2020-07-09 12:25:34 +10:00
olivier lamy 23c99ffdbe Updating to version 10.0.0.beta1 2020-07-09 11:20:55 +10:00
Lachlan Roberts 32b29a3ced fix DecoderListsTest and cleanup code
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-30 11:18:36 +10:00
Lachlan Roberts acf47624a3 Issue #3428 - make AvailableDecoders only allow registration through EndpointConfig
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-29 19:01:00 +10:00
Lachlan Roberts eb01603abb Issue #3428 - improve testing and ensure decoders are registered in correct order
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-29 18:41:54 +10:00
Lachlan Roberts 35e82c85ff Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3428-decoderLists 2020-06-29 11:33:03 +10:00
Lachlan Roberts 22d5321628 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-06-23 10:04:58 +10:00
Lachlan Roberts ed9c60fc90 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4919-WebSocketContainerStop
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-16 18:57:40 +10:00
olivier lamy 25c54668f4 fix license header
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-13 20:43:21 +10:00
Joakim Erdfelt 6795f3915f
Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-06-12 12:04:50 -05:00
Lachlan Roberts bebe6fd138 Issue #4919 - always stop SessionTracker before closing connections
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-02 15:37:55 +10:00
Lachlan Roberts 753c8be6eb Issue #4919 - test graceful stop for jetty and javax ws containers
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-02 15:32:36 +10:00
Lachlan Roberts f2dec1946d Issue #4903 - give better errors for non public javax.websocket endpoints jetty-10
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-28 12:25:47 +10:00
Lachlan Roberts 1690f69f36 Issue #3428 - improve testing & warn if no decoder accepts message
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-28 10:21:28 +10:00
Lachlan Roberts 9475662451 Issue #3428 - add validation checks when adding decoders
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-21 18:44:46 +10:00
Lachlan Roberts 8e554c7d13 Issue #3428 - fix decoder list matching to get test working
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-21 08:52:01 +10:00
Lachlan Roberts 4b19c19815 Issue #3428 - Initial refactor to support javax websocket decoderLists
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-19 22:45:37 +10:00
Simone Bordet 0018c298dc
Merge pull request #4845 from eclipse/jetty-10.0.x-4808-review_httpclient_header_api
Fixes #4808 - Review HttpClient Request header APIs.
2020-05-08 17:52:51 +02:00
Lachlan 2e1c01ac8c
Merge pull request #4723 from eclipse/jetty-10.0.x-WebSocketServlet
Issue #4722 - remove websocket-servlet
2020-05-07 22:45:04 +10:00
Simone Bordet cf9df70935 Fixes #4808 - Review HttpClient Request header APIs.
Introduced:
* Request Request.headers(Consumer<HttpFields.Mutable>).
This allows applications to modify the headers, and chain calls.
It also delegates the precise semantic of put/add/remove/clear to HttpFields, so there is no API duplication.
* HttpRequest.header(HttpField) to efficiently add fields while normalizing the request (only used in implementation).

* HttpResponse.header(HttpField) to efficiently add fields while parsing the response (only used in implementation).
This pairs with HttpResponse.trailer(HttpField).
* HttpResponse.headers(Consumer<HttpFields.Mutable>) to modify the fields after they have been populated (only used in tests).

Removed:
* Request.[set,add,put,remove], replaced by headers(Consumer<HttpFields.Mutable>).

Deprecated:
* Request.header(String, String)
* Request.header(HttpHeader, String)
Both replaced by headers(Consumer<HttpFields.Mutable>) with clearer semantic for add/put/remove.

All the rest is code cleanup to remove the usage of the deprecated header() methods.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-05-04 23:16:59 +02:00
Lachlan Roberts e5cca92199 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-WebSocketServlet
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-01 15:46:03 +10:00
Lachlan Roberts b0e57ffd6d Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-LinkageErrorInvestigation 2020-04-29 22:52:33 +10:00
Lachlan Roberts bf5d4ea554 Issue #4800 - Revert MethodHandle changes & update DistributionTests
- It seems it is correct to use the `MethodHandles.publicLookup().in()`
but this does not work if same webapp is deployed twice, so the
MethodHandle changes have been reverted and the test has been disabled
until a resolution to https://bugs.openjdk.java.net/browse/JDK-8244090.

- The DistributionTest has been changed to properly reproduce the issue.
There must be a class in the signature of the websocket endpoint which
is available to both webapps and the client must send and receive an echo
message to ensure that the onOpen MethodHandle is actually invoked.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-04-29 22:52:26 +10:00
Greg Wilkins 8c7e34f37d
Jetty 10.0.x immutable meta data (#4777)
Made HttpURI, HttpFields and MetaData immutable.  The first two follow the same builder pattern and MetaData is constructor injection only.

* Immutable version of HttpFields

Preserve API and usage of HttpFields class while providing a read only interface and immutable implementation.

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

* Immutable version of HttpFields

Use an ArrayList in HttpFields. While slightly slower than the array, it will mostly be used as a builder pattern for an Immutable

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

* Immutable version of HttpFields

Fixed exception type.

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

* Immutable version of HttpFields

asImmutable method

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

* Immutable MetaData

Made HttpURIU immutable with a builder pattern.
MetaData immutable and working within http module.

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

* Immutable MetaData

Fixes from review

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

* Immutable MetaData

Passing tests upto and including jetty-server

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

* Immutable MetaData

Cleanup of HttpURI.Builder API as suggested in PR.

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

* Immutable MetaData

Added builder for MetaData.Request

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

* Immutable MetaData

more api fixes

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

* Immutable MetaData

WIP making HttpFiels itself immutable.  Currently working up to jetty-servlet.

Need to consider if content-length really is meta data and how much and when can we trust it.

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

* Immutable MetaData

WIP

Need to consider if content-length really is meta data and how much and when can we trust it. Also need to consider difference between h2 and h1 authority in metadata.

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

* Immutable MetaData WIP

jetty-client and jetty-servlet passing tests.

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

* Immutable MetaData WIP

Better align the style of immutability between `HttpFields` and `HttpURI`.
They both now have static build() and from() methods, plus Builder and Immutable implementations.
Potentially `Builder` could be renamed as `Mutable`

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

* Immutable MetaData WIP

http2-server tests passed

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

* Immutable MetaData WIP

http2-client tests passed

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

* Immutable MetaData WIP

cleann build?

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

* Immutable MetaData WIP

fix

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

* Immutable MetaData WIP

more test fixes

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

* Immutable MetaData WIP

Cleanups, mostly using EMPTY when appropriate.

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

* Immutable MetaData WIP

Cleanups, use immutable

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

* Immutable MetaData WIP

No trailers for connect

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

* Immutable MetaData WIP

Fix CONNECT path handling

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

* Immutable MetaData WIP

fixed rewrite query handling

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

* Immutable MetaData WIP

rename Builders to Muttables

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

* Immutable MetaData WIP

misc cleanups

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

* Immutable MetaData WIP

Revert to using arrays due to garbage generated by streams and iterators (12% of a simple benchmark!).
Even if this garbage is an artifact of the JIT being disabled by observation, it can hide other allocations, so best to just use simple arrays!

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

* Immutable MetaData WIP

More optimizations and better test coverage.

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

* Immutable Metadata

various cleanups

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

* Immutable MetaData WIP

More optimizations

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

* Immutable MetaData WIP

review changes

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

* Immutable MetaData WIP

changes after review:
 + less usage of Mutable
 + more usage of EMPTY
 + restored fragment handling

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

* Immutable MetaData WIP

changes after review:
 + less usage of Mutable
 + less usage of asImmutable

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

* Immutable MetaData WIP

changes after review:
 + less usage of Mutable

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

* Immutable MetaData

changes after review:
 + better handling of URI in ContextHandler

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

* Immutable MetaData

changes after review:
 + downcast in test to access mutable response headers.

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

* Immutable MetaData

changes after review:
 + use put instead of add for one time headers

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

* private

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2020-04-28 13:36:44 +02:00