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

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

Introduction

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

Prototype

public void setMessageSelector(@Nullable String messageSelector) 

Source Link

Document

Set the JMS message selector expression (or null if none).

Usage

From source file:org.nebulaframework.grid.cluster.manager.services.jobs.remote.RemoteClusterJobServiceImpl.java

/**
 * Initializes the {@code RemoteClusterJobServiceImpl}, by exposing the
 * service as a remote service through JMS and starting the JMS Message
 * Listener Container for service.// w w  w  .  j a v  a  2  s  .  c  o m
 */
protected void initialize() {
    // Create JMS Remoting Container and Expose service
    String queueName = JMSNamingSupport.getRemoteJobServiceQueueName();

    DefaultMessageListenerContainer container = JMSRemotingSupport.createService(connectionFactory, queueName,
            this, RemoteClusterJobService.class);

    // Set a Message Selector to accept only messages for this Cluster
    container.setMessageSelector("targetClusterId = '" + cluster.getClusterId() + "'");

    log.debug("[RemoteJobService] Initialized");
}

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 av  a  2  s  . c  om
        public void run() {
            genericMessageListenerContainer.stop();
            genericMessageListenerContainer.shutdown();
            genericMessageListenerContainer.start();
            genericMessageListenerContainer.initialize();
        }
    }).start();
}

From source file:com.ruyicai.msgcenter.jms.WithoutTMJmsConfiguration.java

protected void configureMessageListenerContainer(DefaultMessageListenerContainer container,
        JmsEndpoint endpoint) throws Exception {
    container.setConnectionFactory(getListenerConnectionFactory());
    if (endpoint instanceof DestinationEndpoint) {
        container.setDestinationResolver(createDestinationResolver((DestinationEndpoint) endpoint));
    } else if (destinationResolver != null) {
        container.setDestinationResolver(destinationResolver);
    }/*from w ww  .ja v a 2 s  .  c  o m*/
    container.setAutoStartup(autoStartup);

    if (durableSubscriptionName != null) {
        container.setDurableSubscriptionName(durableSubscriptionName);
        container.setSubscriptionDurable(true);
    }
    if (clientId != null) {
        container.setClientId(clientId);
    }

    if (exceptionListener != null) {
        container.setExceptionListener(exceptionListener);
    }

    container.setAcceptMessagesWhileStopping(acceptMessagesWhileStopping);
    container.setExposeListenerSession(exposeListenerSession);
    container.setSessionTransacted(transacted);

    if (endpoint.getSelector() != null && endpoint.getSelector().length() != 0) {
        container.setMessageSelector(endpoint.getSelector());
    }

    if (concurrentConsumers >= 0) {
        container.setConcurrentConsumers(concurrentConsumers);
    }

    if (cacheLevel >= 0) {
        container.setCacheLevel(cacheLevel);
    } else if (cacheLevelName != null) {
        container.setCacheLevelName(cacheLevelName);
    } else {
        container.setCacheLevel(defaultCacheLevel(endpoint));
    }

    if (idleTaskExecutionLimit >= 0) {
        container.setIdleTaskExecutionLimit(idleTaskExecutionLimit);
    }
    if (maxConcurrentConsumers > 0) {
        if (maxConcurrentConsumers < concurrentConsumers) {
            throw new IllegalArgumentException("Property maxConcurrentConsumers: " + maxConcurrentConsumers
                    + " must be higher than concurrentConsumers: " + concurrentConsumers);
        }
        container.setMaxConcurrentConsumers(maxConcurrentConsumers);
    }
    if (maxMessagesPerTask >= 0) {
        container.setMaxMessagesPerTask(maxMessagesPerTask);
    }
    container.setPubSubNoLocal(pubSubNoLocal);
    if (receiveTimeout >= 0) {
        container.setReceiveTimeout(receiveTimeout);
    }
    if (recoveryInterval >= 0) {
        container.setRecoveryInterval(recoveryInterval);
    }
    if (taskExecutor != null) {
        container.setTaskExecutor(taskExecutor);
    }
    if (transactionName != null) {
        container.setTransactionName(transactionName);
    }
    if (transactionTimeout >= 0) {
        container.setTransactionTimeout(transactionTimeout);
    }
}