/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.util.jms;
import javax.jms.ConnectionFactory;
import org.springframework.jms.listener.AbstractMessageListenerContainer;
import org.springframework.jms.listener.DefaultMessageListenerContainer;
import com.opengamma.util.ArgumentChecker;
/**
* Container used to receive JMS messages.
*/
public class SpringJmsQueueContainerFactory extends AbstractSpringContainerFactory implements JmsQueueContainerFactory {
/**
* Creates an instance.
*
* @param connectionFactory the JMS connection factory, not null
*/
public SpringJmsQueueContainerFactory(ConnectionFactory connectionFactory) {
super(connectionFactory);
}
//-------------------------------------------------------------------------
@Override
public JmsQueueContainer create(String queueName, Object listener) {
AbstractMessageListenerContainer jmsContainer = doCreate(getConnectionFactory(), queueName, false, listener);
return new OpenGammaSpringJmsContainer(jmsContainer);
}
@Override
public JmsQueueContainer create(String queueName, Object listener, int concurrentConsumers, int maxConcurrentConsumers) {
ArgumentChecker.notNegativeOrZero(concurrentConsumers, "concurrentConsumers");
ArgumentChecker.notNegativeOrZero(maxConcurrentConsumers, "maxConcurrentConsumers");
DefaultMessageListenerContainer jmsContainer = doCreate(getConnectionFactory(), queueName, false, listener);
jmsContainer.setConcurrentConsumers(concurrentConsumers);
jmsContainer.setMaxConcurrentConsumers(maxConcurrentConsumers);
return new OpenGammaSpringJmsContainer(jmsContainer);
}
//-------------------------------------------------------------------------
@Override
public String toString() {
return SpringJmsQueueContainerFactory.class.getSimpleName();
}
}