Skip to content

Commit

Permalink
Issue #4722 - create new module websocket-util-server
Browse files Browse the repository at this point in the history
- This module contains the WebSocketUpgradeFilter.
- Also has an internal package with the components used
  to implement websocket upgrades common to both the
  jetty and javax websocket implementations.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
  • Loading branch information
lachlan-roberts committed Apr 22, 2020
1 parent e189691 commit b586978
Show file tree
Hide file tree
Showing 43 changed files with 195 additions and 78 deletions.
10 changes: 10 additions & 0 deletions jetty-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,16 @@
<artifactId>websocket-core</artifactId>
<version>10.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-util</artifactId>
<version>10.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-util-server</artifactId>
<version>10.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-xml</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ public static List<Option> coreJettyDependencies()
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-annotations").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty.websocket").artifactId("websocket-core").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty.websocket").artifactId("websocket-util").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty.websocket").artifactId("websocket-util-server").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty.websocket").artifactId("websocket-jetty-api").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty.websocket").artifactId("websocket-jetty-server").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty.websocket").artifactId("websocket-jetty-client").versionAsInProject().start());
Expand Down
1 change: 1 addition & 0 deletions jetty-websocket/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<modules>
<module>websocket-core</module>
<module>websocket-util</module>
<module>websocket-util-server</module>
<!-- Jetty WebSocket Implementation -->
<module>websocket-jetty-api</module>
<module>websocket-jetty-common</module>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import org.eclipse.jetty.websocket.core.CoreSession;
import org.eclipse.jetty.websocket.core.Frame;
import org.eclipse.jetty.websocket.core.OpCode;
import org.eclipse.jetty.websocket.util.TextUtil;
import org.eclipse.jetty.websocket.util.TextUtils;
import org.eclipse.jetty.websocket.util.messages.MessageOutputStream;
import org.eclipse.jetty.websocket.util.messages.MessageWriter;
import org.slf4j.Logger;
Expand Down Expand Up @@ -184,7 +184,7 @@ public Future<Void> sendText(String text)
assertMessageNotNull(text);
if (LOG.isDebugEnabled())
{
LOG.debug("sendText({})", TextUtil.hint(text));
LOG.debug("sendText({})", TextUtils.hint(text));
}
FutureCallback future = new FutureCallback();
sendFrame(new Frame(OpCode.TEXT).setPayload(text), future, batch);
Expand All @@ -198,7 +198,7 @@ public void sendText(String text, SendHandler handler)
assertSendHandlerNotNull(handler);
if (LOG.isDebugEnabled())
{
LOG.debug("sendText({},{})", TextUtil.hint(text), handler);
LOG.debug("sendText({},{})", TextUtils.hint(text), handler);
}
sendFrame(new Frame(OpCode.TEXT).setPayload(text), new SendHandlerCallback(handler), batch);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import org.eclipse.jetty.websocket.core.CoreSession;
import org.eclipse.jetty.websocket.core.Frame;
import org.eclipse.jetty.websocket.core.OpCode;
import org.eclipse.jetty.websocket.util.TextUtil;
import org.eclipse.jetty.websocket.util.TextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -118,7 +118,7 @@ public void sendText(String text) throws IOException
assertMessageNotNull(text);
if (LOG.isDebugEnabled())
{
LOG.debug("sendText({})", TextUtil.hint(text));
LOG.debug("sendText({})", TextUtils.hint(text));
}

FutureCallback b = new FutureCallback();
Expand All @@ -132,7 +132,7 @@ public void sendText(String partialMessage, boolean isLast) throws IOException
assertMessageNotNull(partialMessage);
if (LOG.isDebugEnabled())
{
LOG.debug("sendText({},{})", TextUtil.hint(partialMessage), isLast);
LOG.debug("sendText({},{})", TextUtils.hint(partialMessage), isLast);
}

Frame frame;
Expand Down
5 changes: 5 additions & 0 deletions jetty-websocket/websocket-javax-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@
<groupId>org.eclipse.jetty.toolchain</groupId>
<artifactId>jetty-javax-websocket-api</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-util-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ annotations
[lib]
lib/websocket/websocket-core-${jetty.version}.jar
lib/websocket/websocket-util-${jetty.version}.jar
lib/websocket/websocket-util-server${jetty.version}.jar
lib/websocket/jetty-javax-websocket-api-1.1.2.jar
lib/websocket/websocket-javax-client-${jetty.version}.jar
lib/websocket/websocket-javax-common-${jetty.version}.jar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
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.util.server;
requires org.slf4j;

