Remove PubSubMessageBuilder

This commit is contained in:
Rossen Stoyanchev 2013-06-29 12:54:31 -04:00
parent 3e27467420
commit 8ab5f23643
5 changed files with 9 additions and 85 deletions

View File

@ -37,7 +37,7 @@ import org.springframework.web.messaging.support.WebMessageHeaderAccesssor;
* @author Rossen Stoyanchev
* @since 4.0
*/
public abstract class AbstractPubSubMessageHandler implements MessageHandler {
public abstract class AbstractWebMessageHandler implements MessageHandler {
protected final Log logger = LogFactory.getLog(getClass());

View File

@ -43,7 +43,7 @@ import reactor.fn.selector.ObjectSelector;
* @author Rossen Stoyanchev
* @since 4.0
*/
public class ReactorPubSubMessageHandler extends AbstractPubSubMessageHandler {
public class ReactorWebMessageHandler extends AbstractWebMessageHandler {
private MessageChannel clientChannel;
@ -57,7 +57,7 @@ public class ReactorPubSubMessageHandler extends AbstractPubSubMessageHandler {
/**
* @param clientChannel the channel to which messages for clients should be sent.
*/
public ReactorPubSubMessageHandler(MessageChannel clientChannel, Reactor reactor) {
public ReactorWebMessageHandler(MessageChannel clientChannel, Reactor reactor) {
Assert.notNull(clientChannel, "clientChannel is required");
this.clientChannel = clientChannel;
this.reactor = reactor;

View File

@ -43,7 +43,7 @@ import org.springframework.web.messaging.MessageType;
import org.springframework.web.messaging.annotation.SubscribeEvent;
import org.springframework.web.messaging.annotation.UnsubscribeEvent;
import org.springframework.web.messaging.converter.MessageConverter;
import org.springframework.web.messaging.service.AbstractPubSubMessageHandler;
import org.springframework.web.messaging.service.AbstractWebMessageHandler;
import org.springframework.web.messaging.support.MessageHolder;
import org.springframework.web.messaging.support.WebMessageHeaderAccesssor;
import org.springframework.web.method.HandlerMethod;
@ -54,7 +54,7 @@ import org.springframework.web.method.HandlerMethodSelector;
* @author Rossen Stoyanchev
* @since 4.0
*/
public class AnnotationPubSubMessageHandler extends AbstractPubSubMessageHandler
public class AnnotationWebMessageHandler extends AbstractWebMessageHandler
implements ApplicationContextAware, InitializingBean {
private final MessageChannel clientChannel;
@ -79,7 +79,7 @@ public class AnnotationPubSubMessageHandler extends AbstractPubSubMessageHandler
private ReturnValueHandlerComposite returnValueHandlers = new ReturnValueHandlerComposite();
public AnnotationPubSubMessageHandler(MessageChannel clientChannel, MessageChannel brokerChannel) {
public AnnotationWebMessageHandler(MessageChannel clientChannel, MessageChannel brokerChannel) {
Assert.notNull(clientChannel, "clientChannel is required");
Assert.notNull(brokerChannel, "brokerChannel is required");
this.clientChannel = clientChannel;

View File

@ -36,7 +36,7 @@ import org.springframework.util.StringUtils;
import org.springframework.web.messaging.MessageType;
import org.springframework.web.messaging.converter.CompositeMessageConverter;
import org.springframework.web.messaging.converter.MessageConverter;
import org.springframework.web.messaging.service.AbstractPubSubMessageHandler;
import org.springframework.web.messaging.service.AbstractWebMessageHandler;
import org.springframework.web.messaging.stomp.StompCommand;
import org.springframework.web.messaging.support.WebMessageHeaderAccesssor;
@ -54,7 +54,7 @@ import reactor.tcp.netty.NettyTcpClient;
* @author Rossen Stoyanchev
* @since 4.0
*/
public class StompRelayPubSubMessageHandler extends AbstractPubSubMessageHandler implements SmartLifecycle {
public class StompRelayWebMessageHandler extends AbstractWebMessageHandler implements SmartLifecycle {
private static final String STOMP_RELAY_SYSTEM_SESSION_ID = "stompRelaySystemSessionId";
@ -87,7 +87,7 @@ public class StompRelayPubSubMessageHandler extends AbstractPubSubMessageHandler
/**
* @param clientChannel the channel to which messages for clients should be sent.
*/
public StompRelayPubSubMessageHandler(MessageChannel clientChannel) {
public StompRelayWebMessageHandler(MessageChannel clientChannel) {
Assert.notNull(clientChannel, "clientChannel is required");
this.clientChannel = clientChannel;
this.payloadConverter = new CompositeMessageConverter(null);

View File

@ -1,76 +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.messaging.support;
import org.springframework.http.MediaType;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.util.Assert;
/**
* @author Rossen Stoyanchev
* @since 4.0
*/
public class PubSubMessageBuilder<T> {
private final WebMessageHeaderAccesssor headers = WebMessageHeaderAccesssor.create();
private final T payload;
private PubSubMessageBuilder(T payload) {
Assert.notNull(payload, "<T> is required");
this.payload = payload;
}
public static <T> PubSubMessageBuilder<T> withPayload(T payload) {
return new PubSubMessageBuilder<T>(payload);
}
public PubSubMessageBuilder<T> destination(String destination) {
Assert.notNull(destination, "destination is required");
this.headers.setDestination(destination);
return this;
}
public PubSubMessageBuilder<T> contentType(MediaType contentType) {
Assert.notNull(contentType, "contentType is required");
this.headers.setContentType(contentType);
return this;
}
public PubSubMessageBuilder<T> contentType(String contentType) {
Assert.notNull(contentType, "contentType is required");
this.headers.setContentType(MediaType.parseMediaType(contentType));
return this;
}
public Message<T> build() {
Message<?> message = MessageHolder.getMessage();
if (message != null) {
String sessionId = WebMessageHeaderAccesssor.wrap(message).getSessionId();
this.headers.setSessionId(sessionId);
}
return MessageBuilder.withPayload(this.payload).copyHeaders(this.headers.toMap()).build();
}
}