From 6eea4ad68be1d049652911813ac62b0b92a2e72e Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Wed, 17 Jul 2013 22:39:51 -0400 Subject: [PATCH] Upgrade websocket module to servlet api 3.1.0 --- build.gradle | 2 +- .../support/GlassFishRequestUpgradeStrategy.java | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index ea01118a0f..1c6e2b542f 100644 --- a/build.gradle +++ b/build.gradle @@ -493,7 +493,7 @@ project("spring-websocket") { compile(project(":spring-core")) compile(project(":spring-context")) compile(project(":spring-web")) - optional("javax.servlet:javax.servlet-api:3.1-b09") + optional("javax.servlet:javax.servlet-api:3.1.0") optional("javax.websocket:javax.websocket-api:1.0") optional("org.apache.tomcat:tomcat-websocket:8.0-SNAPSHOT") { exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/GlassFishRequestUpgradeStrategy.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/GlassFishRequestUpgradeStrategy.java index 0c376f0bee..be8048739e 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/GlassFishRequestUpgradeStrategy.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/GlassFishRequestUpgradeStrategy.java @@ -37,6 +37,7 @@ import org.glassfish.tyrus.server.TyrusEndpoint; import org.glassfish.tyrus.servlet.TyrusHttpUpgradeHandler; import org.glassfish.tyrus.websockets.Connection; import org.glassfish.tyrus.websockets.Version; +import org.glassfish.tyrus.websockets.WebSocketApplication; import org.glassfish.tyrus.websockets.WebSocketEngine; import org.glassfish.tyrus.websockets.WebSocketEngine.WebSocketHolderListener; import org.springframework.http.HttpHeaders; @@ -80,28 +81,28 @@ public class GlassFishRequestUpgradeStrategy extends AbstractStandardUpgradeStra HttpServletResponse servletResponse = ((ServletServerHttpResponse) response).getServletResponse(); servletResponse = new AlreadyUpgradedResponseWrapper(servletResponse); - TyrusEndpoint tyrusEndpoint = createTyrusEndpoint(servletRequest, endpoint, selectedProtocol); + WebSocketApplication wsApp = createTyrusEndpoint(servletRequest, endpoint, selectedProtocol); WebSocketEngine engine = WebSocketEngine.getEngine(); try { - engine.register(tyrusEndpoint); + engine.register(wsApp); } catch (DeploymentException ex) { throw new HandshakeFailureException("Failed to deploy endpoint in GlassFish", ex); } try { - if (!performUpgrade(servletRequest, servletResponse, request.getHeaders(), tyrusEndpoint)) { + if (!performUpgrade(servletRequest, servletResponse, request.getHeaders(), wsApp)) { throw new HandshakeFailureException("Failed to upgrade HttpServletRequest"); } } finally { - engine.unregister(tyrusEndpoint); + engine.unregister(wsApp); } } private boolean performUpgrade(HttpServletRequest request, HttpServletResponse response, - HttpHeaders headers, TyrusEndpoint tyrusEndpoint) throws IOException { + HttpHeaders headers, WebSocketApplication wsApp) throws IOException { final TyrusHttpUpgradeHandler upgradeHandler; try { @@ -114,7 +115,7 @@ public class GlassFishRequestUpgradeStrategy extends AbstractStandardUpgradeStra Connection connection = createConnection(upgradeHandler, response); RequestContext wsRequest = RequestContext.Builder.create() - .requestURI(URI.create(tyrusEndpoint.getPath())).requestPath(tyrusEndpoint.getPath()) + .requestURI(URI.create(wsApp.getPath())).requestPath(wsApp.getPath()) .connection(connection).secure(request.isSecure()).build(); for (String header : headers.keySet()) { @@ -129,7 +130,8 @@ public class GlassFishRequestUpgradeStrategy extends AbstractStandardUpgradeStra }); } - private TyrusEndpoint createTyrusEndpoint(HttpServletRequest request, Endpoint endpoint, String selectedProtocol) { + private WebSocketApplication createTyrusEndpoint(HttpServletRequest request, + Endpoint endpoint, String selectedProtocol) { // Use randomized path String requestUri = request.getRequestURI();