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

org.apache.activemq.ActiveMQQueueSession Maven / Gradle / Ivy

There is a newer version: 5.7.0
Show newest version
/**
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.activemq;

import java.io.Serializable;

import javax.jms.BytesMessage;
import javax.jms.Destination;
import javax.jms.IllegalStateException;
import javax.jms.InvalidDestinationException;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.QueueReceiver;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.StreamMessage;
import javax.jms.TemporaryQueue;
import javax.jms.TemporaryTopic;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicSubscriber;

/**
 * A QueueSession implementation that throws IllegalStateExceptions
 * when Topic operations are attempted but which delegates 
 * to another QueueSession for all other operations.
 * 
 * The ActiveMQSessions implement both Topic and Queue Sessions 
 * methods but the spec states that Queue session should throw Exceptions 
 * if topic operations are attempted on it.  
 * 
 * @version $Revision: 1.2 $
 */
public class ActiveMQQueueSession implements QueueSession {

	private final QueueSession next;
	
	public ActiveMQQueueSession(QueueSession next) {
		this.next = next;
	}
	
	/**
	 * @throws JMSException
	 */
	public void close() throws JMSException {
		next.close();
	}
	/**
	 * @throws JMSException
	 */
	public void commit() throws JMSException {
		next.commit();
	}
	/**
	 * @param queue
	 * @return
	 * @throws JMSException
	 */
	public QueueBrowser createBrowser(Queue queue) throws JMSException {
		return next.createBrowser(queue);
	}
	/**
	 * @param queue
	 * @param messageSelector
	 * @return
	 * @throws JMSException
	 */
	public QueueBrowser createBrowser(Queue queue, String messageSelector)
			throws JMSException {
		return next.createBrowser(queue, messageSelector);
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public BytesMessage createBytesMessage() throws JMSException {
		return next.createBytesMessage();
	}
	/**
	 * @param destination
	 * @return
	 * @throws JMSException
	 */
	public MessageConsumer createConsumer(Destination destination)
			throws JMSException {
		if( destination instanceof Topic )
			throw new InvalidDestinationException("Topics are not supported by a QueueSession");
		return next.createConsumer(destination);
	}
	/**
	 * @param destination
	 * @param messageSelector
	 * @return
	 * @throws JMSException
	 */
	public MessageConsumer createConsumer(Destination destination,
			String messageSelector) throws JMSException {
		if( destination instanceof Topic )
			throw new InvalidDestinationException("Topics are not supported by a QueueSession");
		return next.createConsumer(destination, messageSelector);
	}
	/**
	 * @param destination
	 * @param messageSelector
	 * @param NoLocal
	 * @return
	 * @throws JMSException
	 */
	public MessageConsumer createConsumer(Destination destination,
			String messageSelector, boolean NoLocal) throws JMSException {
		if( destination instanceof Topic )
			throw new InvalidDestinationException("Topics are not supported by a QueueSession");
		return next.createConsumer(destination, messageSelector, NoLocal);
	}
	/**
	 * @param topic
	 * @param name
	 * @return
	 * @throws JMSException
	 */
	public TopicSubscriber createDurableSubscriber(Topic topic, String name)
			throws JMSException {
		throw new IllegalStateException("Operation not supported by a QueueSession");
	}
	/**
	 * @param topic
	 * @param name
	 * @param messageSelector
	 * @param noLocal
	 * @return
	 * @throws JMSException
	 */
	public TopicSubscriber createDurableSubscriber(Topic topic, String name,
			String messageSelector, boolean noLocal) throws JMSException {
		throw new IllegalStateException("Operation not supported by a QueueSession");
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public MapMessage createMapMessage() throws JMSException {
		return next.createMapMessage();
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public Message createMessage() throws JMSException {
		return next.createMessage();
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public ObjectMessage createObjectMessage() throws JMSException {
		return next.createObjectMessage();
	}
	/**
	 * @param object
	 * @return
	 * @throws JMSException
	 */
	public ObjectMessage createObjectMessage(Serializable object)
			throws JMSException {
		return next.createObjectMessage(object);
	}
	/**
	 * @param destination
	 * @return
	 * @throws JMSException
	 */
	public MessageProducer createProducer(Destination destination)
			throws JMSException {
		if( destination instanceof Topic )
			throw new InvalidDestinationException("Topics are not supported by a QueueSession");
		return next.createProducer(destination);
	}
	/**
	 * @param queueName
	 * @return
	 * @throws JMSException
	 */
	public Queue createQueue(String queueName) throws JMSException {
		return next.createQueue(queueName);
	}
	/**
	 * @param queue
	 * @return
	 * @throws JMSException
	 */
	public QueueReceiver createReceiver(Queue queue) throws JMSException {
		return next.createReceiver(queue);
	}
	/**
	 * @param queue
	 * @param messageSelector
	 * @return
	 * @throws JMSException
	 */
	public QueueReceiver createReceiver(Queue queue, String messageSelector)
			throws JMSException {
		return next.createReceiver(queue, messageSelector);
	}
	/**
	 * @param queue
	 * @return
	 * @throws JMSException
	 */
	public QueueSender createSender(Queue queue) throws JMSException {
		return next.createSender(queue);
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public StreamMessage createStreamMessage() throws JMSException {
		return next.createStreamMessage();
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public TemporaryQueue createTemporaryQueue() throws JMSException {
		return next.createTemporaryQueue();
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public TemporaryTopic createTemporaryTopic() throws JMSException {
		throw new IllegalStateException("Operation not supported by a QueueSession");
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public TextMessage createTextMessage() throws JMSException {
		return next.createTextMessage();
	}
	/**
	 * @param text
	 * @return
	 * @throws JMSException
	 */
	public TextMessage createTextMessage(String text) throws JMSException {
		return next.createTextMessage(text);
	}
	/**
	 * @param topicName
	 * @return
	 * @throws JMSException
	 */
	public Topic createTopic(String topicName) throws JMSException {
		throw new IllegalStateException("Operation not supported by a QueueSession");
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	public boolean equals(Object arg0) {
		return next.equals(arg0);
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public int getAcknowledgeMode() throws JMSException {
		return next.getAcknowledgeMode();
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public MessageListener getMessageListener() throws JMSException {
		return next.getMessageListener();
	}
	/**
	 * @return
	 * @throws JMSException
	 */
	public boolean getTransacted() throws JMSException {
		return next.getTransacted();
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		return next.hashCode();
	}
	/**
	 * @throws JMSException
	 */
	public void recover() throws JMSException {
		next.recover();
	}
	/**
	 * @throws JMSException
	 */
	public void rollback() throws JMSException {
		next.rollback();
	}
	/**
	 * 
	 */
	public void run() {
		next.run();
	}
	/**
	 * @param listener
	 * @throws JMSException
	 */
	public void setMessageListener(MessageListener listener)
			throws JMSException {
		next.setMessageListener(listener);
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		return next.toString();
	}
	/**
	 * @param name
	 * @throws JMSException
	 */
	public void unsubscribe(String name) throws JMSException {
		throw new IllegalStateException("Operation not supported by a QueueSession");
	}

    public QueueSession getNext() {
        return next;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy