From 4de40fad8ec30a66ab837336144d8261d041f9b1 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 30 May 2013 10:13:54 -0400 Subject: [PATCH] Refactor STOMP package and class names --- build.gradle | 2 +- .../StompMessageHandler.java => MessageType.java} | 9 +++------ .../{server => service}/RelayStompService.java | 5 ++--- .../{server => service}/SimpleStompService.java | 2 +- .../AbstractStompWebSocketHandler.java} | 15 +++++---------- .../DefaultStompWebSocketHandler.java} | 11 +++++------ .../WebSocketStompSession.java | 2 +- 7 files changed, 18 insertions(+), 28 deletions(-) rename spring-websocket/src/main/java/org/springframework/web/messaging/{stomp/adapter/StompMessageHandler.java => MessageType.java} (69%) rename spring-websocket/src/main/java/org/springframework/web/messaging/stomp/{server => service}/RelayStompService.java (97%) rename spring-websocket/src/main/java/org/springframework/web/messaging/stomp/{server => service}/SimpleStompService.java (98%) rename spring-websocket/src/main/java/org/springframework/web/messaging/stomp/{adapter/StompWebSocketHandler.java => socket/AbstractStompWebSocketHandler.java} (89%) rename spring-websocket/src/main/java/org/springframework/web/messaging/stomp/{server/ServerStompMessageHandler.java => socket/DefaultStompWebSocketHandler.java} (95%) rename spring-websocket/src/main/java/org/springframework/web/messaging/stomp/{adapter => socket}/WebSocketStompSession.java (97%) diff --git a/build.gradle b/build.gradle index 8a52c65c8b..e41efff361 100644 --- a/build.gradle +++ b/build.gradle @@ -490,7 +490,7 @@ project("spring-websocket") { repositories { maven { url "https://repository.apache.org/content/repositories/snapshots" } // tomcat-websocket-* snapshots maven { url "https://maven.java.net/content/repositories/releases" } // javax.websocket, tyrus - maven { url 'http://repo.springsource.org/libs-snapshot' } // reactor + maven { url 'http://repo.springsource.org/snapshot' } // reactor } } diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/StompMessageHandler.java b/spring-websocket/src/main/java/org/springframework/web/messaging/MessageType.java similarity index 69% rename from spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/StompMessageHandler.java rename to spring-websocket/src/main/java/org/springframework/web/messaging/MessageType.java index 60f9a1a744..9e9ed26121 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/StompMessageHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/MessageType.java @@ -14,18 +14,15 @@ * limitations under the License. */ -package org.springframework.web.messaging.stomp.adapter; - -import org.springframework.web.messaging.stomp.StompMessage; -import org.springframework.web.messaging.stomp.StompSession; +package org.springframework.web.messaging; /** * @author Rossen Stoyanchev * @since 4.0 */ -public interface StompMessageHandler { +public enum MessageType { - void handleMessage(StompSession stompSession, StompMessage message); + CONNECT, SUBSCRIBE, UNSUBSCRIBE, SEND, NONE } diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/RelayStompService.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/service/RelayStompService.java similarity index 97% rename from spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/RelayStompService.java rename to spring-websocket/src/main/java/org/springframework/web/messaging/stomp/service/RelayStompService.java index 0f012fb9ec..11e0bd4dec 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/RelayStompService.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/service/RelayStompService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.web.messaging.stomp.server; +package org.springframework.web.messaging.stomp.service; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -63,7 +63,7 @@ public class RelayStompService { public RelayStompService(Reactor reactor, TaskExecutor executor) { this.reactor = reactor; - this.taskExecutor = executor; // For now, a naively way to manage socket reading + this.taskExecutor = executor; // For now, a naive way to manage socket reading this.reactor.on(Fn.$(StompCommand.CONNECT), new ConnectConsumer()); this.reactor.on(Fn.$(StompCommand.SUBSCRIBE), new RelayConsumer()); @@ -228,7 +228,6 @@ public class RelayStompService { relayStompMessage(session, stompMessage); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); clearRelaySession(stompMessage.getStompSessionId()); } diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/SimpleStompService.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/service/SimpleStompService.java similarity index 98% rename from spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/SimpleStompService.java rename to spring-websocket/src/main/java/org/springframework/web/messaging/stomp/service/SimpleStompService.java index 48caf1f87d..979390a1f3 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/SimpleStompService.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/service/SimpleStompService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.web.messaging.stomp.server; +package org.springframework.web.messaging.stomp.service; import java.util.ArrayList; import java.util.List; diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/StompWebSocketHandler.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/AbstractStompWebSocketHandler.java similarity index 89% rename from spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/StompWebSocketHandler.java rename to spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/AbstractStompWebSocketHandler.java index b12ab63d75..43641d2893 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/StompWebSocketHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/AbstractStompWebSocketHandler.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.web.messaging.stomp.adapter; +package org.springframework.web.messaging.stomp.socket; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -34,20 +34,13 @@ import org.springframework.web.socket.adapter.TextWebSocketHandlerAdapter; * @author Rossen Stoyanchev * @since 4.0 */ -public class StompWebSocketHandler extends TextWebSocketHandlerAdapter { - - private final StompMessageHandler messageHandler; +public abstract class AbstractStompWebSocketHandler extends TextWebSocketHandlerAdapter { private final StompMessageConverter messageConverter = new StompMessageConverter(); private final Map sessions = new ConcurrentHashMap(); - public StompWebSocketHandler(StompMessageHandler messageHandler) { - this.messageHandler = messageHandler; - } - - @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { WebSocketStompSession stompSession = new WebSocketStompSession(session, this.messageConverter); @@ -67,7 +60,7 @@ public class StompWebSocketHandler extends TextWebSocketHandlerAdapter { // TODO: validate size limits // http://stomp.github.io/stomp-specification-1.2.html#Size_Limits - this.messageHandler.handleMessage(stompSession, stompMessage); + handleStompMessage(stompSession, stompMessage); // TODO: send RECEIPT message if incoming message has "receipt" header // http://stomp.github.io/stomp-specification-1.2.html#Header_receipt @@ -86,6 +79,8 @@ public class StompWebSocketHandler extends TextWebSocketHandlerAdapter { } } + protected abstract void handleStompMessage(StompSession stompSession, StompMessage stompMessage); + @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { WebSocketStompSession stompSession = this.sessions.remove(session.getId()); diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/ServerStompMessageHandler.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/DefaultStompWebSocketHandler.java similarity index 95% rename from spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/ServerStompMessageHandler.java rename to spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/DefaultStompWebSocketHandler.java index b25d7634fe..c23d1f6d81 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/server/ServerStompMessageHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/DefaultStompWebSocketHandler.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.web.messaging.stomp.server; +package org.springframework.web.messaging.stomp.socket; import java.io.IOException; import java.util.ArrayList; @@ -30,7 +30,6 @@ import org.springframework.web.messaging.stomp.StompException; import org.springframework.web.messaging.stomp.StompHeaders; import org.springframework.web.messaging.stomp.StompMessage; import org.springframework.web.messaging.stomp.StompSession; -import org.springframework.web.messaging.stomp.adapter.StompMessageHandler; import reactor.Fn; import reactor.core.Reactor; @@ -43,9 +42,9 @@ import reactor.fn.Registration; * @author Rossen Stoyanchev * @since 4.0 */ -public class ServerStompMessageHandler implements StompMessageHandler { +public class DefaultStompWebSocketHandler extends AbstractStompWebSocketHandler { - private static Log logger = LogFactory.getLog(ServerStompMessageHandler.class); + private static Log logger = LogFactory.getLog(DefaultStompWebSocketHandler.class); private final Reactor reactor; @@ -54,11 +53,11 @@ public class ServerStompMessageHandler implements StompMessageHandler { new ConcurrentHashMap>>(); - public ServerStompMessageHandler(Reactor reactor) { + public DefaultStompWebSocketHandler(Reactor reactor) { this.reactor = reactor; } - public void handleMessage(StompSession session, StompMessage message) { + public void handleStompMessage(StompSession session, StompMessage message) { try { StompCommand command = message.getCommand(); if (StompCommand.CONNECT.equals(command) || StompCommand.STOMP.equals(command)) { diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/WebSocketStompSession.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/WebSocketStompSession.java similarity index 97% rename from spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/WebSocketStompSession.java rename to spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/WebSocketStompSession.java index 8af38ecd6c..1e55c1b24d 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/adapter/WebSocketStompSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/socket/WebSocketStompSession.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.web.messaging.stomp.adapter; +package org.springframework.web.messaging.stomp.socket; import java.io.IOException; import java.util.ArrayList; -- GitLab