Commit Graph

61 Commits

Author SHA1 Message Date
Lachlan d9eefc9231
Merge pull request #5840 from eclipse/jetty-10.0.x-5832-WebSocketShutdownThread
Issue #5832 - shutdown Javax WSClientContainer with webapp if possible.
2021-03-01 16:00:15 +11:00
Joakim Erdfelt 9effce7558
Merge remote-tracking branch 'origin/release-10.0.1' into jetty-10.0.x 2021-02-22 11:17:22 -06:00
Lachlan Roberts 47f24db0be Issue #5832 - Improve testing for WebSocket client shutdown.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-22 21:12:57 +11:00
Lachlan Roberts ed86361581 Revert changes to ServletContainerInitializer
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-22 10:03:43 +11:00
Lachlan Roberts 7760d04a87 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-5832-WebSocketShutdownThread
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-22 09:53:31 +11:00
Joakim Erdfelt 8ed8dc62e3 Updating to version 10.0.2-SNAPSHOT 2021-02-19 13:06:42 -06:00
Joakim Erdfelt d0bfd9145d Updating to version 10.0.1 2021-02-19 12:43:50 -06:00
Lachlan Roberts cee44ff642 JavaxWebSocketClientContainerProvider getContainer should remain protected.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-19 19:56:36 +11:00
Lachlan Roberts b69f470304 Issue #5828 - only use the HttpClient constructor for JavaxWebSocketClientContainer
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-15 15:32:18 +11:00
Lachlan Roberts 0e4ed5c7b1 Issue #5828 - cleanups from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-15 15:13:02 +11:00
Lachlan Roberts 805d6efedd Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-5828-JavaxWebSocketHttpClient 2021-02-08 17:54:49 +11:00
Joakim Erdfelt e81c847998
Happy New Year 2021 (Jetty 10 edition)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-01-21 15:05:57 -06:00
Lachlan Roberts c6c1ccfdd0 Rename JavaxWebSocketClientContainer.initialize to setShutdownContainer.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-20 17:00:33 +11:00
Lachlan Roberts 99aef1a2c0 Issue #5832 - fix bugs when stopping the JavaxWebSocketClientContainer
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-18 23:50:20 +11:00
Lachlan Roberts a60ecfa4cc Issue #5832 - fix bugs when stopping the JavaxWebSocketClientContainer
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-18 23:23:35 +11:00
Lachlan Roberts 29f185931e Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-5832-WebSocketShutdownThread 2021-01-18 16:01:18 +11:00
Lachlan Roberts 2f6176661a improve testing for JavaxWebSocketClientContainer shutdown
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-14 14:38:12 +11:00
Lachlan Roberts 35051dfde5 Issue #5832 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-13 17:54:30 +11:00
Lachlan Roberts 774dac66a2 Allow shutdown of Javax WS Client Container though a SCI
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-08 22:56:44 +11:00
Lachlan Roberts 69facceec3 Issue #5850 - set the UpgradeRequest in the Javax FrameHandlerFactory
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-04 16:11:28 +11:00
Lachlan Roberts 3286f9a454 Issue #5832 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-24 13:59:45 +11:00
Lachlan Roberts 7a72a6ac64 Issue #5828 - allow HttpClient to be used with JavaxWebSocketClientContainerProvider
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-23 17:14:12 +11:00
Lachlan Roberts dd1d4bc1ca Issue #5832 - use lifeCycleStopping as lifeCycleStopped is never called
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-23 11:45:09 +11:00
Lachlan Roberts 25f8c65539 Issue #5832 - shutdown WSClientContainer with ContextHandler if possible
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-23 11:36:18 +11:00
Lachlan Roberts 374e02cbc3 register ShutdownThread in doStart
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-22 15:53:10 +11:00
Lachlan Roberts 97bbec7ac0 Issue #5832 - deregister ShutdownThread for WebSocketClientContainer
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-22 11:25:37 +11:00
Olivier Lamy 06df421b56
Remove javax.* dependencies (#5776)
remove non needed enforcer rule in websocket poms
force search transitive

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-12-22 08:17:16 +10:00
Joakim Erdfelt f0badc5c5e
Issue #5784 - Fixing source header text: EPL-2.0 OR Apache-2.0
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-12-10 16:04:50 -06:00
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
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 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
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 2c1c25d5a7 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3428-decoderLists 2020-05-28 10:29:53 +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
Lachlan Roberts 11d14a65b4 Issue #2173 & #2174 - Split websocket-core into client/server/common modules
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-12 15:10:44 +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
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
Lachlan Roberts 64beae3382 Issue #4800 - test both cases individually
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-04-24 20:16:19 +10:00
Lachlan Roberts fb85c71f8d Issue #4800 - invalid PathParam types should be reported at Deployment
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-04-24 17:11:23 +10:00
Lachlan Roberts 3d40e0e25d Issue #4747 - correctly copy headers in websocket JsrUpgradeListener
Headers with the same name may not have been copied properly for
header values inspected and modified with a Configurator.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-04-07 15:06:25 +10:00
Lachlan Roberts 625dfd1a4d Issue #4747 - Fix WS path params to work within a context path
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-04-07 12:18:29 +10:00
Lachlan Roberts e050160101 Merge branch jetty-10.0.x into jetty-10.0.x-WebSocket-JPMS
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-17 11:07:29 +11:00