001 /**
002 *
003 * Copyright 2004 Protique Ltd
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 *
017 **/
018 package org.activemq.ra.jms;
019
020 import javax.jms.*;
021
022 /**
023 * A {@link Connection} implementation which can be used with the ActiveMQ JCA
024 * Resource Adapter to publish messages using the same JMS session that is used to dispatch
025 * messages.
026 *
027 * @version $Revision: 1.1.1.1 $
028 */
029 public class ConnectionProxy implements Connection, QueueConnection, TopicConnection {
030 private static final ConnectionMetaData metaData = new ConnectionProxyMetaData();
031
032 public Session createSession(boolean transacted, int ackMode) throws JMSException {
033 // TODO we could decide to barf if someone passes in incompatible options
034 return new SessionProxy();
035 }
036
037 public QueueSession createQueueSession(boolean transacted, int ackMode) throws JMSException {
038 // TODO we could decide to barf if someone passes in incompatible options
039 return new SessionProxy();
040 }
041
042 public TopicSession createTopicSession(boolean transacted, int ackMode) throws JMSException {
043 // TODO we could decide to barf if someone passes in incompatible options
044 return new SessionProxy();
045 }
046
047 public void start() throws JMSException {
048 // the JCA RA is in control of this
049 }
050
051 public void stop() throws JMSException {
052 // the JCA RA is in control of this
053 }
054
055 public void close() throws JMSException {
056 // the JCA RA is in control of this
057 }
058
059 public ConnectionMetaData getMetaData() throws JMSException {
060 return metaData;
061 }
062
063 public String getClientID() throws JMSException {
064 throw createNotSupported("getClientID()");
065 }
066
067 public void setClientID(String s) throws JMSException {
068 throw createNotSupported("setClient()");
069 }
070
071 public ExceptionListener getExceptionListener() throws JMSException {
072 throw createNotSupported("getExceptionListener()");
073 }
074
075 public void setExceptionListener(ExceptionListener exceptionListener) throws JMSException {
076 throw createNotSupported("setExceptionListener()");
077 }
078
079 public ConnectionConsumer createConnectionConsumer(Destination destination, String s, ServerSessionPool serverSessionPool, int i) throws JMSException {
080 throw createNotSupported("createConnectionConsumer()");
081 }
082
083 public ConnectionConsumer createDurableConnectionConsumer(Topic topic, String s, String s1, ServerSessionPool serverSessionPool, int i) throws JMSException {
084 throw createNotSupported("createDurableConnectionConsumer()");
085 }
086
087 public ConnectionConsumer createConnectionConsumer(Queue queue, String s, ServerSessionPool serverSessionPool, int i) throws JMSException {
088 throw createNotSupported("createConnectionConsumer()");
089 }
090
091 public ConnectionConsumer createConnectionConsumer(Topic topic, String s, ServerSessionPool serverSessionPool, int i) throws JMSException {
092 throw createNotSupported("createConnectionConsumer()");
093 }
094
095 protected JMSException createNotSupported(String text) {
096 return new JMSException("Operation: " + text + " is not supported for this proxy JCA ResourceAdapter provider");
097 }
098 }