diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index 6e60cc36d63d..3a86090ac951 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -176,11 +176,6 @@ ${project.version} - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - org.eclipse.jetty.websocket websocket-javax-server diff --git a/aggregates/jetty-websocket-all/pom.xml b/aggregates/jetty-websocket-all/pom.xml index fec0ba1be952..e59bcd0523be 100644 --- a/aggregates/jetty-websocket-all/pom.xml +++ b/aggregates/jetty-websocket-all/pom.xml @@ -105,12 +105,6 @@ - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - provided - org.eclipse.jetty.websocket websocket-javax-server diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index 22bc490c200c..c1f662b0b100 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -64,11 +64,6 @@ websocket-javax-server ${project.version} - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - org.eclipse.jetty.websocket websocket-jetty-server diff --git a/jetty-bom/pom.xml b/jetty-bom/pom.xml index 4b073072d345..dd196cd069a3 100644 --- a/jetty-bom/pom.xml +++ b/jetty-bom/pom.xml @@ -374,11 +374,6 @@ websocket-jetty-server 10.0.0-SNAPSHOT - - org.eclipse.jetty.websocket - websocket-servlet - 10.0.0-SNAPSHOT - org.eclipse.jetty.websocket websocket-core diff --git a/jetty-gcloud/jetty-gcloud-session-manager/pom.xml b/jetty-gcloud/jetty-gcloud-session-manager/pom.xml index 5044d383aedf..8ed5444b655e 100644 --- a/jetty-gcloud/jetty-gcloud-session-manager/pom.xml +++ b/jetty-gcloud/jetty-gcloud-session-manager/pom.xml @@ -67,12 +67,6 @@ ${project.version} test - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - test - org.eclipse.jetty.websocket websocket-jetty-server diff --git a/jetty-hazelcast/pom.xml b/jetty-hazelcast/pom.xml index 1bb1d405806b..4d80cdb649a9 100644 --- a/jetty-hazelcast/pom.xml +++ b/jetty-hazelcast/pom.xml @@ -59,12 +59,6 @@ ${project.version} test - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - test - org.eclipse.jetty.websocket websocket-jetty-server diff --git a/jetty-home/pom.xml b/jetty-home/pom.xml index f7bdb194a0a0..b97f22854813 100644 --- a/jetty-home/pom.xml +++ b/jetty-home/pom.xml @@ -661,11 +661,6 @@ jetty-servlets ${project.version} - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - org.eclipse.jetty.websocket websocket-jetty-server diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index d82c7e2dde92..c7605303634e 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -302,12 +302,6 @@ ${project.version} runtime - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - runtime - org.eclipse.jetty.websocket websocket-jetty-server diff --git a/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestOSGiUtil.java b/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestOSGiUtil.java index a5b0022a065a..1bc633479fbe 100644 --- a/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestOSGiUtil.java +++ b/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestOSGiUtil.java @@ -148,7 +148,6 @@ public static List - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - org.eclipse.jetty jetty-annotations diff --git a/jetty-websocket/websocket-javax-server/src/main/config/modules/websocket-javax.mod b/jetty-websocket/websocket-javax-server/src/main/config/modules/websocket-javax.mod index 2f0ae30c75b1..0a0941e921e7 100644 --- a/jetty-websocket/websocket-javax-server/src/main/config/modules/websocket-javax.mod +++ b/jetty-websocket/websocket-javax-server/src/main/config/modules/websocket-javax.mod @@ -12,7 +12,6 @@ annotations [lib] lib/websocket/websocket-core-${jetty.version}.jar -lib/websocket/websocket-servlet-${jetty.version}.jar lib/websocket/websocket-util-${jetty.version}.jar lib/websocket/jetty-javax-websocket-api-1.1.2.jar lib/websocket/websocket-javax-client-${jetty.version}.jar diff --git a/jetty-websocket/websocket-javax-server/src/main/java/module-info.java b/jetty-websocket/websocket-javax-server/src/main/java/module-info.java index 6d52f89a355b..1c809f98d6c2 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/module-info.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/module-info.java @@ -31,7 +31,6 @@ requires transitive org.eclipse.jetty.webapp; requires transitive org.eclipse.jetty.websocket.javax.client; requires org.eclipse.jetty.websocket.javax.common; - requires org.eclipse.jetty.websocket.servlet; requires org.slf4j; provides ServletContainerInitializer with JavaxWebSocketServletContainerInitializer; diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketConfiguration.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketConfiguration.java index 4c66e39abed2..ec4fdf3b95fc 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketConfiguration.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketConfiguration.java @@ -37,7 +37,7 @@ public JavaxWebSocketConfiguration() { addDependencies(WebXmlConfiguration.class, MetaInfConfiguration.class, WebInfConfiguration.class, FragmentConfiguration.class); addDependents("org.eclipse.jetty.annotations.AnnotationConfiguration", WebAppConfiguration.class.getName()); - protectAndExpose("org.eclipse.jetty.websocket.servlet."); // For WebSocketUpgradeFilter + protectAndExpose("org.eclipse.jetty.websocket.util.servlet."); // For WebSocketUpgradeFilter protectAndExpose("org.eclipse.jetty.websocket.javax.server.config."); protectAndExpose("org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientContainerProvider"); hide("org.eclipse.jetty.websocket.javax.server.internal"); diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketServletContainerInitializer.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketServletContainerInitializer.java index 797c9c1f1a8e..a2404d16e9f3 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketServletContainerInitializer.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/config/JavaxWebSocketServletContainerInitializer.java @@ -38,8 +38,8 @@ import org.eclipse.jetty.util.thread.ThreadClassLoaderScope; import org.eclipse.jetty.websocket.core.WebSocketComponents; import org.eclipse.jetty.websocket.javax.server.internal.JavaxWebSocketServerContainer; -import org.eclipse.jetty.websocket.servlet.WebSocketMapping; -import org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter; +import org.eclipse.jetty.websocket.util.server.WebSocketMapping; +import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxServerUpgradeRequest.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxServerUpgradeRequest.java index 9b4d4d559393..0760c4fac4cc 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxServerUpgradeRequest.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxServerUpgradeRequest.java @@ -22,7 +22,7 @@ import java.security.Principal; import org.eclipse.jetty.websocket.javax.common.UpgradeRequest; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; public class JavaxServerUpgradeRequest implements UpgradeRequest { diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketCreator.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketCreator.java index de98982caac1..e5ab6225e256 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketCreator.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketCreator.java @@ -37,9 +37,9 @@ import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketExtension; import org.eclipse.jetty.websocket.javax.common.ServerEndpointConfigWrapper; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; -import org.eclipse.jetty.websocket.servlet.WebSocketCreator; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.WebSocketCreator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerContainer.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerContainer.java index 5f7bd46f9966..fb2ecbb9e5e9 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerContainer.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerContainer.java @@ -39,7 +39,7 @@ import org.eclipse.jetty.websocket.core.exception.WebSocketException; import org.eclipse.jetty.websocket.javax.client.internal.JavaxWebSocketClientContainer; import org.eclipse.jetty.websocket.javax.server.config.JavaxWebSocketServletContainerInitializer; -import org.eclipse.jetty.websocket.servlet.WebSocketMapping; +import org.eclipse.jetty.websocket.util.server.WebSocketMapping; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerFrameHandlerFactory.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerFrameHandlerFactory.java index a31ea1741e60..52dbab393fda 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerFrameHandlerFactory.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JavaxWebSocketServerFrameHandlerFactory.java @@ -27,9 +27,9 @@ import org.eclipse.jetty.websocket.javax.client.internal.JavaxWebSocketClientFrameHandlerFactory; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer; import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketFrameHandlerMetadata; -import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.FrameHandlerFactory; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketClientFrameHandlerFactory implements FrameHandlerFactory { diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeRequest.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeRequest.java index be31158e1f2f..8cd64bb62998 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeRequest.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeRequest.java @@ -25,7 +25,7 @@ import javax.websocket.server.HandshakeRequest; import org.eclipse.jetty.http.pathmap.PathSpec; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; public class JsrHandshakeRequest implements HandshakeRequest { diff --git a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeResponse.java b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeResponse.java index 8e25272dc36f..8a3e268313c4 100644 --- a/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeResponse.java +++ b/jetty-websocket/websocket-javax-server/src/main/java/org/eclipse/jetty/websocket/javax/server/internal/JsrHandshakeResponse.java @@ -23,7 +23,7 @@ import java.util.Map; import javax.websocket.HandshakeResponse; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; public class JsrHandshakeResponse implements HandshakeResponse { diff --git a/jetty-websocket/websocket-javax-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/LocalServer.java b/jetty-websocket/websocket-javax-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/LocalServer.java index 01170fd2a8bf..bc80b1a81ead 100644 --- a/jetty-websocket/websocket-javax-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/LocalServer.java +++ b/jetty-websocket/websocket-javax-tests/src/main/java/org/eclipse/jetty/websocket/javax/tests/LocalServer.java @@ -27,7 +27,6 @@ import javax.websocket.server.ServerEndpoint; import org.eclipse.jetty.http.HttpVersion; -import org.eclipse.jetty.http.pathmap.PathSpec; import org.eclipse.jetty.io.ByteBufferPool; import org.eclipse.jetty.io.MappedByteBufferPool; import org.eclipse.jetty.server.Handler; @@ -50,11 +49,6 @@ import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketSessionListener; import org.eclipse.jetty.websocket.javax.server.config.JavaxWebSocketServletContainerInitializer; import org.eclipse.jetty.websocket.javax.server.internal.JavaxWebSocketServerContainer; -import org.eclipse.jetty.websocket.javax.server.internal.JavaxWebSocketServerFrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.WebSocketCreator; -import org.eclipse.jetty.websocket.servlet.WebSocketServlet; -import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -259,28 +253,6 @@ public void registerHttpService(String urlPattern, BiConsumer wsuf-test - org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter + org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter diff --git a/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-alt-config-via-listener.xml b/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-alt-config-via-listener.xml index 1479493aff3e..647d0947663f 100644 --- a/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-alt-config-via-listener.xml +++ b/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-alt-config-via-listener.xml @@ -12,7 +12,7 @@ wsuf-alt - org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter + org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter configAttributeKey alt.config diff --git a/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-listener.xml b/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-listener.xml index d9811f6e0e5e..595de89a035c 100644 --- a/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-listener.xml +++ b/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-listener.xml @@ -16,7 +16,7 @@ wsuf - org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter + org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter diff --git a/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-servlet-init.xml b/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-servlet-init.xml index f8c8fbf61e92..56a333bfee1e 100644 --- a/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-servlet-init.xml +++ b/jetty-websocket/websocket-javax-tests/src/test/resources/wsuf-config-via-servlet-init.xml @@ -18,7 +18,7 @@ wsuf - org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter + org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter diff --git a/jetty-websocket/websocket-jetty-server/pom.xml b/jetty-websocket/websocket-jetty-server/pom.xml index 811fa6c6f893..a4454dae0dc9 100644 --- a/jetty-websocket/websocket-jetty-server/pom.xml +++ b/jetty-websocket/websocket-jetty-server/pom.xml @@ -46,11 +46,6 @@ websocket-jetty-common ${project.version} - - org.eclipse.jetty.websocket - websocket-servlet - ${project.version} - org.eclipse.jetty.toolchain jetty-servlet-api diff --git a/jetty-websocket/websocket-jetty-server/src/main/config/modules/websocket-jetty.mod b/jetty-websocket/websocket-jetty-server/src/main/config/modules/websocket-jetty.mod index 1f3f6189a646..c0e09e50fc51 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/config/modules/websocket-jetty.mod +++ b/jetty-websocket/websocket-jetty-server/src/main/config/modules/websocket-jetty.mod @@ -12,7 +12,6 @@ annotations [lib] lib/websocket/websocket-core-${jetty.version}.jar -lib/websocket/websocket-servlet-${jetty.version}.jar lib/websocket/websocket-util-${jetty.version}.jar lib/websocket/websocket-jetty-api-${jetty.version}.jar lib/websocket/websocket-jetty-common-${jetty.version}.jar diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/module-info.java b/jetty-websocket/websocket-jetty-server/src/main/java/module-info.java index 9686cfd3f612..78dff18d6e1b 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/module-info.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/module-info.java @@ -31,7 +31,6 @@ requires org.eclipse.jetty.websocket.jetty.common; requires transitive org.eclipse.jetty.webapp; requires transitive org.eclipse.jetty.websocket.jetty.api; - requires transitive org.eclipse.jetty.websocket.servlet; requires org.slf4j; // Only required if using JMX. diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeRequest.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeRequest.java index 052b458c95fa..52868f985272 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeRequest.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeRequest.java @@ -36,7 +36,7 @@ import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig; import org.eclipse.jetty.websocket.core.server.Negotiation; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; public class JettyServerUpgradeRequest { diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeResponse.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeResponse.java index dcd144613a06..f6ddcf4faf1e 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeResponse.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyServerUpgradeResponse.java @@ -26,7 +26,7 @@ import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; public class JettyServerUpgradeResponse { diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java index faf36ac1a020..788ed7f808cf 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServerContainer.java @@ -41,8 +41,8 @@ import org.eclipse.jetty.websocket.core.exception.WebSocketException; import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; import org.eclipse.jetty.websocket.server.internal.JettyServerFrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.WebSocketMapping; +import org.eclipse.jetty.websocket.util.server.FrameHandlerFactory; +import org.eclipse.jetty.websocket.util.server.WebSocketMapping; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServlet.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServlet.java index b2880acbb31e..cac83a3de737 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServlet.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServlet.java @@ -18,29 +18,266 @@ package org.eclipse.jetty.websocket.server; +import java.io.IOException; +import java.lang.reflect.Constructor; +import java.time.Duration; +import java.util.Set; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.eclipse.jetty.server.handler.ContextHandler; +import org.eclipse.jetty.websocket.core.Configuration; +import org.eclipse.jetty.websocket.core.WebSocketComponents; import org.eclipse.jetty.websocket.server.internal.JettyServerFrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.WebSocketServlet; -import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; +import org.eclipse.jetty.websocket.util.server.FrameHandlerFactory; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.WebSocketCreator; +import org.eclipse.jetty.websocket.util.server.WebSocketMapping; +import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public abstract class JettyWebSocketServlet extends WebSocketServlet +/** + * Abstract Servlet used to bridge the Servlet API to the WebSocket API. + *

+ * To use this servlet, you will be required to register your websockets with the {@link WebSocketMapping} so that it can create your websockets under the + * appropriate conditions. + *

+ *

The most basic implementation would be as follows:

+ *
+ * package my.example;
+ *
+ * import JettyWebSocketServlet;
+ * import JettyWebSocketServletFactory;
+ *
+ * public class MyEchoServlet extends JettyWebSocketServlet
+ * {
+ *     @Override
+ *     public void configure(JettyWebSocketServletFactory factory)
+ *     {
+ *       factory.setDefaultMaxFrameSize(4096);
+ *       factory.addMapping(factory.parsePathSpec("/"), (req,res)->new EchoSocket());
+ *     }
+ * }
+ * 
+ *

+ * Only request that conforms to a "WebSocket: Upgrade" handshake request will trigger the {@link WebSocketMapping} handling of creating + * WebSockets. All other requests are treated as normal servlet requests. The configuration defined by this servlet init parameters will + * be used as the customizer for any mappings created by {@link JettyWebSocketServletFactory#addMapping(String, JettyWebSocketCreator)} during + * {@link #configure(JettyWebSocketServletFactory)} calls. The request upgrade may be peformed by this servlet, or is may be performed by a + * {@link WebSocketUpgradeFilter} instance that will share the same {@link WebSocketMapping} instance. If the filter is used, then the + * filter configuraton is used as the default configuration prior to this servlets configuration being applied. + *

+ *

+ * Configuration / Init-Parameters: + *

+ *
+ *
idleTimeout
+ *
set the time in ms that a websocket may be idle before closing
+ *
maxTextMessageSize
+ *
set the size in UTF-8 bytes that a websocket may be accept as a Text Message before closing
+ *
maxBinaryMessageSize
+ *
set the size in bytes that a websocket may be accept as a Binary Message before closing
+ *
inputBufferSize
+ *
set the size in bytes of the buffer used to read raw bytes from the network layer
*
outputBufferSize
+ *
set the size in bytes of the buffer used to write bytes to the network layer
+ *
maxFrameSize
+ *
The maximum frame size sent or received.
+ *
autoFragment
+ *
If true, frames are automatically fragmented to respect the maximum frame size.
+ *
+ */ +public abstract class JettyWebSocketServlet extends HttpServlet { + private static final Logger LOG = LoggerFactory.getLogger(JettyWebSocketServlet.class); + private final CustomizedWebSocketServletFactory customizer = new CustomizedWebSocketServletFactory(); + + private WebSocketMapping mapping; + private WebSocketComponents components; + + /** + * Configure the JettyWebSocketServletFactory for this servlet instance by setting default + * configuration (which may be overriden by annotations) and mapping {@link JettyWebSocketCreator}s. + * This method assumes a single {@link FrameHandlerFactory} will be available as a bean on the + * {@link ContextHandler}, which in practise will mostly the the Jetty WebSocket API factory. + * + * @param factory the JettyWebSocketServletFactory + */ protected abstract void configure(JettyWebSocketServletFactory factory); + /** + * @return the instance of {@link FrameHandlerFactory} to be used to create the FrameHandler + */ + private FrameHandlerFactory getFactory() + { + JettyServerFrameHandlerFactory frameHandlerFactory = JettyServerFrameHandlerFactory.getFactory(getServletContext()); + + if (frameHandlerFactory == null) + throw new IllegalStateException("JettyServerFrameHandlerFactory not found"); + + return frameHandlerFactory; + } + @Override - protected final void configure(WebSocketServletFactory factory) + public void init() throws ServletException { - configure(new JettyWebSocketServletFactory(factory)); + try + { + ServletContext servletContext = getServletContext(); + + components = WebSocketComponents.ensureWebSocketComponents(servletContext); + mapping = new WebSocketMapping(components); + + String max = getInitParameter("idleTimeout"); + if (max == null) + { + max = getInitParameter("maxIdleTime"); + if (max != null) + LOG.warn("'maxIdleTime' init param is deprecated, use 'idleTimeout' instead"); + } + if (max != null) + customizer.setIdleTimeout(Duration.ofMillis(Long.parseLong(max))); + + max = getInitParameter("maxTextMessageSize"); + if (max != null) + customizer.setMaxTextMessageSize(Long.parseLong(max)); + + max = getInitParameter("maxBinaryMessageSize"); + if (max != null) + customizer.setMaxBinaryMessageSize(Long.parseLong(max)); + + max = getInitParameter("inputBufferSize"); + if (max != null) + customizer.setInputBufferSize(Integer.parseInt(max)); + + max = getInitParameter("outputBufferSize"); + if (max != null) + customizer.setOutputBufferSize(Integer.parseInt(max)); + + max = getInitParameter("maxFrameSize"); + if (max == null) + max = getInitParameter("maxAllowedFrameSize"); + if (max != null) + customizer.setMaxFrameSize(Long.parseLong(max)); + + String autoFragment = getInitParameter("autoFragment"); + if (autoFragment != null) + customizer.setAutoFragment(Boolean.parseBoolean(autoFragment)); + + configure(customizer); // Let user modify customizer prior after init params + } + catch (Throwable x) + { + throw new ServletException(x); + } } @Override - protected FrameHandlerFactory getFactory() + protected void service(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { - JettyServerFrameHandlerFactory frameHandlerFactory = JettyServerFrameHandlerFactory.getFactory(getServletContext()); + // provide a null default customizer the customizer will be on the negotiator in the mapping + if (mapping.upgrade(req, resp, null)) + return; - if (frameHandlerFactory == null) - throw new IllegalStateException("JettyServerFrameHandlerFactory not found"); + // If we reach this point, it means we had an incoming request to upgrade + // but it was either not a proper websocket upgrade, or it was possibly rejected + // due to incoming request constraints (controlled by WebSocketCreator) + if (resp.isCommitted()) + return; - return frameHandlerFactory; + // Handle normally + super.service(req, resp); + } + + private class CustomizedWebSocketServletFactory extends Configuration.ConfigurationCustomizer implements JettyWebSocketServletFactory + { + @Override + public Set getAvailableExtensionNames() + { + return components.getExtensionRegistry().getAvailableExtensionNames(); + } + + @Override + public void addMapping(String pathSpec, JettyWebSocketCreator creator) + { + mapping.addMapping(WebSocketMapping.parsePathSpec(pathSpec), new WrappedJettyCreator(creator), getFactory(), this); + } + + @Override + public void register(Class endpointClass) + { + Constructor constructor; + try + { + constructor = endpointClass.getDeclaredConstructor(); + } + catch (NoSuchMethodException e) + { + throw new RuntimeException(e); + } + + JettyWebSocketCreator creator = (req, resp) -> + { + try + { + return constructor.newInstance(); + } + catch (Throwable t) + { + t.printStackTrace(); + return null; + } + }; + + addMapping("/", creator); + } + + @Override + public void setCreator(JettyWebSocketCreator creator) + { + addMapping("/", creator); + } + + @Override + public JettyWebSocketCreator getMapping(String pathSpec) + { + WebSocketCreator creator = mapping.getMapping(WebSocketMapping.parsePathSpec(pathSpec)); + if (creator instanceof WrappedJettyCreator) + return ((WrappedJettyCreator)creator).getJettyWebSocketCreator(); + + return null; + } + + @Override + public boolean removeMapping(String pathSpec) + { + return mapping.removeMapping(WebSocketMapping.parsePathSpec(pathSpec)); + } + } + + private static class WrappedJettyCreator implements WebSocketCreator + { + private JettyWebSocketCreator creator; + + private WrappedJettyCreator(JettyWebSocketCreator creator) + { + this.creator = creator; + } + + private JettyWebSocketCreator getJettyWebSocketCreator() + { + return creator; + } + + @Override + public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) + { + return creator.createWebSocket(new JettyServerUpgradeRequest(req), new JettyServerUpgradeResponse(resp)); + } } } diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java index c27d5245bca6..bad079374412 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/JettyWebSocketServletFactory.java @@ -18,123 +18,15 @@ package org.eclipse.jetty.websocket.server; -import java.time.Duration; import java.util.Set; -import org.eclipse.jetty.http.pathmap.PathSpec; import org.eclipse.jetty.websocket.api.WebSocketBehavior; import org.eclipse.jetty.websocket.api.WebSocketPolicy; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; -import org.eclipse.jetty.websocket.servlet.WebSocketCreator; -import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; -public class JettyWebSocketServletFactory implements WebSocketPolicy +public interface JettyWebSocketServletFactory extends WebSocketPolicy { - private WebSocketServletFactory factory; - - JettyWebSocketServletFactory(WebSocketServletFactory factory) - { - this.factory = factory; - } - - public Set getAvailableExtensionNames() - { - return factory.getExtensionRegistry().getAvailableExtensionNames(); - } - - @Override - public WebSocketBehavior getBehavior() - { - return WebSocketBehavior.SERVER; - } - - @Override - public boolean isAutoFragment() - { - return factory.isAutoFragment(); - } - - @Override - public void setAutoFragment(boolean autoFragment) - { - factory.setAutoFragment(autoFragment); - } - - @Override - public long getMaxFrameSize() - { - return factory.getMaxFrameSize(); - } - - @Override - public void setMaxFrameSize(long maxFrameSize) - { - factory.setMaxFrameSize(maxFrameSize); - } - - @Override - public Duration getIdleTimeout() - { - return factory.getIdleTimeout(); - } - - @Override - public void setIdleTimeout(Duration duration) - { - factory.setIdleTimeout(duration); - } - - @Override - public int getInputBufferSize() - { - return factory.getInputBufferSize(); - } - - @Override - public void setInputBufferSize(int bufferSize) - { - factory.setInputBufferSize(bufferSize); - } - - @Override - public long getMaxBinaryMessageSize() - { - return factory.getMaxBinaryMessageSize(); - } - - @Override - public void setMaxBinaryMessageSize(long bufferSize) - { - factory.setMaxBinaryMessageSize(bufferSize); - } - - @Override - public long getMaxTextMessageSize() - { - return factory.getMaxTextMessageSize(); - } - - @Override - public void setMaxTextMessageSize(long bufferSize) - { - factory.setMaxTextMessageSize(bufferSize); - } - - @Override - public int getOutputBufferSize() - { - return factory.getOutputBufferSize(); - } - - @Override - public void setOutputBufferSize(int bufferSize) - { - factory.setOutputBufferSize(bufferSize); - } - /** - * add a WebSocket mapping to a provided {@link JettyWebSocketCreator}. + * Add a WebSocket mapping to a provided {@link JettyWebSocketCreator}. *

* If mapping is added before this configuration is started, then it is persisted through * stop/start of this configuration's lifecycle. Otherwise it will be removed when @@ -145,30 +37,21 @@ public void setOutputBufferSize(int bufferSize) * @param creator the WebSocketCreator to use * @since 10.0 */ - public void addMapping(String pathSpec, JettyWebSocketCreator creator) - { - factory.addMapping(pathSpec, new WrappedCreator(creator)); - } + void addMapping(String pathSpec, JettyWebSocketCreator creator); /** * Add a WebSocket mapping at PathSpec "/" for a creator which creates the endpointClass * * @param endpointClass the WebSocket class to use */ - public void register(Class endpointClass) - { - factory.register(endpointClass); - } + void register(Class endpointClass); /** * Add a WebSocket mapping at PathSpec "/" for a creator * * @param creator the WebSocketCreator to use */ - public void setCreator(JettyWebSocketCreator creator) - { - factory.setCreator(new WrappedCreator(creator)); - } + void setCreator(JettyWebSocketCreator creator); /** * Returns the creator for the given path spec. @@ -176,14 +59,7 @@ public void setCreator(JettyWebSocketCreator creator) * @param pathSpec the pathspec to respond on * @return the websocket creator if path spec exists, or null */ - public JettyWebSocketCreator getMapping(String pathSpec) - { - WebSocketCreator creator = factory.getMapping(parsePathSpec(pathSpec)); - if (creator instanceof WrappedCreator) - return ((WrappedCreator)creator).getCreator(); - - return null; - } + JettyWebSocketCreator getMapping(String pathSpec); /** * Removes the mapping based on the given path spec. @@ -191,40 +67,17 @@ public JettyWebSocketCreator getMapping(String pathSpec) * @param pathSpec the pathspec to respond on * @return true if underlying mapping were altered, false otherwise */ - public boolean removeMapping(String pathSpec) - { - return factory.removeMapping(parsePathSpec(pathSpec)); - } + boolean removeMapping(String pathSpec); /** - * Parse a PathSpec string into a PathSpec instance. - * - * @param rawSpec the raw path spec as String to parse. - * @return the {@link PathSpec} implementation for the rawSpec + * Get the names of all available WebSocket Extensions. + * @return a set the available extension names. */ - private PathSpec parsePathSpec(String rawSpec) - { - return factory.parsePathSpec(rawSpec); - } + Set getAvailableExtensionNames(); - private static class WrappedCreator implements WebSocketCreator + @Override + default WebSocketBehavior getBehavior() { - private JettyWebSocketCreator creator; - - private WrappedCreator(JettyWebSocketCreator creator) - { - this.creator = creator; - } - - public JettyWebSocketCreator getCreator() - { - return creator; - } - - @Override - public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) - { - return creator.createWebSocket(new JettyServerUpgradeRequest(req), new JettyServerUpgradeResponse(resp)); - } + return WebSocketBehavior.SERVER; } } diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/config/JettyWebSocketServletContainerInitializer.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/config/JettyWebSocketServletContainerInitializer.java index 82c3f79383a0..405e957f8d72 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/config/JettyWebSocketServletContainerInitializer.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/config/JettyWebSocketServletContainerInitializer.java @@ -27,8 +27,8 @@ import org.eclipse.jetty.servlet.listener.ContainerInitializer; import org.eclipse.jetty.websocket.core.WebSocketComponents; import org.eclipse.jetty.websocket.server.JettyWebSocketServerContainer; -import org.eclipse.jetty.websocket.servlet.WebSocketMapping; -import org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter; +import org.eclipse.jetty.websocket.util.server.WebSocketMapping; +import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/JettyServerFrameHandlerFactory.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/JettyServerFrameHandlerFactory.java index 6c3acd2ea910..19abc5c08bc8 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/JettyServerFrameHandlerFactory.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/JettyServerFrameHandlerFactory.java @@ -27,9 +27,9 @@ import org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler; import org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandlerFactory; import org.eclipse.jetty.websocket.core.FrameHandler; -import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.FrameHandlerFactory; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; public class JettyServerFrameHandlerFactory extends JettyWebSocketFrameHandlerFactory diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeRequestAdapter.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeRequestAdapter.java index fb72a2610053..ade89044129a 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeRequestAdapter.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeRequestAdapter.java @@ -28,7 +28,7 @@ import org.eclipse.jetty.websocket.api.UpgradeRequest; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest; public class UpgradeRequestAdapter implements UpgradeRequest { diff --git a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeResponseAdapter.java b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeResponseAdapter.java index 4e9eefed389b..e957b63697e3 100644 --- a/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeResponseAdapter.java +++ b/jetty-websocket/websocket-jetty-server/src/main/java/org/eclipse/jetty/websocket/server/internal/UpgradeResponseAdapter.java @@ -27,7 +27,7 @@ import org.eclipse.jetty.websocket.api.UpgradeResponse; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.common.JettyExtensionConfig; -import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse; +import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse; public class UpgradeResponseAdapter implements UpgradeResponse { diff --git a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/ErrorCloseTest.java b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/ErrorCloseTest.java index 0e077b8d7ff7..86dc8240721d 100644 --- a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/ErrorCloseTest.java +++ b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/ErrorCloseTest.java @@ -39,7 +39,7 @@ import org.eclipse.jetty.websocket.common.WebSocketSession; import org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession; import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; -import org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter; +import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/WebSocketOverHTTP2Test.java b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/WebSocketOverHTTP2Test.java index 1cd8a05caa4d..f3cd13561394 100644 --- a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/WebSocketOverHTTP2Test.java +++ b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/WebSocketOverHTTP2Test.java @@ -64,7 +64,7 @@ import org.eclipse.jetty.websocket.server.JettyWebSocketServlet; import org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory; import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; -import org.eclipse.jetty.websocket.servlet.internal.UpgradeHttpServletRequest; +import org.eclipse.jetty.websocket.util.server.internal.UpgradeHttpServletRequest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/ClientConnectTest.java b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/ClientConnectTest.java index bb6189b06d76..cfdef700f31b 100644 --- a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/ClientConnectTest.java +++ b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/ClientConnectTest.java @@ -45,11 +45,11 @@ import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; import org.eclipse.jetty.websocket.client.WebSocketClient; import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; -import org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter; import org.eclipse.jetty.websocket.tests.CloseTrackingEndpoint; import org.eclipse.jetty.websocket.tests.EchoSocket; import org.eclipse.jetty.websocket.tests.GetAuthHeaderEndpoint; import org.eclipse.jetty.websocket.tests.SimpleStatusServlet; +import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; import org.hamcrest.Matcher; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/WebSocketClientTest.java b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/WebSocketClientTest.java index 6b10557e8708..3725abbb25bc 100644 --- a/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/WebSocketClientTest.java +++ b/jetty-websocket/websocket-jetty-tests/src/test/java/org/eclipse/jetty/websocket/tests/client/WebSocketClientTest.java @@ -44,13 +44,13 @@ import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; import org.eclipse.jetty.websocket.client.WebSocketClient; import org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer; -import org.eclipse.jetty.websocket.servlet.WebSocketUpgradeFilter; import org.eclipse.jetty.websocket.tests.AnnoMaxMessageEndpoint; import org.eclipse.jetty.websocket.tests.CloseTrackingEndpoint; import org.eclipse.jetty.websocket.tests.ConnectMessageEndpoint; import org.eclipse.jetty.websocket.tests.EchoSocket; import org.eclipse.jetty.websocket.tests.ParamsEndpoint; import org.eclipse.jetty.websocket.tests.util.FutureWriteCallback; +import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml deleted file mode 100644 index beeeab4b0fc5..000000000000 --- a/jetty-websocket/websocket-servlet/pom.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - org.eclipse.jetty.websocket - websocket-parent - 10.0.0-SNAPSHOT - - - 4.0.0 - websocket-servlet - Jetty :: Websocket :: Servlet - - - ${project.groupId}.servlet - - - - - org.eclipse.jetty.websocket - websocket-core - ${project.version} - - - org.eclipse.jetty - jetty-servlet - ${project.version} - - - org.slf4j - slf4j-api - - - org.eclipse.jetty - jetty-slf4j-impl - test - - - org.eclipse.jetty.toolchain - jetty-test-helper - test - - - org.eclipse.jetty.websocket - websocket-jetty-api - ${project.version} - test - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - artifact-jars - - test-jar - - - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - ban-ws-apis - - enforce - - - - - - org.eclipse.jetty.websocket:websocket-jetty-api - javax.websocket - - - - - - - ban-java-servlet-api - - enforce - - - - - - javax.servlet - servletapi - org.eclipse.jetty.orbit:javax.servlet - org.mortbay.jetty:servlet-api - jetty:servlet-api - jetty-servlet-api - - - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - - manifest - - - - javax.websocket.servlet Implementation - - org.eclipse.jetty.websocket.servlet.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}" - - - - - - - - - diff --git a/jetty-websocket/websocket-servlet/src/main/java/module-info.java b/jetty-websocket/websocket-servlet/src/main/java/module-info.java deleted file mode 100644 index 93715204b9dd..000000000000 --- a/jetty-websocket/websocket-servlet/src/main/java/module-info.java +++ /dev/null @@ -1,26 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2020 Mort Bay Consulting Pty Ltd and others. -// -// This program and the accompanying materials are made available under -// the terms of the Eclipse Public License 2.0 which is available at -// https://www.eclipse.org/legal/epl-2.0 -// -// This Source Code may also be made available under the following -// Secondary Licenses when the conditions for such availability set -// forth in the Eclipse Public License, v. 2.0 are satisfied: -// the Apache License v2.0 which is available at -// https://www.apache.org/licenses/LICENSE-2.0 -// -// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 -// ======================================================================== -// - -module org.eclipse.jetty.websocket.servlet -{ - exports org.eclipse.jetty.websocket.servlet; - - requires transitive org.eclipse.jetty.servlet; - requires transitive org.eclipse.jetty.websocket.core; - requires org.slf4j; -} diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java deleted file mode 100644 index 6a3e00a84bf0..000000000000 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java +++ /dev/null @@ -1,263 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2020 Mort Bay Consulting Pty Ltd and others. -// -// This program and the accompanying materials are made available under -// the terms of the Eclipse Public License 2.0 which is available at -// https://www.eclipse.org/legal/epl-2.0 -// -// This Source Code may also be made available under the following -// Secondary Licenses when the conditions for such availability set -// forth in the Eclipse Public License, v. 2.0 are satisfied: -// the Apache License v2.0 which is available at -// https://www.apache.org/licenses/LICENSE-2.0 -// -// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 -// ======================================================================== -// - -package org.eclipse.jetty.websocket.servlet; - -import java.io.IOException; -import java.lang.reflect.Constructor; -import java.time.Duration; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.eclipse.jetty.http.pathmap.PathSpec; -import org.eclipse.jetty.server.handler.ContextHandler; -import org.eclipse.jetty.websocket.core.Configuration; -import org.eclipse.jetty.websocket.core.WebSocketComponents; -import org.eclipse.jetty.websocket.core.WebSocketExtensionRegistry; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Abstract Servlet used to bridge the Servlet API to the WebSocket API. - *

- * To use this servlet, you will be required to register your websockets with the {@link WebSocketMapping} so that it can create your websockets under the - * appropriate conditions. - *

- *

The most basic implementation would be as follows:

- *
- * package my.example;
- *
- * import WebSocketServlet;
- * import WebSocketServletFactory;
- *
- * public class MyEchoServlet extends WebSocketServlet
- * {
- *     @Override
- *     public void configure(WebSocketServletFactory factory)
- *     {
- *       factory.setDefaultMaxFrameSize(4096);
- *       factory.addMapping(factory.parsePathSpec("/"), (req,res)->new EchoSocket());
- *     }
- * }
- * 
- *

- * Only request that conforms to a "WebSocket: Upgrade" handshake request will trigger the {@link WebSocketMapping} handling of creating - * WebSockets. All other requests are treated as normal servlet requests. The configuration defined by this servlet init parameters will - * be used as the customizer for any mappings created by {@link WebSocketServletFactory#addMapping(PathSpec, WebSocketCreator)} during - * {@link #configure(WebSocketServletFactory)} calls. The request upgrade may be peformed by this servlet, or is may be performed by a - * {@link WebSocketUpgradeFilter} instance that will share the same {@link WebSocketMapping} instance. If the filter is used, then the - * filter configuraton is used as the default configuration prior to this servlets configuration being applied. - *

- *

- * Configuration / Init-Parameters: - *

- *
- *
idleTimeout
- *
set the time in ms that a websocket may be idle before closing
- *
maxTextMessageSize
- *
set the size in UTF-8 bytes that a websocket may be accept as a Text Message before closing
- *
maxBinaryMessageSize
- *
set the size in bytes that a websocket may be accept as a Binary Message before closing
- *
inputBufferSize
- *
set the size in bytes of the buffer used to read raw bytes from the network layer
*
outputBufferSize
- *
set the size in bytes of the buffer used to write bytes to the network layer
- *
maxFrameSize
- *
The maximum frame size sent or received.
- *
autoFragment
- *
If true, frames are automatically fragmented to respect the maximum frame size.
- *
- */ -@SuppressWarnings("serial") -public abstract class WebSocketServlet extends HttpServlet -{ - private static final Logger LOG = LoggerFactory.getLogger(WebSocketServlet.class); - private final CustomizedWebSocketServletFactory customizer = new CustomizedWebSocketServletFactory(); - - private WebSocketMapping mapping; - private WebSocketComponents components; - - /** - * Configure the WebSocketServletFactory for this servlet instance by setting default - * configuration (which may be overriden by annotations) and mapping {@link WebSocketCreator}s. - * This method assumes a single {@link FrameHandlerFactory} will be available as a bean on the - * {@link ContextHandler}, which in practise will mostly the the Jetty WebSocket API factory. - * - * @param factory the WebSocketServletFactory - */ - protected abstract void configure(WebSocketServletFactory factory); - - /** - * @return the instance of {@link FrameHandlerFactory} to be used to create the FrameHandler - */ - protected abstract FrameHandlerFactory getFactory(); - - @Override - public void init() throws ServletException - { - try - { - ServletContext servletContext = getServletContext(); - - components = WebSocketComponents.ensureWebSocketComponents(servletContext); - mapping = new WebSocketMapping(components); - - String max = getInitParameter("idleTimeout"); - if (max == null) - { - max = getInitParameter("maxIdleTime"); - if (max != null) - LOG.warn("'maxIdleTime' init param is deprecated, use 'idleTimeout' instead"); - } - if (max != null) - customizer.setIdleTimeout(Duration.ofMillis(Long.parseLong(max))); - - max = getInitParameter("maxTextMessageSize"); - if (max != null) - customizer.setMaxTextMessageSize(Long.parseLong(max)); - - max = getInitParameter("maxBinaryMessageSize"); - if (max != null) - customizer.setMaxBinaryMessageSize(Long.parseLong(max)); - - max = getInitParameter("inputBufferSize"); - if (max != null) - customizer.setInputBufferSize(Integer.parseInt(max)); - - max = getInitParameter("outputBufferSize"); - if (max != null) - customizer.setOutputBufferSize(Integer.parseInt(max)); - - max = getInitParameter("maxFrameSize"); - if (max == null) - max = getInitParameter("maxAllowedFrameSize"); - if (max != null) - customizer.setMaxFrameSize(Long.parseLong(max)); - - String autoFragment = getInitParameter("autoFragment"); - if (autoFragment != null) - customizer.setAutoFragment(Boolean.parseBoolean(autoFragment)); - - configure(customizer); // Let user modify customizer prior after init params - } - catch (Throwable x) - { - throw new ServletException(x); - } - } - - @Override - protected void service(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException - { - // provide a null default customizer the customizer will be on the negotiator in the mapping - if (mapping.upgrade(req, resp, null)) - return; - - // If we reach this point, it means we had an incoming request to upgrade - // but it was either not a proper websocket upgrade, or it was possibly rejected - // due to incoming request constraints (controlled by WebSocketCreator) - if (resp.isCommitted()) - return; - - // Handle normally - super.service(req, resp); - } - - private class CustomizedWebSocketServletFactory extends Configuration.ConfigurationCustomizer implements WebSocketServletFactory - { - @Override - public WebSocketExtensionRegistry getExtensionRegistry() - { - return components.getExtensionRegistry(); - } - - @Override - public void addMapping(String pathSpec, WebSocketCreator creator) - { - addMapping(WebSocketMapping.parsePathSpec(pathSpec), creator); - } - - @Override - public void addMapping(PathSpec pathSpec, WebSocketCreator creator) - { - mapping.addMapping(pathSpec, creator, getFactory(), this); - } - - @Override - public void register(Class endpointClass) - { - Constructor constructor; - try - { - constructor = endpointClass.getDeclaredConstructor(); - } - catch (NoSuchMethodException e) - { - throw new RuntimeException(e); - } - - WebSocketCreator creator = (req, resp) -> - { - try - { - return constructor.newInstance(); - } - catch (Throwable t) - { - t.printStackTrace(); - return null; - } - }; - - addMapping("/", creator); - } - - @Override - public void setCreator(WebSocketCreator creator) - { - addMapping("/", creator); - } - - @Override - public WebSocketCreator getMapping(PathSpec pathSpec) - { - return mapping.getMapping(pathSpec); - } - - @Override - public WebSocketCreator getMatch(String target) - { - throw new UnsupportedOperationException(); - } - - @Override - public boolean removeMapping(PathSpec pathSpec) - { - return mapping.removeMapping(pathSpec); - } - - @Override - public PathSpec parsePathSpec(String pathSpec) - { - return WebSocketMapping.parsePathSpec(pathSpec); - } - } -} diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java deleted file mode 100644 index f62a25056e5c..000000000000 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java +++ /dev/null @@ -1,101 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2020 Mort Bay Consulting Pty Ltd and others. -// -// This program and the accompanying materials are made available under -// the terms of the Eclipse Public License 2.0 which is available at -// https://www.eclipse.org/legal/epl-2.0 -// -// This Source Code may also be made available under the following -// Secondary Licenses when the conditions for such availability set -// forth in the Eclipse Public License, v. 2.0 are satisfied: -// the Apache License v2.0 which is available at -// https://www.apache.org/licenses/LICENSE-2.0 -// -// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 -// ======================================================================== -// - -package org.eclipse.jetty.websocket.servlet; - -import org.eclipse.jetty.http.pathmap.PathSpec; -import org.eclipse.jetty.websocket.core.Configuration; -import org.eclipse.jetty.websocket.core.WebSocketExtensionRegistry; - -public interface WebSocketServletFactory extends Configuration -{ - WebSocketExtensionRegistry getExtensionRegistry(); - - void addMapping(String pathSpec, WebSocketCreator creator); - - /** - * add a WebSocket mapping to a provided {@link WebSocketCreator}. - *

- * If mapping is added before this configuration is started, then it is persisted through - * stop/start of this configuration's lifecycle. Otherwise it will be removed when - * this configuration is stopped. - *

- * - * @param pathSpec the pathspec to respond on - * @param creator the WebSocketCreator to use - * @since 10.0 - */ - void addMapping(PathSpec pathSpec, WebSocketCreator creator); - - /** - * Add a WebSocket mapping at PathSpec "/" for a creator which creates the endpointClass - * - * @param endpointClass the WebSocket class to use - */ - void register(Class endpointClass); - - /** - * Add a WebSocket mapping at PathSpec "/" for a creator - * - * @param creator the WebSocketCreator to use - */ - void setCreator(WebSocketCreator creator); - - /** - * Returns the creator for the given path spec. - * - * @param pathSpec the pathspec to respond on - * @return the websocket creator if path spec exists, or null - */ - WebSocketCreator getMapping(PathSpec pathSpec); - - /** - * Get the MappedResource for the given target path. - * - * @param target the target path - * @return the MappedResource if matched, or null if not matched. - */ - WebSocketCreator getMatch(String target); - - /** - * Parse a PathSpec string into a PathSpec instance. - *

- * Recognized Path Spec syntaxes: - *

- *
- *
{@code /path/to} or {@code /} or {@code *.ext} or {@code servlet|{spec}}
- *
Servlet Syntax
- *
{@code ^{spec}} or {@code regex|{spec}}
- *
Regex Syntax
- *
{@code uri-template|{spec}}
- *
URI Template (see JSR356 and RFC6570 level 1)
- *
- * - * @param rawSpec the raw path spec as String to parse. - * @return the {@link PathSpec} implementation for the rawSpec - */ - PathSpec parsePathSpec(String rawSpec); - - /** - * Removes the mapping based on the given path spec. - * - * @param pathSpec the pathspec to respond on - * @return true if underlying mapping were altered, false otherwise - */ - boolean removeMapping(PathSpec pathSpec); -} diff --git a/jetty-websocket/websocket-util/pom.xml b/jetty-websocket/websocket-util/pom.xml index 9412101ce9fe..bf962dad58fe 100644 --- a/jetty-websocket/websocket-util/pom.xml +++ b/jetty-websocket/websocket-util/pom.xml @@ -51,6 +51,11 @@ websocket-core ${project.version}
+ + org.eclipse.jetty + jetty-servlet + ${project.version} + org.slf4j slf4j-api diff --git a/jetty-websocket/websocket-util/src/main/java/module-info.java b/jetty-websocket/websocket-util/src/main/java/module-info.java index 183e1fd2715f..da868d9d27f0 100644 --- a/jetty-websocket/websocket-util/src/main/java/module-info.java +++ b/jetty-websocket/websocket-util/src/main/java/module-info.java @@ -20,7 +20,9 @@ { exports org.eclipse.jetty.websocket.util; exports org.eclipse.jetty.websocket.util.messages; + exports org.eclipse.jetty.websocket.util.server; requires org.slf4j; + requires transitive org.eclipse.jetty.servlet; requires transitive org.eclipse.jetty.websocket.core; } diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/FrameHandlerFactory.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/FrameHandlerFactory.java similarity index 96% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/FrameHandlerFactory.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/FrameHandlerFactory.java index a895d9db6908..d445156a99f8 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/FrameHandlerFactory.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/FrameHandlerFactory.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet; +package org.eclipse.jetty.websocket.util.server; import org.eclipse.jetty.websocket.core.FrameHandler; diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeRequest.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/ServletUpgradeRequest.java similarity index 98% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeRequest.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/ServletUpgradeRequest.java index ef81155a00b9..a4fbf382214d 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeRequest.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/ServletUpgradeRequest.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet; +package org.eclipse.jetty.websocket.util.server; import java.net.HttpCookie; import java.net.InetSocketAddress; @@ -41,7 +41,7 @@ import org.eclipse.jetty.websocket.core.ExtensionConfig; import org.eclipse.jetty.websocket.core.WebSocketConstants; import org.eclipse.jetty.websocket.core.server.Negotiation; -import org.eclipse.jetty.websocket.servlet.internal.UpgradeHttpServletRequest; +import org.eclipse.jetty.websocket.util.server.internal.UpgradeHttpServletRequest; /** * Holder of request data for a WebSocket upgrade request. diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/ServletUpgradeResponse.java similarity index 99% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/ServletUpgradeResponse.java index 04b5d490558a..0b0642e1ab11 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/ServletUpgradeResponse.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/ServletUpgradeResponse.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet; +package org.eclipse.jetty.websocket.util.server; import java.io.IOException; import java.util.ArrayList; diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketCreator.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketCreator.java similarity index 96% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketCreator.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketCreator.java index b4db96bd1483..edfa3cd13b05 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketCreator.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketCreator.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet; +package org.eclipse.jetty.websocket.util.server; /** * Abstract WebSocket creator interface. diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketMapping.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketMapping.java similarity index 99% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketMapping.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketMapping.java index 30bf8098e2ba..d87305448695 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketMapping.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketMapping.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet; +package org.eclipse.jetty.websocket.util.server; import java.io.IOException; import java.util.concurrent.atomic.AtomicReference; @@ -136,7 +136,7 @@ else if (rawSpec.startsWith("uri-template|")) throw new IllegalArgumentException("Unrecognized path spec syntax [" + rawSpec + "]"); } - public static final String DEFAULT_KEY = "org.eclipse.jetty.websocket.servlet.WebSocketMapping"; + public static final String DEFAULT_KEY = "org.eclipse.jetty.websocket.util.server.WebSocketMapping"; private final PathMappings mappings = new PathMappings<>(); private final WebSocketComponents components; diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketUpgradeFilter.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketUpgradeFilter.java similarity index 98% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketUpgradeFilter.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketUpgradeFilter.java index 6829d6219a94..d368da1846bb 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketUpgradeFilter.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/WebSocketUpgradeFilter.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet; +package org.eclipse.jetty.websocket.util.server; import java.io.IOException; import java.time.Duration; @@ -123,7 +123,7 @@ public static FilterHolder ensureFilter(ServletContext servletContext) return holder; } - public static final String MAPPING_ATTRIBUTE_INIT_PARAM = "org.eclipse.jetty.websocket.servlet.WebSocketMapping.key"; + public static final String MAPPING_ATTRIBUTE_INIT_PARAM = "org.eclipse.jetty.websocket.util.server.WebSocketMapping.key"; private final Configuration.ConfigurationCustomizer defaultCustomizer = new Configuration.ConfigurationCustomizer(); private WebSocketMapping mapping; diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/internal/UpgradeHttpServletRequest.java b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/internal/UpgradeHttpServletRequest.java similarity index 99% rename from jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/internal/UpgradeHttpServletRequest.java rename to jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/internal/UpgradeHttpServletRequest.java index f2f56dd0be59..72eafaff707f 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/internal/UpgradeHttpServletRequest.java +++ b/jetty-websocket/websocket-util/src/main/java/org/eclipse/jetty/websocket/util/server/internal/UpgradeHttpServletRequest.java @@ -16,7 +16,7 @@ // ======================================================================== // -package org.eclipse.jetty.websocket.servlet.internal; +package org.eclipse.jetty.websocket.util.server.internal; import java.io.BufferedReader; import java.net.InetSocketAddress;