Commit Graph

92 Commits

Author SHA1 Message Date
Lachlan 0a78b9845d
Merge pull request #6657 from eclipse/jetty-10.0.x-6642-WebSocketConnectionHeaders
Issue #6642 - WebSocket handling of Connection: upgrade,close.
2021-08-31 14:25:47 +10:00
Joakim Erdfelt c5a33e27d2
Issue #5684 - Windows test overhaul (#6581)
Issue #5684 - Window's test overhaul

+ Migrate from @DisabledOnOs(WINDOWS) to assumptions on capabilities instead.
+ Fix other outstanding windows testing issues.
+ Cleanup FileBufferedResponseHandlerTest expectations on Windows.
+ PathWatcher scan interval is variable on windows
+ If unable to start testcase based on assumption,
  the stop shouldn't fail testcase
+ Increase various wait timeouts
+ Make tests less strict due to system speed issues
+ Disable Sni tests due to TLS behaviors differences in Windows
  + Windows TLSv1.3 seems to introduce this difference
  + If we restrict to TLSv1.2 this passes.
  + On Linux TLSv.13 on client side will always return a
  + javax.net.ssl.SSLHandshakeException in those test cases that expect it.
  + However, on Windows, Only the TLSv1.2 implementation will return a javax.net.ssl.SSLHandshakeException,
  + All other TLS versions on Windows will result in a
  + javax.net.ssl.SSLException: Software caused connection abort: recv failed
+ Disable ConcurrentStreamCreationTest
  + Not possible to create all of these streams.
+ Fixing DeploymentTempDirTest
  + Using unique workdir per testcase.
  + Don't expect to delete files / directories between tests
    (not supported on windows due to file locking anyway)
 + Fixing line ending difference on windows
 + InvalidPathException is a 404 Not Found
 + Cannot reuse test directory between runs due to memory mapped files that are still in use from previous run.
 + java.nio.file.FileSystemException: C:\code\jetty.project\jetty-webapp\target\tests\welcome#\index.html: The requested operation cannot be performed on a file with a user-mapped section open.

	at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
	at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:235)
	at java.base/java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:478)
	at java.base/java.nio.file.Files.newOutputStream(Files.java:220)
	at org.eclipse.jetty.webapp/org.eclipse.jetty.webapp.WebAppDefaultServletTest.prepareServer(WebAppDefaultServletTest.java:84)

 + As is typical on windows, we are often unable to delete a file due to file locking issues.
 + Use a unique resource base between tests.
   This is to avoid file locking behaviors that prevent the
   resource base from being reused too quickly on windows.
 + Prevent test run if symlinks not supported
 + Allowing for Windows slosh char as well in asserts
 + SelectorUtils is File.separator dependent
 + Regex is now FS.separator independent
 + Using SelectorUtils from plexus correctly for include/exclude
 + Turning off mapped files for testing reasons.
 + Fix and re-enable RFC2616NIOHttpsTest
 + Issue #6552 - Fix test failures due to slf4j dep
 + Issue #6552 - upgrade testcontainers
 + Issue #6552 - move to assumption based docker existence
 + Issue #6552 - Fix enforcer rule violation on jna.
  Addresses the following side effect of upgrading testcontainers.

[WARNING] Rule 3: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps failed with message:
Failed while enforcing RequireUpperBoundDeps. The error(s) are [
Require upper bound dependencies error for net.java.dev.jna:jna:5.6.0 paths to dependency are:
+-org.eclipse.jetty:infinispan-remote-query:10.0.7-SNAPSHOT
  +-org.testcontainers:testcontainers:1.16.0
    +-com.github.docker-java:docker-java-transport-zerodep:3.2.11
      +-net.java.dev.jna:jna:5.6.0 (managed) <-- net.java.dev.jna:jna:5.8.0

 + use annotation to disable test when docker not available and needed
 + Disabling FileSessionDistributionTests.stopRestartWebappTestSessionContentSaved on Windows
 + Using TLS basic
 + Programmatic removal of memory mapped behavior during testing
 + Fixing slf4j warning

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Co-authored-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-08-26 11:26:46 -05:00
Lachlan Roberts f7d9d8fcf8 Issue #6642 - prevent connection close after websocket upgrade
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-24 19:39:34 +10:00
Lachlan Roberts 0fc025d526 Issue #6642 - add tests for WebSocket Connection Headers.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-24 10:37:18 +10:00
Lachlan Roberts 646707b85c Issue #6602 - do not invoke SessionListener onOpen if session has been closed in OnOpen
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-12 15:50:25 +10:00
Lachlan 6dea0251c2
Issue #4772 - support partial messages for Jetty WS API annotations (#6357)
* Issue #4772 - support partial messages for Jetty WS API annotations

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-06-10 16:05:54 +02:00
Lachlan cd73338b84
Remove WebSocketComponents & HouseKeeper on Server restart. (#6218)
* Remove WebSocketComponents & HouseKeeper on Server restart.
* Add testing for cleanup of websocket when stopping server.
* Add removeFilterHolder and removeFilterMapping methods on ServletHandler.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-05-20 14:48:23 +02:00
Lachlan Roberts 0761aee75a Disable websocketProvidedByWebApp on JDK14-15 due to JDK-8244090 bug.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-05-20 01:17:42 +10:00
Lachlan Roberts 779cf4ccbc Issue #6287 - improve testing & changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-05-19 11:24:15 +10:00
Lachlan Roberts 05e1283f4f Fix licence header.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-03-17 21:52:09 +11:00
Lachlan Roberts 4e0a42cceb Issue #6050 - Bring PermessageDeflateBufferTest to Jetty 10.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-03-17 21:35:06 +11:00
Lachlan Roberts 2ac50130d6 Issue #5868 - allow request attributes to be set during websocket handshake
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-02-02 17:48:11 +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 f2cde85390
Merge pull request #5874 from eclipse/jetty-10.0.x-5866-WebSocketProgrammaticUpgrade
Issue #5866 - allow WebSocket programmatic upgrades
2021-01-20 16:07:07 +11:00
Lachlan Roberts 0d48b8b991 Issue #5866 - add Programmatic WebSocket Upgrade to Jetty API
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-13 10:45:45 +11:00
Lachlan Roberts 78707fffde CreatorNegotiator should remain private, use from on WebSocketNegotiator
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-13 09:55:19 +11:00
Lachlan Roberts 0a944ac0a9 Issue #5866 - allow programmatic upgrades with websocket-core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-08 22:47:55 +11:00
Lachlan Roberts 02963baae3 disable part of tests due to bug with ServerUpgradeResponse
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-05 08:48:55 +11:00
Lachlan Roberts 281f6d13ed Issue #5850 - add tests for the UpgradeRequests in the FrameHandlers
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-01-04 15:55:47 +11:00
Lachlan Roberts c16674bae7 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-5706-ServerUpgradeResponse 2020-12-15 16:51:47 +11: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
Lachlan 1753dec720
Issue #5774 - make fields and classes in Client/Server ConfigTest static (#5777)
* Issue #5774 - make fields and classes in Client/Server ConfigTest static

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* changes from review

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-10 15:17:02 +11:00
Lachlan Roberts c9409befd8 Issue #5706 - fix potential NPE from websocket-core ServerUpgradeResponse
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-12-08 16:54:13 +11: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
Simone Bordet 38aec0b081 Merged branch 'jetty-9.4.x' into 'jetty-10.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-12-01 13:24:26 +01:00
Lachlan Roberts 4ec2c3eca2 fix websocket proxy for jetty10 websocket api
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-26 21:05:06 +11:00
Lachlan Roberts cb626e72bc Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-11-26 20:49:49 +11:00
Lachlan Roberts 741ad918e4 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-26 17:20:05 +11:00
Lachlan Roberts 6a83a261e1 Always add the default WebSocketUpgradeFilter as the first filter.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-18 21:27:25 +11:00
Lachlan Roberts aba2c93eae Add tests for the ordering of the default WebSocketUpgradeFilter.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-18 15:10:14 +11:00
Lachlan Roberts f52e61156d add test for a subclassed WebSocketUpgradeFilter
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-17 20:57:21 +11:00
Lachlan Roberts 165beff3f3 add test for multiple WebSocketUpgradeFilters
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-14 10:43:14 +11:00
Lachlan Roberts 0493a11106 Use Filter name to identify the WebSocketUpgradeFilter.
Don't allow configuration of WebSocketMapping attribute.
The WebSocketUpgradeFilter is identified by it's name, which must be set as the fully qualified class name.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-11-13 22:06:20 +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 0e3cfe8fc2 Issue #5287 - share compression pools and size with max num threads
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-10-14 22:28:26 +11:00
Lachlan Roberts 2a4d672fc1 Issue #5378 - improve testing for WebSocketUpgradeFilter
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-10-08 08:46:51 +11:00
Lachlan Roberts 5d1d7c9c26 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-09-10 10:55:34 +10:00
Lachlan Roberts 609f0b2159 Merge branch 'jetty-10.0.x-4824-WSmaxOutgoingFrames' into jetty-10.0.x 2020-09-10 10:51:57 +10:00
Lachlan Roberts b7fb631b2d Merge remote-tracking branch 'origin/jetty-9.4.x-4824-WSmaxOutgoingFrames' into jetty-10.0.x
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-09-10 09:48:39 +10:00
Lachlan Roberts 8bbea55ed9 remove the extensions package as extensions are now written in websocket-core
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-09-04 16:44:23 +10:00
Lachlan Roberts 8492697ae0 move Jetty WS API exceptions to separate package
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-09-04 16:40:16 +10:00
Lachlan Roberts 43f41ae046 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-09-02 15:48:25 +10: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 35f3f1886e Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-08-19 09:39:31 +10:00
Lachlan Roberts 7d6f692721 disable autoFragment for WebSocketStatsTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-19 09:32:54 +10:00
Lachlan Roberts 931e10458a Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2020-08-19 08:34:39 +10:00
Lachlan 1e7ce3ac1e
Merge pull request #5101 from eclipse/jetty-10.0.x-5044-WebSocketUpgradeRequestResponse
Issue #5044 - Refactor of Jetty WebSocket Upgrade Request/Response
2020-08-06 09:11:12 +10:00
Lachlan Roberts 9cde41a75c Issue #5096 - add WebSocketFilter lazily if only using JettyWebSocketServlet
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-08-03 19:01:41 +10:00
Lachlan Roberts ce8cb063ea Issue #5044 - extend Jetty WS API Request/Response interfaces for jetty-websocket-server
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-30 17:34:17 +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