001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. 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 package org.apache.activemq.ra; 018 019 import javax.jms.Connection; 020 import javax.jms.ConnectionConsumer; 021 import javax.jms.ConnectionMetaData; 022 import javax.jms.Destination; 023 import javax.jms.ExceptionListener; 024 import javax.jms.JMSException; 025 import javax.jms.Queue; 026 import javax.jms.QueueConnection; 027 import javax.jms.QueueSession; 028 import javax.jms.ServerSessionPool; 029 import javax.jms.Session; 030 import javax.jms.Topic; 031 import javax.jms.TopicConnection; 032 import javax.jms.TopicSession; 033 034 import org.apache.activemq.ActiveMQConnectionMetaData; 035 036 /** 037 * A {@link Connection} implementation which can be used with the ActiveMQ JCA 038 * Resource Adapter to publish messages using the same JMS session that is used to dispatch 039 * messages. 040 * 041 * 042 */ 043 public class InboundConnectionProxy implements Connection, QueueConnection, TopicConnection { 044 045 public Session createSession(boolean transacted, int ackMode) throws JMSException { 046 // TODO we could decide to barf if someone passes in incompatible options 047 return new InboundSessionProxy(); 048 } 049 050 public QueueSession createQueueSession(boolean transacted, int ackMode) throws JMSException { 051 // TODO we could decide to barf if someone passes in incompatible options 052 return new InboundSessionProxy(); 053 } 054 055 public TopicSession createTopicSession(boolean transacted, int ackMode) throws JMSException { 056 // TODO we could decide to barf if someone passes in incompatible options 057 return new InboundSessionProxy(); 058 } 059 060 public void start() throws JMSException { 061 // the JCA RA is in control of this 062 } 063 064 public void stop() throws JMSException { 065 // the JCA RA is in control of this 066 } 067 068 public void close() throws JMSException { 069 // the JCA RA is in control of this 070 } 071 072 public ConnectionMetaData getMetaData() throws JMSException { 073 return ActiveMQConnectionMetaData.INSTANCE; 074 } 075 076 public String getClientID() throws JMSException { 077 throw createNotSupported("getClientID()"); 078 } 079 080 public void setClientID(String s) throws JMSException { 081 throw createNotSupported("setClient()"); 082 } 083 084 public ExceptionListener getExceptionListener() throws JMSException { 085 throw createNotSupported("getExceptionListener()"); 086 } 087 088 public void setExceptionListener(ExceptionListener exceptionListener) throws JMSException { 089 throw createNotSupported("setExceptionListener()"); 090 } 091 092 public ConnectionConsumer createConnectionConsumer(Destination destination, String s, ServerSessionPool serverSessionPool, int i) throws JMSException { 093 throw createNotSupported("createConnectionConsumer()"); 094 } 095 096 public ConnectionConsumer createDurableConnectionConsumer(Topic topic, String s, String s1, ServerSessionPool serverSessionPool, int i) throws JMSException { 097 throw createNotSupported("createDurableConnectionConsumer()"); 098 } 099 100 public ConnectionConsumer createConnectionConsumer(Queue queue, String s, ServerSessionPool serverSessionPool, int i) throws JMSException { 101 throw createNotSupported("createConnectionConsumer()"); 102 } 103 104 public ConnectionConsumer createConnectionConsumer(Topic topic, String s, ServerSessionPool serverSessionPool, int i) throws JMSException { 105 throw createNotSupported("createConnectionConsumer()"); 106 } 107 108 protected JMSException createNotSupported(String text) { 109 return new JMSException("Operation: " + text + " is not supported for this proxy JCA ResourceAdapter provider"); 110 } 111 }