List of usage examples for org.springframework.integration.channel PublishSubscribeChannel subscribe
@Override public boolean subscribe(MessageHandler handler)
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()); }