Commit Graph

509 Commits

Author SHA1 Message Date
Greg Wilkins f5751618bd Issue #3290 async onOpen, onClose and onError
Fixed OSGi tests.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-29 13:08:35 +11:00
Greg Wilkins 3ad584eaef Issue #3290 async onOpen, onClose and onError
Changes after review:
 + failure to send abnormal close closes connection prior to failing
   callback.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-29 10:45:54 +11:00
Greg Wilkins 6f7395c8f0 Issue #3290 async onOpen, onClose and onError
Changes after review:
 + fixed import order

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-29 10:38:12 +11:00
Greg Wilkins 84d74ba1de Issue #3290 async onOpen, onClose and onError
Changes after review:
 + removed Adaptor from FrameHandler, so all non test usages of
   FrameHandler now use async API.
 + Fixed sequencing of multiple async operation so callback is notified
   after completion (created more Callback.from utilities for this)
 + fixed import order

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-29 10:33:37 +11:00
Greg Wilkins 1171d7c8d7 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3290-websocket-onOpen 2019-01-26 18:16:30 +11:00
Greg Wilkins 8b93922d08 Issue #3290 async onOpen, onClose and onError
Gave onOpen, onError and onClose callback signatures
Illegal to ask for demand prior to onOpen success
added tests for various onOpen scenarios

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-26 15:34:50 +11:00
Lachlan Roberts aa1d6ff9cd WebSocketMapping refactor changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-25 17:11:27 +11:00
Olivier Lamy 6145fd7468
Issue #3166 add autobahn testsuite running via autobahn maven plugin (#3292)
Issue #3166 Add autobahn profile to automatically run autobahn test suite in Jenkins
2019-01-25 15:10:24 +10:00
Lachlan Roberts 0c85b3138f rename of WebSocketResources to WebSocketComponents
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-25 11:57:03 +11:00
Lachlan Roberts b2f2a16aed Merge branch 'jetty-10.0.x-websocketmapping-refactor' of https://github.com/lachlan-roberts/jetty.project into jetty-10.0.x-websocketmapping-refactor 2019-01-25 11:38:40 +11:00
Lachlan Roberts e98809c990 javax WebSocketMappings now stored in ContextHandler attributes
WebSocketMappings are now stored as attributes in the ContextHandler

init params can be set on the filterHolder to specify what mapping
should be used

the default mapping is stored with attribute key
WebSocketMapping.DEFAULT_KEY and ensureFilter now doesn't ensure there
is an UpgradeFilter registered at "/*" but checks that there is an
UpgradeFilter using the default mapping

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-24 15:10:13 +11:00
Lachlan Roberts 1c999a1794 added missing licence headers
fixed todo with default WebSocketUpgradeFilter path mapping

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-24 11:50:25 +11:00
Greg Wilkins 330a3e7f58 simple onOpen test
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-24 10:34:14 +11:00
Greg Wilkins f170191003 Fix problems with close unit tests before creating open unit tests
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-24 10:12:36 +11:00
Greg Wilkins 5f20651d06 Issue #3290 websocket onOpen states
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-24 09:48:30 +11:00
Lachlan Roberts d37dfd4357 Merge remote-tracking branch 'eclipse/jetty-10.0.x' into jetty-10.0.x-websocketmapping-refactor
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-23 18:45:59 +11:00
Greg Wilkins d520ae5a11 Issue #2175 cleanups after review
Re implemented a queue and flusher above extension stack to serialize
frame handling without holding a lock when calling callbacks

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-23 09:06:27 +11:00
Greg Wilkins 3d7ee93112 Issue #2175 cleanups after review
Re implemented a queue and flusher above extension stack to serialize
frame handling without holding a lock when calling callbacks

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-23 08:49:55 +11:00
Greg Wilkins d598e0dc6f Issue #2175 cleanups after review
Improve ws error handling by splitting processError into handling for
errors from the network and errors from the application.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-22 21:20:01 +11:00
Greg Wilkins 7fec51ad40 Issue #2175 cleanups after review
Improve ws error handling by splitting processError into handling for
errors from the network and errors from the application.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-22 15:41:46 +11:00
Greg Wilkins 1189ceed4c Issue #2175 cleanups after review
Improve ws error handling by splitting processError into handling for
errors from the network and errors from the application.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-22 13:36:09 +11:00
Greg Wilkins 05dfbd18cd Issue #2175 cleanups after review
Improve ws error handling by splitting processError into handling for
errors from the network and errors from the application.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-22 13:25:29 +11:00
Lachlan Roberts e1674cf4b6 separate out resources from the WebSocketMapping
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-22 11:39:53 +11:00
Greg Wilkins f9b9cc1313 Issue #2175 cleanups after review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-22 09:11:05 +11:00
Lachlan Roberts 2ab6f3d66f added sharedresources
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-21 21:14:22 +11:00
Greg Wilkins 391f2b1a27 Merge branch 'jetty-10.0.x-3167-websocket-mapping' into jetty-10.0.x-3167-2175-websocket-close 2019-01-15 16:28:39 +11:00
Greg Wilkins 12655a0944 Working BrowserDebugTool for jetty websocket API
Plus fixes for 10.0.x

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 15:54:09 +11:00
Greg Wilkins be3b155e32 fixed merge
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 14:01:25 +11:00
Greg Wilkins 878e51032d Merge branch 'jetty-10.0.x-3167-websocket-mapping' into jetty-10.0.x-3167-2175-websocket-close 2019-01-15 13:38:19 +11:00
Greg Wilkins e1daad1599 Merge branch 'jetty-10.0.x' into jetty-10.0.x-3167-websocket-mapping
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 13:31:11 +11:00
Greg Wilkins 3246d07ca9 Revert "Working BrowserDebugTool for jetty websocket API"
This reverts commit c320e020d2.
2019-01-15 13:14:53 +11:00
Lachlan Roberts 63a1db39a0 Issue #3167 - simplification of WebSocketChannelState from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-15 11:58:39 +11:00
Greg Wilkins 664ddef6fd Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3167-websocket-mapping
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 09:44:53 +11:00
Joakim Erdfelt c320e020d2 Working BrowserDebugTool for jetty websocket API
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-01-14 10:13:59 -06:00
Joakim Erdfelt 74df6bf1a9 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

