Issue #4407 - fix broken tests, ServerFHF now extends ClientFHF
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
parent
74e7cca28d
commit
d08c1025e9
|
@ -214,7 +214,7 @@ public class JavaxWebSocketClientContainer extends JavaxWebSocketContainer imple
|
||||||
public Session connectToServer(final Endpoint endpoint, final ClientEndpointConfig providedConfig, final URI path) throws DeploymentException, IOException
|
public Session connectToServer(final Endpoint endpoint, final ClientEndpointConfig providedConfig, final URI path) throws DeploymentException, IOException
|
||||||
{
|
{
|
||||||
ClientEndpointConfig config = providedConfig;
|
ClientEndpointConfig config = providedConfig;
|
||||||
if (config != null)
|
if (config == null)
|
||||||
config = new EmptyClientEndpointConfig();
|
config = new EmptyClientEndpointConfig();
|
||||||
|
|
||||||
ConfiguredEndpoint instance = new ConfiguredEndpoint(endpoint, config);
|
ConfiguredEndpoint instance = new ConfiguredEndpoint(endpoint, config);
|
||||||
|
|
|
@ -29,6 +29,11 @@ import org.eclipse.jetty.websocket.javax.common.util.InvokerUtils;
|
||||||
|
|
||||||
public class JavaxWebSocketClientFrameHandlerFactory extends JavaxWebSocketFrameHandlerFactory
|
public class JavaxWebSocketClientFrameHandlerFactory extends JavaxWebSocketFrameHandlerFactory
|
||||||
{
|
{
|
||||||
|
public JavaxWebSocketClientFrameHandlerFactory(JavaxWebSocketContainer container, InvokerUtils.ParamIdentifier paramIdentifier)
|
||||||
|
{
|
||||||
|
super(container, paramIdentifier);
|
||||||
|
}
|
||||||
|
|
||||||
public JavaxWebSocketClientFrameHandlerFactory(JavaxWebSocketContainer container)
|
public JavaxWebSocketClientFrameHandlerFactory(JavaxWebSocketContainer container)
|
||||||
{
|
{
|
||||||
super(container, InvokerUtils.PARAM_IDENTITY);
|
super(container, InvokerUtils.PARAM_IDENTITY);
|
||||||
|
|
|
@ -24,7 +24,6 @@ import java.util.concurrent.Executor;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
import javax.websocket.DeploymentException;
|
import javax.websocket.DeploymentException;
|
||||||
import javax.websocket.EndpointConfig;
|
|
||||||
import javax.websocket.server.ServerEndpoint;
|
import javax.websocket.server.ServerEndpoint;
|
||||||
import javax.websocket.server.ServerEndpointConfig;
|
import javax.websocket.server.ServerEndpointConfig;
|
||||||
|
|
||||||
|
@ -160,12 +159,6 @@ public class JavaxWebSocketServerContainer extends JavaxWebSocketClientContainer
|
||||||
return frameHandlerFactory;
|
return frameHandlerFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected EndpointConfig newEmptyConfig(Object endpoint)
|
|
||||||
{
|
|
||||||
return new UndefinedServerEndpointConfig(endpoint.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addEndpoint(Class<?> endpointClass) throws DeploymentException
|
public void addEndpoint(Class<?> endpointClass) throws DeploymentException
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,14 +24,14 @@ import javax.websocket.server.ServerEndpoint;
|
||||||
|
|
||||||
import org.eclipse.jetty.http.pathmap.UriTemplatePathSpec;
|
import org.eclipse.jetty.http.pathmap.UriTemplatePathSpec;
|
||||||
import org.eclipse.jetty.websocket.core.FrameHandler;
|
import org.eclipse.jetty.websocket.core.FrameHandler;
|
||||||
|
import org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientFrameHandlerFactory;
|
||||||
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer;
|
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketContainer;
|
||||||
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketFrameHandlerFactory;
|
|
||||||
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketFrameHandlerMetadata;
|
import org.eclipse.jetty.websocket.javax.common.JavaxWebSocketFrameHandlerMetadata;
|
||||||
import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory;
|
import org.eclipse.jetty.websocket.servlet.FrameHandlerFactory;
|
||||||
import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest;
|
import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest;
|
||||||
import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse;
|
import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse;
|
||||||
|
|
||||||
public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketFrameHandlerFactory implements FrameHandlerFactory
|
public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketClientFrameHandlerFactory implements FrameHandlerFactory
|
||||||
{
|
{
|
||||||
public JavaxWebSocketServerFrameHandlerFactory(JavaxWebSocketContainer container)
|
public JavaxWebSocketServerFrameHandlerFactory(JavaxWebSocketContainer container)
|
||||||
{
|
{
|
||||||
|
@ -47,10 +47,9 @@ public class JavaxWebSocketServerFrameHandlerFactory extends JavaxWebSocketFrame
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerEndpoint anno = endpointClass.getAnnotation(ServerEndpoint.class);
|
ServerEndpoint anno = endpointClass.getAnnotation(ServerEndpoint.class);
|
||||||
|
|
||||||
if (anno == null)
|
if (anno == null)
|
||||||
{
|
{
|
||||||
return null;
|
return super.createMetadata(endpointClass, endpointConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
UriTemplatePathSpec templatePathSpec = new UriTemplatePathSpec(anno.value());
|
UriTemplatePathSpec templatePathSpec = new UriTemplatePathSpec(anno.value());
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class EndpointEchoTest
|
||||||
ClientEndpoint clientEndpoint = new ClientEndpoint();
|
ClientEndpoint clientEndpoint = new ClientEndpoint();
|
||||||
assertThat(clientEndpoint, Matchers.instanceOf(javax.websocket.Endpoint.class));
|
assertThat(clientEndpoint, Matchers.instanceOf(javax.websocket.Endpoint.class));
|
||||||
// Issue connect using instance of class that extends Endpoint
|
// Issue connect using instance of class that extends Endpoint
|
||||||
Session session = container.connectToServer(clientEndpoint, server.getWsUri().resolve("/echo/text"));
|
Session session = container.connectToServer(clientEndpoint, null, server.getWsUri().resolve("/echo/text"));
|
||||||
session.getBasicRemote().sendText("Echo");
|
session.getBasicRemote().sendText("Echo");
|
||||||
|
|
||||||
String resp = clientEndpoint.messageQueue.poll(1, TimeUnit.SECONDS);
|
String resp = clientEndpoint.messageQueue.poll(1, TimeUnit.SECONDS);
|
||||||
|
@ -91,7 +91,7 @@ public class EndpointEchoTest
|
||||||
{
|
{
|
||||||
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
|
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
|
||||||
// Issue connect using class reference (class extends Endpoint)
|
// Issue connect using class reference (class extends Endpoint)
|
||||||
Session session = container.connectToServer(ClientEndpoint.class, server.getWsUri().resolve("/echo/text"));
|
Session session = container.connectToServer(ClientEndpoint.class, null, server.getWsUri().resolve("/echo/text"));
|
||||||
session.getBasicRemote().sendText("Echo");
|
session.getBasicRemote().sendText("Echo");
|
||||||
|
|
||||||
JavaxWebSocketSession jsrSession = (JavaxWebSocketSession)session;
|
JavaxWebSocketSession jsrSession = (JavaxWebSocketSession)session;
|
||||||
|
|
|
@ -82,7 +82,7 @@ public class WriteTimeoutTest
|
||||||
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
|
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
|
||||||
ClientEndpoint clientEndpoint = new ClientEndpoint();
|
ClientEndpoint clientEndpoint = new ClientEndpoint();
|
||||||
assertThat(clientEndpoint, Matchers.instanceOf(javax.websocket.Endpoint.class));
|
assertThat(clientEndpoint, Matchers.instanceOf(javax.websocket.Endpoint.class));
|
||||||
Session session = container.connectToServer(clientEndpoint, server.getWsUri().resolve("/logSocket"));
|
Session session = container.connectToServer(clientEndpoint, null, server.getWsUri().resolve("/logSocket"));
|
||||||
|
|
||||||
session.getAsyncRemote().setSendTimeout(5);
|
session.getAsyncRemote().setSendTimeout(5);
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class MisbehavingClassTest
|
||||||
try (StacklessLogging ignored = new StacklessLogging(WebSocketCoreSession.class))
|
try (StacklessLogging ignored = new StacklessLogging(WebSocketCoreSession.class))
|
||||||
{
|
{
|
||||||
// expecting RuntimeException during onOpen
|
// expecting RuntimeException during onOpen
|
||||||
container.connectToServer(socket, server.getWsUri());
|
container.connectToServer(socket, null, server.getWsUri());
|
||||||
assertThat("Close should have occurred", socket.closeLatch.await(1, TimeUnit.SECONDS), is(true));
|
assertThat("Close should have occurred", socket.closeLatch.await(1, TimeUnit.SECONDS), is(true));
|
||||||
Throwable cause = socket.errors.pop();
|
Throwable cause = socket.errors.pop();
|
||||||
assertThat("Error", cause, instanceOf(RuntimeException.class));
|
assertThat("Error", cause, instanceOf(RuntimeException.class));
|
||||||
|
|
|
@ -30,11 +30,12 @@ import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServlet;
|
import javax.servlet.http.HttpServlet;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.websocket.ClientEndpoint;
|
||||||
import javax.websocket.ContainerProvider;
|
import javax.websocket.ContainerProvider;
|
||||||
import javax.websocket.Endpoint;
|
|
||||||
import javax.websocket.EndpointConfig;
|
import javax.websocket.EndpointConfig;
|
||||||
import javax.websocket.OnError;
|
import javax.websocket.OnError;
|
||||||
import javax.websocket.OnMessage;
|
import javax.websocket.OnMessage;
|
||||||
|
import javax.websocket.OnOpen;
|
||||||
import javax.websocket.Session;
|
import javax.websocket.Session;
|
||||||
import javax.websocket.WebSocketContainer;
|
import javax.websocket.WebSocketContainer;
|
||||||
import javax.websocket.server.ServerEndpoint;
|
import javax.websocket.server.ServerEndpoint;
|
||||||
|
@ -73,9 +74,10 @@ public class WebSocketServerContainerExecutorTest
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class EndpointAdapter extends Endpoint
|
@ClientEndpoint
|
||||||
|
public static class EndpointAdapter
|
||||||
{
|
{
|
||||||
@Override
|
@OnOpen
|
||||||
public void onOpen(Session session, EndpointConfig config)
|
public void onOpen(Session session, EndpointConfig config)
|
||||||
{
|
{
|
||||||
/* do nothing */
|
/* do nothing */
|
||||||
|
|
Loading…
Reference in New Issue