All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gu.simplemq.activemq.ActivemqRuntimeContext Maven / Gradle / Ivy

package gu.simplemq.activemq;

import java.util.Properties;

import javax.jms.JMSException;
import javax.jms.Message;

import org.apache.activemq.command.ActiveMQMessage;
import org.apache.activemq.pool.PooledConnectionFactory;

import gu.simplemq.BaseMQContext;
import gu.simplemq.IMessageQueueFactory;
import gu.simplemq.MQPropertiesHelper;
import gu.simplemq.MessageQueueType;
import gu.simplemq.jms.MessageQueueFactoryImpl;
import gu.simplemq.jms.JmsRuntimeContext;

class ActivemqRuntimeContext extends BaseMQContext implements JmsRuntimeContext {

	static final ActivemqRuntimeContext ACTIVEMQ_CONTEXT = new ActivemqRuntimeContext();
	private final ActivemqPropertiesHelper protonHelper;
	private final MessageQueueFactoryImpl factory;

	public ActivemqRuntimeContext() {
		super(MessageQueueType.ACTIVEMQ, "AMQP");
		protonHelper = new ActivemqPropertiesHelper(this);
		factory = new MessageQueueFactoryImpl(this);
	}

	@Override
	public MQPropertiesHelper getPropertiesHelper() {
		return protonHelper;
	}

	@Override
	public IMessageQueueFactory getMessageQueueFactory(){
		return factory;
	}

	@Override
	public PooledConnectionFactory createPooledConnectionFactory(Properties properties) {
		PooledConnectionFactory pool = new PooledConnectionFactory();	
		pool.setProperties(properties);
		return pool;
	}

	@Override
	public String destNameOf(Message message) throws JMSException {
		ActiveMQMessage am = (ActiveMQMessage) message;		
		return am.getDestination().getPhysicalName();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy