List of usage examples for org.springframework.amqp.core MessageListener onMessage
void onMessage(Message message);
From source file:org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.java
/** * Invoke the specified listener as Spring Rabbit MessageListener. * <p>//from ww w . j a v a 2 s . c o m * Default implementation performs a plain invocation of the <code>onMessage</code> method. * <p> * Exception thrown from listener will be wrapped to {@link ListenerExecutionFailedException}. * * @param listener the Rabbit MessageListener to invoke * @param message the received Rabbit Message * @throws Exception Any Exception. * * @see org.springframework.amqp.core.MessageListener#onMessage */ protected void doInvokeListener(MessageListener listener, Message message) throws Exception { try { listener.onMessage(message); } catch (Exception e) { throw wrapToListenerExecutionFailedExceptionIfNeeded(e, message); } }
From source file:org.springframework.integration.amqp.channel.DispatcherHasNoSubscribersTests.java
@Test public void testPtP() { final Channel channel = mock(Channel.class); Connection connection = mock(Connection.class); doAnswer(new Answer<Channel>() { public Channel answer(InvocationOnMock invocation) throws Throwable { return channel; }/*from w ww. jav a 2 s .co m*/ }).when(connection).createChannel(anyBoolean()); ConnectionFactory connectionFactory = mock(ConnectionFactory.class); when(connectionFactory.createConnection()).thenReturn(connection); SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory); AmqpTemplate amqpTemplate = mock(AmqpTemplate.class); PointToPointSubscribableAmqpChannel amqpChannel = new PointToPointSubscribableAmqpChannel( "noSubscribersChannel", container, amqpTemplate); amqpChannel.setBeanName("noSubscribersChannel"); amqpChannel.afterPropertiesSet(); MessageListener listener = (MessageListener) container.getMessageListener(); try { listener.onMessage(new Message("Hello world!".getBytes(), null)); fail("Exception expected"); } catch (MessageDeliveryException e) { assertEquals("Dispatcher has no subscribers for amqp-channel 'noSubscribersChannel'.", e.getMessage()); } }
From source file:org.springframework.integration.amqp.channel.DispatcherHasNoSubscribersTests.java
@Test public void testPubSub() { final Channel channel = mock(Channel.class); Connection connection = mock(Connection.class); doAnswer(new Answer<Channel>() { public Channel answer(InvocationOnMock invocation) throws Throwable { return channel; }/*from w w w. ja v a 2 s . co m*/ }).when(connection).createChannel(anyBoolean()); ConnectionFactory connectionFactory = mock(ConnectionFactory.class); when(connectionFactory.createConnection()).thenReturn(connection); SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory); AmqpTemplate amqpTemplate = mock(AmqpTemplate.class); final Queue queue = new Queue("noSubscribersQueue"); PublishSubscribeAmqpChannel amqpChannel = new PublishSubscribeAmqpChannel("noSubscribersChannel", container, amqpTemplate) { @Override protected Queue initializeQueue(AmqpAdmin admin, String channelName) { return queue; } }; amqpChannel.setBeanName("noSubscribersChannel"); amqpChannel.afterPropertiesSet(); List<String> logList = insertMockLoggerInListener(amqpChannel); MessageListener listener = (MessageListener) container.getMessageListener(); listener.onMessage(new Message("Hello world!".getBytes(), null)); verifyLogReceived(logList); }