Polish PubSubChannelRegistryBuilder

This commit is contained in:
Rossen Stoyanchev 2013-06-14 22:24:03 -04:00
parent 4f7d77f631
commit 6f4cc4f170
1 changed files with 12 additions and 14 deletions

View File

@ -17,7 +17,6 @@
package org.springframework.web.messaging.support;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.springframework.messaging.Message;
@ -45,12 +44,15 @@ public class PubSubChannelRegistryBuilder {
public PubSubChannelRegistryBuilder(
SubscribableChannel<Message<?>, MessageHandler<Message<?>>> clientInputChannel,
SubscribableChannel<Message<?>, MessageHandler<Message<?>>> clientOutputChannel,
MessageHandler<Message<?>> clientGateway) {
Assert.notNull(clientInputChannel, "clientInputChannel is required");
Assert.notNull(clientOutputChannel, "clientOutputChannel is required");
Assert.notNull(clientGateway, "clientGateway is required");
this.clientInputChannel = clientInputChannel;
this.clientOutputChannel = clientOutputChannel;
this.clientOutputChannel.subscribe(clientGateway);
this.messageHandlers.add(clientGateway);
@ -58,25 +60,17 @@ public class PubSubChannelRegistryBuilder {
public static PubSubChannelRegistryBuilder clientGateway(
SubscribableChannel<Message<?>, MessageHandler<Message<?>>> clientInputChannel,
SubscribableChannel<Message<?>, MessageHandler<Message<?>>> clientOutputChannel,
MessageHandler<Message<?>> clientGateway) {
return new PubSubChannelRegistryBuilder(clientOutputChannel, clientGateway);
return new PubSubChannelRegistryBuilder(clientInputChannel, clientOutputChannel, clientGateway);
}
public PubSubChannelRegistryBuilder clientMessageHandlers(
SubscribableChannel<Message<?>, MessageHandler<Message<?>>> clientInputChannel,
List<MessageHandler<Message<?>>> handlers) {
Assert.notNull(clientInputChannel, "clientInputChannel is required");
this.clientInputChannel = clientInputChannel;
for (MessageHandler<Message<?>> handler : handlers) {
this.clientInputChannel.subscribe(handler);
this.messageHandlers.add(handler);
}
public PubSubChannelRegistryBuilder messageHandler(MessageHandler<Message<?>> handler) {
this.clientInputChannel.subscribe(handler);
this.messageHandlers.add(handler);
return this;
}
@ -87,6 +81,10 @@ public class PubSubChannelRegistryBuilder {
Assert.notNull(messageBrokerChannel, "messageBrokerChannel is required");
Assert.notNull(messageBrokerGateway, "messageBrokerGateway is required");
if (!this.messageHandlers.contains(messageBrokerGateway)) {
this.clientInputChannel.subscribe(messageBrokerGateway);
}
this.messageBrokerChannel = messageBrokerChannel;
this.messageBrokerChannel.subscribe(messageBrokerGateway);
this.messageHandlers.add(messageBrokerGateway);