# Conflicts:
#	jetty-maven-plugin/src/it/it-parent-pom/pom.xml
#	jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java
#	jetty-websocket/javax-websocket-server/src/main/java/org/eclipse/jetty/websocket/javax/server/JavaxWebSocketServerContainerInitializer.java
#	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
#	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java
#	jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/AbstractExtension.java
#	jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/ExtensionStack.java
#	jetty-websocket/websocket-core/src/main/java/org/eclipse/jetty/websocket/core/internal/FrameFlusher.java
#	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java
#	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserSocket.java
#	jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/index.html
#	jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/websocket.js
2019-01-11 12:11:38 -06:00
Lachlan Roberts 1e4ac07511 Merge remote-tracking branch 'eclipse/jetty-10.0.x-3167-2175-websocket-close' into jetty-10.0.x-3167-2175-websocket-close
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-10 21:25:15 +11:00
Lachlan Roberts 9a7e7bc999 Issue #3167 - Refactor of WebSocketChannelState
WebSocketChannelState now performs frame sequence checks and is called
on every outgoing and incoming frame, these checks return true to
indicate that the WebSocketChannel is fully closed

unrelated changes in

ExtensionStack:
succeeded() needed to be called instead of failed as explained
in the comment above the change

WebSocketClient:
removed duplication of the connect code by calling connect again
with a null UpgradeRequest

FrameFlusher:
improved the logging

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-10 18:53:52 +11:00
Greg Wilkins ce771070f6 removed extension queue #2175
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-10 16:31:50 +11:00
Greg Wilkins 9bd9133399 externalized flusher iteration #2175
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-10 16:05:29 +11:00
Greg Wilkins 4165c4507b Refactor websocket close for #2175
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-10 14:50:53 +11:00
Greg Wilkins 9b0c8336ba Merge branch 'jetty-10.0.x' into jetty-10.0.x-3167-websocket-mapping
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-10 08:34:33 +11:00
olivier lamy 63f2023e05 happy new year!!
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 12:17:53 +10:00
Greg Wilkins 729bf8299c Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3167-websocket-mapping
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-23 13:51:01 +11:00
Greg Wilkins 9216d5ab63
Merge pull request #3224 from lachlan-roberts/jetty-10.0.x-3216-AutobahnWebSocketServerFailures
Issue #3216 - Autobahn WebSocketServer failures in jetty 10
2018-12-23 13:49:35 +11:00
Olivier Lamy f5eb4864cc
Issue #3166 Jetty 10.0.x autobahn test ci (#3221)
*  issue #3166 add autobahn test

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-12-22 21:16:23 +10:00
Greg Wilkins 8c7c5a5d01 Issue #3167 Improve websocket initialization
Improve on #3167 with major refactor of the context initialization of
websocket:
  + The Javax and Jetty sides are more symmetric - both use shared
    filter and mapping.
  + Regularised usage of beans rather than attributes for ws components
  + Customization is now part of the mapping, so ws are configured by
    how they were mapped and not by who does the upgrade.
  + Filter still can be configured to customize defaults
  + Servlet can be configured to customize any ws mappings added via the
    servlet

There is still some strangeness as the WebSocketServlet is mostly
generic, yet can only map Jetty API websockets.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-22 10:30:37 +11:00
Lachlan Roberts 164859fb9f Issue #3216 - Autobahn WebSocketServer failures in jetty 10
removed maxFrameSize from CompressExtension now use the
WebSocketChannel.getMaxFrameSize() to fix a bug where a change in the
WebSocketChanel maxFrameSize was not reaching the CompressExtension

create dummy WebSocketChannel in tests using CompressExtension without
a channel to replace the setter for maxFrameSize

increased the maxFrameSize in AutobahnWebSocketNegotiator to fix
autobahn tests being over maxFrameSize after being inflated

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-12-20 20:08:35 +11:00
Lachlan Roberts 3bcb4d8229 Issue #3167 - lazily create the WebSocketCoreClient
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-12-18 17:19:55 +11:00
Greg Wilkins 52d0d62594 Configure default EndpointIdentificationAlgorithm for WebSocketCoreClient
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-12-13 09:36:13 +11:00
Joakim Erdfelt e0f4e5a32a Issue #3162 - correcting typo
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-12-03 17:32:10 -06:00
Simone Bordet bfa2dbf68c Issue #3162 - Use Jetty specific Servlet API jar.
* Updated module-info.java to reference the "jetty.servlet.api" module.
* Updated POMs to reference the o.e.j.toolchain:jetty-servlet-api artifact.
* Removed references to jetty-schemas.jar.
* Updated attribute "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern"
  to match the new Jetty Servlet API jar.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-29 16:51:29 +01:00
Simone Bordet 5f972b451c
Jetty 10.0.x 2978 add module info (#3120)
Fixes #2978 - Add module-info to relevant Jetty modules.

Added module-info.java for Jetty modules that are not test modules.
Moved jetty-http test utility classes to new module "jetty-http-tools".
Removed generation of test-jar from websocket-core.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-22 12:37:35 +01:00
Greg Wilkins 7cb65e4f1f Move RetainableByteBuffer to jetty-io
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-15 10:04:07 +01:00
Greg Wilkins 9003a0fd69
Jetty 10.0.x websocket refactor (#3055)
* Adding more todos
* More websocket test updates
* Adding more information to exception about mismatched hash
* AcceptHash improved testing
* Prevent duplicate request headers
* Removing ability to use LocalFuzzer entirely (until its fixed)
* JSR356 HandshakeResponse header modifications are now allowed during Configurator
* Correcting MessageSink creation
* Using proper sub-protocol
* Metadata remembers OnMessage.maxMessageSize now
* Minor test updates
* Issue #2172 - Fixing JSR-356 Decoder discovery and OnMessage wiring
* More websocket test updates
* Update for null/empty payload
* Partial String Message Sink fix
* More websocket fixes around InputStream handling
* Moving proposed Abstract FrameHandler hierarchy into core main
* More testing fixes, along with a change to use the new core Abstract*FrameHandler
* Adding WebSocket URI validation
* Updating copy found in other API with improvements made in first API.
* More websocket test updates
* Fixing compilation
* WebSocket test fixes
* Fixing ContinuationTest assertions
* fixed package
* Added some better examples of QuotedCSV
I think this test is trying to use QuotedCSV in the wrong way, as it often is offering values when it should be testing parameters.
I have added some examples to show that QuotedCSV is capable of handling the quotes, spaces and embedded commas of the tests, but only
for parameters and not for values.   The question is, is this sufficient for websocket?
* Improve close handling
The handling of a Close Frame may close the endpoint, so parsing should not continue
* moved old AbstractFrameHandler to test
* implement ingoing and outgoing frame sequence checking
* More work on javax.websocket parameterized server
* Bumping up pom plugin versions to jetty-9.4.x standards
* Merging up Jenkinsfile to attempt to fix CI build issues
* JSR356 @PathParam testing
* More WebSocket testing updates
* More WebSocket testing updates
* WebSocket Idle Timeout from FrameHandler specific policy
* WebSocket/JSR Pong support
* WebSocket/JSR Correcting MessageHandler.Whole<PongMessage> handling
* URL Decode UriTemplatePathSpec values
* Fixing test expectations
* Fixing AbstractWholeMessageHandler buffer flip
* More websocket test fixes
* Updated ALPN version for JDK 8u181.
* Removing QuotedUtil from WebSocket-core
+ Moved to QuotedCSV for most usages
+ Introduced HeaderUtil to satisfy remaining use cases
* Review of HttpClient names and Thread names.
+ Javax WebSocket Server = "Javax-WebSocketServer@####"
+ Javax WebSocket Client = "Javax-WebSocketClient@####"
* added OpCodeTest.java
* Minor Frame cleanup
* MessageOS cleanup
* Made the OpCode of WebSocket Frame immutable.
Frames can no longer be set as a continuation and should now be copied using the ContinuationFrame constructor
DataFrames can no longer be created without one of the subclasses as the public constructor was removed in favour of newDataFrame method
* Chat test
* Work on Chat Test
Moved implementation of assertValid to WebSocketFrame
Removed getFinRsvOp
* removed constructors for DataFrame using a basedOn Frame
instead use constructors with opCode, payload and fin bit
* refactor of WebSocket Frames WIP
* WIP: resolved failing tests
* CloseStatus rework, now use CloseStatus.toFrame to create Close Frames
new DelegateFrame class which ReadOnlyFrame extends
trim utf8 byte array in CloseStatus to utf8 character boundaries only
* working on test to test socket io erros in websocket-core
* renaming for clarity
Gave up on maintaining old names, as this is a different package anyway so some adaption will be needed regardless.
* Moved AbstractFrameHandlers to common
Only have a AbstractTestFrameHandler in core
* Close uses CloseStatus
Reduced the parsing and generation of CloseStatus when closing
* merge
* work on WebSocketTest
* cleanup log
* wip
* files missing comment header
jetty-jmh was using 9.4.12-SNAPSHOT now using 10.0.0-SNAPSHOT
* thread names
* remove sequence check from parser
* minor cleanups
* Call frameHandler externally to parser
* OpCode.check now throws ProtocolException instead of returning boolean
changed ProtocolException messages in OpCode.check
* removed Frame.Type and use OpCode instead
separated out FrameValidation for parser into method in WebSocketChannel
* moved remaining frame validation checks into WebSocketChannel
* referenced counted buffer
* cleanups
* wip on demand side
* First attempt at demandable
* demand control
* clean up reference counting
* clean ups
* WebSocketServerTest
* wip
* fixed auto fragmentation
* simple demand test
* test demand and retain
* Added validation back into the Parser
split up validation in WSChannel into methods for incoming and outgoing
fixed various tests in websocket-core
* more tests
* fixed remaining tests failing due to the changes to frame validation
* cleanups
* more autobahn refixes
* adjust mask for auto fragments
* clear mask
* fully close on unrecoverable error and not wait for close response
* Removed the CoreFuzzer and ContinuationTest
These tests are now covered elsewhere.
* remove declared exception onClosed
* Test delay close
* Test handler close
* fixed test dependency
* moved the frame sequence check from OutgoingState from after the ExtensionStack to channel.sendFrame
changed error handling to fail the callback of invalid/outOfSequence frames
added WebSocket Close tests revealing some problems with demand in state ICLOSE
* cleanup
* timing issues with WebSocketCloseTest
* test cleanups
* Cancel demand on close
* removed frame validation from generator
* finished close testing
* Issue #2901 - Moving Http Upgrader to Http Conversation
+ Solves for Authentication and Redirect
* changes from #2902 to jetty-10.0.x
* Validation Extension
introduced a ValidationExtension to do frame validation in the ExtensionStack
added the WebSocketChannel to ExtensionStack.connect to set it on the Extensions
* added parameters for ValidationExtension to choose what to validate
* ValidationExtension Cleanup
ValidationExtension now uses the Validation methods from its WebSocketChannel
simplified the parameter passing to the ValidationExtension
* core cleanup
* Fixed intermittent test failures
* clean up duplicates and imports
* simplified package structure
* many cleanups, simplifications and duplication removal
* cleanup
* added utf8 validation for text frames into ValidationExtension
added tests for utf8 validation
* create ValidationExtensionTest
* cleanup
* merge with jetty-10
update websocket to junit5
* fix to autobahn client report directory
* Fixes and cleanup
Fixed initial buffer too large for websocket buffer
less verbose debug
better debug
* Removed behavior from policy
* cleanup after merge from hell
* bug fixes and cleanups
* refactor packages with JPMS in mind
* unit test for TextMessageHandler
* cleanups
* more cleanups
* provided client/server dependencies
* fixed bad refactor
* use lambdas for TextMessageHandler
* cleanup
* cleanup
* cleanups
* cleanup of websocket-common framehandlers
* reverting to jetty websocket api from 9.4
* better chat
* renamed websocket common to util
* save wip on jetty-websocket-tests
* giving up on jetty-websocket-tests as mostly duplicated tests
* renamed websocket-util back to websocket-common
* moved InvalidWebSocketException to javax common
* reworked TextMessageHandler to MessageHandler
now handles binary messages as well
* implemented getByteBufferPool in remaining DummyChannel classes
* Moved the abstract Frame and Message handlers out of websocket-common
* replaced usages of AbstractWholeMessageHandler with CoreMessageHandler
renamed MessageHandler to CoreMessageHandler
* removed AbstractFrameTypeHandler
* cleanup
* jetty-websocket-common passing tests without websocket-common dependency
* fixed compile errors
* renamed MessageHandler
* Removing reference to websocket-server (no longer exists)
* Removing, Extensions now exist in websocket-core
* Do not append an empty ByteBuffer
* NPE Fix for empty/unused UTF-8 String Builder
* NPE Fix for SendPartialBinaryFrameHandler test
* Punching holes in WebAppContext needed for JSR356 use
* Updating "9.x.x" to "10.x.x"
* Removing Bad URI test case that is ignored
* Fixing test expectation now that we moved to QuotedCSV
* Adding TODO about onOpen failure requiring onError + onClose.
* Throwing JSR356 DeploymentException on addEndpoint() failure
* Test cleanup (for better error messages)
* Adding some comments to explain wrapNonVoidReturnType()
* cleanup methodHandle return type filtering
* test fixes
* Fix change return type to Void
* Fixed test by wiring up MessageHandler
* test cleanups
removed changeReturnType for MethodHandle as filterReturnValue already changes to return type of the filter
* fixed MessageReceivingTest.testPartialBinaryFrameHandler
* Core BatchMode replaced by boolean
* fixed LargeContainerTest.testEcho by allowing the policy to be set on the WSServer as an attribute
* acquire batchBuffer before calculating batchSpace in FrameFlusher
* Deprecated WebSocketPolicy
* Fixing MessageReceivingTest
* Refactoring out websocket-servlet
+ WebSocketPolicy removed from websocket-servlet
+ websocket-common is removed
+ Migrating back up to APIs
* WIP removing core policy
* added missing copyright headers
* customize client session
* customize cleanup
* wip
* wip
* Removing WebSocketPolicy usage within websocket-core
* Allowing DummyCoreSession to have a Behavior
* Removing core WebSocketPolicy.clonePolicy() - no longer used
* Jetty Native WebSocket now compiles / tests
* Remember WebSocketServletFactoryImpl as Context Attribute
* JSR356 codebase now compiles
* updated websocket servlets
* fix handling for no max message size
* Fixed LargeContainerTest.testEcho
Changed WebSocketServletFactoryImpl.defaultAutFragment to true
only check the incoming frame size if autoFragment is false
* Added WebSocketConstants to avoid duplicate default locations
* applications extensions discovered via headers
* fixed ConfiguratorTest.testNoExtensionsConfigurator
* cleaned up extension negotiation
* cleaned up extension negotiation
* cleanups
* Convert exceptions to API versions
* cleanup imports
* convert requestURI to a WebsocketURI in Negotiated
* fixed SessionTrackingTest
* moved session tracking management to be done by the JavaxWebSocketFrameHandler
* Cleanup dump for jdk11 classloaders
* fix to ConfiguratorTest
added the EchoSocket endpoint on the ServerContainer instead of using server.registerWebSocket
* Simplify websocket-servlet
    fixed jetty websocket chat example
    fixes for javax websocket chat example
    fixed Upgrade response header issues
    Set default configurations
    improved dump
    depends on javax server impl
    do not expose core classes
    fix javadoc
    removed FrameHandlerFactory self reference
* Removed -impl from javax client and server
* Fixed common tests for onClosed event
* Improve creation of JavaxWebSocketServerContainer
Better handling of executor and httpClient as managed beans
* Fixed MessageOutputStream using empty buffers and looping forever
no longer enforce maxTextMessageBufferSize on partial messages
* Updates after review
reintroduced WebSocketServletFactory
reverted other API changes
* Ignored TextStreamTest tests incorrectly assuming no frame fragmentation
When message fragmentation is implemented in PartialStringMessageSink
then update these tests to check on the server side for no buffers
larger than the maxTextMessageBufferSize.
* fixed check for previous WebsocketUpgrade filter
Disable the AltFilterTest until problems of the WebSocketUpgradeFilter
attributes on the ServletContext are fixed.
* fixed flaky SessionTrackingTest by waiting for Sessions to open
* remove payload length check for outgoing frames
fix bug sending frames after they have failed validation checks
* reverted maven coords for javax client and server
* updated to latest jetty-10 dump changes
* Fix to WebSocketUpgradeFilter Attributes on the ServletContext
Removed deprecated method
WebSocketUpgradeFilter.configureContext(ServletContext)
Changed return type of
WebSocketUpgradeFilter.configureContext(ServletContext) to void.
WebSocketUpgradeFilter.configureContext was checking the ServletContext
for a WebSocketUpgradeFilter set as an attribute before creating a new
one. The FilterHolder from web.xml is being set as an attribute in init
which is called which happens after configureContext.
So instead of checking the attribute in
WebSocketUpgradeFilter.configureContext, we are now searching through
the filters on the ServletHandler to see if a WebSocketUpgradeFilter
has been registered with the CONTEXT_ATTRIBUTE_KEY.
* cleanup and identifying problems with FrameHandlerMetadata
* properly cache Metadata and copy MessageMetadata
properly cache Metadata in the FrameHandlerFactory using the metadataMap
copy the MessageMetadata from Metadata to prevent mutating the MethodHandle
* added new WebSocketServerContainerExecutorTest
removed DelayedStartClientOnServerTest which doesnt seem to be a valid
test when executors are shared
removed last check for executor==null in JavaxWebSocketServerContainerInitializer
as the threadPool is always created in the server
* reformatted websocket code
* reformat code
* Rervert unnecessary changes from 10.0.x
* Rervert unnecessary changes from 10.0.x
* fix build issues testing Hazelcast sessions
* QuotesDecoderTest sessions not being closed
* Fixed CookiesTest
CookiesTest.testCookiesAreSentToClient was failing due to the
Assertion being caught and logged by the upgrade request
the response is now captured by a FuturePromise and the assertions are
done in the main test
the reason the assertion was failing was due to lowercase "set-cookie"
instead of "Set-Cookie"
* fixed maven coords
* javadoc fixes
* fixed javadoc
* revert maven artifact names
* cleanup after review

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-02 13:07:43 +01:00
Joakim Erdfelt 7211ce230e Removing unused websocket-core files, detrius from old merge 2013-01-23 10:50:37 -07:00
Jesse McConnell e1c516c7d1 merge from jetty-8 and update license blocks. 2013-01-11 17:04:53 -06:00
Joakim Erdfelt 42ec683297 Merge from 'master' to 'ws-refactor' 2012-11-12 16:22:11 -07:00
Joakim Erdfelt 80f5fa1a18 Attempting to get Mux sub-channel to flow thru server as well 2012-11-12 16:02:41 -07:00
Joakim Erdfelt dd0b1a39b8 Stubbing out mux client/server specific pieces 2012-11-12 16:02:41 -07:00
Joakim Erdfelt d19f177cae First step 2012-11-02 11:42:44 -07:00
Joakim Erdfelt e310b0a0ec Attempting to get Mux sub-channel to flow thru server as well 2012-11-02 11:20:36 -07:00
Greg Wilkins 52464a5ba6 Merge remote-tracking branch 'origin/jetty-8'
Conflicts:
	jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
	jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ResourceAnnotationHandler.java
	jetty-client/src/test/java/org/eclipse/jetty/client/SslHttpExchangeTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/SslSecurityListenerTest.java
	jetty-deploy/src/main/java/org/eclipse/jetty/deploy/WebAppDeployer.java
	jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/ContextProvider.java
	jetty-http/src/main/resources/org/eclipse/jetty/http/mime.properties
	jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java
	jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectChannelEndPoint.java
	jetty-jmx/src/main/java/org/eclipse/jetty/jmx/MBeanContainer.java
	jetty-jmx/src/main/java/org/eclipse/jetty/jmx/ObjectMBean.java
	jetty-overlay-deployer/src/main/java/org/eclipse/jetty/overlays/OverlayedAppProvider.java
	jetty-plus/src/main/java/org/eclipse/jetty/plus/annotation/Injection.java
	jetty-plus/src/main/java/org/eclipse/jetty/plus/security/DataSourceLoginService.java
	jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java
	jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/ProxyRule.java
	jetty-security/src/main/java/org/eclipse/jetty/security/authentication/FormAuthenticator.java
	jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionIdManager.java
	jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPSPDYConnection.java
	jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/http/ServerHTTPSPDYAsyncConnection.java
	jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
	jetty-util/src/main/java/org/eclipse/jetty/util/Fields.java
	jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketClientFactory.java
	jetty-websocket/src/main/java/org/eclipse/jetty/websocket/WebSocketConnectionRFC6455.java
	jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketClientTest.java
	jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketMessageRFC6455Test.java
	test-jetty-nested/src/main/java/org/eclipse/jetty/nested/Dump.java
	test-jetty-webapp/src/main/java/com/acme/Dump.java
2012-11-02 14:08:05 +11:00
Joakim Erdfelt 88ed9ff710 Stubbing out mux client/server specific pieces 2012-11-01 13:43:33 -07:00
Joakim Erdfelt 171fa2db67 More use of StringUtil.truncate 2012-10-31 13:27:21 -07:00
Joakim Erdfelt 01c9e650fb First working TEXT echo thru the muxer (as test case) 2012-10-31 11:07:10 -07:00
Joakim Erdfelt 61c607076a Mux interrim work. 2012-10-30 16:17:03 -07:00
Greg Wilkins add3c2b381 392237 improved names and examples for documentation 2012-10-29 17:59:39 +11:00
Joakim Erdfelt 1b6d919d8c Adding logging on read timeout 2012-10-23 15:29:07 -07:00
Joakim Erdfelt 3e2aee293e Cleaning up close handshake and noisy tests 2012-10-23 12:16:29 -07:00
Joakim Erdfelt 4f7c66ae81 Using NO_CODE instead of -1 for close frame with no status code declared 2012-10-23 12:16:29 -07:00
Joakim Erdfelt 3c59cf90d0 Refactoring compression based extensions to use a common set of DEFLATE processes 2012-10-12 14:55:25 -07:00
Joakim Erdfelt 1892dbfa03 Bug 391591 - WebSocket client should support x-webkit-deflate-frame
* Adding test + hack for BFINAL 0 vs BFINAL 1
2012-10-10 11:34:32 -07:00
Joakim Erdfelt 0cc7b5f907 Bug 391590 - WebSocket client needs ability to set requested extensions
* Adding UpgradeRequest.addExtensions(String ... extConfigs) interface
* Implementing in WebSocket Client & WebSocket Server
* Fixing case sensitive ClientUpgradeRequest.getHeaderValues(String key)
2012-10-10 11:19:06 -07:00
Joakim Erdfelt 9b7eb1da79 Bug 391588 - WebSocket Client does not set masking on close frames 2012-10-10 11:16:44 -07:00
Joakim Erdfelt f2595a7ec3 Bumping up to jetty-test-helper 2.0 with new @Rule TestTracker & AdvancedRunner status messages. 2012-10-10 09:10:51 -07:00
Joakim Erdfelt d23215f3f4 Bug 391140 - Implement x-webkit-deflate-frame extension as-used by Chrome/Safari 2012-10-04 10:11:50 -07:00
Joakim Erdfelt 28bb21eaf4 Updating websocket chart images for javadoc 2012-09-28 14:27:20 -07:00
Joakim Erdfelt 550c2835cf Adding some more examples 2012-09-27 16:41:29 -07:00
Joakim Erdfelt cda1c4588f Reworking EventDriver to be mroe generic and not use reflection in 100% of cases 2012-09-26 13:43:17 -07:00
Hugues Malphettes 1cfa277c6c jetty-9 osgi support 2012-09-24 13:04:57 +08:00
Joakim Erdfelt b10a10797d Making websocket-core have a unique package org.eclipse.jetty.websocket.core to conform to osgi requirements 2012-09-18 10:01:01 -07:00
Joakim Erdfelt e46617ad8a Moving maskers from core to client, where it belongs 2012-09-17 14:38:27 -07:00
Joakim Erdfelt dc2a13602e Renaming DeflateFrameExtension in response to spec name change 2012-09-17 11:26:27 -07:00
Joakim Erdfelt c7404731c9 Starting removal of WebSocketPolicy.getBufferSize() 2012-09-14 10:41:11 -07:00
Joakim Erdfelt 4f36513744 More work around close handshake testing 2012-09-04 14:53:34 -07:00
Greg Wilkins 83dbca6553 jetty-9 reworked the schedulers 2012-08-31 13:22:58 +10:00
Greg Wilkins cb5dd493fb jetty-9 merged jetty-9-aggregation 2012-08-27 10:24:34 +10:00
Greg Wilkins 726898ffd8 jetty-9 fixed after merged 2012-08-24 20:39:03 +10:00
Simone Bordet 171ad66962 Fixed compilation errors after merging branch 'jetty-9-aggregation' into jetty-9-spdy-http 2012-08-24 12:20:44 +02:00
Simone Bordet 06b2de17d5 Merge branch 'jetty-9-aggregation' into jetty-9-spdy-http 2012-08-24 11:52:29 +02:00
Joakim Erdfelt 4ed72ad585 Fixing websocket-client issues around fillInterested on physical connection 2012-08-20 15:05:47 -07:00
Jesse McConnell 6ffaa478c4 standardize license headers 2012-08-17 16:09:49 -05:00
Joakim Erdfelt b36b41afd7 Fixing websocket-client upgrade connection -> websocket connection handling 2012-08-17 13:48:04 -07:00
Joakim Erdfelt b37da5a5da Making payload fast-fail and demasking work together in peace and harmony 2012-08-09 13:17:07 -07:00
Greg Wilkins 03ebcc881c jetty-9 include more modules 2012-08-09 19:31:50 +10:00
Joakim Erdfelt 889d20ba55 Removing throws IOException on WSConnection.close() 2012-08-08 12:42:57 -07:00
Joakim Erdfelt 0abb7511ff Refactoring websocket.io.RawConnection to websocket.api.BaseConnection.
+ Introducing BaseConnection.SuspendToken and suspend/resume logic for
  working with buffer suspended read concerns.
2012-08-08 12:30:12 -07:00
Greg Wilkins 32c5f6c093 jetty-9 reduced LazyList usage 2012-08-08 11:58:50 +10:00
Joakim Erdfelt 7ebab746fe Reworking stream vs simple message appending into single concept.
+ Removing StreamAppender
+ Adding MessageAppender
+ Gain fast-fail on bad UTF8 in text message
2012-08-07 12:16:53 -07:00
Joakim Erdfelt d76a5ce80e Fixing testcase 7.5.1 (bad utf8 close reason) handling 2012-08-07 09:53:33 -07:00
Joakim Erdfelt b8fc39a53e Adding the AB7 close test cases 2012-08-06 10:18:16 -07:00
Joakim Erdfelt e04bb3128c Refactoring out the basic good/bad UTF tests from TestABCase6 into separate parameterized test cases 2012-08-06 08:36:41 -07:00
Joakim Erdfelt 03521a9a99 Merge branch 'jetty-9' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into jetty-9 2012-08-03 08:49:53 -07:00
Joakim Erdfelt 65cb453080 Attempting to come to terms with EofException condition 2012-08-03 08:49:48 -07:00
Greg Wilkins 5e6cd1b27f Merge branch 'jetty-9' into jetty-9-oneconnector
Conflicts:
	jetty-jmx/src/main/java/org/eclipse/jetty/jmx/ObjectMBean.java
	jetty-jmx/src/test/java/org/eclipse/jetty/jmx/ObjectMBeanTest.java
2012-08-03 08:48:34 +10:00
Joakim Erdfelt 9b49e889dd Fixing big buffer flush issue (thanks simone) 2012-08-02 15:25:18 -07:00
Greg Wilkins f6d84d9f91 Merge branch 'jetty-9' into jetty-9-oneconnector 2012-08-03 06:33:26 +10:00
Joakim Erdfelt 000657ddb5 Fixing various Parser bugs identified by test cases
+ Mask bytes were read backwards during slow parse
+ Bad continuation frame detection added
+ Bad fragmented data frame detection added
+ Correcting WebSocketFrame copy constructor and FIN bit
2012-08-02 13:02:54 -07:00
Joakim Erdfelt 01c40b5290 Fixing Parsing of masking bytes on slow testcase (would read in reverse order under certain conditions) 2012-08-02 10:31:37 -07:00
Joakim Erdfelt e2dd62a3af Trying to work out masking issue with parser 2012-08-02 10:13:07 -07:00
Joakim Erdfelt a638bbb850 Trying to work out why masking occasionally barfs 2012-08-02 09:53:13 -07:00
Greg Wilkins 0865a9cfb0 jetty-9 removed more AsyncConnection names 2012-08-02 18:10:29 +10:00
Greg Wilkins b52930be14 jetty-9 merged Async and non-Async classes for EndPoint and Connection 2012-08-02 16:08:49 +10:00
Greg Wilkins 96b5c05674 jetty-9 one connector passing most tests 2012-08-02 11:51:54 +10:00
Joakim Erdfelt a97fe106f9 Reworking OpCode from enum to static class 2012-07-31 15:15:21 -07:00
Joakim Erdfelt 9a568514a6 More AB testing, reworked for Fuzzer 2012-07-31 12:52:22 -07:00
Joakim Erdfelt 7d2d40dc2b Fixing PING vs CLOSE ordering issues with outgoing queue 2012-07-30 14:51:34 -07:00
Joakim Erdfelt f34d74ec84 Some logging rework/repair 2012-07-30 12:39:30 -07:00
Joakim Erdfelt 9999db9c94 Fixing WebSocketAsyncConnection close/read logic to prevent unstoppable QTP threads 2012-07-30 09:54:45 -07:00
Joakim Erdfelt c2aae7c517 Attempting to come to grips with proper close/disconnect/stop/cleanup 2012-07-27 13:48:34 -07:00
Joakim Erdfelt 99afabdf92 Finished fleshing out TestABCase1 2012-07-27 10:24:35 -07:00
Joakim Erdfelt 47f882e6dc Fixing various things around generate/parse of windowed fragments.
+ @WebSocket annotation's policy configuraiton is now optional
+ WebSocketPolicy.clonePolicy() fixed for other fields
+ WebSocketEventDriver now has internal WebSocket POJO specific logger
  to allow for logging control of the WebSocket POJO itself in case of
  runtime exceptions.
+ WebSocketEventDriver now honors bufferSize correctly.
+ DataFrameBytes always requests windowSize from generator, allowing
  generator to determine ultimate byteBuffer utilization itself.
+ MessageInputStream / MessageReader now clears the starting buffer
+ Generator now honors windowSize correctly (even if buffer obtained
  from ByteBufferPool.acquire() is much larger
+ Parser now demasks the payload after a successful parse of the framing
+ Various testing cleanup to produce less noisy output during testing.
2012-07-27 09:41:26 -07:00
Joakim Erdfelt cbcb76eaea More spec tests from server point of view 2012-07-26 15:45:54 -07:00
Joakim Erdfelt db2570c2ee 380928 - Implement new websocket close code 2012-07-26 10:30:12 -07:00
Joakim Erdfelt b3db5ffc8d Fixing websocket-server tests 2012-07-25 11:49:04 -07:00
Joakim Erdfelt 6fa2f67a96 Updates for Extensions
+ Extensions now report to Generator their requirements for
  RSV1, RSV2, RSV3
+ DeflateFrameExtension now reports RSV1 use.
+ DeflateFrameExtension reads uncompressed data properly now.
+ Unit tests for small/medium/large payloads on DeflateFrameExtension
+ OutgoingFrames.output() method now has non-optional throws IOException
2012-07-25 11:04:38 -07:00
Joakim Erdfelt 78b16d38f5 Adding more to AllTests 2012-07-25 09:35:12 -07:00
Joakim Erdfelt a49238ceba Removing FragmentExtension's minFragments config.
+ The minFragments configuration appears to work on the message,
  not the fragments, so its was removed as inappropriate for the
  level of the protocol the FragmentExtension works on.
2012-07-24 13:21:35 -07:00
Joakim Erdfelt 36360ae1d2 Adding initial tests for FragmentExtension 2012-07-24 11:47:25 -07:00
Joakim Erdfelt 9c4a8df8af Adding test for deflate-frame extension receiving non-compressed frames 2012-07-23 13:56:41 -07:00
Joakim Erdfelt 93b5d97379 Full core testing of DeflateFrameExtension
+ Renaming FrameParserCapture -> IncomingFramesCapture
+ Adding OutgoingFramesCapture
+ Fixing DeflateFrameExtension of small payloads
2012-07-23 13:52:08 -07:00
Simone Bordet d2a0cb5c50 Jetty9 - Fixed compilation problems. 2012-07-23 15:38:27 +02:00
Simone Bordet 6b4583b461 Jetty9 - Introduced a onReadTimeout() callback and refactored into AbstractAsyncConnection.onOpen() calls to onFillInterested() that were previously done by all subclasses. 2012-07-23 14:27:33 +02:00
Joakim Erdfelt 4af5a10b29 Working out bug in client parsing of lots of messages 2012-07-19 14:10:07 -07:00
Joakim Erdfelt 796e240545 Fixing aggregate message echo test 2012-07-18 13:23:07 -07:00
Joakim Erdfelt 1c77ef0723 Fixing bad generator.generate() assumptions on output bytebuffer state 2012-07-18 12:36:42 -07:00
Joakim Erdfelt b0e475f09c Fixing invalid statuscode error that shouldn't be thrown on no-status code 2012-07-18 12:36:14 -07:00
Joakim Erdfelt fae2e0d48e No longer need to flip output of Generator.generate() 2012-07-18 12:23:04 -07:00
Joakim Erdfelt f8e72803a6 Fixing expectations in unit tests 2012-07-18 12:22:16 -07:00
Jesse McConnell 960491cc64 Merge branch 'jetty-9' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into jetty-9 2012-07-18 14:01:42 -05:00
Joakim Erdfelt 0060a32bc5 Adding test of windows generator with masking 2012-07-18 11:51:22 -07:00
Joakim Erdfelt 58e181f463 Making Generator and WebSocketFrame collaborate to allow for windowed buffer creation 2012-07-18 11:36:30 -07:00
Joakim Erdfelt 51e77c93f3 Adding testcase for windowed Generator 2012-07-18 09:44:55 -07:00
Joakim Erdfelt 6350470e3f Coming to grips with windowed write 2012-07-18 09:36:16 -07:00
Jesse McConnell c0e80e6ff9 comments on the generate() method 2012-07-18 10:54:00 -05:00
Joakim Erdfelt 99e7b9becc Fixing mid-message ping/pong support 2012-07-17 11:50:53 -07:00
Joakim Erdfelt 4aa54d244a Working out some fallout of the Session split 2012-07-17 11:20:18 -07:00
Joakim Erdfelt 6ece593c58 Fixing expectations of internal impl now that WebSocketSession exists 2012-07-17 10:15:11 -07:00
Joakim Erdfelt 249595882c Wiring up extension chain on server side 2012-07-17 10:09:25 -07:00
Joakim Erdfelt c84df9bf2b Adding test suite for quick testing 2012-07-16 16:08:00 -07:00