From 37c6a94905624f0a68e1987c170a3851f07b2a93 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 6 May 2013 16:42:42 -0400 Subject: [PATCH] Update deps for spring-websocket --- build.gradle | 9 +- .../GlassFishRequestUpgradeStrategy.java | 9 +- .../support/TomcatRequestUpgradeStrategy.java | 9 +- .../web/socket/sockjs/StubTaskScheduler.java | 87 ------------------- .../support/DefaultSockJsServiceTests.java | 22 +---- 5 files changed, 22 insertions(+), 114 deletions(-) delete mode 100644 spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubTaskScheduler.java diff --git a/build.gradle b/build.gradle index ea0c656522..24c75b8633 100644 --- a/build.gradle +++ b/build.gradle @@ -506,8 +506,8 @@ project("spring-websocket") { compile(project(":spring-context")) compile(project(":spring-web")) - optional("org.apache.tomcat:tomcat-servlet-api:8.0-SNAPSHOT") // TODO: replace with "javax.servlet:javax.servlet-api" - optional("org.apache.tomcat:tomcat-websocket-api:8.0-SNAPSHOT") // TODO: replace with "javax.websocket:javax.websocket-api" + optional("javax.servlet:javax.servlet-api:3.1-b09") + optional("javax.websocket:javax.websocket-api:1.0-rc5") optional("org.apache.tomcat:tomcat-websocket:8.0-SNAPSHOT") { exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" @@ -528,10 +528,9 @@ project("spring-websocket") { } repositories { - maven { url "http://repo.springsource.org/libs-release" } maven { url "https://maven.java.net/content/groups/public/" } // javax.websocket-* - maven { url "https://repository.apache.org/content/repositories/snapshots" } // tomcat-websocket snapshots - maven { url "https://maven.java.net/content/repositories/snapshots" } // tyrus/glassfish snapshots + maven { url "https://repository.apache.org/content/repositories/snapshots" } // tomcat-websocket-* snapshots + maven { url "https://maven.java.net/content/repositories/snapshots" } // tyrus snapshots } } 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 a327e0b6bb..efda9724ef 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 @@ -22,6 +22,7 @@ import java.net.URI; import java.util.Arrays; import java.util.Random; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; @@ -102,7 +103,13 @@ public class GlassFishRequestUpgradeStrategy extends AbstractEndpointUpgradeStra private boolean performUpgrade(HttpServletRequest request, HttpServletResponse response, HttpHeaders headers, TyrusEndpoint tyrusEndpoint) throws IOException { - final TyrusHttpUpgradeHandler upgradeHandler = request.upgrade(TyrusHttpUpgradeHandler.class); + final TyrusHttpUpgradeHandler upgradeHandler; + try { + upgradeHandler = request.upgrade(TyrusHttpUpgradeHandler.class); + } + catch (ServletException e) { + throw new HandshakeFailureException("Unable to create UpgardeHandler", e); + } Connection connection = createConnection(upgradeHandler, response); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java index 1236c36c55..b14cc74e20 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/TomcatRequestUpgradeStrategy.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.lang.reflect.Method; import java.util.Collections; +import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.websocket.Endpoint; import javax.websocket.server.ServerEndpointConfig; @@ -55,7 +56,13 @@ public class TomcatRequestUpgradeStrategy extends AbstractEndpointUpgradeStrateg Assert.isTrue(request instanceof ServletServerHttpRequest); HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest(); - WsHttpUpgradeHandler upgradeHandler = servletRequest.upgrade(WsHttpUpgradeHandler.class); + WsHttpUpgradeHandler upgradeHandler; + try { + upgradeHandler = servletRequest.upgrade(WsHttpUpgradeHandler.class); + } + catch (ServletException e) { + throw new HandshakeFailureException("Unable to create UpgardeHandler", e); + } WsHandshakeRequest webSocketRequest = new WsHandshakeRequest(servletRequest); try { diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubTaskScheduler.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubTaskScheduler.java deleted file mode 100644 index 57849d1ba1..0000000000 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubTaskScheduler.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2002-2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.web.socket.sockjs; - -import java.util.Date; -import java.util.concurrent.Callable; -import java.util.concurrent.Delayed; -import java.util.concurrent.FutureTask; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; - -import org.springframework.scheduling.TaskScheduler; -import org.springframework.scheduling.Trigger; - - -/** - * @author Rossen Stoyanchev - */ -public class StubTaskScheduler implements TaskScheduler { - - @Override - public ScheduledFuture schedule(Runnable task, Trigger trigger) { - return new StubScheduledFuture(); - } - - @Override - public ScheduledFuture schedule(Runnable task, Date startTime) { - return new StubScheduledFuture(); - } - - @Override - public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period) { - return new StubScheduledFuture(); - } - - @Override - public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { - return new StubScheduledFuture(); - } - - @Override - public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { - return new StubScheduledFuture(); - } - - @Override - public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { - return new StubScheduledFuture(); - } - - - private static class StubScheduledFuture extends FutureTask implements ScheduledFuture { - - @SuppressWarnings("unchecked") - public StubScheduledFuture() { - super(new Callable() { - public Object call() throws Exception { - return null; - } - }); - } - - @Override - public long getDelay(TimeUnit unit) { - return 0; - } - - @Override - public int compareTo(Delayed o) { - return 0; - } - } -} diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java index a8630d5319..ac93207c5c 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java @@ -20,9 +20,8 @@ import java.util.Map; import org.junit.Before; import org.junit.Test; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.web.socket.AbstractHttpRequestTests; -import org.springframework.web.socket.adapter.TextWebSocketHandlerAdapter; -import org.springframework.web.socket.sockjs.StubTaskScheduler; import org.springframework.web.socket.sockjs.TransportHandler; import org.springframework.web.socket.sockjs.TransportType; @@ -42,7 +41,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { @Before public void setUp() { super.setUp(); - this.service = new DefaultSockJsService(new StubTaskScheduler()); + this.service = new DefaultSockJsService(new ThreadPoolTaskScheduler()); this.service.setValidSockJsPrefixes("/echo"); } @@ -62,21 +61,4 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { assertNotNull(handlers.get(TransportType.EVENT_SOURCE)); } - @Test - public void xhrSend() throws Exception { - - setRequest("POST", "/echo/000/c5839f69/xhr"); - this.service.handleRequest(this.request, this.response, new TextWebSocketHandlerAdapter()); - - resetResponse(); - setRequest("POST", "/echo/000/c5839f69/xhr_send"); - this.servletRequest.setContent("[\"x\"]".getBytes("UTF-8")); - - this.service.handleRequest(this.request, this.response, new TextWebSocketHandlerAdapter()); - - assertEquals(204, this.servletResponse.getStatus()); - assertEquals("text/plain;charset=UTF-8", this.servletResponse.getContentType()); - } - - }