Simone Bordet
466517a0e8
Issue #4382 - Support HTTP/1 upgrade to HTTP/2 in HttpClient.
...
* Moved implementation of UpgradeTo from HTTP2ServerConnection
to HTTP2Connection, since now also the client connection
can be upgraded to.
* Split HTTP2Session.newStream(), since now the client must
be able to create the implicit stream 1 corresponding to
the HTTP/1.1 upgrade request, so that the HTTP/2 response
after the upgrade finds the stream.
* The HTTP/1.1 upgrade mechanism has been generalized.
Before it was based on HttpConnectionUpgrader and a hook
in HttpChannelOverHTTP.exchangeTerminating().
Now it is based on UpgradeProtocolHandler that when sees
a 101 response it will trigger the upgrade mechanism.
* Introduced ConnectionPool.accept(Connection) to transfer
a connection from the HTTP/1.1 connection pool to the
HTTP/2 connection pool after the upgrade.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-03-13 15:59:13 +01:00
Lachlan Roberts
fef25e7825
Merge branch jetty-10.0.x into jetty-10.0.x-4538-MessageReaderWriter
2020-03-11 14:23:47 +11:00
Lachlan Roberts
adbb3f165e
Issue #4571 - review UTF-8 validation in MessageSinks
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-20 19:00:53 +11:00
Lachlan Roberts
34fd1481b8
Issue #4571 - always close MessageSink before completing the Future
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-20 18:47:04 +11:00
Lachlan Roberts
b2eddff228
Issue #4571 - fix broken tests
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 19:38:26 +11:00
Lachlan Roberts
bc6c950304
add missing licence header
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 19:33:11 +11:00
Lachlan Roberts
5c839d791d
Issue #4538 - allow MessageInputStream not to read to EOF
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 19:31:26 +11:00
Lachlan Roberts
97abed549b
Issue #4538 - Combine MessageWriterTests, add test for UTF-8 validation
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 16:13:22 +11:00
Lachlan Roberts
1b123b87a9
Issue #4538 - add invalid utf8 validation tests for MessageReader
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 11:32:37 +11:00
Lachlan Roberts
2467d5a8c5
Issue #4538 - Rework MessageInputStream and MessageReader
...
Message reader now validates UTF8
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 11:32:26 +11:00
Lachlan Roberts
6eccc7ebce
Issue #4538 - MessageWriter delegates to MessageOutputStream
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 11:32:15 +11:00
Lachlan Roberts
e2f86f9a19
Issue #4538 - simplify MessageInputStream and DispatchedMessageSink
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 11:32:03 +11:00
Lachlan Roberts
71b11f0887
Issue #4571 - simplify partial MessageSinks reduce copying
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 11:26:56 +11:00
Lachlan Roberts
36cccd2c88
Issue #4571 - optimise aggregating text and binary MessageSinks
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-19 11:25:05 +11:00
Lachlan
5fe202f29f
Issue #4548 - clean up websocket removing duplicated and unused classes ( #4549 )
...
Create new module websocket-util which contains implementation classes shared by websocket-jetty and websocket-javax. Many of these classes had to be changed as the javax and jetty versions of them differed slightly.
Also includes general cleanups, removed unused interfaces and classes, etc..
2020-02-18 21:43:54 +11:00
Olivier Lamy
abdb9f2ff6
Jetty 10.0.x methodhandles lookup linkage ( #4552 )
...
* use a lookup dedicated to the target class (webapp classloader) to avoid collision with server classloader
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* cleanup war test dependencies
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* remove empty lines
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* make it clear it is a bad websocket webapp only for testing purpose and add a good websocket webapp
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
* no need anymore of this dependency
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-02-09 11:59:57 +10:00
Lachlan
e4c1984fd0
Merge pull request #4536 from eclipse/jetty-10.0.x-4447-websocketModules
...
Issue #4447 - separate modules for jetty and javax websockets
2020-02-07 16:15:27 +11:00
Lachlan Roberts
b3144dd401
Issue #4447 - update websocket-jetty module description
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-07 16:14:32 +11:00
Lachlan
41a7b8d4e3
Merge pull request #4539 from eclipse/jetty-10.0.x-4501-SharedBlockingCallback
...
Issue #4501 - remove all SharedBlockingCallback usage from websocket
2020-02-05 10:07:12 +11:00
Lachlan Roberts
cbb09413fd
Issue #4501 - fix test expectations to throw CloseChannelException
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-03 18:34:19 +11:00
Lachlan Roberts
3344772e2f
Issue #4447 - hard code in version for javax-websocket-api 1.1.2
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-03 18:29:46 +11:00
Lachlan Roberts
182daf8504
Issue #4501 - remove all SharedBlockingCallback usage from websocket
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-03 17:20:45 +11:00
Lachlan
f8219a56cc
Merge pull request #4535 from eclipse/jetty-10.0.x-4462-javaxWSClose
...
Issue #4462 - do not throw IOException on Javax websocket close
2020-02-03 10:22:23 +11:00
Lachlan Roberts
fde1ab3e5b
Issue #4462 - fix incorrect test expectations
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-31 16:31:35 +11:00
Lachlan Roberts
a7c0c57496
Issue #4447 - separate modules for jetty and javax websockets
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-31 15:58:20 +11:00
Lachlan Roberts
bdaa06e8dd
Issue #4462 - do not throw IOException on Javax websocket close
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-31 11:09:30 +11:00
Simone Bordet
ce6e146ac1
Merge pull request #4489 from eclipse/jetty-10.0.x-2643-pkcs12_keystores
...
Fixes #2643 - Switch SslContextFactory.keystoreType from JKS to PKCS12.
2020-01-30 19:28:49 +01:00
Lachlan Roberts
b4d2ccc6b8
Make the WebSocketServerContainer initialize methods private
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-30 15:01:15 +11:00
Lachlan Roberts
006fd3f913
Issue #4226 - fix test failures
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-30 11:26:51 +11:00
Lachlan Roberts
82c61c48eb
Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4226-JavaxWebSocketJPMS
2020-01-30 10:37:34 +11:00
Lachlan
19354d0c24
Merge pull request #4523 from eclipse/jetty-10.0.x-4502-wsOnClose
...
Issue #4502 - allow changing of close response from jetty and javax websocket onClose events
2020-01-30 09:10:48 +11:00
Simone Bordet
96741ebb28
Fixed compilation issues after merge.
...
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-01-29 10:11:21 +01:00
Lachlan Roberts
1afb7fd1f2
Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4450-WebSocketCoreJPMS
2020-01-29 19:21:39 +11:00
Lachlan Roberts
8638fb2cc3
Fix broken test cases
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-29 19:13:03 +11:00
Lachlan Roberts
fdd27a9f28
Issue #4502 - add onClose tests for Jetty and Javax WS APIs
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-29 15:20:36 +11:00
Lachlan Roberts
4ef208e9f6
Issue #4502 - onClose can now be triggered on receiving a close frame
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-29 15:19:48 +11:00
Lachlan
f6fd3c41a5
Issue #4462 - Prevent jetty 10 WebSocket close deadlocks ( #4472 )
...
- Replicate problems from WS close deadlock with test cases
- use FutureCallback instead of SharedBlockingCallback for WS blocking methods
- add timeout to the blocking callbacks for WS for (idleTimeout + 1000ms)
- Core throws ClosedChannelException instead of ISE if send after closed
2020-01-29 09:15:40 +11:00
Lachlan Roberts
a4b85d1df2
Issue #4226 JavaxWebSocketServerContainer leaking into public signature
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-28 18:16:22 +11:00
Lachlan Roberts
6698592139
Add tests for Javax ServerContainer default configuration.
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-28 18:15:27 +11:00
Lachlan Roberts
6c2c4d8ad7
Issue 4450 - remove ConfigurationCustomizer static method
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-24 11:05:14 +11:00
Lachlan Roberts
64d72abde6
Extension interface now uses CoreSession and not Configuration
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-23 10:20:40 +11:00
Lachlan Roberts
bc88224f19
combine ConfigurationHolder and ConfigurationCustomizer
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-22 18:15:59 +11:00
Lachlan Roberts
f35a01c73c
further checkstyle fixes
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-22 17:26:07 +11:00
Lachlan Roberts
acabec2e91
fix licence headers and checkstyle
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-22 16:08:08 +11:00
Lachlan Roberts
86037367bc
Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-4450-WebSocketCoreJPMS
2020-01-22 14:51:51 +11:00
Simone Bordet
d60b4459bf
Fixes #2643 - Switch SslContextFactory.keystoreType from JKS to PKCS12.
...
Updated old keystores to new PKCS12 keystores.
Removed unused keystores and truststores.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-01-17 09:48:51 +01:00
Joakim Erdfelt
01a5974f4b
Merge branch `jetty-9.4.x` into `jetty-10.0.x`
...
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
# Conflicts:
# Jenkinsfile
# examples/async-rest/async-rest-webapp/src/test/java/org/eclipse/jetty/example/asyncrest/DemoServer.java
# jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTest.java
# jetty-http/src/test/java/org/eclipse/jetty/http/HttpParserTest.java
# jetty-http/src/test/java/org/eclipse/jetty/http/HttpTester.java
# jetty-http/src/test/java/org/eclipse/jetty/http/MultiPartParserTest.java
# jetty-http/src/test/java/org/eclipse/jetty/http/PathMapTest.java
# jetty-http/src/test/java/org/eclipse/jetty/http/matchers/HttpFieldsMatchersTest.java
# jetty-maven-plugin/src/test/java/org/eclipse/jetty/maven/plugin/it/TestGetContent.java
# jetty-server/src/test/java/org/eclipse/jetty/server/CookieCutterLenientTest.java
# jetty-server/src/test/java/org/eclipse/jetty/server/CookieCutterTest.java
# jetty-server/src/test/java/org/eclipse/jetty/server/PartialRFC2616Test.java
# jetty-servlet/src/test/java/org/eclipse/jetty/servlet/ServletLifeCycleTest.java
# jetty-servlets/src/test/java/org/eclipse/jetty/server/handler/gzip/GzipContentLengthTest.java
# jetty-servlets/src/test/java/org/eclipse/jetty/server/handler/gzip/GzipDefaultNoRecompressTest.java
# jetty-servlets/src/test/java/org/eclipse/jetty/servlets/MultipartFilterTest.java
# jetty-unixsocket/src/test/java/org/eclipse/jetty/unixsocket/UnixSocketClient.java
# jetty-util/src/test/java/org/eclipse/jetty/util/B64CodeTest.java
# jetty-util/src/test/java/org/eclipse/jetty/util/resource/FileSystemResourceTest.java
# jetty-util/src/test/java/org/eclipse/jetty/util/ssl/X509Test.java
# jetty-webapp/src/test/java/org/eclipse/jetty/webapp/ClasspathPatternTest.java
# jetty-websocket/javax-websocket-client-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/LargeMessageTest.java
# jetty-websocket/javax-websocket-client-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/endpoints/ClientAnnotatedEndpointScannerGoodSignaturesTest.java
# jetty-websocket/javax-websocket-client-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/endpoints/ClientAnnotatedEndpointScannerInvalidSignaturesTest.java
# jetty-websocket/javax-websocket-client-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/metadata/EncoderMetadataSetTest.java
# jetty-websocket/javax-websocket-client-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/utils/ReflectUtilsTest.java
# jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java
# jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/DelayedStartClientOnServerTest.java
# jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/RestartContextTest.java
# jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ServerAnnotatedEndpointScannerGoodSignaturesTest.java
# jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ServerAnnotatedEndpointScannerInvalidSignaturesTest.java
# jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/SessionTest.java
# jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/ErrorCloseTest.java
# jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/ClientConnectTest.java
# jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/ClientSessionsTest.java
# jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/WebSocketClientTest.java
# jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/server/PartialListenerTest.java
# jetty-websocket/websocket-api/src/test/java/org/eclipse/jetty/websocket/api/extensions/ExtensionConfigTest.java
# jetty-websocket/websocket-api/src/test/java/org/eclipse/jetty/websocket/api/util/QuoteUtilQuoteTest.java
# jetty-websocket/websocket-api/src/test/java/org/eclipse/jetty/websocket/api/util/QuoteUtilTest.java
# jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/ConnectionManagerTest.java
# jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/TomcatServerQuirksTest.java
# jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/WebSocketClientInitTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/GeneratorTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/ParserTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/TextPayloadParserTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/ab/TestABCase11.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/ab/TestABCase12.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/ab/TestABCase2.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/ab/TestABCase4.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/ab/TestABCase73.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/events/EventDriverTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/events/JettyAnnotatedScannerTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/ByteAccumulatorTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/DeflateFrameExtensionTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/PerMessageDeflateExtensionTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/io/ConnectionStateTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/io/http/HttpResponseHeaderParserTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/message/MessageDebug.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/message/Utf8CharBufferTest.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/test/UnitGenerator.java
# jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/util/Utf8PartialBuilderTest.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/RedirectWebSocketClientTest.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/SimpleServletServer.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase1.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase2.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase3.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase4.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase5.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase6.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase6BadUTF.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase6GoodUTF.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase7.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase7BadStatusCodes.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase7GoodStatusCodes.java
# jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/TestABCase9.java
# pom.xml
# tests/test-continuation/src/test/java/org/eclipse/jetty/continuation/ContinuationsTest.java
# tests/test-sessions/test-jdbc-sessions/src/test/java/org/eclipse/jetty/server/session/JdbcTestHelper.java
# tests/test-webapps/test-jetty-webapp/src/test/java/org/eclipse/jetty/TestServer.java
# tests/test-webapps/test-proxy-webapp/src/test/java/org/eclipse/jetty/TestTransparentProxyServer.java
2020-01-15 12:20:20 -06:00
Joakim Erdfelt
81d32f64f0
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-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/EventSocket.java
# jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketUpgradeRequest.java
# jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
2020-01-15 11:44:43 -06:00
Joakim Erdfelt
8c65309963
Addressing Checkstyle violations in src/test/java
...
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-01-14 12:33:34 -06:00
Lachlan Roberts
a7b9df96fd
cleanup WebSocket logging in EventSocket
...
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-14 10:33:19 +11:00