Skip to content

Commit

Permalink
Issue #5832 - fix bugs when stopping the JavaxWebSocketClientContainer
Browse files Browse the repository at this point in the history
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
  • Loading branch information
lachlan-roberts committed Jan 18, 2021
1 parent a60ecfa commit 99aef1a
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 17 deletions.
Expand Up @@ -26,9 +26,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JavaxWebSocketClientShutdown extends ContainerLifeCycle implements ServletContainerInitializer, ServletContextListener
public class JavaxWebSocketShutdownContainer extends ContainerLifeCycle implements ServletContainerInitializer, ServletContextListener
{
private static final Logger LOG = LoggerFactory.getLogger(JavaxWebSocketClientShutdown.class);
private static final Logger LOG = LoggerFactory.getLogger(JavaxWebSocketShutdownContainer.class);

@Override
public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException
Expand Down
@@ -1 +1 @@
org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientShutdown
org.eclipse.jetty.websocket.javax.client.JavaxWebSocketShutdownContainer
Expand Up @@ -13,10 +13,8 @@

package org.eclipse.jetty.websocket.javax.tests;

import java.io.IOException;
import java.net.URI;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Expand All @@ -32,7 +30,7 @@
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.component.ContainerLifeCycle;
import org.eclipse.jetty.util.component.LifeCycle;
import org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientShutdown;
import org.eclipse.jetty.websocket.javax.client.JavaxWebSocketShutdownContainer;
import org.eclipse.jetty.websocket.javax.client.internal.JavaxWebSocketClientContainer;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
Expand All @@ -53,11 +51,10 @@ public class JavaxClientShutdownWithServerTest
private volatile WebSocketContainer container;
private ContainerLifeCycle shutdownContainer;


public class ContextHandlerShutdownServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
{
container = ContainerProvider.getWebSocketContainer();
}
Expand All @@ -66,7 +63,7 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se
public class ServletContainerInitializerShutdownServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
{
JavaxWebSocketClientContainer clientContainer = new JavaxWebSocketClientContainer();
clientContainer.allowShutdownWithContextHandler(false);
Expand All @@ -84,12 +81,12 @@ public void before() throws Exception

contextHandler = new ServletContextHandler();
contextHandler.setContextPath("/");
contextHandler.addServlet(new ServletHolder(new ContextHandlerShutdownServlet()), "/contextHandlerShutdown");
contextHandler.addServlet(new ServletHolder(new ServletContainerInitializerShutdownServlet()), "/servletContainerInitializerShutdown");
contextHandler.addServlet(new ServletHolder(new ContextHandlerShutdownServlet()), "/contextHandler");
contextHandler.addServlet(new ServletHolder(new ServletContainerInitializerShutdownServlet()), "/shutdownContainer");
server.setHandler(contextHandler);

// Because we are using embedded we must manually add the Javax WS Client Shutdown SCI.
JavaxWebSocketClientShutdown javaxWebSocketClientShutdown = new JavaxWebSocketClientShutdown();
JavaxWebSocketShutdownContainer javaxWebSocketClientShutdown = new JavaxWebSocketShutdownContainer();
shutdownContainer = javaxWebSocketClientShutdown;
contextHandler.addServletContainerInitializer(javaxWebSocketClientShutdown);

Expand All @@ -108,9 +105,9 @@ public void after() throws Exception
}

@Test
public void testWebSocketClientContainerInWebapp() throws Exception
public void testShutdownWithContextHandler() throws Exception
{
ContentResponse response = httpClient.GET(serverUri.resolve("/contextHandlerShutdown"));
ContentResponse response = httpClient.GET(serverUri.resolve("/contextHandler"));
assertThat(response.getStatus(), is(HttpStatus.OK_200));

assertNotNull(container);
Expand All @@ -130,9 +127,9 @@ public void testWebSocketClientContainerInWebapp() throws Exception
}

@Test
public void testWebSocketClientContainerInWebapp2() throws Exception
public void testShutdownWithShutdownContainer() throws Exception
{
ContentResponse response = httpClient.GET(serverUri.resolve("/servletContainerInitializerShutdown"));
ContentResponse response = httpClient.GET(serverUri.resolve("/shutdownContainer"));
assertThat(response.getStatus(), is(HttpStatus.OK_200));

assertNotNull(container);
Expand Down
Expand Up @@ -60,7 +60,7 @@ public static void configure(ServletContextHandler context, Configurator configu
{
if (!context.isStopped())
throw new IllegalStateException("configure should be called before starting");
context.addServletContainerInitializer(new JettyWebSocketServletContainerInitializer());
context.addServletContainerInitializer(new JettyWebSocketServletContainerInitializer(configurator));
}

/**
Expand Down

0 comments on commit 99aef1a

Please sign in to comment.