Example usage for org.springframework.jms.listener AbstractMessageListenerContainer getMessageListener

List of usage examples for org.springframework.jms.listener AbstractMessageListenerContainer getMessageListener

Introduction

In this page you can find the example usage for org.springframework.jms.listener AbstractMessageListenerContainer getMessageListener.

Prototype

@Nullable
public Object getMessageListener() 

Source Link

Document

Return the message listener object to register.

Usage

From source file:org.springframework.integration.jms.SubscribableJmsChannelTests.java

@Test
public void dispatcherHasNoSubscribersQueue() throws Exception {
    JmsChannelFactoryBean factoryBean = new JmsChannelFactoryBean(true);
    factoryBean.setConnectionFactory(this.connectionFactory);
    factoryBean.setDestinationName("noSubscribersQueue");
    factoryBean.setBeanName("noSubscribersChannel");
    factoryBean.afterPropertiesSet();//from ww w . j  a v a 2  s .c  om
    SubscribableJmsChannel channel = (SubscribableJmsChannel) factoryBean.getObject();
    channel.afterPropertiesSet();

    AbstractMessageListenerContainer container = TestUtils.getPropertyValue(channel, "container",
            AbstractMessageListenerContainer.class);
    MessageListener listener = (MessageListener) container.getMessageListener();
    try {
        listener.onMessage(new StubTextMessage("Hello, world!"));
        fail("Exception expected");
    } catch (MessageDeliveryException e) {
        assertEquals("Dispatcher has no subscribers for jms-channel 'noSubscribersChannel'.", e.getMessage());
    }
}

From source file:org.springframework.integration.jms.SubscribableJmsChannelTests.java

@Test
public void dispatcherHasNoSubscribersTopic() throws Exception {
    JmsChannelFactoryBean factoryBean = new JmsChannelFactoryBean(true);
    factoryBean.setConnectionFactory(this.connectionFactory);
    factoryBean.setDestinationName("noSubscribersTopic");
    factoryBean.setBeanName("noSubscribersChannel");
    factoryBean.setPubSubDomain(true);//w  w  w  . jav a2 s .  c om
    factoryBean.afterPropertiesSet();
    SubscribableJmsChannel channel = (SubscribableJmsChannel) factoryBean.getObject();
    channel.afterPropertiesSet();

    AbstractMessageListenerContainer container = TestUtils.getPropertyValue(channel, "container",
            AbstractMessageListenerContainer.class);
    MessageListener listener = (MessageListener) container.getMessageListener();
    List<String> logList = insertMockLoggerInListener(channel);
    listener.onMessage(new StubTextMessage("Hello, world!"));
    verifyLogReceived(logList);
}

From source file:org.springframework.integration.jms.SubscribableJmsChannelTests.java

private List<String> insertMockLoggerInListener(SubscribableJmsChannel channel) {
    AbstractMessageListenerContainer container = TestUtils.getPropertyValue(channel, "container",
            AbstractMessageListenerContainer.class);
    Log logger = mock(Log.class);
    final ArrayList<String> logList = new ArrayList<String>();
    doAnswer(new Answer<Object>() {
        public Object answer(InvocationOnMock invocation) throws Throwable {
            String message = (String) invocation.getArguments()[0];
            if (message.startsWith("Dispatcher has no subscribers")) {
                logList.add(message);// ww w .j  av  a2  s.co m
            }
            return null;
        }
    }).when(logger).warn(anyString(), any(Exception.class));
    when(logger.isWarnEnabled()).thenReturn(true);
    Object listener = container.getMessageListener();
    DirectFieldAccessor dfa = new DirectFieldAccessor(listener);
    dfa.setPropertyValue("logger", logger);
    return logList;
}