org.apache.activemq.ActiveMQTopicSession Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of activemq-client Show documentation
Show all versions of activemq-client Show documentation
The ActiveMQ Client implementation
/**
* 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 jakarta.jms.BytesMessage;
import jakarta.jms.Destination;
import jakarta.jms.IllegalStateException;
import jakarta.jms.InvalidDestinationException;
import jakarta.jms.JMSException;
import jakarta.jms.MapMessage;
import jakarta.jms.Message;
import jakarta.jms.MessageConsumer;
import jakarta.jms.MessageListener;
import jakarta.jms.MessageProducer;
import jakarta.jms.ObjectMessage;
import jakarta.jms.Queue;
import jakarta.jms.QueueBrowser;
import jakarta.jms.StreamMessage;
import jakarta.jms.TemporaryQueue;
import jakarta.jms.TemporaryTopic;
import jakarta.jms.TextMessage;
import jakarta.jms.Topic;
import jakarta.jms.TopicPublisher;
import jakarta.jms.TopicSession;
import jakarta.jms.TopicSubscriber;
/**
* A TopicSession implementation that throws IllegalStateExceptions when Queue
* operations are attempted but which delegates to another TopicSession for all
* other operations. The ActiveMQSessions implement both Topic and Queue
* Sessions methods but the spec states that TopicSession should throw
* Exceptions if queue operations are attempted on it.
*
*
*/
public class ActiveMQTopicSession implements TopicSession {
private final TopicSession next;
public ActiveMQTopicSession(TopicSession 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 {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
/**
* @param queue
* @param messageSelector
* @return
* @throws JMSException
*/
public QueueBrowser createBrowser(Queue queue, String messageSelector) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
/**
* @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 Queue) {
throw new InvalidDestinationException("Queues are not supported by a TopicSession");
}
return next.createConsumer(destination);
}
/**
* @param destination
* @param messageSelector
* @return
* @throws JMSException
*/
public MessageConsumer createConsumer(Destination destination, String messageSelector) throws JMSException {
if (destination instanceof Queue) {
throw new InvalidDestinationException("Queues are not supported by a TopicSession");
}
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 Queue) {
throw new InvalidDestinationException("Queues are not supported by a TopicSession");
}
return next.createConsumer(destination, messageSelector, noLocal);
}
@Override
public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
@Override
public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
@Override
public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
@Override
public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
@Override
public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
@Override
public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
/**
* @param topic
* @param name
* @return
* @throws JMSException
*/
public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException {
return next.createDurableSubscriber(topic, name);
}
/**
* @param topic
* @param name
* @param messageSelector
* @param noLocal
* @return
* @throws JMSException
*/
public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException {
return next.createDurableSubscriber(topic, name, messageSelector, noLocal);
}
/**
* @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 Queue) {
throw new InvalidDestinationException("Queues are not supported by a TopicSession");
}
return next.createProducer(destination);
}
/**
* @param topic
* @return
* @throws JMSException
*/
public TopicPublisher createPublisher(Topic topic) throws JMSException {
return next.createPublisher(topic);
}
/**
* @param queueName
* @return
* @throws JMSException
*/
public Queue createQueue(String queueName) throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
/**
* @return
* @throws JMSException
*/
public StreamMessage createStreamMessage() throws JMSException {
return next.createStreamMessage();
}
/**
* @param topic
* @return
* @throws JMSException
*/
public TopicSubscriber createSubscriber(Topic topic) throws JMSException {
return next.createSubscriber(topic);
}
/**
* @param topic
* @param messageSelector
* @param noLocal
* @return
* @throws JMSException
*/
public TopicSubscriber createSubscriber(Topic topic, String messageSelector, boolean noLocal) throws JMSException {
return next.createSubscriber(topic, messageSelector, noLocal);
}
/**
* @return
* @throws JMSException
*/
public TemporaryQueue createTemporaryQueue() throws JMSException {
throw new IllegalStateException("Operation not supported by a TopicSession");
}
/**
* @return
* @throws JMSException
*/
public TemporaryTopic createTemporaryTopic() throws JMSException {
return next.createTemporaryTopic();
}
/**
* @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 {
return next.createTopic(topicName);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object arg0) {
if(this != arg0) {
return next.equals(arg0);
}
return true;
}
/**
* @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 {
next.unsubscribe(name);
}
public TopicSession getNext() {
return next;
}
}