/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.util.test;
import java.net.URI;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.pool.PooledConnectionFactory;
import com.opengamma.util.jms.JmsConnector;
import com.opengamma.util.jms.JmsConnectorFactoryBean;
/**
* Ensures that the Ivy configuration is sufficient to launch an in-memory ActiveMQ connection.
*/
public class ActiveMQTestUtils {
/**
* The broker URI.
*/
private static final URI BROKER_URI = URI.create("vm://localhost?broker.persistent=false");
/**
* Restricted constructor.
*/
protected ActiveMQTestUtils() {
super();
}
//-------------------------------------------------------------------------
/**
* Creates an MQ connection factory for testing.
*
* @return the connection factory, not null
*/
public static ActiveMQConnectionFactory createTestConnectionFactory() {
return new ActiveMQConnectionFactory(BROKER_URI);
}
/**
* Creates a JMS connector for testing.
*
* @return the JMS connector, not null
*/
public static JmsConnector createTestJmsConnector() {
return createTestJmsConnector(null);
}
/**
* Creates a JMS connector for testing.
*
* @param topicName the topic name, null if no topic name required
* @return the JMS connector, not null
*/
public static JmsConnector createTestJmsConnector(String topicName) {
ActiveMQConnectionFactory cf = createTestConnectionFactory();
JmsConnectorFactoryBean factory = new JmsConnectorFactoryBean();
factory.setName("ActiveMQTestUtils");
factory.setConnectionFactory(new PooledConnectionFactory(cf));
factory.setClientBrokerUri(BROKER_URI);
factory.setTopicName(topicName);
return factory.getObjectCreating();
}
}