Example usage for org.springframework.jms.listener DefaultMessageListenerContainer initialize

List of usage examples for org.springframework.jms.listener DefaultMessageListenerContainer initialize

Introduction

In this page you can find the example usage for org.springframework.jms.listener DefaultMessageListenerContainer initialize.

Prototype

@Override
    public void initialize() 

Source Link

Usage

From source file:ch.algotrader.event.TopicEventDumper.java

public static void main(String... args) throws Exception {

    SingleConnectionFactory jmsActiveMQFactory = new SingleConnectionFactory(
            new ActiveMQConnectionFactory("tcp://localhost:61616"));
    jmsActiveMQFactory.afterPropertiesSet();
    jmsActiveMQFactory.resetConnection();

    ActiveMQTopic topic = new ActiveMQTopic(">");

    DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
    messageListenerContainer.setDestination(topic);
    messageListenerContainer.setConnectionFactory(jmsActiveMQFactory);
    messageListenerContainer.setSubscriptionShared(false);
    messageListenerContainer.setCacheLevel(DefaultMessageListenerContainer.CACHE_CONSUMER);

    messageListenerContainer.setMessageListener((MessageListener) message -> {
        try {// www.  ja  va2 s.c o  m
            Destination destination = message.getJMSDestination();
            if (message instanceof TextMessage) {
                TextMessage textMessage = (TextMessage) message;
                System.out.println(destination + " -> " + textMessage.getText());
            } else if (message instanceof BytesMessage) {
                BytesMessage bytesMessage = (BytesMessage) message;
                byte[] bytes = new byte[(int) bytesMessage.getBodyLength()];
                bytesMessage.readBytes(bytes);
                System.out.println(destination + " -> " + new String(bytes, Charsets.UTF_8));
            }
        } catch (JMSException ex) {
            throw new UnrecoverableCoreException(ex);
        }
    });

    messageListenerContainer.initialize();
    messageListenerContainer.start();

    System.out.println("Dumping messages from all topics");

    Runtime.getRuntime().addShutdownHook(new Thread(messageListenerContainer::stop));

    Thread.sleep(Long.MAX_VALUE);
}

From source file:terrastore.event.impl.ActiveMQEventBus.java

private void createConsumer(Event event) {
    String queueName = TERRASTORE_QUEUE_PREFIX + event.getBucket();
    if (!consumers.containsKey(queueName)) {
        stateLock.lock();//w w  w  . j a va  2  s .  co  m
        try {
            if (!shutdown && !consumers.containsKey(queueName)) {
                DefaultMessageListenerContainer consumer = new DefaultMessageListenerContainer();
                consumer.setConnectionFactory(jmsConnectionFactory);
                consumer.setSessionTransacted(true);
                consumer.setMessageListener(new EventProcessor(eventListeners, actionExecutor));
                consumer.setDestinationName(queueName);
                consumer.start();
                consumer.initialize();
                consumers.put(queueName, consumer);
            }
        } finally {
            stateLock.unlock();
        }
    }
}

From source file:terrastore.event.impl.ActiveMQEventBus.java

private void initConsumers(String broker) throws Exception {
    ActiveMQConnection connection = null;
    DestinationSource destinations = null;
    try {/*from w  ww  . j  ava  2s. c  o  m*/
        connection = ActiveMQConnection.makeConnection(broker);
        connection.start();
        //
        destinations = connection.getDestinationSource();
        destinations.start();
        //
        Set<ActiveMQQueue> queues = destinations.getQueues();
        for (ActiveMQQueue queue : queues) {
            if (queue.getQueueName().startsWith(TERRASTORE_QUEUE_PREFIX)) {
                LOG.info("Listening to queue: {}", queue.getQueueName());
                DefaultMessageListenerContainer consumer = new DefaultMessageListenerContainer();
                consumer.setConnectionFactory(jmsConnectionFactory);
                consumer.setSessionTransacted(true);
                consumer.setMessageListener(new EventProcessor(eventListeners, actionExecutor));
                consumer.setDestinationName(queue.getQueueName());
                consumer.start();
                consumer.initialize();
                consumers.put(queue.getQueueName(), consumer);
            }
        }
    } finally {
        if (destinations != null) {
            destinations.stop();
        }
        if (connection != null) {
            connection.stop();
            connection.close();
        }
    }
}

From source file:ch.algotrader.service.SubscriptionServiceImpl.java

private void updateMessageSelector(final DefaultMessageListenerContainer genericMessageListenerContainer,
        String messageSelector) {

    genericMessageListenerContainer.setMessageSelector(messageSelector);

    // restart the container (must do this in a separate thread to prevent dead-locks)
    (new Thread() {
        @Override/*w w  w  .  j a  v  a  2  s. co  m*/
        public void run() {
            genericMessageListenerContainer.stop();
            genericMessageListenerContainer.shutdown();
            genericMessageListenerContainer.start();
            genericMessageListenerContainer.initialize();
        }
    }).start();
}