Commit Graph

164 Commits

Author SHA1 Message Date
lachan-roberts e9df97e314 Issue #3446 - allow jetty-websocket upgrades with WebSocketUpgradeFilter
JettyWebSocketServerContainer moved out of internal and is now used
in a similar way to the Javax server container, and can now be
used to configure upgrades using the shared mapping with
the WSUpgradeFilter

the JettyWSSCI now works in the same way as the JavaxWSSCI, the
JettyWebSocketEmbeddedStarter has been removed and the configureContext
now returns the JettyWebSocketServerContainer

WebSocket upgrade failures due to exceptions will now be logged as
a warning in WebSocketMapping rather than being ignored

Signed-off-by: lachan-roberts <lachlan@webtide.com>
2019-03-11 18:05:44 +11:00
lachan-roberts a01fc193a1 WebSocket code cleanups and renaming
rename JettyWSSCI.configure to configureContext, this is more similar
to the javax equivalent version

introduce helper method getMapping in WebSocketMapping

WebSocketServletFactory now implements FrameHandler.Configuration

changed WebSocketMapping Attribute name in WebSocketUpgradeFilter

Signed-off-by: lachan-roberts <lachlan@webtide.com>
2019-03-11 18:05:44 +11:00
Greg Wilkins c63a578c29
Merge pull request #3413 from lachlan-roberts/jetty-10.0.x-3412-WebSocketSession-Customizer
Issue #3412 - WebSocket CoreSession Customizer
2019-03-06 10:09:50 +11:00
Lachlan Roberts 5ecd512a90 Issue #3412 - always customize WSChannel directly after creation
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-03-01 15:47:23 +11:00
Joakim Erdfelt e476cec6d3 Issue #1676 - Removing deprecated methods and classes
+ Changing usages of JVM deprecated classes / methods as well
+ Cleaning up test cases and javadoc
+ Removing test methods that rely on deprecated and now removed concepts

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-02-28 17:54:28 -05:00
Simone Bordet b9f89af847 Fixes #3320 - Review Jetty 10 module-info.java.
Reviewed module-info.java files.
For those that have a "requires static" added a comment about
why the dependency is optional.
Rearranged directives in alphabetical order.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-02-08 17:30:27 +01:00
Joakim Erdfelt c30c8d4339 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-3162_jetty_servlet_api
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

# Conflicts:
#	jetty-client/pom.xml
#	jetty-http/pom.xml
#	jetty-http2/http2-client/pom.xml
#	jetty-http2/http2-http-client-transport/pom.xml
#	jetty-http2/http2-server/pom.xml
#	jetty-osgi/test-jetty-osgi/pom.xml
#	jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty-with-custom-class.xml
#	jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty.xml
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootHTTP2Conscrypt.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootWithAnnotations.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootWithJavaxWebSocket.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootWithWebSocket.java
#	jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestOSGiUtil.java
#	jetty-quickstart/pom.xml
#	jetty-servlets/pom.xml
#	jetty-util/pom.xml
#	jetty-websocket/javax-websocket-client/pom.xml
#	jetty-websocket/javax-websocket-server/pom.xml
#	jetty-websocket/jetty-websocket-server/pom.xml
#	pom.xml
2019-01-30 11:56:58 -06:00
Lachlan Roberts b0aec2b26e fix bug in WebSocketMapping failing isInstance test
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-29 15:26:16 +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
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 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
Lachlan Roberts 90003dee13 Issue #3182 - restored old websocket example files
added new test for these example files

added register and setCreator methods in WebSocketServlet to
give more compatibility with old api

implemented isUserInRole in UpgradeHttpServletRequest to get
example working

made the JettyWebSocketTest more clear

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-23 18:43:54 +11:00
Lachlan Roberts b06601e5f1 disable checks for duplicate websocket mappings
throwing on adding of a duplicate websocket mapping causes problems
in EndpointViaConfigTest where we can add mappings even if they have
already been discovered by annotation

