Commit Graph

108 Commits

Author SHA1 Message Date
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
Joakim Erdfelt 8b7e64915f
Issue #4572 - Replace Jetty Logging with SLF4J
* Introducing jetty-slf4j-impl
* Make Jetty use org.slf4j
* Removed most of org.eclipse.jetty.util.log classes
* Left org.eclipse.jetty.util.log.Log and
       org.eclipse.jetty.util.log.Logger but as
  simple bridge classes that are deprecated
* Migrated code using org.eclipse.jetty.util.log.StacklessLogging
  to org.eclipse.jetty.logging.StacklessLogging found in
  the jetty-slf4j-impl
* Moved logging start modules from jetty-util to jetty-home
* Simplified logging start modules
* Updated code that was using StdErrLog directly
* Updating module-info.java for org.slf4j
* removing org.eclipse.jetty.util.log.class references
* jetty-start supports manually declared default provider
  + and we use it to default "logging" to the "logging-jetty" provider
* Cleaning up jetty-maven-plugin and IT testing for Logging
* Using old slf4j for it testing
* Updating compiler config to show Xlint:exports warnings
* Updating console-capture and logging-noop
* Adding slf4j bridge (capture) jetty modules
* Updates to jetty logging module locations
* Changing reference to slf4j dependent mod
* Process requested enabled modules in topological order
* Limiting inclusions in shaded jetty-start
  + Also adding note to jetty-util classes that are used by
    jetty-start
* Default logging level on baseline logging config is INFO (not DEBUG)
* Changing from system to server classes in logging
* Updating other modules to use new logging names

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-03-16 11:21:54 -05:00
Lachlan Roberts a0626adad5 javax websocket modules should not transitively export websocket-core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-12 16:21:07 +11:00
Lachlan 5fe202f29f
Issue #4548 - clean up websocket removing duplicated and unused classes (#4549)
Create new module websocket-util which contains implementation classes shared by websocket-jetty and websocket-javax. Many of these classes had to be changed as the javax and jetty versions of them differed slightly.

Also includes general cleanups, removed unused interfaces and classes, etc..
2020-02-18 21:43:54 +11:00
Lachlan 5bd4cee7c8
Fixes #4408 - fix issues with javax metadata and decoders (#4452)
Remove the metadata cache per endpoint class, to allow deployment of the same class with different EndpointConfig settings.

JavaxServerFrameHandlerFactory now matches for decoders before matching for basic onMessage signatures.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-13 13:49:10 +11:00
Simone Bordet 5f82e17d2f Issue #3578 - Adopt EPL-2.0 for Jetty-10.
WIP: updated copyright headers for Java files.

TODO: doc files and META-INF files inside jars.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-01-09 20:10:19 +01:00
Simone Bordet a5c99207fc Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'. 2020-01-07 17:02:40 +01:00
olivier lamy ff48fba585 happy new year
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-01-02 21:59:21 +01:00
Lachlan Roberts c98897315c Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4225-jpms_transitivity 2019-12-27 19:27:59 +11:00
Lachlan Roberts db0edf23de Update websocket artifact IDs
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-12-23 13:32:21 +11:00
Lachlan Roberts 78c57131ae update values for bundle-symbolic-name
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-12-20 16:21:34 +11:00
Lachlan Roberts bc21b354c7 Rename websocket modules and directories with new naming convention.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-12-20 15:41:55 +11:00