Commit Graph

45 Commits

Author SHA1 Message Date
Joakim Erdfelt 9c324326c5
Merge `release/12.0.0` back into `jetty-12.0.x` (#10237)
* Updating to version 12.0.0

* Updating to version 12.0.1-SNAPSHOT
2023-08-08 00:55:19 +02:00
Lachlan bd7d504c28
Issue #10135 - fix empty binary frame from websocket flush (#10175)
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-07-31 15:21:12 +02:00
Lachlan Roberts 867fe46e75 fix DemandState in WebSocketConnection
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-06-29 20:31:43 +10:00
Lachlan Roberts 48bfc70b2d use enum for DemandState in WebSocketConnection
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-06-29 08:04:18 +10:00
Lachlan Roberts c942a918d9 fixes for websocket demand changes
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-06-28 14:30:17 +10:00
Lachlan Roberts 0709946675 Issue #9965 - make multiple websocket demand throw ISE
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-06-27 14:09:41 +10:00
Lachlan Roberts 2b4e8960e6 #9945 - update javadoc to say demand() can throw ReadPendingException
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-06-27 13:51:22 +10:00
Lachlan Roberts 9e99a58ac4 Issue #9944 - remove integer from demand in websocket core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-06-22 09:08:29 +10:00
Lachlan Roberts 5d4fa756a0 Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-06-16 08:11:28 +10:00
Lachlan Roberts 48367f3baf Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-06-15 13:56:28 +10:00
Greg Wilkins 963d33111e
Jetty 12 idletimeout (#9905)
* IdleTimeout review

 + pass TimeoutException through all APIs
 + HttpConnection now passes on TimeoutException to HttpChannel.onFailure
* More ServerTests for idletimeout

* Recreated a ServerTimeoutsTest for multiple transports

* more robust tests

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* merged work from @sbordet and @gregw

* Various improvements to CyclicTimeouts.
* Improved reset of the earliest timeout before iteration.
* Removed check for getExpireNanoTime() == -1, since it's a valid value.
* When onExpired(Expirable) returns false, the Expirable should arrange to move its timeout in the future.

* fix keystore to please BoringSSL + use correct temp path

Signed-off-by: Ludovic Orban <lorban@bitronix.be>

* Fixed ErrorResponseAndCallback succeeded() and failed() to call super.failed() in all cases to complete the wrapped callback.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Revert "Fixed ErrorResponseAndCallback succeeded() and failed() to call super.failed() in all cases to complete the wrapped callback."

This reverts commit 5ac57c13e0.

* WIP idleTimeout

* WIP idleTimeout

* Added context wrapper for idle timeout listener

* updates from review

---------

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
2023-06-14 09:57:10 +02:00
Lachlan Roberts 152030de09 Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-05-22 18:05:21 +10:00
Greg Wilkins 068a60a868
Simplified QuotedStringTokenizer (#9729)
Simplified QuotedStringTokenizer #9729
* Now implements a simple subset of `quoted-string` from RFC9110
* introduced builder
* Extracted QuotedStringTokenizer interface and re-introduced the legacy implementation
* Re-introduced the ability to have unescaped \ in filenames
* Whitespace is Character.isWhiteSpace
* Disable test pending RFC8187
* No OWS around =
2023-05-18 08:25:53 +02:00
Lachlan Roberts 07c8c8a2cf Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2023-05-11 11:08:31 +10:00
Simone Bordet adf5754836
Fixes #9552 - Jetty 12 - Rewrite of the Jetty WebSocket APIs. (#9652)
* Removed unnecessary classes, among which `BatchMode`, `CloseStatus`, etc.
* Coalesced all listener interfaces into `Session.Listener`.
* Moved `RemoteEndpoint` functionality to `Session`.
* Renamed `WebSocketPolicy` to `Configurable`.
* Renamed `WriteCallback` to just `Callback`, as it is now also used for some listener methods.
* Renamed `@OnWebSocketConnect` to `@OnWebSocketOpen`
* Renamed `Session.Listener.onWebSocketConnect()` to `onWebSocketOpen()`.
* Removed `@WebSocket` annotation attributes, because they were just a subset of the configurable ones and they can be configured directly on the Session instance.
* Removed `Session.suspend()` and `SuspendToken`, and introduced `Session.demand()`.
* Introduced `@WebSocket.autoDemand` and `Session.Listener.AutoDemanding` to support automatic demand upon exit of WebSocket handler methods.
* Removed `FrameHandler.isAutoDemanding()` and `CoreSession.isAutoDemanding()`.
* Changed the responsibility of demand from `WebSocketCoreSession` to `FrameHandler`, which in turn may delegate to `MessageSink`.
* Updated MessageInputStream to fail if an exception is thrown by the application.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-05-02 16:42:40 +02:00
Greg Wilkins 8636666eec
Jetty 12 - Remove ISO-8859-1 fallback decoding during UTF-8 decoding (#9507)
* Deleted the Ut8fStringBuffer and Utf8Appendable classes in favour of just having Utf8StringBuilder
* Simplified the Utf8StringBuilder and CharsetStringBuilder APIs and improved their exception throwing.
* Allow for replacement characters without throwing

---------

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Signed-off-by: gregw <gregw@webtide.com>
Co-authored-by: Lachlan Roberts <lachlan@webtide.com>
Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2023-04-04 10:57:07 +02:00
Simone Bordet 0009ac4a91
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-03-28 20:23:53 +02:00
Simone Bordet f532be828f
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-03-28 20:22:56 +02:00
Lachlan Roberts 05fb8127d9 remove osgi internal imports for websocket-core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-17 11:41:03 +11:00
Lachlan Roberts 229b300f22 rename WebSocketUtil to WebSocketUtils
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-17 11:37:01 +11:00
Lachlan Roberts eb493f1b9d make WebSocketCoreSession public & other fixes
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-17 11:33:02 +11:00
Lachlan Roberts 0742202ce2 remove setClassLoader from CoreSession interface
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-16 13:16:00 +11:00
Lachlan Roberts 43718f3e52 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-websocket-JPMS 2023-02-15 17:12:59 +11:00
gregw a15af55a56 Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x
Signed-off-by: gregw <gregw@webtide.com>
2023-02-15 15:31:33 +11:00
Lachlan Roberts ce270cf34b fix remaining JPMS issues in websocket-core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-14 17:25:15 +11:00
Lachlan Roberts 1d8e13220a resolve JPMS issues with CoreSession and WebSocketCoreSession
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-14 15:34:53 +11:00
Lachlan Roberts cc40a545dc move websocket-core-common messages and util packages out of internal
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-14 09:43:25 +11:00
Lachlan Roberts 2d11517dd6 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-websocket-autodemanding 2023-02-09 18:22:49 +11:00
Lachlan Roberts 5e72c568d0 #9328 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-09 18:20:37 +11:00
Lachlan 3ed9302c0f
Merge pull request #9235 from eclipse/jetty-12.0.x-9233-core-common-util-cleanup
Issue #9233 - cleanup of websocket-core-common util package
2023-02-09 15:52:21 +11:00
Lachlan Roberts d2dcbeba5b Issue #8991 - rename websocket isDemanding() method to isAutoDemanding()
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-08 14:18:02 +11:00
Simone Bordet 5cc07994c0
Issue #9300 - Rename RetainableByteBufferPool to ByteBufferPool
ArrayRetainableByteBufferPool -> ArrayByteBufferPool.
Updated field names.
Updates tests.
Updated *.mod files to not reference RetainableByteBufferPool.
Updated javadocs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-02-06 10:31:14 +01:00
Christian Kohlschütter b8ab66fd1d Rename RetainableByteBufferPool to ByteBufferPool
With issue #9166, ByteBufferPool was removed and replaced by
RetainableByteBufferPool. Since ByteBufferPool was used by
AbstractConnector, this change broke backwards compatibility with
third-party connectors such as junixsocket-jetty.

Since there's no longer any other ByteBufferPool, rename the
RetainableByteBufferPool interface, and thereby not only reinstate
compatibility with existing third-party libraries but also save a few
keystrokes.

https://github.com/eclipse/jetty.project/issues/9284

Signed-off-by: Christian Kohlschütter <christian@kohlschutter.com>
2023-02-04 23:39:29 +01:00
Lachlan Roberts c9004ee68c restore the resolveGenericRef with Class
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-02-01 11:27:49 +11:00
Lachlan Roberts 4933ba9aec cleanups of websocket-core-common util package
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-01-31 20:34:02 +11:00
Lachlan Roberts 9113624ab4 cleanups of websocket-core-common util package
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-01-31 20:26:09 +11:00
Lachlan Roberts 96fc36ca64 fix some jpms issues for websocket-core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2023-01-31 20:09:51 +11:00
Simone Bordet cd732a175c
Review and normalized all Maven module <name> for consistency.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-01-27 19:09:30 +01:00
Simone Bordet ded18f523d
Fixes #9166 - Jetty 12: review/remove ByteBufferPool (#9195)
* Fixes #9166 - Jetty 12: review/remove ByteBufferPool

* Replaced usages of ByteBufferPool with RetainableByteBufferPool.
* Removed ByteBufferPool and related classes.
* Renamed oej.http2.frames.DataFrame.getData() -> getByteBuffer() for consistency.
* Removed Accumulator.acquire(), and updated code to use RetainableByteBufferPool.acquire() instead.
* Fixed HttpOutput callbacks to correctly call super.onCompleteSuccess() and super.onCompleteFailure().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-01-27 13:40:49 +01:00
Joakim Erdfelt a37b8523e5
Jetty 12 - Javadoc cleanup & new inspection profile (#9165)
* Adding intellij-javadoc-inspection.xml for Jetty specific Javadoc inspection profile.
* Javadoc cleanup
2023-01-19 10:31:27 -06:00
Simone Bordet ebbdda61bc
Replaced try/catch with MathUtils.cappedAdd().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-01-03 18:56:50 +01:00
Joakim Erdfelt 2d9c735d63
Merge remote-tracking branch 'origin/jetty-11.0.x' into jetty-12.0.x 2022-12-06 14:38:53 -06:00
Simone Bordet 76ca392917
Merged branch 'jetty-11.0.x' into 'jetty-12.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-10-22 15:11:26 +02:00
Lachlan Roberts 82618073d5 PR #8413 - move wrapped req/resp attributes into WebSocketConstants
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-08-17 16:41:23 +10:00
Simone Bordet 1eea480764
Jetty 12 module renaming - jetty-websocket.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-08-12 09:33:31 +02:00