added a todo to review why we can't implement this check

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-23 10:18:42 +11:00
Lachlan Roberts 74a5cfa190 remove the word default from all WebSocketServletFactory methods
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-22 18:32:14 +11:00
Lachlan Roberts 15c6f5250d do not set WebSocketMapping in WSUpgradeFilter if already set
the WSUpgradeFilter now has to be registered at "/" or "/*"

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-22 18:17:33 +11:00
Lachlan Roberts 3c2f728574 move check for duplicate mappings to WebSocketMapping class
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-22 18:08:31 +11:00
Lachlan Roberts 4008005a0e Jetty WebSockets no longer use shared mapping
mapping is now created for each WebSocketServlet

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-01-22 11:55:18 +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 f16789b101 Issue #3167 cleanups after merge (in #2175)
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-16 15:19:36 +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 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
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
Greg Wilkins 39e6bff114 Issue #3167 cleanups from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 09:22:15 +11:00
Greg Wilkins 8802aebc1b Issue #3167 cleanups from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 09:19:55 +11:00
Greg Wilkins 4bacaf21e4 Issue #3167 cleanups from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-15 09:04:20 +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
Greg Wilkins 392412b2d0 Issue #3167 cleanups from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-12 10:26:09 +11:00
Greg Wilkins d89e797a1b Issue #3167 cleanups from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-12 10:06:59 +11:00
Greg Wilkins 6ec615dc32 happy new year
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-01-10 08:47:31 +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
Olivier Lamy 9b7afd8a03
Happy new year!! (#3232)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 11:52:16 +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
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 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 8763c6065d Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-04-20 11:32:46 -05:00
Joakim Erdfelt 8bf695bf49 Issue #2337 - slightly more efficient getSubProtocols() behavior
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-03-28 11:16:10 -05:00
Joakim Erdfelt e3e3f9eb0b Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x-fixed 2018-03-06 11:16:25 -06:00
Lachlan Roberts a639ee9275 Resolved errorprone MissingOverride warnings #2206
`@Override` was added to methods which were missing the annotation #2206

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-01 13:59:25 +11:00
Joakim Erdfelt d5a0878019 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-10.0.x 2018-01-09 10:08:30 -06:00
Joakim Erdfelt 41ed9f29f4 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2018-01-09 09:37:25 -06:00
Joakim Erdfelt fa4c7b0ca9 Issue #2108 - Updating license headers for year 2018 2018-01-09 08:39:37 -06:00
Joakim Erdfelt 067fc5d2d8 Issue #2108 - Upgrade licenses for 2018 2018-01-09 07:42:06 -06:00
Joakim Erdfelt 3e83908c58 Merge remote-tracking branch 'origin/jetty-9.4.x' into issue-207 2017-06-05 10:02:01 -07:00
Greg Wilkins 78280d0595 Issue #1568 handle query strings with encoded characters 2017-05-24 09:22:16 +02:00
Joakim Erdfelt 4731470188 Issue #1568 - fixing accidental NPE with no query 2017-05-23 11:59:39 -07:00
Joakim Erdfelt 296050dfc4 Issue #1568 - Fixing improper query encoding in WebSocket ServletUpgradeRequest 2017-05-23 10:32:22 -07:00
Joakim Erdfelt 9273d99a99 Merge remote-tracking branch 'origin/jetty-9.4.x' into issue-207 2017-03-15 15:07:17 -07:00
Simone Bordet 0c8273f2ca Happy New Year 2017. 2017-01-19 19:26:41 +01:00
Simone Bordet 07838b057f Happy New Year 2017. 2017-01-19 18:54:03 +01:00
Simone Bordet 347c48d657 Revert "resolve merge and update license headers"
This reverts commit 53b31b03dd, reversing
changes made to 4565c186d7.
2017-01-19 18:26:43 +01:00
Jesse McConnell 53b31b03dd resolve merge and update license headers 2017-01-19 09:33:16 -06:00
Jesse McConnell ce3e6dafec update license headers to 2017 2017-01-19 09:30:00 -06:00
Joakim Erdfelt ecc3c57dd1 Issue #1214 - Ensure all response headers are present 2017-01-04 10:10:23 -04:00
Jan Bartel fe493c2c06 Issue #1124
Fix classloading of WebSocketServerFactory for osgi.
2016-12-08 17:25:18 +11:00
Greg Wilkins a4884f0c2d Issue #117
Fixed Upgrade Response to make a distinction between when headers are available from a response and when they are copied to and copied from the real response.
This exposed the fact that the extension header was being set twice. Fixed that and now test webapp works again.
2016-12-05 17:43:47 +11:00
Jan Bartel 936fd09a18 Issue #1124
Fix classloading of WebSocketServerFactory for osgi.
2016-12-05 09:42:44 +11:00
Joakim Erdfelt b70101b93f Fixes #117 - working build of WebSocketClient with HttpClient
+ Proxy support exists now
2016-12-01 15:00:41 -07:00
Joakim Erdfelt 709938e02b Merge branch 'issue-117' into jetty-9.4.x 2016-12-01 13:06:08 -07:00
Joakim Erdfelt 47fd7e1bd2 Merge branch 'jetty-9.3.x' into jetty-9.4.x 2016-11-30 14:41:43 -07:00
Joakim Erdfelt 63d93160f1 Issue #1124 - post review cleanup of changes with @sbordet 2016-11-30 10:16:25 -07:00
Joakim Erdfelt 70247d74d9 Issue #1124 - Fixing up merge issues
+ Making WebSocketServletFactory always load a new
  WebSocketServerFactory
+ Making WebSocketServerFactory need a ServletContext
  to construct it, if appropriate (the WebSocketHandler
  approach doesn't use a ServletContext)
+ NativeWebSocketConfiguration is now a bean of
  ServerContainer
+ Removed WebSocketServletFactory.init(ServletContext) method
+ Renamed WebSocketServletFactory.init() to .start()
+ Renamed WebSocketServletFactory.cleanup() to .stop()
+ CDI & Websocket now works
+ Using a ServletContextListener now works
+ DecoderFactory and EncoderFactory now work
2016-11-29 15:46:03 -07:00
Joakim Erdfelt e329e386f0 Issue #117 - Carrying over the work from features/wsclient-httpclient 2016-11-28 15:45:38 -07:00
Joakim Erdfelt 1d341398da Fixing up javadoc 2016-08-19 15:45:43 -07:00
Joakim Erdfelt 3ea5c29ea6 Fixes #749 - Invalid WebSocket Upgrade should result in error 400, not 405 2016-08-01 10:06:22 -07:00
Joakim Erdfelt cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Joakim Erdfelt b5db18378d Happy New Year 2016 2016-01-04 14:21:26 -07:00
Joakim Erdfelt ed22d7e0de 464727 - Update Javadoc for Java 8 DocLint 2015-04-22 16:11:01 -07:00
Joakim Erdfelt 09b5f680b7 464727 - Update Javadoc for Java 8 DocLint
Eliminate empty tag warnings
+ Changed <p/> to <p>
+ Changed <br/> to <br>
2015-04-15 14:38:35 -07:00
Greg Wilkins 1cb0449be3 Organised imports 2015-03-26 12:32:15 +11:00
Joakim Erdfelt 87246263b8 453834 - CDI Support for WebSocket
+ Verifying ServletContextHandler behavior of Decorators
+ Marking old ServletContextHandler methods as deprecated
+ Updates to DecoratedObjectFactory
+ Removing customized weld scopes/context (for now)
+ Deferring JSR356 ServerContainer endpoint init
  till Container.doStart() to allow weld to init properly first
+ Removing JSR356 BasicServerEndpointConfigurator in favor
  of ContainerDefaultEndpointConfigurator
+ Only decorating server endpoints if they were created by
  ContainerDefaultEndpointConfigurator, all others are trusted
  to be complete and injected already.
2015-03-12 10:09:52 -07:00
Joakim Erdfelt 5c3e30d136 453834 - CDI Support for WebSocket
+ Changing util.Decorators to util.EnhancedInstantiator to reflect true
  usage
+ Adding EnhancedInstantiator to JSR-356
2015-03-12 10:04:50 -07:00
Joakim Erdfelt 6a0668b7a1 Happy New Year 2015 2015-01-07 17:03:30 -07:00
Joakim Erdfelt d4d62c5690 438387 - NullPointerException after ServletUpgradeResponse.sendForbidden
is called during WebSocketCreator.createWebSocket 

+ Adding NPE guard for error/forbidden/complete flows
2014-09-23 09:46:06 -07:00
Joakim Erdfelt 5635f02235 433793 - WebSocket / empty protocol list in ServerEndpointConfig.Configurator when using non-exact header name
+ Marking header (and parameter) maps as case-insensitive.
2014-05-05 13:46:58 -07:00
Joakim Erdfelt c0e0f9bb83 431459 - Jetty WebSocket compression extensions fails to handle big messages properly
+ Setting up Assume for deregistered compression extension tests
2014-05-05 12:09:58 -07:00
Simone Bordet 4031bc7f3b Reduced websocket memory footprint by releasing the HTTP machinery
(request and response) after the upgrade.
2014-02-24 23:44:21 +01:00
Simone Bordet 5d9360e343 427254 - Cookies are not sent to the client.
Introduced ServletUpgradeResponse.complete(), called when the response
is about to be sent to the client, to transfer the headers stored in
the superclass (UpgradeResponse.headers) into the HttpServletResponse.
2014-02-03 15:31:51 +01:00
Joakim Erdfelt fb8d55e46e 424735 - WebSocket / Make ServletUpgradeRequest expose its HttpServletRequest
+ Added ServletUpgradeRequest.getHttpServletRequest() to access the
  underlying HttpServletRequest.
+ Wrapping underlying post-upgraded HttpServletRequest object with
  many disabled methods that are no longer relevant at this
  post-upgraded state of the connection.
2014-01-07 14:50:59 -07:00
Joakim Erdfelt a12fd9ea03 Happy New Year - 2014! 2014-01-02 14:50:14 -07:00
Joakim Erdfelt 118fc97fe1 424734 - WebSocket / Expose Locale information from ServletUpgradeRequest 2013-12-29 17:05:41 -07:00
Joakim Erdfelt 46ef022cf4 421314 - Websocket / Connect attempt with Chrome 32+ fails with "Some extension already uses the compress bit"
+ Reworked extension negotiation to be more consistent with the changes
  to the spec that Chrome 32 are introducing.  Namely that first
  extension to claim RSV bit wins, all other conflicting extensions are
  ignored.
2013-12-13 12:30:26 -07:00
Joakim Erdfelt 5941e9db83 Fixing various warnings / imports 2013-12-12 14:46:40 -07:00
Joakim Erdfelt ebd0ad90e0 423118 - ServletUpgradeRequest.getUserPrincipal() does not work
+ Deprecating ServletUpgradeRequest.getPrincipal()
 + Adding proper implementation for
   ServletUpgradeRequest.getUserPrincipal()
2013-12-04 12:29:20 -07:00
Greg Wilkins f567bddad9 global clean up imports 2013-11-04 13:48:03 +11:00
Joakim Erdfelt 6f1eb712e9 Cleaning up imports 2013-11-01 10:03:40 -07:00
Joakim Erdfelt e2da5fc7f1 Removing unused imports 2013-10-30 09:29:57 -07:00
Joakim Erdfelt aa5705fd78 417490 - WebSocket / @PathParam annotated parameters are null when the servlet mapping uses a wildcard
+ Fixing ServletUpgradeRequest.getRequestPath() to conform to behavior
 found in WebSocketUpgradeFilter.doFilter()
2013-09-18 06:35:12 -07:00
Joakim Erdfelt 7f85842666 417134 - WebSocket / Jsr ServerEndpointConfig.Configurator.getNegotiatedExtensions() is never used
+ Extensions pre-negotiated via
  ServerEndpointConfig.Configurator.getNegotiatedExtensions are not
  properly handled.
+ Added JsrBrowserDebugTool (Jsr version of BrowserDebugTool)
2013-09-12 15:25:02 -07:00
Joakim Erdfelt e39b48c90d Fixing up javadoc issues in WebSocket classes 2013-08-14 10:54:07 -07:00
Joakim Erdfelt 07041f6439 JSR-356 making HTTP Header map use TreeMap(String.CASE_INSENSITIVE_ORDER) 2013-08-01 10:50:01 -07:00
Joakim Erdfelt e69b41e9cd JSR-356 Adding suppport for @PathParam 2013-07-16 16:56:03 -07:00
Joakim Erdfelt 2da8c9c306 Merge branch 'master' into javawebsocket-jsr
Conflicts:
	jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ReferrerPushStrategyTest.java
	jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/io/UpgradeConnection.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/events/EventDriver.java
	jetty-websocket/websocket-server/src/main/java/org/eclipse/jetty/websocket/server/ServletWebSocketRequest.java
	jetty-websocket/websocket-server/src/main/java/org/eclipse/jetty/websocket/server/WebSocketServerFactory.java
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/WebSocketLoadRFC6455Test.java
2013-06-17 10:54:10 -07:00
Joakim Erdfelt ce68faf9aa Reverting incompatible API change to WebSocketCreator.
+ Added javadoc about casting of parameters and note about
  future change to API (possibly in 9.1)
2013-06-14 11:39:14 -07:00
Joakim Erdfelt f34ac9b920 Fixing parseProtocols 2013-06-14 07:40:02 -07:00
Joakim Erdfelt a6f50006ee 410372 - Make SSL client certificate information available to server websockets 2013-06-11 12:51:53 -07:00
Joakim Erdfelt 7b79b4c5f9 410370 - WebSocketCreator.createWebSocket() should use servlet specific parameters
+ Changing method signature of
  Object createWebSocket(UpgradeRequest req, UpgradeResponse resp)
    to
  Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp)
2013-06-11 11:22:24 -07:00