Example usage for org.springframework.integration.channel PublishSubscribeChannel subscribe

List of usage examples for org.springframework.integration.channel PublishSubscribeChannel subscribe

Introduction

In this page you can find the example usage for org.springframework.integration.channel PublishSubscribeChannel subscribe.

Prototype

@Override
    public boolean subscribe(MessageHandler handler) 

Source Link

Usage

From source file:org.fornax.cartridges.sculptor.framework.event.SpringIntegrationEventBusImpl.java

@Override
public boolean subscribe(String topic, final EventSubscriber subscriber) {
    PublishSubscribeChannel intChannel = getChannel(topic);
    MessageHandler messageHandler = new MessageHandler() {

        @Override/*from   w w  w.j a  v  a2 s .com*/
        public void handleMessage(Message<?> message)
                throws MessageRejectedException, MessageHandlingException, MessageDeliveryException {
            subscriber.receive((Event) message.getPayload());

        }
    };
    EventListener eventListener = new EventListener(topic, subscriber);
    boolean success = intChannel.subscribe(messageHandler);
    if (success) {
        synchronized (listeners) {
            listeners.put(eventListener, messageHandler);
        }
    }
    return success;
}

From source file:org.springframework.integration.channel.P2pChannelTests.java

@Test
public void testPubSubChannelLoggingWithMoreThenOneSubscriber() {
    final PublishSubscribeChannel channel = new PublishSubscribeChannel();
    channel.setBeanName("pubSubChannel");

    final Log logger = mock(Log.class);
    when(logger.isInfoEnabled()).thenReturn(true);
    ReflectionUtils.doWithFields(AbstractMessageChannel.class, new FieldCallback() {

        public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
            if ("logger".equals(field.getName())) {
                field.setAccessible(true);
                field.set(channel, logger);
            }/*from   w w w . j  a  v a 2  s  .c om*/
        }
    });
    channel.subscribe(mock(MessageHandler.class));
    channel.subscribe(mock(MessageHandler.class));
    verify(logger, times(2)).info(Mockito.anyString());
}