Commit Graph

3827 Commits

Author SHA1 Message Date
Lachlan Roberts 7b944b93c1 Remove flakey WebSocketBufferPoolTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-30 11:43:49 +11:00
Lachlan c19921e60f Issue #6974 - improvements & fixes to ByteBufferPool implementations (#7017)
- WebSocket should user server ByteBufferPool if possible
- fix various bugs ByteBufferPool implementations
- add heuristic for maxHeapMemory and maxDirectMemory
- Add dump for ByteBufferPools
- add LogArrayByteBufferPool that does exponential scaling of bucket size.
- ByteBufferPools should default to use maxMemory heuristic
- Add module jetty-bytebufferpool-logarithmic

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2021-11-25 10:42:47 +11:00
Lachlan Roberts d8bcac7767 use Matchers.equalTo instead of Matchers.is
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-12 21:37:15 +11:00
Lachlan Roberts 750ee0a182 Issue #7086 - Fix test failure in WebSocketOpenTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-10 10:28:48 +11:00
Lachlan Roberts bd42cc1ebd Issue #7086 - add test for failures from WebSocketCoreSession.demand()
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-09 12:15:49 +11:00
Lachlan Roberts 6b6452a519 Issue #7086 - Demand should not throw if the WebSocket session is closed.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-09 10:37:44 +11:00
Lachlan Roberts 370db7ad34 Demand even if no message sink in JavaxWebSocketFrameHandler
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-11-08 21:28:10 +11:00
Lachlan 366cb7ffc0
Merge pull request #6968 from eclipse/jetty-10.0.x-6965-WebSocketProgrammaticUpgrade
Issue #6965 - support programmatic upgrade for javax/jakarta websockets (10)
2021-10-21 17:23:08 +11:00
Lachlan Roberts 5811b042b1 Issue #6965 - support programmatic upgrade for javax/jakarta websockets
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-10-07 14:22:36 +11:00
Joakim Erdfelt cfc67f86d2 Updating to version 10.0.8-SNAPSHOT 2021-10-06 14:51:32 -05:00
Joakim Erdfelt da8a4553af Updating to version 10.0.7 2021-10-06 14:32:37 -05:00
Simone Bordet 0412bdc3d9 Fixes #6938 - module-info.java file do not use the canonical order for the elements
Changed order of entries in module-info.java to be canonical

(cherry picked from commit 02691171d5)
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-10-01 09:25:55 +02:00
Olivier Lamy 51d44a3401
use dependencyManagement for internal dependencies (#6940)
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-09-30 16:57:19 +10:00
Joakim Erdfelt 8dd62838f7
Initial cleanup / reorg of dependencies
+ All plugins and dependencies are alphabetized now
+ All plugins and dependency versions have properties now

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-09-22 09:54:52 -05:00
Simone Bordet 4793092f9d
Fixes #5229 - WebSocket documentation. (#6623)
Added WebSocket server-side documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-09-15 19:42:27 +02:00
dependabot[bot] b44dde6098
Bump maven-enforcer-plugin from 3.0.0-M3 to 3.0.0 (#6755)
* Bump maven-enforcer-plugin from 3.0.0-M3 to 3.0.0

Bumps [maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.0.0-M3 to 3.0.0.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.0.0-M3...enforcer-3.0.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix some upper bound issues and exclude more javax

Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>

* fix upperbound dependencies issue with enforcer plugin upgrade

Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>

* exclude this wrong which makes enforcer plugin fail and btw it's not used

Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>

* fix last enforcer upperbound issues

Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-09-14 06:10:48 +10:00
Lachlan Roberts 2aa966a854 Issue #6696 - change method name to WebSocketNegotiation.upgrade()
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-09-07 10:19:51 +10:00
Lachlan Roberts d41a297352 Issue #6696 - don't keep Request object in the WebSocketNegotiation after upgrade
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-09-06 17:14:53 +10:00
Lachlan dff5e14bb5
Merge pull request #6680 from eclipse/jetty-10.0.x-6601-WebSocketJPMS
Issue #6601 - fix JPMS issues for websocket-core-common
2021-09-02 10:24:08 +10:00
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
Lachlan Roberts 763820e111 ByteBufferCallbackAccumulator.writeTo should do buffer flipping
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-30 14:58:16 +10:00
Lachlan Roberts ead1f6b160 Issue #6601 - export websocket-core-common to jetty-util for DecoratedObjectFactory
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-30 11:43:54 +10:00
Lachlan Roberts 7569e4b07a Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-6566-WebSocketMessageSinks 2021-08-27 17:21:53 +10:00
Lachlan Roberts 1dce9df48d Issue #6566 - cleanups of ByteBufferCallbackAccumulator
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-27 11:49:18 +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 83f2265653 Issue #6642 - never shutdown output after generating a request.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-26 14:18:28 +10:00
Joakim Erdfelt a82b45c5fb
Issue #6654 - Fix NPEs from bad Servlet API use
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-08-24 09:05:47 -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 fd6c72c668 Issue #6566 - do not duplicate size count for binary MessageSinks
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-24 10:55:47 +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
Joakim Erdfelt 32e6698f0b
Issue #6654 - Fix NPEs from bad Servlet API use
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-08-23 16:01:32 -05:00
Joakim Erdfelt 401f1959d2
Issue #6654 - Fix NPEs from bad Servlet API use
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2021-08-23 11:38:15 -05:00
Lachlan Roberts bd396f867b Fix some more unstable tests.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-19 20:43:13 +10:00
Lachlan Roberts 026261f482 Issue #6566 - use counter in BufferCallbackAccumulator, fix InputStreamMessageSinkTest failures
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 17:10:12 +10:00
Lachlan Roberts 65ff0bb081 Fix broken test in OutgoingMessageCapture.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 13:15:16 +10:00
Lachlan Roberts 5236e47c42 Issue #6566 - utilise the demand interface in the websocket MessageSinks
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 11:04:14 +10:00
Lachlan Roberts d3dfe353be Expose the isInputOpen() method in CoreSession interface.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-18 11:00:39 +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 Roberts edec52893b Add name on WebSocketComponents default threadpool
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-04 16:49:15 +10:00
Lachlan Roberts 316c46675e Fix WebSocketComponents LifeCycle in AbstractJavaxWebSocketFrameHandlerTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-04 16:19:34 +10:00
Lachlan Roberts de8cbcf588 Fix broken tests using WebSocketComponents
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-04 15:11:35 +10:00
Lachlan Roberts 14c09e3c98 Issue #6566 - fix WebSocketComponents LifeCycle issue
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-04 13:28:10 +10:00
Lachlan Roberts bbabaee8cc Issue #6566 - add executor to WebSocketComponents & use for Dispatched Messages
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-08-04 11:24:10 +10:00
Ludovic Orban c9a5d8df58 #6322 Use RetainableByteBuffer and write a new pool for it
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-07-24 11:14:21 +02:00
Joakim Erdfelt c245a70893 Updating to version 10.0.7-SNAPSHOT 2021-06-29 10:51:22 -05:00
Joakim Erdfelt 37e7731b4b Updating to version 10.0.6 2021-06-29 10:27:56 -05:00
Lachlan 1cd0093855
Merge pull request #6411 from eclipse/jetty-10.0.x-6407-ClientUpgradeRequestUri
Issue #6407 - Fix URI validation for WebSocket ClientUpgradeRequest
2021-06-23 10:37:58 +10:00
Jan Bartel 2c2781a73e
Jetty 10.0.x 6423 service provider osgi headers (#6424)
* Issue #6423 Add headers to jetty manifests to expose o.e.j.w.Configuration for osgi ServiceLoader.

 Add jetty-annotations manifest to expose o.e.j.w.Configuration  to ServiceLoader. 
 Add osgi headers to jetty-quickstart for o.e.j.w.Configuration
 Add osgi serviceloader headers for jetty-cdi
 Add osgi serviceloader headers to websocket-jetty-client
 Add osgi serviceloader headers to jetty-ant
  Add osgi serviceloader headers to websocket-javax-client
 Add osgi serviceloader headers for websocket-jetty-common
 Add osgi serviceloader headers for websocket-core-common

Signed-off-by: Jan Bartel <janb@webtide.com>
2021-06-23 08:32:21 +10:00
Simone Bordet b8d6e3f010
Fixes #6410 - Use SocketAddress instead of InetSocketAddress. (#6414)
* Fixes #6410 - Use SocketAddress instead of InetSocketAddress.

Removed usages of InetSocketAddress in method signatures where possible.
Deprecated old methods, and added new methods with SocketAddress.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-06-17 10:18:08 +02:00
Lachlan Roberts 402d79f59a fix javadoc for ClientUpgradeRequest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-06-16 01:00:45 +10:00