provides ServletContainerInitializer with JavaxWebSocketServletContainerInitializer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.util.server.WebSocketMapping;
import org.eclipse.jetty.websocket.util.server.WebSocketUpgradeFilter;
import org.eclipse.jetty.websocket.util.server.internal.WebSocketMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import java.security.Principal;

import org.eclipse.jetty.websocket.javax.common.UpgradeRequest;
import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest;

public class JavaxServerUpgradeRequest implements UpgradeRequest
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.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.internal.ServletUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse;
import org.eclipse.jetty.websocket.util.server.internal.WebSocketCreator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.util.server.WebSocketMapping;
import org.eclipse.jetty.websocket.util.server.internal.WebSocketMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.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.internal.FrameHandlerFactory;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse;

public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketClientFrameHandlerFactory implements FrameHandlerFactory
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import javax.websocket.server.HandshakeRequest;

import org.eclipse.jetty.http.pathmap.PathSpec;
import org.eclipse.jetty.websocket.util.server.ServletUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest;

public class JsrHandshakeRequest implements HandshakeRequest
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import java.util.Map;
import javax.websocket.HandshakeResponse;

import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse;

public class JsrHandshakeResponse implements HandshakeResponse
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
import org.eclipse.jetty.websocket.core.server.Negotiation;
import org.eclipse.jetty.websocket.javax.tests.CoreServer;
import org.eclipse.jetty.websocket.javax.tests.DataUtils;
import org.eclipse.jetty.websocket.util.TextUtil;
import org.eclipse.jetty.websocket.util.TextUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
Expand Down Expand Up @@ -328,7 +328,7 @@ public void onText(String wholeMessage, Callback callback)
{
if (LOG.isDebugEnabled())
{
LOG.debug("{}.onWholeText({})", EchoWholeMessageFrameHandler.class.getSimpleName(), TextUtil.hint(wholeMessage));
LOG.debug("{}.onWholeText({})", EchoWholeMessageFrameHandler.class.getSimpleName(), TextUtils.hint(wholeMessage));
}

sendText(wholeMessage, callback, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
import org.eclipse.jetty.websocket.api.annotations.WebSocket;
import org.eclipse.jetty.websocket.core.CloseStatus;
import org.eclipse.jetty.websocket.util.TextUtil;
import org.eclipse.jetty.websocket.util.TextUtils;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.notNullValue;
Expand All @@ -62,7 +62,7 @@ public void onWebSocketBinary(byte[] payload, int offset, int len)
@Override
public void onWebSocketClose(int statusCode, String reason)
{
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtil.quote(reason));
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtils.quote(reason));
}

@Override
Expand All @@ -74,13 +74,13 @@ public void onWebSocketConnect(Session session)
@Override
public void onWebSocketError(Throwable cause)
{
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtil.quote(cause.getMessage()));
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtils.quote(cause.getMessage()));
}

@Override
public void onWebSocketText(String message)
{
events.add("onWebSocketText(%s)", TextUtil.quote(message));
events.add("onWebSocketText(%s)", TextUtils.quote(message));
}
}

Expand All @@ -91,7 +91,7 @@ public static class ListenerFrameSocket implements WebSocketFrameListener
@Override
public void onWebSocketClose(int statusCode, String reason)
{
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtil.quote(reason));
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtils.quote(reason));
}

@Override
Expand All @@ -103,7 +103,7 @@ public void onWebSocketConnect(Session session)
@Override
public void onWebSocketError(Throwable cause)
{
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtil.quote(cause.getMessage()));
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtils.quote(cause.getMessage()));
}

@Override
Expand All @@ -120,7 +120,7 @@ public static class ListenerPartialSocket implements WebSocketPartialListener
@Override
public void onWebSocketClose(int statusCode, String reason)
{
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtil.quote(reason));
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtils.quote(reason));
}

@Override
Expand All @@ -132,13 +132,13 @@ public void onWebSocketConnect(Session session)
@Override
public void onWebSocketError(Throwable cause)
{
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtil.quote(cause.getMessage()));
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtils.quote(cause.getMessage()));
}

