public DefaultOutgoingBroadcast( MessageOriginator messageOriginator, String group, AsyncConnection<DiscoveryMessage> connection, OutgoingConnector<Message> outgoingConnector, ExecutorFactory executorFactory, final IdGenerator<UUID> idGenerator, ClassLoader messagingClassLoader) { this.messageOriginator = messageOriginator; this.group = group; this.outgoingConnector = outgoingConnector; DispatchFailureHandler<Object> failureHandler = new DiscardingFailureHandler<Object>(LOGGER); hub = new MessageHub( "outgoing broadcast", messageOriginator.getName(), executorFactory, idGenerator, messagingClassLoader); executor = executorFactory.create("broadcast lookup"); discoveryBroadcast = new ProtocolStack<DiscoveryMessage>( executor, failureHandler, failureHandler, new ChannelLookupProtocol()); connection.dispatchTo(new GroupMessageFilter(group, discoveryBroadcast.getBottom())); discoveryBroadcast.getBottom().dispatchTo(connection); discoveryBroadcast.getTop().dispatchTo(new DiscoveryMessageDispatch()); LOGGER.info("Created OutgoingBroadcast with {}", messageOriginator); }
public void close() { connection.stop(); }