@Override
public void onWebSocketPartialText(String payload, boolean fin)
{
events.add("onWebSocketPartialText(%s, %b)", TextUtil.quote(payload), fin);
events.add("onWebSocketPartialText(%s, %b)", TextUtils.quote(payload), fin);
}

@Override
Expand All @@ -155,7 +155,7 @@ public static class ListenerPingPongSocket implements WebSocketPingPongListener
@Override
public void onWebSocketClose(int statusCode, String reason)
{
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtil.quote(reason));
events.add("onWebSocketClose(%s, %s)", CloseStatus.codeString(statusCode), TextUtils.quote(reason));
}

@Override
Expand All @@ -167,7 +167,7 @@ public void onWebSocketConnect(Session session)
@Override
public void onWebSocketError(Throwable cause)
{
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtil.quote(cause.getMessage()));
events.add("onWebSocketError((%s) %s)", cause.getClass().getSimpleName(), TextUtils.quote(cause.getMessage()));
}

@Override
Expand Down Expand Up @@ -228,7 +228,7 @@ public void onBinary(byte[] payload, int offset, int length)
@OnWebSocketClose
public void onClose(int statusCode, String reason)
{
events.add("onClose(%d, %s)", statusCode, TextUtil.quote(reason));
events.add("onClose(%d, %s)", statusCode, TextUtils.quote(reason));
}

@OnWebSocketConnect
Expand All @@ -253,7 +253,7 @@ public void onBinary(InputStream stream)
@OnWebSocketClose
public void onClose(int statusCode, String reason)
{
events.add("onClose(%d, %s)", statusCode, TextUtil.quote(reason));
events.add("onClose(%d, %s)", statusCode, TextUtils.quote(reason));
}

@OnWebSocketConnect
Expand All @@ -271,7 +271,7 @@ public static class AnnotatedTextSocket
@OnWebSocketClose
public void onClose(int statusCode, String reason)
{
events.add("onClose(%d, %s)", statusCode, TextUtil.quote(reason));
events.add("onClose(%d, %s)", statusCode, TextUtils.quote(reason));
}

@OnWebSocketConnect
Expand All @@ -289,7 +289,7 @@ public void onError(Throwable cause)
@OnWebSocketMessage
public void onText(String message)
{
events.add("onText(%s)", TextUtil.quote(message));
events.add("onText(%s)", TextUtils.quote(message));
}
}

Expand All @@ -301,7 +301,7 @@ public static class AnnotatedTextStreamSocket
@OnWebSocketClose
public void onClose(int statusCode, String reason)
{
events.add("onClose(%d, %s)", statusCode, TextUtil.quote(reason));
events.add("onClose(%d, %s)", statusCode, TextUtils.quote(reason));
}

@OnWebSocketConnect
Expand Down
5 changes: 5 additions & 0 deletions jetty-websocket/websocket-jetty-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@
<artifactId>websocket-jetty-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-util-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.toolchain</groupId>
<artifactId>jetty-servlet-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ annotations
[lib]
lib/websocket/websocket-core-${jetty.version}.jar
lib/websocket/websocket-util-${jetty.version}.jar
lib/websocket/websocket-util-server${jetty.version}.jar
lib/websocket/websocket-jetty-api-${jetty.version}.jar
lib/websocket/websocket-jetty-common-${jetty.version}.jar
lib/websocket/websocket-jetty-server-${jetty.version}.jar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,10 @@

requires jetty.servlet.api;
requires org.eclipse.jetty.websocket.jetty.common;
requires org.eclipse.jetty.websocket.util.server;
requires org.slf4j;
requires transitive org.eclipse.jetty.webapp;
requires transitive org.eclipse.jetty.websocket.jetty.api;
requires org.slf4j;

// Only required if using JMX.
requires static org.eclipse.jetty.jmx;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.util.server.ServletUpgradeRequest;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeRequest;

public class JettyServerUpgradeRequest
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig;
import org.eclipse.jetty.websocket.common.JettyExtensionConfig;
import org.eclipse.jetty.websocket.util.server.ServletUpgradeResponse;
import org.eclipse.jetty.websocket.util.server.internal.ServletUpgradeResponse;

public class JettyServerUpgradeResponse
{
Expand Down
Loading

0 comments on commit b586978

Please sign in to comment.