summaryrefslogtreecommitdiff
path: root/qpid/java/jca/src
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2015-04-15 09:47:28 +0000
committerAlex Rudyy <orudyy@apache.org>2015-04-15 09:47:28 +0000
commit0a0baee45ebcff44635907d457c4ff6810b09c87 (patch)
tree8bfb0f9eddbc23cff88af69be80ab3ce7d47011c /qpid/java/jca/src
parent54aa3d7070da16ce55c28ccad3f7d0871479e461 (diff)
downloadqpid-python-0a0baee45ebcff44635907d457c4ff6810b09c87.tar.gz
QPID-6481: Move java source tree to top level
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1673693 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/jca/src')
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryObjectFactory.java62
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryProperties.java216
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRABytesMessage.java462
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactory.java58
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactoryImpl.java442
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionManager.java80
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java208
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionRequestInfo.java361
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRACredential.java245
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAException.java70
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRALocalTransaction.java129
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMCFProperties.java177
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java838
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnectionFactory.java623
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMapMessage.java457
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessage.java782
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageConsumer.java353
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageListener.java74
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageProducer.java419
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMetaData.java116
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAObjectMessage.java85
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAProperties.java164
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueBrowser.java139
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueReceiver.java70
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueSender.java147
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASession.java35
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactory.java62
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java911
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java1736
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAStreamMessage.java415
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATextMessage.java83
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicPublisher.java220
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicSubscriber.java86
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAXAResource.java258
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidResourceAdapter.java777
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/Util.java176
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/AdminObjectFactory.java71
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidBindingURL.java52
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidConnectionFactoryProxy.java222
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidDestinationProxy.java162
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueue.java27
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueueImpl.java97
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopic.java28
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopicImpl.java96
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivation.java215
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivationSpec.java627
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidExceptionHandler.java339
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidMessageHandler.java282
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GeronimoTransactionManagerLocator.java63
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GlassfishTransactionManagerLocator.java63
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBoss7TransactionManagerLocator.java53
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBossTransactionManagerLocator.java70
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/WLSTransactionManagerLocator.java64
-rw-r--r--qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidActivationSpecTest.java45
-rw-r--r--qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidResourceAdapterTest.java78
55 files changed, 0 insertions, 14190 deletions
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryObjectFactory.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryObjectFactory.java
deleted file mode 100644
index 2dc94ed194..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryObjectFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NameNotFoundException;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.spi.ObjectFactory;
-
-/**
- *
- * A ConnectionFactoryObjectFactory.
- *
- * Given a reference - reconstructs a QpidRAConnectionFactory
- *
- */
-public class ConnectionFactoryObjectFactory implements ObjectFactory
-{
- static final String QPID_CF = "QPID-CF";
-
- public Object getObjectInstance(final Object ref, final Name name, final Context ctx, final Hashtable<?,?> props) throws Exception
- {
- if (!(ref instanceof Reference))
- {
- throw new IllegalArgumentException();
- }
-
- RefAddr ra = ((Reference)ref).get(QPID_CF);
- if (ra == null)
- {
- throw new NameNotFoundException();
- }
-
- byte[] bytes = (byte[])ra.getContent();
-
- return Util.deserialize(bytes);
-
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryProperties.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryProperties.java
deleted file mode 100644
index 3bddfd80a4..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/ConnectionFactoryProperties.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- */
-public class ConnectionFactoryProperties
-{
- /**
- * The logger
- */
- private static final Logger _log = LoggerFactory.getLogger(ConnectionFactoryProperties.class);
-
- private boolean _hasBeenUpdated = false;
-
- private String _clientId;
-
- private String _connectionURL;
-
- private String _userName;
-
- private String _password;
-
- private String _host;
-
- private Integer _port;
-
- private String _path;
-
- private Boolean _localTx = Boolean.FALSE;
-
- public String getClientId()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getClientID()");
- }
- return _clientId;
- }
-
- public void setClientId(final String clientID)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setClientID(" + clientID + ")");
- }
- _hasBeenUpdated = true;
- this._clientId = clientID;
- }
-
- public boolean isHasBeenUpdated()
- {
- return _hasBeenUpdated;
- }
-
- public String getConnectionURL()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getConnectionURL()");
- }
- return _connectionURL;
- }
-
- public void setConnectionURL(final String connectionURL)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setConnectionURL(" + Util.maskUrlForLog(connectionURL) + ")");
- }
-
- _hasBeenUpdated = true;
- this._connectionURL = connectionURL;
- }
-
- public String getPassword()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDefaultPassword()");
- }
- return _password;
- }
-
- public void setPassword(final String defaultPassword)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDefaultPassword(" + defaultPassword + ")");
- }
- _hasBeenUpdated = true;
- this._password = defaultPassword;
- }
-
- public String getUserName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDefaultUsername()");
- }
- return _userName;
- }
-
- public void setUserName(final String defaultUsername)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDefaultUsername(" + defaultUsername + ")");
- }
- _hasBeenUpdated = true;
- this._userName = defaultUsername;
- }
-
- public String getHost()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getHost()");
- }
- return _host;
- }
-
- public void setHost(final String host)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setHost(" + host + ")");
- }
- _hasBeenUpdated = true;
- this._host = host;
- }
-
- public Integer getPort()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPort()");
- }
- return _port;
- }
-
- public void setPort(final Integer port)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPort(" + port + ")");
- }
- _hasBeenUpdated = true;
- this._port = port;
- }
-
- public String getPath()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPath()");
- }
- return _path;
- }
-
- public void setPath(final String path)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPath(" + path + ")");
- }
- _hasBeenUpdated = true;
- this._path = path;
- }
-
- public Boolean isUseLocalTx()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("isUseLocalTx()");
- }
- return _localTx;
- }
-
- public void setUseLocalTx(Boolean localTx)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUseLocalTx(" + localTx + ")");
- }
-
- if(localTx != null)
- {
- _hasBeenUpdated = true;
- this._localTx = localTx;
- }
-
- }
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRABytesMessage.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRABytesMessage.java
deleted file mode 100644
index d30a45c739..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRABytesMessage.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.BytesMessage;
-import javax.jms.JMSException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message
- *
- */
-public class QpidRABytesMessage extends QpidRAMessage implements BytesMessage
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRABytesMessage.class);
-
- /**
- * Create a new wrapper
- * @param message the message
- * @param session the session
- */
- public QpidRABytesMessage(final BytesMessage message, final QpidRASessionImpl session)
- {
- super(message, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(message) + ", " + session + ")");
- }
- }
-
- /**
- * Get body length
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long getBodyLength() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getBodyLength()");
- }
-
- return ((BytesMessage)_message).getBodyLength();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean readBoolean() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readBoolean()");
- }
-
- return ((BytesMessage)_message).readBoolean();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public byte readByte() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readByte()");
- }
-
- return ((BytesMessage)_message).readByte();
- }
-
- /**
- * Read
- * @param value The value
- * @param length The length
- * @return The result
- * @exception JMSException Thrown if an error occurs
- */
- public int readBytes(final byte[] value, final int length) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readBytes(" + value + ", " + length + ")");
- }
-
- return ((BytesMessage)_message).readBytes(value, length);
- }
-
- /**
- * Read
- * @param value The value
- * @return The result
- * @exception JMSException Thrown if an error occurs
- */
- public int readBytes(final byte[] value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readBytes(" + value + ")");
- }
-
- return ((BytesMessage)_message).readBytes(value);
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public char readChar() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readChar()");
- }
-
- return ((BytesMessage)_message).readChar();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public double readDouble() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readDouble()");
- }
-
- return ((BytesMessage)_message).readDouble();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public float readFloat() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readFloat()");
- }
-
- return ((BytesMessage)_message).readFloat();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int readInt() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readInt()");
- }
-
- return ((BytesMessage)_message).readInt();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long readLong() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readLong()");
- }
-
- return ((BytesMessage)_message).readLong();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public short readShort() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readShort()");
- }
-
- return ((BytesMessage)_message).readShort();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int readUnsignedByte() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readUnsignedByte()");
- }
-
- return ((BytesMessage)_message).readUnsignedByte();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int readUnsignedShort() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readUnsignedShort()");
- }
-
- return ((BytesMessage)_message).readUnsignedShort();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String readUTF() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readUTF()");
- }
-
- return ((BytesMessage)_message).readUTF();
- }
-
- /**
- * Reset
- * @exception JMSException Thrown if an error occurs
- */
- public void reset() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("reset()");
- }
-
- ((BytesMessage)_message).reset();
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeBoolean(final boolean value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeBoolean(" + value + ")");
- }
-
- ((BytesMessage)_message).writeBoolean(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeByte(final byte value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeByte(" + value + ")");
- }
-
- ((BytesMessage)_message).writeByte(value);
- }
-
- /**
- * Write
- * @param value The value
- * @param offset The offset
- * @param length The length
- * @exception JMSException Thrown if an error occurs
- */
- public void writeBytes(final byte[] value, final int offset, final int length) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeBytes(" + value + ", " + offset + ", " + length + ")");
- }
-
- ((BytesMessage)_message).writeBytes(value, offset, length);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeBytes(final byte[] value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeBytes(" + value + ")");
- }
-
- ((BytesMessage)_message).writeBytes(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeChar(final char value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeChar(" + value + ")");
- }
-
- ((BytesMessage)_message).writeChar(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeDouble(final double value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeDouble(" + value + ")");
- }
-
- ((BytesMessage)_message).writeDouble(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeFloat(final float value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeFloat(" + value + ")");
- }
-
- ((BytesMessage)_message).writeFloat(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeInt(final int value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeInt(" + value + ")");
- }
-
- ((BytesMessage)_message).writeInt(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeLong(final long value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeLong(" + value + ")");
- }
-
- ((BytesMessage)_message).writeLong(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeObject(final Object value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeObject(" + Util.asString(value) + ")");
- }
-
- ((BytesMessage)_message).writeObject(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeShort(final short value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeShort(" + value + ")");
- }
-
- ((BytesMessage)_message).writeShort(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeUTF(final String value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeUTF(" + value + ")");
- }
-
- ((BytesMessage)_message).writeUTF(value);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactory.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactory.java
deleted file mode 100644
index 1e8fb13c79..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactory.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-
-import javax.jms.ConnectionFactory;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.TopicConnectionFactory;
-import javax.jms.XAConnectionFactory;
-import javax.jms.XAQueueConnectionFactory;
-import javax.jms.XATopicConnectionFactory;
-import javax.resource.Referenceable;
-
-/**
- * An aggregate interface for the JMS connection factories
- *
- */
-public interface QpidRAConnectionFactory extends ConnectionFactory, TopicConnectionFactory, QueueConnectionFactory,
- XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory, Serializable, Referenceable
-{
- /** Connection factory capable of handling connections */
- public static final int CONNECTION = 0;
-
- /** Connection factory capable of handling queues */
- public static final int QUEUE_CONNECTION = 1;
-
- /** Connection factory capable of handling topics */
- public static final int TOPIC_CONNECTION = 2;
-
- /** Connection factory capable of handling XA connections */
- public static final int XA_CONNECTION = 3;
-
- /** Connection factory capable of handling XA queues */
- public static final int XA_QUEUE_CONNECTION = 4;
-
- /** Connection factory capable of handling XA topics */
- public static final int XA_TOPIC_CONNECTION = 5;
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactoryImpl.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactoryImpl.java
deleted file mode 100644
index 77a38d5b34..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionFactoryImpl.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.IOException;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.QueueConnection;
-import javax.jms.TopicConnection;
-import javax.jms.XAConnection;
-import javax.jms.XAQueueConnection;
-import javax.jms.XATopicConnection;
-import javax.naming.BinaryRefAddr;
-import javax.naming.Reference;
-import javax.resource.spi.ConnectionManager;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The connection factory
- *
- */
-public class QpidRAConnectionFactoryImpl implements QpidRAConnectionFactory
-{
- /** Serial version UID */
- private static final long serialVersionUID = -5306006173783505760L;
-
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAConnectionFactoryImpl.class);
-
- /** The managed connection factory */
- private final QpidRAManagedConnectionFactory _mcf;
-
- /** The connection manager */
- private ConnectionManager _cm;
-
- /** Naming reference */
- private Reference _reference;
-
- /**
- * Constructor
- * @param mcf The managed connection factory
- * @param cm The connection manager
- */
- public QpidRAConnectionFactoryImpl(final QpidRAManagedConnectionFactory mcf, final ConnectionManager cm)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + mcf + ", " + cm + ")");
- }
-
- this._mcf = mcf;
-
- if (cm == null)
- {
- // This is standalone usage, no appserver
- this._cm = new QpidRAConnectionManager();
- if (_log.isTraceEnabled())
- {
- _log.trace("Created new ConnectionManager=" + this._cm);
- }
- }
- else
- {
- this._cm = cm;
- }
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Using ManagedConnectionFactory=" + mcf + ", ConnectionManager=" + this._cm);
- }
- }
-
- /**
- * Set the reference
- * @param reference The reference
- */
- public void setReference(final Reference reference)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setReference(" + reference + ")");
- }
-
- this._reference = reference;
- }
-
- /**
- * Get the reference
- * @return The reference
- */
- public Reference getReference()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getReference()");
- }
- if (_reference == null)
- {
- try
- {
- _reference = new Reference(this.getClass().getCanonicalName(),
- new BinaryRefAddr(ConnectionFactoryObjectFactory.QPID_CF,
- Util.serialize(this)),
- ConnectionFactoryObjectFactory.class.getCanonicalName(),
- null);
- }
- catch (final IOException ioe)
- {
- _log.error("Error while giving object Reference.", ioe);
- }
- }
-
- return _reference;
-
- }
-
- /**
- * Create a queue connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public QueueConnection createQueueConnection() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createQueueConnection()");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.QUEUE_CONNECTION);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created queue connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a queue connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public QueueConnection createQueueConnection(final String userName, final String password) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createQueueConnection(" + userName + ", ****)");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.QUEUE_CONNECTION);
- s.setUserName(userName);
- s.setPassword(password);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created queue connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a topic connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public TopicConnection createTopicConnection() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createTopicConnection()");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.TOPIC_CONNECTION);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created topic connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a topic connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public TopicConnection createTopicConnection(final String userName, final String password) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createTopicConnection(" + userName + ", ****)");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.TOPIC_CONNECTION);
- s.setUserName(userName);
- s.setPassword(password);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created topic connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public Connection createConnection() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnection()");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf, _cm, QpidRAConnectionFactory.CONNECTION);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public Connection createConnection(final String userName, final String password) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnection(" + userName + ", ****)");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf, _cm, QpidRAConnectionFactory.CONNECTION);
- s.setUserName(userName);
- s.setPassword(password);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a XA queue connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public XAQueueConnection createXAQueueConnection() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXAQueueConnection()");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.XA_QUEUE_CONNECTION);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created XA queue connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a XA queue connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public XAQueueConnection createXAQueueConnection(final String userName, final String password) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXAQueueConnection(" + userName + ", ****)");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.XA_QUEUE_CONNECTION);
- s.setUserName(userName);
- s.setPassword(password);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created XA queue connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a XA topic connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public XATopicConnection createXATopicConnection() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXATopicConnection()");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.XA_TOPIC_CONNECTION);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created XA topic connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a XA topic connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public XATopicConnection createXATopicConnection(final String userName, final String password) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXATopicConnection(" + userName + ", ****)");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf,
- _cm,
- QpidRAConnectionFactory.XA_TOPIC_CONNECTION);
- s.setUserName(userName);
- s.setPassword(password);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created XA topic connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a XA connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public XAConnection createXAConnection() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXAConnection()");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf, _cm, QpidRAConnectionFactory.XA_CONNECTION);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created XA connection: " + s);
- }
-
- return s;
- }
-
- /**
- * Create a XA connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public XAConnection createXAConnection(final String userName, final String password) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXAConnection(" + userName + ", ****)");
- }
-
- QpidRASessionFactoryImpl s = new QpidRASessionFactoryImpl(_mcf, _cm, QpidRAConnectionFactory.XA_CONNECTION);
- s.setUserName(userName);
- s.setPassword(password);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created XA connection: " + s);
- }
-
- return s;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionManager.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionManager.java
deleted file mode 100644
index 7ba5dd5374..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionManager.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The connection manager used in non-managed environments.
- *
- */
-public class QpidRAConnectionManager implements ConnectionManager
-{
- /** Serial version UID */
- private static final long serialVersionUID = 688529567919039006L;
-
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAConnectionManager.class);
-
- /**
- * Constructor
- */
- public QpidRAConnectionManager()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
- }
-
- /**
- * Allocates a connection
- * @param mcf The managed connection factory
- * @param cxRequestInfo The connection request information
- * @return The connection
- * @exception ResourceException Thrown if there is a problem obtaining the connection
- */
- public Object allocateConnection(final ManagedConnectionFactory mcf, final ConnectionRequestInfo cxRequestInfo) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("allocateConnection(" + mcf + ", " + cxRequestInfo + ")");
- }
-
- ManagedConnection mc = mcf.createManagedConnection(null, cxRequestInfo);
- Object c = mc.getConnection(null, cxRequestInfo);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Allocated connection: " + c + ", with managed connection: " + mc);
- }
-
- return c;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java
deleted file mode 100644
index ec14c2a492..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-
-import javax.jms.ConnectionMetaData;
-
-import org.apache.qpid.client.CustomJMSXProperty;
-import org.apache.qpid.common.QpidProperties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements javax.jms.ConnectionMetaData
- *
- */
-public class QpidRAConnectionMetaData implements ConnectionMetaData
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAConnectionMetaData.class);
-
- private static final String PROVIDER_VERSION ;
- private static final int PROVIDER_MAJOR ;
- private static final int PROVIDER_MINOR ;
- private static final String[] JMSX_PROPERTY_NAMES ;
-
- /**
- * Constructor
- */
- public QpidRAConnectionMetaData()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
- }
-
- /**
- * Get the JMS version
- * @return The version
- */
- public String getJMSVersion()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSVersion()");
- }
-
- return "1.1";
- }
-
- /**
- * Get the JMS major version
- * @return The major version
- */
- public int getJMSMajorVersion()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSMajorVersion()");
- }
-
- return 1;
- }
-
- /**
- * Get the JMS minor version
- * @return The minor version
- */
- public int getJMSMinorVersion()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSMinorVersion()");
- }
-
- return 1;
- }
-
- /**
- * Get the JMS provider name
- * @return The name
- */
- public String getJMSProviderName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSProviderName()");
- }
-
- return QpidProperties.getProductName() + " Resource Adapter" ;
- }
-
- /**
- * Get the provider version
- * @return The version
- */
- public String getProviderVersion()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getProviderVersion()");
- }
-
- return PROVIDER_VERSION ;
- }
-
- /**
- * Get the provider major version
- * @return The version
- */
- public int getProviderMajorVersion()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getProviderMajorVersion()");
- }
-
- return PROVIDER_MAJOR ;
- }
-
- /**
- * Get the provider minor version
- * @return The version
- */
- public int getProviderMinorVersion()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getProviderMinorVersion()");
- }
-
- return PROVIDER_MINOR ;
- }
-
- /**
- * Get the JMS XPropertyNames
- * @return The names
- */
- public Enumeration<String> getJMSXPropertyNames()
- {
- // Bug in CustomJMSXProperty.asEnumeration() so we handle this here
- return Collections.enumeration(Arrays.asList(JMSX_PROPERTY_NAMES)) ;
- }
-
- static
- {
- final String version = QpidProperties.getReleaseVersion() ;
- int major = -1 ;
- int minor = -1 ;
- if (version != null)
- {
- final int separator = version.indexOf('.') ;
- if (separator != -1)
- {
- major = parseInt(version.substring(0, separator), "major") ;
- minor = parseInt(version.substring(separator+1, version.length()), "minor") ;
- }
- }
- PROVIDER_VERSION = version ;
- PROVIDER_MAJOR = major ;
- PROVIDER_MINOR = minor ;
-
- final CustomJMSXProperty[] properties = CustomJMSXProperty.values();
- final String[] names = new String[properties.length] ;
- int count = 0 ;
- for(CustomJMSXProperty property : properties)
- {
- names[count++] = property.toString() ;
- }
- JMSX_PROPERTY_NAMES = names ;
- }
-
- private static int parseInt(final String value, final String name)
- {
- try
- {
- return Integer.parseInt(value) ;
- }
- catch (final NumberFormatException nfe)
- {
- _log.warn("Failed to parse " + name + ": " + value) ;
- return -1 ;
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionRequestInfo.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionRequestInfo.java
deleted file mode 100644
index 779709839a..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionRequestInfo.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.Session;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionRequestInfo;
-
-import org.apache.qpid.jms.ConnectionURL;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Connection request information
- *
- */
-public class QpidRAConnectionRequestInfo implements ConnectionRequestInfo
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAConnectionRequestInfo.class);
-
- /** The user name */
- private String _userName;
-
- /** The password */
- private String _password;
-
- /** The client id */
- private String _clientId;
-
- /** The type */
- private final int _type;
-
- /** Use transactions */
- private final boolean _transacted;
-
- /** The acknowledge mode */
- private final int _acknowledgeMode;
-
- /**
- * Constructor
- * @param ra The resource adapter.
- * @param type The connection type
- * @throws ResourceException
- */
- public QpidRAConnectionRequestInfo(final QpidResourceAdapter ra, final int type)
- throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + ra + ")");
- }
-
- final QpidRAProperties properties = ra.getProperties() ;
- if (properties.getConnectionURL() != null)
- {
- final ConnectionURL connectionURL = ra.getDefaultAMQConnectionFactory().getConnectionURL() ;
- _userName = connectionURL.getUsername();
- _password = connectionURL.getPassword();
- _clientId = connectionURL.getClientName();
- }
- else
- {
- _userName = ra.getUserName();
- _password = ra.getPassword();
- _clientId = ra.getClientId();
- }
- this._type = type;
- _transacted = true;
- _acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
- }
-
- /**
- * Constructor
- * @param type The connection type
- */
- public QpidRAConnectionRequestInfo(final int type)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + type + ")");
- }
-
- this._type = type;
- _transacted = true;
- _acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
- }
-
- /**
- * Constructor
- * @param transacted Use transactions
- * @param acknowledgeMode The acknowledge mode
- * @param type The connection type
- */
- public QpidRAConnectionRequestInfo(final boolean transacted, final int acknowledgeMode, final int type)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + transacted +
- ", " +
- acknowledgeMode +
- ", " +
- type +
- ")");
- }
-
- this._transacted = transacted;
- this._acknowledgeMode = acknowledgeMode;
- this._type = type;
- }
-
- /**
- * Fill in default values if they are missing
- * @param connectionURL The connection URL
- */
- public void setDefaults(final ConnectionURL connectionURL)
- {
- if (_userName == null)
- {
- _userName = connectionURL.getUsername();
- }
- if (_password == null)
- {
- _password = connectionURL.getPassword();
- }
- if (_clientId == null)
- {
- _clientId = connectionURL.getClientName();
- }
- }
-
- /**
- * Fill in default values if they are missing
- * @param ra The resource adapter
- * @throws ResourceException
- */
- public void setDefaults(final QpidResourceAdapter ra)
- throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDefaults(" + ra + ")");
- }
-
- final QpidRAProperties properties = ra.getProperties() ;
- if (properties.getConnectionURL() != null)
- {
- setDefaults(ra.getDefaultAMQConnectionFactory().getConnectionURL()) ;
- }
- else
- {
- if (_userName == null)
- {
- _userName = ra.getUserName();
- }
- if (_password == null)
- {
- _password = ra.getPassword();
- }
- if (_clientId == null)
- {
- _clientId = ra.getClientId();
- }
- }
- }
-
- /**
- * Get the user name
- * @return The value
- */
- public String getUserName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUserName()");
- }
-
- return _userName;
- }
-
- /**
- * Set the user name
- * @param userName The value
- */
- public void setUserName(final String userName)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUserName(" + userName + ")");
- }
-
- this._userName = userName;
- }
-
- /**
- * Get the password
- * @return The value
- */
- public String getPassword()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPassword()");
- }
-
- return _password;
- }
-
- /**
- * Set the password
- * @param password The value
- */
- public void setPassword(final String password)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPassword(****)");
- }
-
- this._password = password;
- }
-
- /**
- * Get the client id
- * @return The value
- */
- public String getClientId()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getClientID()");
- }
-
- return _clientId;
- }
-
- /**
- * Set the client id
- * @param clientID The value
- */
- public void setClientId(final String clientID)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setClientID(" + clientID + ")");
- }
-
- this._clientId = clientID;
- }
-
- /**
- * Get the connection type
- * @return The type
- */
- public int getType()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getType()");
- }
-
- return _type;
- }
-
- /**
- * Use transactions
- * @return True if transacted; otherwise false
- */
- public boolean isTransacted()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("isTransacted() " + _transacted);
- }
-
- return _transacted;
- }
-
- /**
- * Get the acknowledge mode
- * @return The mode
- */
- public int getAcknowledgeMode()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getAcknowledgeMode()");
- }
-
- return _acknowledgeMode;
- }
-
- /**
- * Indicates whether some other object is "equal to" this one.
- * @param obj Object with which to compare
- * @return True if this object is the same as the obj argument; false otherwise.
- */
- @Override
- public boolean equals(final Object obj)
- {
- if (obj instanceof QpidRAConnectionRequestInfo)
- {
- QpidRAConnectionRequestInfo you = (QpidRAConnectionRequestInfo)obj;
- return Util.compare(_userName, you.getUserName()) && Util.compare(_password, you.getPassword()) &&
- Util.compare(_clientId, you.getClientId()) &&
- _type == you.getType() &&
- _transacted == you.isTransacted() &&
- _acknowledgeMode == you.getAcknowledgeMode();
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Return the hash code for the object
- * @return The hash code
- */
- @Override
- public int hashCode()
- {
- int hash = 7;
-
- hash += 31 * hash + (_userName != null ? _userName.hashCode() : 0);
- hash += 31 * hash + (_password != null ? _password.hashCode() : 0);
- hash += 31 * hash + (_clientId != null ? _clientId.hashCode() : 0);
- hash += 31 * hash + _type;
- hash += 31 * hash + (_transacted ? 1 : 0);
- hash += 31 * hash + _acknowledgeMode;
-
- return hash;
- }
-
- @Override
- public String toString()
- {
- return "QpidRAConnectionRequestInfo[type=" + _type +
- ", transacted=" + _transacted + ", acknowledgeMode=" + _acknowledgeMode +
- ", clientID=" + _clientId + ", userName=" + _userName + ((_password != null) ? ", password=********]" :"]");
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRACredential.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRACredential.java
deleted file mode 100644
index 2b42f9dc3d..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRACredential.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.Set;
-
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.resource.spi.SecurityException;
-import javax.resource.spi.security.PasswordCredential;
-import javax.security.auth.Subject;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Credential information
- *
- */
-public class QpidRACredential implements Serializable
-{
- /** Serial version UID */
- private static final long serialVersionUID = 7040664839205409352L;
-
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRACredential.class);
-
- /** The user name */
- private String _userName;
-
- /** The password */
- private String _password;
-
- /**
- * Private constructor
- */
- private QpidRACredential()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
- }
-
- /**
- * Get the user name
- * @return The value
- */
- public String getUserName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUserName()");
- }
-
- return _userName;
- }
-
- /**
- * Set the user name
- * @param userName The value
- */
- private void setUserName(final String userName)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUserName(" + userName + ")");
- }
-
- this._userName = userName;
- }
-
- /**
- * Get the password
- * @return The value
- */
- public String getPassword()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPassword()");
- }
-
- return _password;
- }
-
- /**
- * Set the password
- * @param password The value
- */
- private void setPassword(final String password)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPassword(****)");
- }
-
- this._password = password;
- }
-
- /**
- * Get credentials
- * @param mcf The managed connection factory
- * @param subject The subject
- * @param info The connection request info
- * @return The credentials
- * @exception SecurityException Thrown if the credentials cant be retrieved
- */
- public static QpidRACredential getCredential(final ManagedConnectionFactory mcf,
- final Subject subject,
- final ConnectionRequestInfo info) throws SecurityException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getCredential(" + mcf + ", " + subject + ", " + info + ")");
- }
-
- QpidRACredential jc = new QpidRACredential();
- if (subject == null && info != null)
- {
- jc.setUserName(((QpidRAConnectionRequestInfo)info).getUserName());
- jc.setPassword(((QpidRAConnectionRequestInfo)info).getPassword());
- }
- else if (subject != null)
- {
- PasswordCredential pwdc = GetCredentialAction.getCredential(subject, mcf);
-
- if (pwdc == null)
- {
- throw new SecurityException("No password credentials found");
- }
-
- jc.setUserName(pwdc.getUserName());
- jc.setPassword(new String(pwdc.getPassword()));
- }
- else
- {
- throw new SecurityException("No Subject or ConnectionRequestInfo set, could not get credentials");
- }
-
- return jc;
- }
-
- /**
- * String representation
- * @return The representation
- */
- @Override
- public String toString()
- {
- return super.toString() + "{ username=" + _userName + ", password=**** }";
- }
-
- /**
- * Privileged class to get credentials
- */
- private static class GetCredentialAction implements PrivilegedAction<PasswordCredential>
- {
- /** The subject */
- private final Subject subject;
-
- /** The managed connection factory */
- private final ManagedConnectionFactory mcf;
-
- /**
- * Constructor
- * @param subject The subject
- * @param mcf The managed connection factory
- */
- GetCredentialAction(final Subject subject, final ManagedConnectionFactory mcf)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + subject + ", " + mcf + ")");
- }
-
- this.subject = subject;
- this.mcf = mcf;
- }
-
- /**
- * Run
- * @return The credential
- */
- public PasswordCredential run()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("run()");
- }
-
- Set<PasswordCredential> creds = subject.getPrivateCredentials(PasswordCredential.class);
- PasswordCredential pwdc = null;
-
- for (PasswordCredential curCred : creds)
- {
- if (curCred.getManagedConnectionFactory().equals(mcf))
- {
- pwdc = curCred;
- break;
- }
- }
- return pwdc;
- }
-
- /**
- * Get credentials
- * @param subject The subject
- * @param mcf The managed connection factory
- * @return The credential
- */
- static PasswordCredential getCredential(final Subject subject, final ManagedConnectionFactory mcf)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getCredential(" + subject + ", " + mcf + ")");
- }
-
- GetCredentialAction action = new GetCredentialAction(subject, mcf);
- return AccessController.doPrivileged(action);
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAException.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAException.java
deleted file mode 100644
index 9c070f6184..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAException.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-
-/**
- * Qpid Resource Adapter exception.
- */
-public class QpidRAException extends Exception
-{
- /**
- * The serial version uid for this serializable class.
- */
- private static final long serialVersionUID = 2921345326731695238L;
-
- /**
- * Create a default Qpid ra exception.
- */
- public QpidRAException()
- {
- super();
- }
-
- /**
- * Create an Qpid ra exception with a specific message.
- * @param message The message associated with this exception.
- */
- public QpidRAException(final String message)
- {
- super(message);
- }
-
- /**
- * Create an Qpid ra exception with a specific cause.
- * @param cause The cause associated with this exception.
- */
- public QpidRAException(final Throwable cause)
- {
- super(cause);
- }
-
- /**
- * Create an Qpid ra exception with a specific message and cause.
- * @param message The message associated with this exception.
- * @param cause The cause associated with this exception.
- */
- public QpidRAException(final String message, final Throwable cause)
- {
- super(message, cause);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRALocalTransaction.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRALocalTransaction.java
deleted file mode 100644
index eeb49b6b52..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRALocalTransaction.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.resource.ResourceException;
-import javax.resource.spi.LocalTransaction;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * JMS Local transaction
- *
- */
-public class QpidRALocalTransaction implements LocalTransaction
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRALocalTransaction.class);
-
- /** The managed connection */
- private final QpidRAManagedConnection _mc;
-
- /**
- * Constructor
- * @param mc The managed connection
- */
- public QpidRALocalTransaction(final QpidRAManagedConnection mc)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + mc + ")");
- }
-
- this._mc = mc;
- }
-
- /**
- * Begin
- * @exception ResourceException Thrown if the operation fails
- */
- public void begin() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("begin()");
- }
- }
-
- /**
- * Commit
- * @exception ResourceException Thrown if the operation fails
- */
- public void commit() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("commit()");
- }
-
- _mc.lock();
-
- try
- {
- if (_mc.getSession() == null)
- {
- throw new ResourceException("Could not commit LocalTransaction: null Session.");
- }
-
- _mc.getSession().commit();
- }
- catch (JMSException e)
- {
- throw new ResourceException("Could not commit LocalTransaction", e);
- }
- finally
- {
- _mc.unlock();
- }
- }
-
- /**
- * Rollback
- * @exception ResourceException Thrown if the operation fails
- */
- public void rollback() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("rollback()");
- }
-
- _mc.lock();
- try
- {
- if (_mc.getSession() != null && _mc.getSession().getTransacted())
- {
- _mc.getSession().rollback();
- }
- }
- catch (JMSException ex)
- {
- throw new ResourceException("Could not rollback LocalTransaction", ex);
- }
- finally
- {
- _mc.unlock();
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMCFProperties.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMCFProperties.java
deleted file mode 100644
index dd60c175de..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMCFProperties.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-
-import javax.jms.Queue;
-import javax.jms.Topic;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The MCF default properties
- *
- */
-public class QpidRAMCFProperties extends ConnectionFactoryProperties implements Serializable
-{
- /**
- * Serial version UID
- */
- private static final long serialVersionUID = -1675836810881223064L;
-
- /**
- * The logger
- */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMCFProperties.class);
-
- /**
- * The queue type
- */
- private static final String QUEUE_TYPE = Queue.class.getName();
-
- /**
- * The topic type
- */
- private static final String TOPIC_TYPE = Topic.class.getName();
-
- /**
- * The connection type
- */
- private int _type = QpidRAConnectionFactory.CONNECTION;
-
- /**
- * Use tryLock
- */
- private Integer _useTryLock;
-
- /**
- * Constructor
- */
- public QpidRAMCFProperties()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
-
- _useTryLock = null;
- }
-
- /**
- * Get the connection type
- *
- * @return The type
- */
- public int getType()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getType()");
- }
-
- return _type;
- }
-
- /**
- * Set the default session type.
- *
- * @param defaultType either javax.jms.Topic or javax.jms.Queue
- */
- public void setSessionDefaultType(final String defaultType)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSessionDefaultType(" + _type + ")");
- }
-
- if (defaultType.equals(QpidRAMCFProperties.QUEUE_TYPE))
- {
- _type = QpidRAConnectionFactory.QUEUE_CONNECTION;
- }
- else if (defaultType.equals(QpidRAMCFProperties.TOPIC_TYPE))
- {
- _type = QpidRAConnectionFactory.TOPIC_CONNECTION;
- }
- else
- {
- _type = QpidRAConnectionFactory.CONNECTION;
- }
- }
-
- /**
- * Get the default session type.
- *
- * @return The default session type
- */
- public String getSessionDefaultType()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSessionDefaultType()");
- }
-
- if (_type == QpidRAConnectionFactory.CONNECTION)
- {
- return "BOTH";
- }
- else if (_type == QpidRAConnectionFactory.QUEUE_CONNECTION)
- {
- return QpidRAMCFProperties.TOPIC_TYPE;
- }
- else
- {
- return QpidRAMCFProperties.QUEUE_TYPE;
- }
- }
-
- /**
- * Get the useTryLock.
- *
- * @return the useTryLock.
- */
- public Integer getUseTryLock()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUseTryLock()");
- }
-
- return _useTryLock;
- }
-
- /**
- * Set the useTryLock.
- *
- * @param useTryLock the useTryLock.
- */
- public void setUseTryLock(final Integer useTryLock)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUseTryLock(" + useTryLock + ")");
- }
-
- this._useTryLock = useTryLock;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
deleted file mode 100644
index eccf77aff2..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
+++ /dev/null
@@ -1,838 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.locks.ReentrantLock;
-
-import javax.jms.Connection;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.QueueConnection;
-import javax.jms.ResourceAllocationException;
-import javax.jms.Session;
-import javax.jms.TopicConnection;
-import javax.jms.XAConnection;
-import javax.jms.XAQueueConnection;
-import javax.jms.XASession;
-import javax.jms.XATopicConnection;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionEvent;
-import javax.resource.spi.ConnectionEventListener;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.IllegalStateException;
-import javax.resource.spi.LocalTransaction;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionMetaData;
-import javax.resource.spi.SecurityException;
-import javax.security.auth.Subject;
-import javax.transaction.Status;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
-import javax.transaction.xa.XAResource;
-
-import org.apache.qpid.client.Closeable;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The managed connection
- *
- */
-public class QpidRAManagedConnection implements ManagedConnection, ExceptionListener
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAManagedConnection.class);
-
- /** The managed connection factory */
- private final QpidRAManagedConnectionFactory _mcf;
-
- /** The connection request information */
- private final QpidRAConnectionRequestInfo _cri;
-
- /** The user name */
- private final String _userName;
-
- /** The password */
- private final String _password;
-
- /** Has the connection been destroyed */
- private final AtomicBoolean _isDestroyed = new AtomicBoolean(false);
-
- /** Event listeners */
- private final List<ConnectionEventListener> _eventListeners;
-
- /** Handles */
- private final Set<QpidRASessionImpl> _handles;
-
- /** Lock */
- private ReentrantLock _lock = new ReentrantLock();
-
- // Physical JMS connection stuff
- private Connection _connection;
-
- private XASession _xaSession;
-
- private XAResource _xaResource;
-
- private Session _session;
-
- private final TransactionManager _tm;
-
- private boolean _inManagedTx;
-
- /**
- * Constructor
- * @param mcf The managed connection factory
- * @param cri The connection request information
- * @param userName The user name
- * @param password The password
- */
- public QpidRAManagedConnection(final QpidRAManagedConnectionFactory mcf,
- final QpidRAConnectionRequestInfo cri,
- final TransactionManager tm,
- final String userName,
- final String password) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + mcf + ", " + cri + ", " + userName + ", ****)");
- }
-
- this._mcf = mcf;
- this._cri = cri;
- this._tm = tm;
- this._userName = userName;
- this._password = password;
- _eventListeners = Collections.synchronizedList(new ArrayList<ConnectionEventListener>());
- _handles = Collections.synchronizedSet(new HashSet<QpidRASessionImpl>());
-
- try
- {
- setup();
- }
- catch (Throwable t)
- {
- try
- {
- destroy();
- }
- catch (Throwable ignored)
- {
- }
- throw new ResourceException("Error during setup", t);
- }
- }
-
- /**
- * Get a connection
- * @param subject The security subject
- * @param cxRequestInfo The request info
- * @return The connection
- * @exception ResourceException Thrown if an error occurs
- */
- public synchronized Object getConnection(final Subject subject, final ConnectionRequestInfo cxRequestInfo) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getConnection(" + subject + ", " + cxRequestInfo + ")");
- }
-
- // Check user first
- QpidRACredential credential = QpidRACredential.getCredential(_mcf, subject, cxRequestInfo);
-
- // Null users are allowed!
- if (_userName != null && !_userName.equals(credential.getUserName()))
- {
- throw new SecurityException("Password credentials not the same, reauthentication not allowed");
- }
-
- if (_userName == null && credential.getUserName() != null)
- {
- throw new SecurityException("Password credentials not the same, reauthentication not allowed");
- }
-
- if (_isDestroyed.get())
- {
- throw new IllegalStateException("The managed connection is already destroyed");
- }
-
- QpidRASessionImpl session = new QpidRASessionImpl(this, (QpidRAConnectionRequestInfo)cxRequestInfo);
- _handles.add(session);
- return session;
- }
-
- /**
- * Destroy all handles.
- * @exception ResourceException Failed to close one or more handles.
- */
- private void destroyHandles() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("destroyHandles()");
- }
-
- try
- {
- if (_connection != null)
- {
- _connection.stop();
- }
- }
- catch (Throwable t)
- {
- _log.trace("Ignored error stopping connection", t);
- }
-
- for (QpidRASessionImpl session : _handles)
- {
- session.destroy();
- }
-
- _handles.clear();
- }
-
- /**
- * Destroy the physical connection.
- * @exception ResourceException Could not property close the session and connection.
- */
- public void destroy() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("destroy()");
- }
-
- if (_isDestroyed.get() || _connection == null)
- {
- return;
- }
-
- _isDestroyed.set(true);
-
- try
- {
- _connection.setExceptionListener(null);
- }
- catch (JMSException e)
- {
- _log.debug("Error unsetting the exception listener " + this, e);
- }
-
- destroyHandles();
-
- try
- {
- try
- {
- if (_xaSession != null)
- {
- _xaSession.close();
- }
- }
- catch (JMSException e)
- {
- _log.debug("Error closing XASession " + this, e);
- }
-
- try
- {
- if(_session != null)
- {
- _session.close();
- }
-
- }
- catch(JMSException e)
- {
- _log.error("Error closing Session " + this, e);
- }
-
- if (_connection != null)
- {
- _connection.close();
- }
- }
- catch (Throwable e)
- {
- throw new ResourceException("Could not properly close the session and connection", e);
- }
- }
-
- /**
- * Cleanup
- * @exception ResourceException Thrown if an error occurs
- */
- public void cleanup() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("cleanup()");
- }
-
- if (_isDestroyed.get())
- {
- throw new IllegalStateException("ManagedConnection already destroyed");
- }
-
- destroyHandles();
-
- _inManagedTx = false;
-
- // I'm recreating the lock object when we return to the pool
- // because it looks too nasty to expect the connection handle
- // to unlock properly in certain race conditions
- // where the dissociation of the managed connection is "random".
- _lock = new ReentrantLock();
- }
-
- /**
- * Move a handler from one mc to this one.
- * @param obj An object of type QpidRASession.
- * @throws ResourceException Failed to associate connection.
- * @throws IllegalStateException ManagedConnection in an illegal state.
- */
- public void associateConnection(final Object obj) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("associateConnection(" + obj + ")");
- }
-
- if (!_isDestroyed.get() && obj instanceof QpidRASessionImpl)
- {
- QpidRASessionImpl h = (QpidRASessionImpl)obj;
- h.setManagedConnection(this);
- _handles.add(h);
- }
- else
- {
- throw new IllegalStateException("ManagedConnection in an illegal state");
- }
- }
-
- public void checkTransactionActive() throws JMSException
- {
- // don't bother looking at the transaction if there's an active XID
- if (!_inManagedTx && _tm != null)
- {
- try
- {
- Transaction tx = _tm.getTransaction();
- if (tx != null)
- {
- int status = tx.getStatus();
- // Only allow states that will actually succeed
- if (status != Status.STATUS_ACTIVE && status != Status.STATUS_PREPARING &&
- status != Status.STATUS_PREPARED &&
- status != Status.STATUS_COMMITTING)
- {
- throw new javax.jms.IllegalStateException("Transaction " + tx + " not active");
- }
- }
- }
- catch (SystemException e)
- {
- JMSException jmsE = new javax.jms.IllegalStateException("Unexpected exception on the Transaction ManagerTransaction");
- jmsE.initCause(e);
- throw jmsE;
- }
- }
- }
-
-
- /**
- * Aqquire a lock on the managed connection
- */
- protected void lock()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("lock()");
- }
-
- _lock.lock();
- }
-
- /**
- * Aqquire a lock on the managed connection within the specified period
- * @exception JMSException Thrown if an error occurs
- */
- protected void tryLock() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("tryLock()");
- }
-
- Integer tryLock = _mcf.getUseTryLock();
- if (tryLock == null || tryLock.intValue() <= 0)
- {
- lock();
- return;
- }
- try
- {
- if (_lock.tryLock(tryLock.intValue(), TimeUnit.SECONDS) == false)
- {
- throw new ResourceAllocationException("Unable to obtain lock in " + tryLock + " seconds: " + this);
- }
- }
- catch (InterruptedException e)
- {
- throw new ResourceAllocationException("Interrupted attempting lock: " + this);
- }
- }
-
- /**
- * Unlock the managed connection
- */
- protected void unlock()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("unlock()");
- }
-
- if (_lock.isHeldByCurrentThread())
- {
- _lock.unlock();
- }
- }
-
- /**
- * Add a connection event listener.
- * @param l The connection event listener to be added.
- */
- public void addConnectionEventListener(final ConnectionEventListener l)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("addConnectionEventListener(" + l + ")");
- }
-
- _eventListeners.add(l);
- }
-
- /**
- * Remove a connection event listener.
- * @param l The connection event listener to be removed.
- */
- public void removeConnectionEventListener(final ConnectionEventListener l)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("removeConnectionEventListener(" + l + ")");
- }
-
- _eventListeners.remove(l);
- }
-
- /**
- * Get the XAResource for the connection.
- * @return The XAResource for the connection.
- * @exception ResourceException XA transaction not supported
- */
- public XAResource getXAResource() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getXAResource()");
- }
-
- //
- // Spec says a mc must allways return the same XA resource,
- // so we cache it.
- //
- if (_xaResource == null)
- {
- _xaResource = new QpidRAXAResource(this, _xaSession.getXAResource());
- }
-
- if (_log.isTraceEnabled())
- {
- _log.trace("XAResource=" + _xaResource);
- }
-
- return _xaResource;
- }
-
- /**
- * Get the location transaction for the connection.
- * @return The local transaction for the connection.
- * @exception ResourceException Thrown if operation fails.
- */
- public LocalTransaction getLocalTransaction() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getLocalTransaction()");
- }
-
- LocalTransaction tx = new QpidRALocalTransaction(this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("LocalTransaction=" + tx);
- }
-
- return tx;
- }
-
- /**
- * Get the meta data for the connection.
- * @return The meta data for the connection.
- * @exception ResourceException Thrown if the operation fails.
- * @exception IllegalStateException Thrown if the managed connection already is destroyed.
- */
- public ManagedConnectionMetaData getMetaData() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMetaData()");
- }
-
- if (_isDestroyed.get())
- {
- throw new IllegalStateException("The managed connection is already destroyed");
- }
-
- return new QpidRAMetaData(this);
- }
-
- /**
- * Set the log writer -- NOT SUPPORTED
- * @param out The log writer
- * @exception ResourceException If operation fails
- */
- public void setLogWriter(final PrintWriter out) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setLogWriter(" + out + ")");
- }
- }
-
- /**
- * Get the log writer -- NOT SUPPORTED
- * @return Always null
- * @exception ResourceException If operation fails
- */
- public PrintWriter getLogWriter() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getLogWriter()");
- }
-
- return null;
- }
-
- /**
- * Notifies user of a JMS exception.
- * @param exception The JMS exception
- */
- public void onException(final JMSException exception)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("onException(" + exception + ")");
- }
-
- if (_isDestroyed.get())
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("Ignoring error on already destroyed connection " + this, exception);
- }
- return;
- }
-
- _log.warn("Handling JMS exception failure: " + this, exception);
-
- try
- {
- _connection.setExceptionListener(null);
- }
- catch (JMSException e)
- {
- _log.debug("Unable to unset exception listener", e);
- }
-
- ConnectionEvent event = new ConnectionEvent(this, ConnectionEvent.CONNECTION_ERROR_OCCURRED, exception);
- sendEvent(event);
- }
-
- /**
- * Get the session for this connection.
- * @return The session
- * @throws JMSException
- */
- protected Session getSession() throws JMSException
- {
- if(_xaSession != null && !_mcf.getUseLocalTx() && _inManagedTx)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSession() -> XA session " + Util.asString(_xaSession));
- }
-
- return _xaSession;
- }
- else
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSession() -> session " + Util.asString(_session));
- }
-
- return _session;
- }
- }
-
- /**
- * Send an event.
- * @param event The event to send.
- */
- protected void sendEvent(final ConnectionEvent event)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("sendEvent(" + event + ")");
- }
-
- int type = event.getId();
-
- // convert to an array to avoid concurrent modification exceptions
- ConnectionEventListener[] list = _eventListeners.toArray(new ConnectionEventListener[_eventListeners.size()]);
-
- for (ConnectionEventListener l : list)
- {
- switch (type)
- {
- case ConnectionEvent.CONNECTION_CLOSED:
- l.connectionClosed(event);
- break;
-
- case ConnectionEvent.LOCAL_TRANSACTION_STARTED:
- l.localTransactionStarted(event);
- break;
-
- case ConnectionEvent.LOCAL_TRANSACTION_COMMITTED:
- l.localTransactionCommitted(event);
- break;
-
- case ConnectionEvent.LOCAL_TRANSACTION_ROLLEDBACK:
- l.localTransactionRolledback(event);
- break;
-
- case ConnectionEvent.CONNECTION_ERROR_OCCURRED:
- l.connectionErrorOccurred(event);
- break;
-
- default:
- throw new IllegalArgumentException("Illegal eventType: " + type);
- }
- }
- }
-
- /**
- * Remove a handle from the handle map.
- * @param handle The handle to remove.
- */
- protected void removeHandle(final QpidRASessionImpl handle)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("removeHandle(" + handle + ")");
- }
-
- _handles.remove(handle);
- }
-
- /**
- * Get the request info for this connection.
- * @return The connection request info for this connection.
- */
- protected QpidRAConnectionRequestInfo getCRI()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getCRI()");
- }
-
- return _cri;
- }
-
- /**
- * Get the connection factory for this connection.
- * @return The connection factory for this connection.
- */
- protected QpidRAManagedConnectionFactory getManagedConnectionFactory()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getManagedConnectionFactory()");
- }
-
- return _mcf;
- }
-
- /**
- * Start the connection
- * @exception JMSException Thrown if the connection cant be started
- */
- void start() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("start()");
- }
-
- if (_connection != null)
- {
- _connection.start();
- }
- }
-
- /**
- * Stop the connection
- * @exception JMSException Thrown if the connection cant be stopped
- */
- void stop() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("stop()");
- }
-
- if (_connection != null)
- {
- _connection.stop();
- }
- }
-
- /**
- * Get the user name
- * @return The user name
- */
- protected String getUserName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUserName()");
- }
-
- return _userName;
- }
-
- /**
- * Setup the connection.
- * @exception ResourceException Thrown if a connection couldnt be created
- */
- private void setup() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setup()");
- }
-
- try
- {
- boolean transacted = _cri.isTransacted() || _mcf.getUseLocalTx();
- int acknowledgeMode = (transacted) ? Session.SESSION_TRANSACTED : _cri.getAcknowledgeMode();
-
- if (_cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION)
- {
- if (_userName != null && _password != null)
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createXATopicConnection(_userName, _password);
- }
- else
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createXATopicConnection();
- }
-
- _xaSession = ((XATopicConnection)_connection).createXATopicSession();
- _session = ((TopicConnection)_connection).createTopicSession(transacted, acknowledgeMode);
-
- }
- else if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION)
- {
- if (_userName != null && _password != null)
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createXAQueueConnection(_userName, _password);
- }
- else
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createXAQueueConnection();
- }
-
- _xaSession = ((XAQueueConnection)_connection).createXAQueueSession();
- _session = ((QueueConnection)_connection).createQueueSession(transacted, acknowledgeMode);
-
- }
- else
- {
- if (_userName != null && _password != null)
- {
- _connection = _mcf.getCleanAMQConnectionFactory().createXAConnection(_userName, _password);
- }
- else
- {
- _connection = _mcf.getDefaultAMQConnectionFactory().createXAConnection();
- }
- _xaSession = ((XAConnection)_connection).createXASession();
- _session = _connection.createSession(transacted, acknowledgeMode);
- }
-
- _connection.setExceptionListener(this);
-
- }
- catch (JMSException je)
- {
- _log.error(je.getMessage(), je);
- throw new ResourceException(je.getMessage(), je);
- }
- }
-
- protected void setInManagedTx(boolean inManagedTx)
- {
- this._inManagedTx = inManagedTx;
- }
-
- public boolean isConnectionClosed()
- {
- Closeable c = (Closeable)_connection;
- return (c == null || c.isClosed() || c.isClosing());
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnectionFactory.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnectionFactory.java
deleted file mode 100644
index 8744a9deec..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnectionFactory.java
+++ /dev/null
@@ -1,623 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.PrintWriter;
-import java.util.Set;
-
-import javax.jms.ConnectionMetaData;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.spi.ResourceAdapterAssociation;
-import javax.security.auth.Subject;
-
-import org.apache.qpid.client.AMQConnectionFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Qpid ManagedConectionFactory
- *
- */
-public class QpidRAManagedConnectionFactory implements ManagedConnectionFactory, ResourceAdapterAssociation
-{
- /**
- * Serial version UID
- */
- private static final long serialVersionUID = -8798804592247643959L;
-
- /**
- * The logger
- */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAManagedConnectionFactory.class);
-
- /**
- * The resource adapter
- */
- private QpidResourceAdapter _ra;
-
- /**
- * Connection manager
- */
- private ConnectionManager _cm;
-
- /**
- * The managed connection factory properties
- */
- private final QpidRAMCFProperties _mcfProperties;
-
- /**
- * Connection Factory used if properties are set
- */
- private AMQConnectionFactory _connectionFactory;
-
- /**
- * Constructor
- */
- public QpidRAManagedConnectionFactory()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
-
- _ra = null;
- _cm = null;
- _mcfProperties = new QpidRAMCFProperties();
- }
-
- /**
- * Creates a Connection Factory instance
- *
- * @return javax.resource.cci.ConnectionFactory instance
- * @throws ResourceException Thrown if a connection factory cant be created
- */
- public Object createConnectionFactory() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionFactory()");
- }
-
- return createConnectionFactory(new QpidRAConnectionManager());
- }
-
- /**
- * Creates a Connection Factory instance
- *
- * @param cxManager The connection manager
- * @return javax.resource.cci.ConnectionFactory instance
- * @throws ResourceException Thrown if a connection factory cant be created
- */
- public Object createConnectionFactory(final ConnectionManager cxManager) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionFactory(" + cxManager + ")");
- }
-
- _cm = cxManager;
-
- QpidRAConnectionFactory cf = new QpidRAConnectionFactoryImpl(this, _cm);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Created connection factory: " + cf +
- ", using connection manager: " +
- _cm);
- }
-
- return cf;
- }
-
- /**
- * Creates a new physical connection to the underlying EIS resource manager.
- *
- * @param subject Caller's security information
- * @param cxRequestInfo Additional resource adapter specific connection request information
- * @return The managed connection
- * @throws ResourceException Thrown if a managed connection cant be created
- */
- public ManagedConnection createManagedConnection(final Subject subject, final ConnectionRequestInfo cxRequestInfo) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createManagedConnection(" + subject + ", " + cxRequestInfo + ")");
- }
-
- QpidRAConnectionRequestInfo cri = getCRI((QpidRAConnectionRequestInfo)cxRequestInfo);
-
- QpidRACredential credential = QpidRACredential.getCredential(this, subject, cri);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("jms credential: " + credential);
- }
-
- QpidRAManagedConnection mc = new QpidRAManagedConnection(this,
- cri,
- _ra.getTM(),
- credential.getUserName(),
- credential.getPassword());
-
- if (_log.isTraceEnabled())
- {
- _log.trace("created new managed connection: " + mc);
- }
-
- return mc;
- }
-
- /**
- * Returns a matched connection from the candidate set of connections.
- *
- * @param connectionSet The candidate connection set
- * @param subject Caller's security information
- * @param cxRequestInfo Additional resource adapter specific connection request information
- * @return The managed connection
- * @throws ResourceException Thrown if no managed connection can be found
- */
- @SuppressWarnings("rawtypes")
- public ManagedConnection matchManagedConnections(final Set connectionSet,
- final Subject subject,
- final ConnectionRequestInfo cxRequestInfo) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("matchManagedConnections(" + connectionSet +
- ", " +
- subject +
- ", " +
- cxRequestInfo +
- ")");
- }
-
- QpidRAConnectionRequestInfo cri = getCRI((QpidRAConnectionRequestInfo)cxRequestInfo);
- QpidRACredential credential = QpidRACredential.getCredential(this, subject, cri);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Looking for connection matching credentials: " + credential);
- }
-
- for (final Object obj : connectionSet)
- {
- if (obj instanceof QpidRAManagedConnection)
- {
- QpidRAManagedConnection mc = (QpidRAManagedConnection)obj;
- ManagedConnectionFactory mcf = mc.getManagedConnectionFactory();
-
- if ((mc.getUserName() == null || mc.getUserName() != null && mc.getUserName()
- .equals(credential.getUserName())) && mcf.equals(this))
- {
- if (cri.equals(mc.getCRI()))
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("Found matching connection: " + mc);
- }
-
- return mc;
- }
- }
- }
- }
-
- if (_log.isTraceEnabled())
- {
- _log.trace("No matching connection was found");
- }
-
- return null;
- }
-
- /**
- * Set the log writer -- NOT SUPPORTED
- *
- * @param out The writer
- * @throws ResourceException Thrown if the writer cant be set
- */
- public void setLogWriter(final PrintWriter out) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setLogWriter(" + out + ")");
- }
- }
-
- /**
- * Get the log writer -- NOT SUPPORTED
- *
- * @return The writer
- * @throws ResourceException Thrown if the writer cant be retrieved
- */
- public PrintWriter getLogWriter() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getLogWriter()");
- }
-
- return null;
- }
-
- /**
- * Get the resource adapter
- *
- * @return The resource adapter
- */
- public ResourceAdapter getResourceAdapter()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getResourceAdapter()");
- }
-
- return _ra;
- }
-
- /**
- * Set the resource adapter
- *
- * @param ra The resource adapter
- * @throws ResourceException Thrown if incorrect resource adapter
- */
- public void setResourceAdapter(final ResourceAdapter ra) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setResourceAdapter(" + ra + ")");
- }
-
- if (!(ra instanceof QpidResourceAdapter))
- {
- throw new ResourceException("Resource adapter is " + ra);
- }
-
- this._ra = (QpidResourceAdapter)ra;
- }
-
- /**
- * Indicates whether some other object is "equal to" this one.
- *
- * @param obj Object with which to compare
- * @return True if this object is the same as the obj argument; false otherwise.
- */
- @Override
- public boolean equals(final Object obj)
- {
- if (obj instanceof QpidRAManagedConnectionFactory)
- {
- QpidRAManagedConnectionFactory other = (QpidRAManagedConnectionFactory)obj;
-
- return _mcfProperties.equals(other.getProperties()) && _ra.equals(other.getResourceAdapter());
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Return the hash code for the object
- *
- * @return The hash code
- */
- @Override
- public int hashCode()
- {
- int hash = _mcfProperties.hashCode();
- hash += 31 * ((_ra != null) ? _ra.hashCode() : 1);
-
- return hash;
- }
-
- /**
- * Get the default session type
- *
- * @return The value
- */
- public String getSessionDefaultType()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSessionDefaultType()");
- }
-
- return _mcfProperties.getSessionDefaultType();
- }
-
- /**
- * Set the default session type
- *
- * @param type either javax.jms.Topic or javax.jms.Queue
- */
- public void setSessionDefaultType(final String type)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSessionDefaultType(" + type + ")");
- }
-
- _mcfProperties.setSessionDefaultType(type);
- }
-
- public String getClientId()
- {
- return _mcfProperties.getClientId();
- }
-
- public void setClientId(final String clientID)
- {
- _mcfProperties.setClientId(clientID);
- }
-
- public String getConnectionURL()
- {
- return _mcfProperties.getConnectionURL() ;
- }
-
- public void setConnectionURL(final String connectionURL)
- {
- _mcfProperties.setConnectionURL(connectionURL);
- }
-
- public String getPassword()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDefaultPassword()");
- }
- return _mcfProperties.getPassword();
- }
-
- public void setPassword(final String defaultPassword)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDefaultPassword(" + defaultPassword + ")");
- }
- _mcfProperties.setPassword(defaultPassword);
- }
-
- public String getUserName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDefaultUsername()");
- }
- return _mcfProperties.getUserName();
- }
-
- public void setUserName(final String defaultUsername)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDefaultUsername(" + defaultUsername + ")");
- }
- _mcfProperties.setUserName(defaultUsername);
- }
-
- public String getHost()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getHost()");
- }
- return _mcfProperties.getHost();
- }
-
- public void setHost(final String host)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setHost(" + host + ")");
- }
- _mcfProperties.setHost(host);
- }
-
- public Integer getPort()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPort()");
- }
- return _mcfProperties.getPort();
- }
-
- public void setPort(final Integer port)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPort(" + port + ")");
- }
- _mcfProperties.setPort(port);
- }
-
- public String getPath()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPath()");
- }
- return _mcfProperties.getPath();
- }
-
- public void setPath(final String path)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPath(" + path + ")");
- }
- _mcfProperties.setPath(path);
- }
-
- /**
- * Get the useTryLock.
- *
- * @return the useTryLock.
- */
- public Integer getUseTryLock()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUseTryLock()");
- }
-
- return _mcfProperties.getUseTryLock();
- }
-
- /**
- * Set the useTryLock.
- *
- * @param useTryLock the useTryLock.
- */
- public void setUseTryLock(final Integer useTryLock)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUseTryLock(" + useTryLock + ")");
- }
-
- _mcfProperties.setUseTryLock(useTryLock);
- }
-
- /**
- * Get the connection metadata
- *
- * @return The metadata
- */
- public ConnectionMetaData getMetaData()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMetadata()");
- }
-
- return new QpidRAConnectionMetaData();
- }
-
- /**
- * Get the default connection factory
- *
- * @return The factory
- */
- protected synchronized AMQConnectionFactory getDefaultAMQConnectionFactory() throws ResourceException
- {
- if (_connectionFactory == null)
- {
- try
- {
- _connectionFactory = _ra.createAMQConnectionFactory(_mcfProperties);
- }
- catch (final QpidRAException qpidrae)
- {
- throw new ResourceException("Unexpected exception creating the connection factory", qpidrae) ;
- }
- }
- return _connectionFactory;
- }
-
- /**
- * Get a clean connection factory
- *
- * @return The factory
- */
- protected AMQConnectionFactory getCleanAMQConnectionFactory() throws ResourceException
- {
- try
- {
- return _ra.createAMQConnectionFactory(_mcfProperties);
- }
- catch (final QpidRAException qpidrae)
- {
- throw new ResourceException("Unexpected exception creating the connection factory", qpidrae) ;
- }
- }
-
- /**
- * Get the managed connection factory properties
- *
- * @return The properties
- */
- protected QpidRAMCFProperties getProperties()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getProperties()");
- }
-
- return _mcfProperties;
- }
-
- /**
- * Get a connection request info instance
- *
- * @param info The instance that should be updated; may be <code>null</code>
- * @return The instance
- * @throws ResourceException
- */
- private QpidRAConnectionRequestInfo getCRI(final QpidRAConnectionRequestInfo info)
- throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getCRI(" + info + ")");
- }
-
- if (info == null)
- {
- // Create a default one
- return new QpidRAConnectionRequestInfo(_ra, _mcfProperties.getType());
- }
- else
- {
- // Fill the one with any defaults
- info.setDefaults(_ra);
- return info;
- }
- }
-
- public Boolean getUseLocalTx()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUseLocalTx()");
- }
-
- return _mcfProperties.isUseLocalTx();
- }
-
- public void setUseLocalTx(final Boolean localTx)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUseLocalTx(" + localTx + ")");
- }
-
- _mcfProperties.setUseLocalTx(localTx);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMapMessage.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMapMessage.java
deleted file mode 100644
index 797a28a09a..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMapMessage.java
+++ /dev/null
@@ -1,457 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.Enumeration;
-
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message
- *
- */
-public class QpidRAMapMessage extends QpidRAMessage implements MapMessage
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMapMessage.class);
-
- /**
- * Create a new wrapper
- *
- * @param message the message
- * @param session the session
- */
- public QpidRAMapMessage(final MapMessage message, final QpidRASessionImpl session)
- {
- super(message, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + message + ", " + session + ")");
- }
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getBoolean(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getBoolean(" + name + ")");
- }
-
- return ((MapMessage)_message).getBoolean(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public byte getByte(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getByte(" + name + ")");
- }
-
- return ((MapMessage)_message).getByte(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public byte[] getBytes(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getBytes(" + name + ")");
- }
-
- return ((MapMessage)_message).getBytes(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public char getChar(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getChar(" + name + ")");
- }
-
- return ((MapMessage)_message).getChar(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public double getDouble(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDouble(" + name + ")");
- }
-
- return ((MapMessage)_message).getDouble(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public float getFloat(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getFloat(" + name + ")");
- }
-
- return ((MapMessage)_message).getFloat(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int getInt(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getInt(" + name + ")");
- }
-
- return ((MapMessage)_message).getInt(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long getLong(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getLong(" + name + ")");
- }
-
- return ((MapMessage)_message).getLong(name);
- }
-
- /**
- * Get the map names
- * @return The values
- * @exception JMSException Thrown if an error occurs
- */
- public Enumeration<?> getMapNames() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMapNames()");
- }
-
- return ((MapMessage)_message).getMapNames();
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public Object getObject(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getObject(" + name + ")");
- }
-
- return ((MapMessage)_message).getObject(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public short getShort(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getShort(" + name + ")");
- }
-
- return ((MapMessage)_message).getShort(name);
- }
-
- /**
- * Get
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String getString(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getString(" + name + ")");
- }
-
- return ((MapMessage)_message).getString(name);
- }
-
- /**
- * Does the item exist
- * @param name The name
- * @return True / false
- * @exception JMSException Thrown if an error occurs
- */
- public boolean itemExists(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("itemExists(" + name + ")");
- }
-
- return ((MapMessage)_message).itemExists(name);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setBoolean(final String name, final boolean value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setBoolean(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setBoolean(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setByte(final String name, final byte value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setByte(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setByte(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @param offset The offset
- * @param length The length
- * @exception JMSException Thrown if an error occurs
- */
- public void setBytes(final String name, final byte[] value, final int offset, final int length) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setBytes(" + name + ", " + value + ", " + offset + ", " + length + ")");
- }
-
- ((MapMessage)_message).setBytes(name, value, offset, length);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setBytes(final String name, final byte[] value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setBytes(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setBytes(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setChar(final String name, final char value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setChar(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setChar(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setDouble(final String name, final double value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDouble(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setDouble(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setFloat(final String name, final float value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setFloat(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setFloat(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setInt(final String name, final int value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setInt(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setInt(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setLong(final String name, final long value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setLong(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setLong(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setObject(final String name, final Object value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setObject(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setObject(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setShort(final String name, final short value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setShort(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setShort(name, value);
- }
-
- /**
- * Set
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setString(final String name, final String value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setString(" + name + ", " + value + ")");
- }
-
- ((MapMessage)_message).setString(name, value);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessage.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessage.java
deleted file mode 100644
index 295a453010..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessage.java
+++ /dev/null
@@ -1,782 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.Enumeration;
-
-import javax.jms.Destination;
-import javax.jms.JMSException;
-import javax.jms.Message;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message
- */
-public class QpidRAMessage implements Message
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMessage.class);
-
- /** The message */
- protected Message _message;
-
- /** The session */
- protected QpidRASessionImpl _session;
-
- /**
- * Create a new wrapper
- * @param message the message
- * @param session the session
- */
- public QpidRAMessage(final Message message, final QpidRASessionImpl session)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(message) + ", " + session + ")");
- }
-
- this._message = message;
- this._session = session;
- }
-
- /**
- * Acknowledge
- * @exception JMSException Thrown if an error occurs
- */
- public void acknowledge() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("acknowledge()");
- }
-
- _session.getSessionInternal(); // Check for closed
- _message.acknowledge();
- }
-
- /**
- * Clear body
- * @exception JMSException Thrown if an error occurs
- */
- public void clearBody() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("clearBody()");
- }
-
- _message.clearBody();
- }
-
- /**
- * Clear properties
- * @exception JMSException Thrown if an error occurs
- */
- public void clearProperties() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("clearProperties()");
- }
-
- _message.clearProperties();
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getBooleanProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getBooleanProperty(" + name + ")");
- }
-
- return _message.getBooleanProperty(name);
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public byte getByteProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getByteProperty(" + name + ")");
- }
-
- return _message.getByteProperty(name);
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public double getDoubleProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDoubleProperty(" + name + ")");
- }
-
- return _message.getDoubleProperty(name);
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public float getFloatProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getFloatProperty(" + name + ")");
- }
-
- return _message.getFloatProperty(name);
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int getIntProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getIntProperty(" + name + ")");
- }
-
- return _message.getIntProperty(name);
- }
-
- /**
- * Get correlation id
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String getJMSCorrelationID() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSCorrelationID()");
- }
-
- return _message.getJMSCorrelationID();
- }
-
- /**
- * Get correlation id
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public byte[] getJMSCorrelationIDAsBytes() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSCorrelationIDAsBytes()");
- }
-
- return _message.getJMSCorrelationIDAsBytes();
- }
-
- /**
- * Get delivery mode
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int getJMSDeliveryMode() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSDeliveryMode()");
- }
-
- return _message.getJMSDeliveryMode();
- }
-
- /**
- * Get destination
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public Destination getJMSDestination() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSDestination()");
- }
-
- return _message.getJMSDestination();
- }
-
- /**
- * Get expiration
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long getJMSExpiration() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSExpiration()");
- }
-
- return _message.getJMSExpiration();
- }
-
- /**
- * Get message id
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String getJMSMessageID() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSMessageID()");
- }
-
- return _message.getJMSMessageID();
- }
-
- /**
- * Get priority
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int getJMSPriority() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSPriority()");
- }
-
- return _message.getJMSPriority();
- }
-
- /**
- * Get redelivered status
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getJMSRedelivered() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSRedelivered()");
- }
-
- return _message.getJMSRedelivered();
- }
-
- /**
- * Get reply to destination
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public Destination getJMSReplyTo() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSReplyTo()");
- }
-
- return _message.getJMSReplyTo();
- }
-
- /**
- * Get timestamp
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long getJMSTimestamp() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSTimestamp()");
- }
-
- return _message.getJMSTimestamp();
- }
-
- /**
- * Get type
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String getJMSType() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getJMSType()");
- }
-
- return _message.getJMSType();
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long getLongProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getLongProperty(" + name + ")");
- }
-
- return _message.getLongProperty(name);
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public Object getObjectProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getObjectProperty(" + name + ")");
- }
-
- return _message.getObjectProperty(name);
- }
-
- /**
- * Get property names
- * @return The values
- * @exception JMSException Thrown if an error occurs
- */
- public Enumeration<?> getPropertyNames() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPropertyNames()");
- }
-
- return _message.getPropertyNames();
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public short getShortProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getShortProperty(" + name + ")");
- }
-
- return _message.getShortProperty(name);
- }
-
- /**
- * Get property
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String getStringProperty(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getStringProperty(" + name + ")");
- }
-
- return _message.getStringProperty(name);
- }
-
- /**
- * Do property exist
- * @param name The name
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean propertyExists(final String name) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("propertyExists(" + name + ")");
- }
-
- return _message.propertyExists(name);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setBooleanProperty(final String name, final boolean value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setBooleanProperty(" + name + ", " + value + ")");
- }
-
- _message.setBooleanProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setByteProperty(final String name, final byte value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setByteProperty(" + name + ", " + value + ")");
- }
-
- _message.setByteProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setDoubleProperty(final String name, final double value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDoubleProperty(" + name + ", " + value + ")");
- }
-
- _message.setDoubleProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setFloatProperty(final String name, final float value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setFloatProperty(" + name + ", " + value + ")");
- }
-
- _message.setFloatProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setIntProperty(final String name, final int value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setIntProperty(" + name + ", " + value + ")");
- }
-
- _message.setIntProperty(name, value);
- }
-
- /**
- * Set correlation id
- * @param correlationID The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSCorrelationID(final String correlationID) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSCorrelationID(" + correlationID + ")");
- }
-
- _message.setJMSCorrelationID(correlationID);
- }
-
- /**
- * Set correlation id
- * @param correlationID The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSCorrelationIDAsBytes(final byte[] correlationID) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSCorrelationIDAsBytes(" + correlationID + ")");
- }
-
- _message.setJMSCorrelationIDAsBytes(correlationID);
- }
-
- /**
- * Set delivery mode
- * @param deliveryMode The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSDeliveryMode(final int deliveryMode) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSDeliveryMode(" + deliveryMode + ")");
- }
-
- _message.setJMSDeliveryMode(deliveryMode);
- }
-
- /**
- * Set destination
- * @param destination The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSDestination(final Destination destination) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSDestination(" + destination + ")");
- }
-
- _message.setJMSDestination(destination);
- }
-
- /**
- * Set expiration
- * @param expiration The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSExpiration(final long expiration) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSExpiration(" + expiration + ")");
- }
-
- _message.setJMSExpiration(expiration);
- }
-
- /**
- * Set message id
- * @param id The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSMessageID(final String id) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSMessageID(" + id + ")");
- }
-
- _message.setJMSMessageID(id);
- }
-
- /**
- * Set priority
- * @param priority The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSPriority(final int priority) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSPriority(" + priority + ")");
- }
-
- _message.setJMSPriority(priority);
- }
-
- /**
- * Set redelivered status
- * @param redelivered The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSRedelivered(final boolean redelivered) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSRedelivered(" + redelivered + ")");
- }
-
- _message.setJMSRedelivered(redelivered);
- }
-
- /**
- * Set reply to
- * @param replyTo The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSReplyTo(final Destination replyTo) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSReplyTo(" + replyTo + ")");
- }
-
- _message.setJMSReplyTo(replyTo);
- }
-
- /**
- * Set timestamp
- * @param timestamp The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSTimestamp(final long timestamp) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSTimestamp(" + timestamp + ")");
- }
-
- _message.setJMSTimestamp(timestamp);
- }
-
- /**
- * Set type
- * @param type The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setJMSType(final String type) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setJMSType(" + type + ")");
- }
-
- _message.setJMSType(type);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setLongProperty(final String name, final long value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setLongProperty(" + name + ", " + value + ")");
- }
-
- _message.setLongProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setObjectProperty(final String name, final Object value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setObjectProperty(" + name + ", " + value + ")");
- }
-
- _message.setObjectProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setShortProperty(final String name, final short value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setShortProperty(" + name + ", " + value + ")");
- }
-
- _message.setShortProperty(name, value);
- }
-
- /**
- * Set property
- * @param name The name
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setStringProperty(final String name, final String value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setStringProperty(" + name + ", " + value + ")");
- }
-
- _message.setStringProperty(name, value);
- }
-
- /**
- * Return the hash code
- * @return The hash code
- */
- @Override
- public int hashCode()
- {
- return _message.hashCode();
- }
-
- /**
- * Check for equality
- * @param object The other object
- * @return True / false
- */
- @Override
- public boolean equals(final Object object)
- {
- if (object != null && object instanceof QpidRAMessage)
- {
- return _message.equals(((QpidRAMessage)object)._message);
- }
- else
- {
- return _message.equals(object);
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageConsumer.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageConsumer.java
deleted file mode 100644
index aa0e6adb0e..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageConsumer.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.jms.BytesMessage;
-import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageListener;
-import javax.jms.ObjectMessage;
-import javax.jms.StreamMessage;
-import javax.jms.TextMessage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message consumer
- *
- */
-public class QpidRAMessageConsumer implements MessageConsumer
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMessageConsumer.class);
-
- /** The wrapped message consumer */
- protected MessageConsumer _consumer;
- /** The closed flag */
- private AtomicBoolean _closed = new AtomicBoolean();
-
- /** The session for this consumer */
- protected QpidRASessionImpl _session;
-
- /**
- * Create a new wrapper
- * @param consumer the consumer
- * @param session the session
- */
- public QpidRAMessageConsumer(final MessageConsumer consumer, final QpidRASessionImpl session)
- {
- this._consumer = consumer;
- this._session = session;
-
- if (_log.isTraceEnabled())
- {
- _log.trace("new QpidRAMessageConsumer " + this +
- " consumer=" +
- Util.asString(consumer) +
- " session=" +
- session);
- }
- }
-
- /**
- * Close
- * @exception JMSException Thrown if an error occurs
- */
- public void close() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("close " + this);
- }
- try
- {
- closeConsumer();
- }
- finally
- {
- _session.removeConsumer(this);
- }
- }
-
- /**
- * Check state
- * @exception JMSException Thrown if an error occurs
- */
- void checkState() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("checkState()");
- }
- _session.checkState();
- }
-
- /**
- * Get message listener
- * @return The listener
- * @exception JMSException Thrown if an error occurs
- */
- public MessageListener getMessageListener() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMessageListener()");
- }
-
- checkState();
- _session.checkStrict();
- return _consumer.getMessageListener();
- }
-
- /**
- * Set message listener
- * @param listener The listener
- * @exception JMSException Thrown if an error occurs
- */
- public void setMessageListener(final MessageListener listener) throws JMSException
- {
- _session.lock();
- try
- {
- checkState();
- _session.checkStrict();
- if (listener == null)
- {
- _consumer.setMessageListener(null);
- }
- else
- {
- _consumer.setMessageListener(wrapMessageListener(listener));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Get message selector
- * @return The selector
- * @exception JMSException Thrown if an error occurs
- */
- public String getMessageSelector() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMessageSelector()");
- }
-
- checkState();
- return _consumer.getMessageSelector();
- }
-
- /**
- * Receive
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public Message receive() throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("receive " + this);
- }
-
- checkState();
- // Make an explicit start check otherwise qpid starts the dispatcher
- Message message = (_session.isStarted() ? _consumer.receive() : null);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("received " + this + " result=" + Util.asString(message));
- }
-
- if (message == null)
- {
- return null;
- }
- else
- {
- return wrapMessage(message);
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Receive
- * @param timeout The timeout value
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public Message receive(final long timeout) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("receive " + this + " timeout=" + timeout);
- }
-
- checkState();
- // Make an explicit start check otherwise qpid starts the dispatcher
- Message message = (_session.isStarted() ? _consumer.receive(timeout) : null);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("received " + this + " result=" + Util.asString(message));
- }
-
- if (message == null)
- {
- return null;
- }
- else
- {
- return wrapMessage(message);
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Receive
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public Message receiveNoWait() throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("receiveNoWait " + this);
- }
-
- checkState();
- // Make an explicit start check otherwise qpid starts the dispatcher
- Message message = (_session.isStarted() ? _consumer.receiveNoWait() : null);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("received " + this + " result=" + Util.asString(message));
- }
-
- if (message == null)
- {
- return null;
- }
- else
- {
- return wrapMessage(message);
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Close consumer
- * @exception JMSException Thrown if an error occurs
- */
- void closeConsumer() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("closeConsumer()");
- }
-
- if (!_closed.getAndSet(true))
- {
- _consumer.close();
- }
- }
-
- /**
- * Wrap message
- * @param message The message to be wrapped
- * @return The wrapped message
- */
- Message wrapMessage(final Message message)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("wrapMessage(" + Util.asString(message) + ")");
- }
-
- if (message instanceof BytesMessage)
- {
- return new QpidRABytesMessage((BytesMessage)message, _session);
- }
- else if (message instanceof MapMessage)
- {
- return new QpidRAMapMessage((MapMessage)message, _session);
- }
- else if (message instanceof ObjectMessage)
- {
- return new QpidRAObjectMessage((ObjectMessage)message, _session);
- }
- else if (message instanceof StreamMessage)
- {
- return new QpidRAStreamMessage((StreamMessage)message, _session);
- }
- else if (message instanceof TextMessage)
- {
- return new QpidRATextMessage((TextMessage)message, _session);
- }
- return new QpidRAMessage(message, _session);
- }
-
- /**
- * Wrap message listener
- * @param listener The listener to be wrapped
- * @return The wrapped listener
- */
- MessageListener wrapMessageListener(final MessageListener listener)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMessageSelector()");
- }
-
- return new QpidRAMessageListener(listener, this);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageListener.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageListener.java
deleted file mode 100644
index e272df818f..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageListener.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.Message;
-import javax.jms.MessageListener;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message listener
- */
-public class QpidRAMessageListener implements MessageListener
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMessageListener.class);
-
- /** The message listener */
- private final MessageListener _listener;
-
- /** The consumer */
- private final QpidRAMessageConsumer _consumer;
-
- /**
- * Create a new wrapper
- * @param listener the listener
- * @param consumer the consumer
- */
- public QpidRAMessageListener(final MessageListener listener, final QpidRAMessageConsumer consumer)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + listener + ", " + consumer + ")");
- }
-
- this._listener = listener;
- this._consumer = consumer;
- }
-
- /**
- * On message
- * @param message The message
- */
- public void onMessage(Message message)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("onMessage(" + Util.asString(message) + ")");
- }
-
- message = _consumer.wrapMessage(message);
- _listener.onMessage(message);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageProducer.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageProducer.java
deleted file mode 100644
index ce0656e30d..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMessageProducer.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.Destination;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageProducer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * QpidRAMessageProducer.
- *
- */
-public class QpidRAMessageProducer implements MessageProducer
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMessageProducer.class);
-
- /** The wrapped message producer */
- protected MessageProducer _producer;
-
- /** The session for this consumer */
- protected QpidRASessionImpl _session;
-
- /**
- * Create a new wrapper
- * @param producer the producer
- * @param session the session
- */
- public QpidRAMessageProducer(final MessageProducer producer, final QpidRASessionImpl session)
- {
- this._producer = producer;
- this._session = session;
-
- if (_log.isTraceEnabled())
- {
- _log.trace("new QpidRAMessageProducer " + this +
- " producer=" +
- Util.asString(producer) +
- " session=" +
- session);
- }
- }
-
- /**
- * Close
- * @exception JMSException Thrown if an error occurs
- */
- public void close() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("close " + this);
- }
- try
- {
- closeProducer();
- }
- finally
- {
- _session.removeProducer(this);
- }
- }
-
- /**
- * Send message
- * @param destination The destination
- * @param message The message
- * @param deliveryMode The delivery mode
- * @param priority The priority
- * @param timeToLive The time to live
- * @exception JMSException Thrown if an error occurs
- */
- public void send(final Destination destination,
- final Message message,
- final int deliveryMode,
- final int priority,
- final long timeToLive) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this +
- " destination=" +
- destination +
- " message=" +
- Util.asString(message) +
- " deliveryMode=" +
- deliveryMode +
- " priority=" +
- priority +
- " ttl=" +
- timeToLive);
- }
-
- checkState();
-
- _producer.send(destination, message, deliveryMode, priority, timeToLive);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Send message
- * @param destination The destination
- * @param message The message
- * @exception JMSException Thrown if an error occurs
- */
- public void send(final Destination destination, final Message message) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this + " destination=" + destination + " message=" + Util.asString(message));
- }
-
- checkState();
-
- _producer.send(destination, message);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Send message
- * @param message The message
- * @param deliveryMode The delivery mode
- * @param priority The priority
- * @param timeToLive The time to live
- * @exception JMSException Thrown if an error occurs
- */
- public void send(final Message message, final int deliveryMode, final int priority, final long timeToLive) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this +
- " message=" +
- Util.asString(message) +
- " deliveryMode=" +
- deliveryMode +
- " priority=" +
- priority +
- " ttl=" +
- timeToLive);
- }
-
- checkState();
-
- _producer.send(message, deliveryMode, priority, timeToLive);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Send message
- * @param message The message
- * @exception JMSException Thrown if an error occurs
- */
- public void send(final Message message) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this + " message=" + Util.asString(message));
- }
-
- checkState();
-
- _producer.send(message);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Get the delivery mode
- * @return The mode
- * @exception JMSException Thrown if an error occurs
- */
- public int getDeliveryMode() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDeliveryMode()");
- }
-
- return _producer.getDeliveryMode();
- }
-
- /**
- * Get the destination
- * @return The destination
- * @exception JMSException Thrown if an error occurs
- */
- public Destination getDestination() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDestination()");
- }
-
- return _producer.getDestination();
- }
-
- /**
- * Disable message id
- * @return True if disable
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getDisableMessageID() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDisableMessageID()");
- }
-
- return _producer.getDisableMessageID();
- }
-
- /**
- * Disable message timestamp
- * @return True if disable
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getDisableMessageTimestamp() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDisableMessageTimestamp()");
- }
-
- return _producer.getDisableMessageTimestamp();
- }
-
- /**
- * Get the priority
- * @return The priority
- * @exception JMSException Thrown if an error occurs
- */
- public int getPriority() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPriority()");
- }
-
- return _producer.getPriority();
- }
-
- /**
- * Get the time to live
- * @return The ttl
- * @exception JMSException Thrown if an error occurs
- */
- public long getTimeToLive() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTimeToLive()");
- }
-
- return _producer.getTimeToLive();
- }
-
- /**
- * Set the delivery mode
- * @param deliveryMode The mode
- * @exception JMSException Thrown if an error occurs
- */
- public void setDeliveryMode(final int deliveryMode) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDeliveryMode(" + deliveryMode + ")");
- }
-
- _producer.setDeliveryMode(deliveryMode);
- }
-
- /**
- * Set disable message id
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setDisableMessageID(final boolean value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDisableMessageID(" + value + ")");
- }
-
- _producer.setDisableMessageID(value);
- }
-
- /**
- * Set disable message timestamp
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setDisableMessageTimestamp(final boolean value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDisableMessageTimestamp(" + value + ")");
- }
-
- _producer.setDisableMessageTimestamp(value);
- }
-
- /**
- * Set the priority
- * @param defaultPriority The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setPriority(final int defaultPriority) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPriority(" + defaultPriority + ")");
- }
-
- _producer.setPriority(defaultPriority);
- }
-
- /**
- * Set the ttl
- * @param timeToLive The value
- * @exception JMSException Thrown if an error occurs
- */
- public void setTimeToLive(final long timeToLive) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTimeToLive(" + timeToLive + ")");
- }
-
- _producer.setTimeToLive(timeToLive);
- }
-
- /**
- * Check state
- * @exception JMSException Thrown if an error occurs
- */
- void checkState() throws JMSException
- {
- _session.checkState();
- }
-
- /**
- * Close producer
- * @exception JMSException Thrown if an error occurs
- */
- void closeProducer() throws JMSException
- {
- _producer.close();
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMetaData.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMetaData.java
deleted file mode 100644
index 0ad7d089c3..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAMetaData.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnectionMetaData;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Managed connection meta data
- *
- */
-public class QpidRAMetaData implements ManagedConnectionMetaData
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAMetaData.class);
-
- /** The managed connection */
- private final QpidRAManagedConnection _mc;
-
- /**
- * Constructor
- * @param mc The managed connection
- */
- public QpidRAMetaData(final QpidRAManagedConnection mc)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + mc + ")");
- }
-
- this._mc = mc;
- }
-
- /**
- * Get the EIS product name
- * @return The name
- * @exception ResourceException Thrown if operation fails
- */
- public String getEISProductName() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getEISProductName()");
- }
-
- return "Qpid";
- }
-
- /**
- * Get the EIS product version
- * @return The version
- * @exception ResourceException Thrown if operation fails
- */
- public String getEISProductVersion() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getEISProductVersion()");
- }
-
- return "2.0";
- }
-
- /**
- * Get the user name
- * @return The user name
- * @exception ResourceException Thrown if operation fails
- */
- public String getUserName() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUserName()");
- }
-
- return _mc.getUserName();
- }
-
- /**
- * Get the maximum number of connections -- RETURNS 0
- * @return The number
- * @exception ResourceException Thrown if operation fails
- */
- public int getMaxConnections() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMaxConnections()");
- }
-
- return 0;
- }
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAObjectMessage.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAObjectMessage.java
deleted file mode 100644
index 926319bb85..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAObjectMessage.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-
-import javax.jms.JMSException;
-import javax.jms.ObjectMessage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message
- *
- */
-public class QpidRAObjectMessage extends QpidRAMessage implements ObjectMessage
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAObjectMessage.class);
-
- /**
- * Create a new wrapper
- * @param message the message
- * @param session the session
- */
- public QpidRAObjectMessage(final ObjectMessage message, final QpidRASessionImpl session)
- {
- super(message, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(message) + ", " + session + ")");
- }
- }
-
- /**
- * Get the object
- * @return The object
- * @exception JMSException Thrown if an error occurs
- */
- public Serializable getObject() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getObject()");
- }
-
- return ((ObjectMessage)_message).getObject();
- }
-
- /**
- * Set the object
- * @param object The object
- * @exception JMSException Thrown if an error occurs
- */
- public void setObject(final Serializable object) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setObject(" + object + ")");
- }
-
- ((ObjectMessage)_message).setObject(object);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAProperties.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAProperties.java
deleted file mode 100644
index 69320575b0..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAProperties.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The RA default properties - these are set in the ra.xml file
- *
- */
-public class QpidRAProperties extends ConnectionFactoryProperties implements Serializable
-{
- private static final long serialVersionUID = -4823893873707374791L;
-
- private static final Logger _log = LoggerFactory.getLogger(QpidRAProperties.class);
-
- private static final int DEFAULT_SETUP_ATTEMPTS = 10;
-
- private static final long DEFAULT_SETUP_INTERVAL = 2 * 1000;
-
- private int _setupAttempts = DEFAULT_SETUP_ATTEMPTS;
-
- private long _setupInterval = DEFAULT_SETUP_INTERVAL;
-
- /** Class used to locate the Transaction Manager. */
- private String _transactionManagerLocatorClass ;
-
- /** Method used to locate the TM */
- private String _transactionManagerLocatorMethod ;
-
- private boolean _useConnectionPerHandler = true;
-
- /**
- * Constructor
- */
- public QpidRAProperties()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
- }
-
- public void setTransactionManagerLocatorClass(final String transactionManagerLocatorClass)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTransactionManagerLocatorClass(" + transactionManagerLocatorClass + ")");
- }
-
- this._transactionManagerLocatorClass = transactionManagerLocatorClass;
- }
-
- public String getTransactionManagerLocatorClass()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransactionManagerLocatorClass()");
- }
-
- return _transactionManagerLocatorClass;
- }
-
- public String getTransactionManagerLocatorMethod()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransactionManagerLocatorMethod()");
- }
-
- return _transactionManagerLocatorMethod;
- }
-
- public void setTransactionManagerLocatorMethod(final String transactionManagerLocatorMethod)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTransactionManagerLocatorMethod(" + transactionManagerLocatorMethod + ")");
- }
-
- this._transactionManagerLocatorMethod = transactionManagerLocatorMethod;
- }
-
- public int getSetupAttempts()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSetupAttempts()");
- }
-
- return _setupAttempts;
- }
-
- public void setSetupAttempts(int setupAttempts)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSetupAttempts(" + setupAttempts + ")");
- }
-
- this._setupAttempts = setupAttempts;
- }
-
- public long getSetupInterval()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSetupInterval()");
- }
-
- return _setupInterval;
- }
-
- public void setSetupInterval(long setupInterval)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSetupInterval(" + setupInterval + ")");
- }
-
- this._setupInterval = setupInterval;
- }
-
- public boolean isUseConnectionPerHandler()
- {
- return _useConnectionPerHandler;
- }
-
- public void setUseConnectionPerHandler(boolean connectionPerHandler)
- {
- this._useConnectionPerHandler = connectionPerHandler;
- }
-
- @Override
- public String toString()
- {
- return "QpidRAProperties[" +
- ", transactionManagerLocatorClass=" + _transactionManagerLocatorClass +
- ", transactionManagerLocatorMethod=" + _transactionManagerLocatorMethod +
- ", setupAttempts=" + _setupAttempts +
- ", setupInterval=" + _setupInterval + "]";
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueBrowser.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueBrowser.java
deleted file mode 100644
index bcd2d3b63c..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueBrowser.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.Enumeration;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.jms.JMSException;
-import javax.jms.Queue;
-import javax.jms.QueueBrowser;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * QpidRAQueueBrowser.
- *
- */
-public class QpidRAQueueBrowser implements QueueBrowser
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAQueueBrowser.class);
-
- /** The wrapped queue browser */
- protected QueueBrowser _browser;
-
- /** The session for this consumer */
- protected QpidRASessionImpl _session;
-
- /** The closed flag */
- private AtomicBoolean _isClosed = new AtomicBoolean();
-
- /**
- * Create a new wrapper
- * @param browser the browser
- * @param session the session
- */
- public QpidRAQueueBrowser(final QueueBrowser browser, final QpidRASessionImpl session)
- {
- _browser = browser;
- _session = session;
-
- if (_log.isTraceEnabled())
- {
- _log.trace("new QpidRAQueueBrowser " + this +
- " browser=" +
- Util.asString(browser) +
- " session=" +
- session);
- }
- }
-
- /**
- * Close
- * @exception JMSException Thrown if an error occurs
- */
- public void close() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("close " + this);
- }
-
- if (!_isClosed.getAndSet(true))
- {
- try
- {
- _browser.close();
- }
- finally
- {
- _session.removeQueueBrowser(this);
- }
- }
- }
-
- /**
- * Get the queue associated with this browser.
- * @return the associated queue.
- */
- public Queue getQueue()
- throws JMSException
- {
- return _browser.getQueue();
- }
-
- /**
- * Get the message selector associated with this browser.
- * @return the associated message selector.
- */
- public String getMessageSelector()
- throws JMSException
- {
- return _browser.getMessageSelector();
- }
-
- /**
- * Get an enumeration for the current browser.
- * @return The enumeration.
- */
- public Enumeration getEnumeration()
- throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getEnumeration " + this + " browser=" + Util.asString(_browser));
- }
-
- _session.lock();
- try
- {
- _session.checkState();
- return _browser.getEnumeration();
- }
- finally
- {
- _session.unlock();
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueReceiver.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueReceiver.java
deleted file mode 100644
index ad1f7fc43b..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueReceiver.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.jms.Queue;
-import javax.jms.QueueReceiver;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a queue receiver
- *
- */
-public class QpidRAQueueReceiver extends QpidRAMessageConsumer implements QueueReceiver
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAQueueReceiver.class);
-
- /**
- * Create a new wrapper
- * @param consumer the queue receiver
- * @param session the session
- */
- public QpidRAQueueReceiver(final QueueReceiver consumer, final QpidRASessionImpl session)
- {
- super(consumer, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(consumer) + ", " + session + ")");
- }
- }
-
- /**
- * Get queue
- * @return The queue
- * @exception JMSException Thrown if an error occurs
- */
- public Queue getQueue() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getQueue()");
- }
-
- checkState();
- return ((QueueReceiver)_consumer).getQueue();
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueSender.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueSender.java
deleted file mode 100644
index 7a123618be..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAQueueSender.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.Queue;
-import javax.jms.QueueSender;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * QpidRAQueueSender.
- *
- */
-public class QpidRAQueueSender extends QpidRAMessageProducer implements QueueSender
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAQueueSender.class);
-
- /**
- * Create a new wrapper
- * @param producer the producer
- * @param session the session
- */
- public QpidRAQueueSender(final QueueSender producer, final QpidRASessionImpl session)
- {
- super(producer, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(producer) + ", " + session + ")");
- }
- }
-
- /**
- * Get queue
- * @return The queue
- * @exception JMSException Thrown if an error occurs
- */
- public Queue getQueue() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getQueue()");
- }
-
- return ((QueueSender)_producer).getQueue();
- }
-
- /**
- * Send message
- * @param destination The destination
- * @param message The message
- * @param deliveryMode The delivery mode
- * @param priority The priority
- * @param timeToLive The time to live
- * @exception JMSException Thrown if an error occurs
- */
- public void send(final Queue destination,
- final Message message,
- final int deliveryMode,
- final int priority,
- final long timeToLive) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this +
- " destination=" +
- destination +
- " message=" +
- Util.asString(message) +
- " deliveryMode=" +
- deliveryMode +
- " priority=" +
- priority +
- " ttl=" +
- timeToLive);
- }
-
- checkState();
- _producer.send(destination, message, deliveryMode, priority, timeToLive);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Send message
- * @param destination The destination
- * @param message The message
- * @exception JMSException Thrown if an error occurs
- */
- public void send(final Queue destination, final Message message) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this + " destination=" + destination + " message=" + Util.asString(message));
- }
-
- checkState();
- _producer.send(destination, message);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASession.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASession.java
deleted file mode 100644
index a72f51da51..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASession.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-
-public interface QpidRASession
-{
- public void setQpidSessionFactory(QpidRASessionFactory sf);
-
- public void start() throws JMSException;
-
- public void close() throws JMSException;
-
- public void closeSession() throws JMSException;
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactory.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactory.java
deleted file mode 100644
index 2747282a3c..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.QueueConnection;
-import javax.jms.TemporaryQueue;
-import javax.jms.TemporaryTopic;
-import javax.jms.TopicConnection;
-import javax.jms.XAConnection;
-import javax.jms.XAQueueConnection;
-import javax.jms.XATopicConnection;
-
-/**
- * A joint interface for all connection types
- *
- */
-public interface QpidRASessionFactory extends Connection, TopicConnection, QueueConnection, XAConnection,
- XATopicConnection, XAQueueConnection
-{
- /** Error message for strict behaviour */
- String ISE = "This method is not applicable inside the application server. See the J2EE spec, e.g. J2EE1.4 Section 6.6";
-
- /**
- * Add a temporary queue
- * @param temp The temporary queue
- */
- void addTemporaryQueue(TemporaryQueue temp);
-
- /**
- * Add a temporary topic
- * @param temp The temporary topic
- */
- void addTemporaryTopic(TemporaryTopic temp);
-
- /**
- * Notification that a session is closed
- * @param session The session
- * @throws JMSException for any error
- */
- void closeSession(QpidRASession session) throws JMSException;
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java
deleted file mode 100644
index f3253e1400..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java
+++ /dev/null
@@ -1,911 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import javax.jms.ConnectionConsumer;
-import javax.jms.ConnectionMetaData;
-import javax.jms.Destination;
-import javax.jms.ExceptionListener;
-import javax.jms.IllegalStateException;
-import javax.jms.JMSException;
-import javax.jms.Queue;
-import javax.jms.QueueSession;
-import javax.jms.ServerSessionPool;
-import javax.jms.Session;
-import javax.jms.TemporaryQueue;
-import javax.jms.TemporaryTopic;
-import javax.jms.Topic;
-import javax.jms.TopicSession;
-import javax.jms.XAQueueSession;
-import javax.jms.XASession;
-import javax.jms.XATopicSession;
-import javax.naming.Reference;
-import javax.resource.Referenceable;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Implements the JMS Connection API and produces {@link QpidRASessionImpl} objects.
- *
- */
-public class QpidRASessionFactoryImpl implements QpidRASessionFactory, Referenceable
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRASessionFactoryImpl.class);
-
- /** Are we closed? */
- private boolean _closed = false;
-
- /** The naming reference */
- private Reference _reference;
-
- /** The user name */
- private String _userName;
-
- /** The password */
- private String _password;
-
- /** The client ID */
- private String _clientID;
-
- /** The connection type */
- private final int _type;
-
- /** Whether we are started */
- private boolean _started = false;
-
- /** The managed connection factory */
- private final QpidRAManagedConnectionFactory _mcf;
-
- /** The connection manager */
- private ConnectionManager _cm;
-
- /** The sessions */
- private final Set<QpidRASession> _sessions = new HashSet<QpidRASession>();
-
- /** The temporary queues */
- private final Set<TemporaryQueue> _tempQueues = new HashSet<TemporaryQueue>();
-
- /** The temporary topics */
- private final Set<TemporaryTopic> _tempTopics = new HashSet<TemporaryTopic>();
-
- /**
- * Constructor
- * @param mcf The managed connection factory
- * @param cm The connection manager
- * @param type The connection type
- */
- public QpidRASessionFactoryImpl(final QpidRAManagedConnectionFactory mcf,
- final ConnectionManager cm,
- final int type)
- {
- this._mcf = mcf;
-
- if (cm == null)
- {
- this._cm = new QpidRAConnectionManager();
- }
- else
- {
- this._cm = cm;
- }
-
- this._type = type;
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + mcf + ", " + cm + ", " + type);
- }
- }
-
- /**
- * Set the naming reference
- * @param reference The reference
- */
- public void setReference(final Reference reference)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setReference(" + reference + ")");
- }
-
- this._reference = reference;
- }
-
- /**
- * Get the naming reference
- * @return The reference
- */
- public Reference getReference()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getReference()");
- }
-
- return _reference;
- }
-
- /**
- * Set the user name
- * @param name The user name
- */
- public void setUserName(final String name)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUserName(" + name + ")");
- }
-
- _userName = name;
- }
-
- /**
- * Set the password
- * @param password The password
- */
- public void setPassword(final String password)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPassword(****)");
- }
-
- this._password = password;
- }
-
- /**
- * Get the client ID
- * @return The client ID
- * @exception JMSException Thrown if an error occurs
- */
- public String getClientID() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getClientID()");
- }
-
- checkClosed();
-
- if (_clientID == null)
- {
- try
- {
- return _mcf.getDefaultAMQConnectionFactory().getConnectionURL().getClientName() ;
- }
- catch (final ResourceException re)
- {
- final JMSException jmse = new JMSException("Unexpected exception obtaining resource") ;
- jmse.initCause(re) ;
- throw jmse ;
- }
- }
-
- return _clientID;
- }
-
- /**
- * Set the client ID -- throws IllegalStateException
- * @param cID The client ID
- * @exception JMSException Thrown if an error occurs
- */
- public void setClientID(final String cID) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setClientID(" + cID + ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Create a queue session
- * @param transacted Use transactions
- * @param acknowledgeMode The acknowledge mode
- * @return The queue session
- * @exception JMSException Thrown if an error occurs
- */
- public QueueSession createQueueSession(final boolean transacted, final int acknowledgeMode) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createQueueSession(" + transacted + ", " + acknowledgeMode + ")");
- }
-
- checkClosed();
-
- if (_type == QpidRAConnectionFactory.TOPIC_CONNECTION || _type == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Can not get a queue session from a topic connection");
- }
-
- return (QueueSession)allocateConnection(transacted, acknowledgeMode, _type);
- }
-
- /**
- * Create a XA queue session
- * @return The XA queue session
- * @exception JMSException Thrown if an error occurs
- */
- public XAQueueSession createXAQueueSession() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXAQueueSession()");
- }
-
- checkClosed();
-
- if (_type == QpidRAConnectionFactory.CONNECTION || _type == QpidRAConnectionFactory.TOPIC_CONNECTION ||
- _type == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Can not get a topic session from a queue connection");
- }
-
- return (XAQueueSession) allocateConnection(_type);
- }
-
- /**
- * Create a connection consumer -- throws IllegalStateException
- * @param queue The queue
- * @param messageSelector The message selector
- * @param sessionPool The session pool
- * @param maxMessages The number of max messages
- * @return The connection consumer
- * @exception JMSException Thrown if an error occurs
- */
- public ConnectionConsumer createConnectionConsumer(final Queue queue,
- final String messageSelector,
- final ServerSessionPool sessionPool,
- final int maxMessages) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionConsumer(" + queue +
- ", " +
- messageSelector +
- ", " +
- sessionPool +
- ", " +
- maxMessages +
- ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Create a topic session
- * @param transacted Use transactions
- * @param acknowledgeMode The acknowledge mode
- * @return The topic session
- * @exception JMSException Thrown if an error occurs
- */
- public TopicSession createTopicSession(final boolean transacted, final int acknowledgeMode) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createTopicSession(" + transacted + ", " + acknowledgeMode + ")");
- }
-
- checkClosed();
-
- if (_type == QpidRAConnectionFactory.QUEUE_CONNECTION || _type == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Can not get a topic session from a queue connection");
- }
-
- return (TopicSession) allocateConnection(transacted, acknowledgeMode, _type);
- }
-
- /**
- * Create a XA topic session
- * @return The XA topic session
- * @exception JMSException Thrown if an error occurs
- */
- public XATopicSession createXATopicSession() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXATopicSession()");
- }
-
- checkClosed();
-
- if (_type == QpidRAConnectionFactory.CONNECTION || _type == QpidRAConnectionFactory.QUEUE_CONNECTION ||
- _type == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Can not get a topic session from a queue connection");
- }
-
- return (XATopicSession) allocateConnection(_type);
- }
-
- /**
- * Create a connection consumer -- throws IllegalStateException
- * @param topic The topic
- * @param messageSelector The message selector
- * @param sessionPool The session pool
- * @param maxMessages The number of max messages
- * @return The connection consumer
- * @exception JMSException Thrown if an error occurs
- */
- public ConnectionConsumer createConnectionConsumer(final Topic topic,
- final String messageSelector,
- final ServerSessionPool sessionPool,
- final int maxMessages) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionConsumer(" + topic +
- ", " +
- messageSelector +
- ", " +
- sessionPool +
- ", " +
- maxMessages +
- ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Create a durable connection consumer -- throws IllegalStateException
- * @param topic The topic
- * @param subscriptionName The subscription name
- * @param messageSelector The message selector
- * @param sessionPool The session pool
- * @param maxMessages The number of max messages
- * @return The connection consumer
- * @exception JMSException Thrown if an error occurs
- */
- public ConnectionConsumer createDurableConnectionConsumer(final Topic topic,
- final String subscriptionName,
- final String messageSelector,
- final ServerSessionPool sessionPool,
- final int maxMessages) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionConsumer(" + topic +
- ", " +
- subscriptionName +
- ", " +
- messageSelector +
- ", " +
- sessionPool +
- ", " +
- maxMessages +
- ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Create a connection consumer -- throws IllegalStateException
- * @param destination The destination
- * @param pool The session pool
- * @param maxMessages The number of max messages
- * @return The connection consumer
- * @exception JMSException Thrown if an error occurs
- */
- public ConnectionConsumer createConnectionConsumer(final Destination destination,
- final ServerSessionPool pool,
- final int maxMessages) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionConsumer(" + destination +
- ", " +
- pool +
- ", " +
- maxMessages +
- ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Create a connection consumer -- throws IllegalStateException
- * @param destination The destination
- * @param name The name
- * @param pool The session pool
- * @param maxMessages The number of max messages
- * @return The connection consumer
- * @exception JMSException Thrown if an error occurs
- */
- public ConnectionConsumer createConnectionConsumer(final Destination destination,
- final String name,
- final ServerSessionPool pool,
- final int maxMessages) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createConnectionConsumer(" + destination +
- ", " +
- name +
- ", " +
- pool +
- ", " +
- maxMessages +
- ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Create a session
- * @param transacted Use transactions
- * @param acknowledgeMode The acknowledge mode
- * @return The session
- * @exception JMSException Thrown if an error occurs
- */
- public Session createSession(final boolean transacted, final int acknowledgeMode) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createSession(" + transacted + ", " + acknowledgeMode + ")");
- }
-
- checkClosed();
- return (Session) allocateConnection(transacted, acknowledgeMode, _type);
- }
-
- /**
- * Create a XA session
- * @return The XA session
- * @exception JMSException Thrown if an error occurs
- */
- public XASession createXASession() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("createXASession()");
- }
-
- checkClosed();
- return (XASession) allocateConnection(_type);
- }
-
- /**
- * Get the connection metadata
- * @return The connection metadata
- * @exception JMSException Thrown if an error occurs
- */
- public ConnectionMetaData getMetaData() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMetaData()");
- }
-
- checkClosed();
- return _mcf.getMetaData();
- }
-
- /**
- * Get the exception listener -- throws IllegalStateException
- * @return The exception listener
- * @exception JMSException Thrown if an error occurs
- */
- public ExceptionListener getExceptionListener() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getExceptionListener()");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Set the exception listener -- throws IllegalStateException
- * @param listener The exception listener
- * @exception JMSException Thrown if an error occurs
- */
- public void setExceptionListener(final ExceptionListener listener) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setExceptionListener(" + listener + ")");
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Start
- * @exception JMSException Thrown if an error occurs
- */
- public void start() throws JMSException
- {
- checkClosed();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("start() " + this);
- }
-
- synchronized (_sessions)
- {
- if (_started)
- {
- return;
- }
- _started = true;
- for (Iterator<QpidRASession> i = _sessions.iterator(); i.hasNext();)
- {
- QpidRASession session = (QpidRASession)i.next();
- session.start();
- }
- }
- }
-
- /**
- * Stop -- throws IllegalStateException
- * @exception JMSException Thrown if an error occurs
- */
- public void stop() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("stop() " + this);
- }
-
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
-
- /**
- * Close
- * @exception JMSException Thrown if an error occurs
- */
- public void close() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("close() " + this);
- }
-
- if (_closed)
- {
- return;
- }
-
- _closed = true;
-
- synchronized (_sessions)
- {
- for (Iterator<QpidRASession> i = _sessions.iterator(); i.hasNext();)
- {
- QpidRASession session = (QpidRASession)i.next();
- try
- {
- session.closeSession();
- }
- catch (Throwable t)
- {
- _log.trace("Error closing session", t);
- }
- i.remove();
- }
- }
-
- synchronized (_tempQueues)
- {
- for (Iterator<TemporaryQueue> i = _tempQueues.iterator(); i.hasNext();)
- {
- TemporaryQueue temp = (TemporaryQueue)i.next();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("Closing temporary queue " + temp + " for " + this);
- }
- temp.delete();
- }
- catch (Throwable t)
- {
- _log.trace("Error deleting temporary queue", t);
- }
- i.remove();
- }
- }
-
- synchronized (_tempTopics)
- {
- for (Iterator<TemporaryTopic> i = _tempTopics.iterator(); i.hasNext();)
- {
- TemporaryTopic temp = (TemporaryTopic)i.next();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("Closing temporary topic " + temp + " for " + this);
- }
- temp.delete();
- }
- catch (Throwable t)
- {
- _log.trace("Error deleting temporary queue", t);
- }
- i.remove();
- }
- }
- }
-
- /**
- * Close session
- * @param session The session
- * @exception JMSException Thrown if an error occurs
- */
- public void closeSession(final QpidRASession session) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("closeSession(" + session + ")");
- }
-
- synchronized (_sessions)
- {
- _sessions.clear();
- }
- }
-
- /**
- * Add temporary queue
- * @param temp The temporary queue
- */
- public void addTemporaryQueue(final TemporaryQueue temp)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("addTemporaryQueue(" + temp + ")");
- }
-
- synchronized (_tempQueues)
- {
- _tempQueues.add(temp);
- }
- }
-
- /**
- * Add temporary topic
- * @param temp The temporary topic
- */
- public void addTemporaryTopic(final TemporaryTopic temp)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("addTemporaryTopic(" + temp + ")");
- }
-
- synchronized (_tempTopics)
- {
- _tempTopics.add(temp);
- }
- }
-
- /**
- * Allocation a connection
- * @param sessionType The session type
- * @return The session
- * @exception JMSException Thrown if an error occurs
- */
- protected QpidRASession allocateConnection(final int sessionType) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("allocateConnection(" + sessionType + ")");
- }
-
- try
- {
- synchronized (_sessions)
- {
- if (_sessions.isEmpty() == false)
- {
- throw new IllegalStateException("Only allowed one session per connection. See the J2EE spec, e.g. J2EE1.4 Section 6.6");
- }
-
- QpidRAConnectionRequestInfo info = new QpidRAConnectionRequestInfo(sessionType);
- info.setUserName(_userName);
- info.setPassword(_password);
- info.setClientId(_clientID);
- info.setDefaults(_mcf.getDefaultAMQConnectionFactory().getConnectionURL());
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Allocating session for " + this + " with request info=" + info);
- }
-
- QpidRASession session = (QpidRASession)_cm.allocateConnection(_mcf, info);
-
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("Allocated " + this + " session=" + session);
- }
-
- session.setQpidSessionFactory(this);
-
- if (_started)
- {
- session.start();
- }
-
- _sessions.add(session);
-
- return session;
- }
- catch (Throwable t)
- {
- try
- {
- session.close();
- }
- catch (Throwable ignored)
- {
- }
- if (t instanceof Exception)
- {
- throw (Exception)t;
- }
- else
- {
- throw new RuntimeException("Unexpected error: ", t);
- }
- }
- }
- }
- catch (Exception e)
- {
- _log.error("Could not create session", e);
-
- JMSException je = new JMSException("Could not create a session: " + e.getMessage());
- je.setLinkedException(e);
- throw je;
- }
- }
-
- /**
- * Allocation a connection
- * @param transacted Use transactions
- * @param acknowledgeMode The acknowledge mode
- * @param sessionType The session type
- * @return The session
- * @exception JMSException Thrown if an error occurs
- */
- protected QpidRASession allocateConnection(final boolean transacted, int acknowledgeMode, final int sessionType) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("allocateConnection(" + transacted +
- ", " +
- acknowledgeMode +
- ", " +
- sessionType +
- ")");
- }
-
- try
- {
- synchronized (_sessions)
- {
- if (_sessions.isEmpty() == false)
- {
- throw new IllegalStateException("Only allowed one session per connection. See the J2EE spec, e.g. J2EE1.4 Section 6.6");
- }
-
- if (transacted)
- {
- acknowledgeMode = Session.SESSION_TRANSACTED;
- }
-
- QpidRAConnectionRequestInfo info = new QpidRAConnectionRequestInfo(transacted,
- acknowledgeMode,
- sessionType);
- info.setUserName(_userName);
- info.setPassword(_password);
- info.setClientId(_clientID);
- info.setDefaults(_mcf.getDefaultAMQConnectionFactory().getConnectionURL());
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Allocating session for " + this + " with request info=" + info);
- }
-
- QpidRASession session = (QpidRASession)_cm.allocateConnection(_mcf, info);
-
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("Allocated " + this + " session=" + session);
- }
-
- session.setQpidSessionFactory(this);
-
- if (_started)
- {
- session.start();
- }
-
- _sessions.add(session);
-
- return session;
- }
- catch (Throwable t)
- {
- try
- {
- session.close();
- }
- catch (Throwable ignored)
- {
- }
- if (t instanceof Exception)
- {
- throw (Exception)t;
- }
- else
- {
- throw new RuntimeException("Unexpected error: ", t);
- }
- }
- }
- }
- catch (Exception e)
- {
- _log.error("Could not create session", e);
-
- JMSException je = new JMSException("Could not create a session: " + e.getMessage());
- je.setLinkedException(e);
- throw je;
- }
- }
-
- /**
- * Check if we are closed
- * @exception IllegalStateException Thrown if closed
- */
- protected void checkClosed() throws IllegalStateException
- {
- if (_closed)
- {
- throw new IllegalStateException("The connection is closed");
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
deleted file mode 100644
index a972d6cda0..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
+++ /dev/null
@@ -1,1736 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-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.Session;
-import javax.jms.StreamMessage;
-import javax.jms.TemporaryQueue;
-import javax.jms.TemporaryTopic;
-import javax.jms.TextMessage;
-import javax.jms.Topic;
-import javax.jms.TopicPublisher;
-import javax.jms.TopicSession;
-import javax.jms.TopicSubscriber;
-import javax.jms.TransactionInProgressException;
-import javax.jms.XAQueueSession;
-import javax.jms.XASession;
-import javax.jms.XATopicSession;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionEvent;
-import javax.resource.spi.ManagedConnection;
-import javax.transaction.xa.XAResource;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A joint interface for JMS sessions
- *
- */
-public class QpidRASessionImpl implements Session, QueueSession, TopicSession, XASession, XAQueueSession, XATopicSession, QpidRASession
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRASessionImpl.class);
-
- /** The managed connection */
- private volatile QpidRAManagedConnection _mc;
- /** The locked managed connection */
- private QpidRAManagedConnection _lockedMC;
-
- /** The connection request info */
- private final QpidRAConnectionRequestInfo _cri;
-
- /** The session factory */
- private QpidRASessionFactory _sf;
-
- /** The message consumers */
- private final Set<MessageConsumer> _consumers;
-
- /** The message producers */
- private final Set<MessageProducer> _producers;
-
- /** The queue browsers */
- private final Set<QueueBrowser> _browsers;
-
- /** Are we started */
- private AtomicBoolean _started = new AtomicBoolean(false) ;
-
- /**
- * Constructor
- * @param mc The managed connection
- * @param cri The connection request info
- */
- public QpidRASessionImpl(final QpidRAManagedConnection mc, final QpidRAConnectionRequestInfo cri)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + mc + ", " + cri + ")");
- }
-
- this._mc = mc;
- this._cri = cri;
- _sf = null;
- _consumers = new HashSet<MessageConsumer>();
- _producers = new HashSet<MessageProducer>();
- _browsers = new HashSet<QueueBrowser>();
- }
-
- /**
- * Set the session factory
- * @param sf The session factory
- */
- public void setQpidSessionFactory(final QpidRASessionFactory sf)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setQpidSessionFactory(" + sf + ")");
- }
-
- _started.set(false) ;
- this._sf = sf;
- }
-
- /**
- * Lock
- * @exception JMSException Thrown if an error occurs
- * @exception IllegalStateException The session is closed
- */
- protected void lock() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("lock()");
- }
-
- final QpidRAManagedConnection mc = this._mc;
- if (mc != null)
- {
- mc.tryLock();
- _lockedMC = mc ;
- }
- else
- {
- throw new IllegalStateException("Connection is not associated with a managed connection. " + this);
- }
- }
-
- /**
- * Unlock
- */
- protected void unlock()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("unlock()");
- }
-
- if (_lockedMC != null)
- {
- try
- {
- _lockedMC.unlock();
- }
- finally
- {
- _lockedMC = null ;
- }
- }
-
- // We recreate the lock when returned to the pool
- // so missing the unlock after disassociation is not important
- }
-
- /**
- * Create a bytes message
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public BytesMessage createBytesMessage() throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createBytesMessage" + Util.asString(session));
- }
-
- return session.createBytesMessage();
- }
-
- /**
- * Create a map message
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public MapMessage createMapMessage() throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createMapMessage" + Util.asString(session));
- }
-
- return session.createMapMessage();
- }
-
- /**
- * Create a message
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public Message createMessage() throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createMessage" + Util.asString(session));
- }
-
- return session.createMessage();
- }
-
- /**
- * Create an object message
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public ObjectMessage createObjectMessage() throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createObjectMessage" + Util.asString(session));
- }
-
- return session.createObjectMessage();
- }
-
- /**
- * Create an object message
- * @param object The object
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public ObjectMessage createObjectMessage(final Serializable object) throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createObjectMessage(" + object + ")" + Util.asString(session));
- }
-
- return session.createObjectMessage(object);
- }
-
- /**
- * Create a stream message
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public StreamMessage createStreamMessage() throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createStreamMessage" + Util.asString(session));
- }
-
- return session.createStreamMessage();
- }
-
- /**
- * Create a text message
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public TextMessage createTextMessage() throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createTextMessage" + Util.asString(session));
- }
-
- return session.createTextMessage();
- }
-
- /**
- * Create a text message
- * @param string The text
- * @return The message
- * @exception JMSException Thrown if an error occurs
- */
- public TextMessage createTextMessage(final String string) throws JMSException
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createTextMessage(" + string + ")" + Util.asString(session));
- }
-
- return session.createTextMessage(string);
- }
-
- /**
- * Get transacted
- * @return True if transacted; otherwise false
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getTransacted() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransacted()");
- }
-
- getSessionInternal();
- return _cri.isTransacted();
- }
-
- /**
- * Get the message listener -- throws IllegalStateException
- * @return The message listener
- * @exception JMSException Thrown if an error occurs
- */
- public MessageListener getMessageListener() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMessageListener()");
- }
-
- throw new IllegalStateException("Method not allowed");
- }
-
- /**
- * Set the message listener -- Throws IllegalStateException
- * @param listener The message listener
- * @exception JMSException Thrown if an error occurs
- */
- public void setMessageListener(final MessageListener listener) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setMessageListener(" + listener + ")");
- }
-
- throw new IllegalStateException("Method not allowed");
- }
-
- /**
- * Always throws an Error.
- * @exception Error Method not allowed.
- */
- public void run()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("run()");
- }
-
- throw new Error("Method not allowed");
- }
-
- /**
- * Closes the session. Sends a ConnectionEvent.CONNECTION_CLOSED to the
- * managed connection.
- * @exception JMSException Failed to close session.
- */
- public void close() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("close()");
- }
-
- _sf.closeSession(this);
- closeSession();
- }
-
- /**
- * Commit
- * @exception JMSException Failed to close session.
- */
- public void commit() throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.XA_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION ||
- _cri.getType() == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new TransactionInProgressException("XA connection");
- }
-
- lock();
- try
- {
-
- if (_cri.isTransacted() == false)
- {
- throw new IllegalStateException("Session is not transacted");
- }
-
- if(_lockedMC.isConnectionClosed())
- {
- throw new IllegalStateException("Attempting to call commit when the underlying connection has been closed.");
- }
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Commit session " + this);
- }
-
- getSessionInternal().commit();
-
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Rollback
- * @exception JMSException Failed to close session.
- */
- public void rollback() throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.XA_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION ||
- _cri.getType() == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new TransactionInProgressException("XA connection");
- }
-
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_cri.isTransacted() == false)
- {
- throw new IllegalStateException("Session is not transacted");
- }
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Rollback session " + this);
- }
-
- session.rollback();
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Recover
- * @exception JMSException Failed to close session.
- */
- public void recover() throws JMSException
- {
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_cri.isTransacted())
- {
- throw new IllegalStateException("Session is transacted");
- }
-
- if (_log.isTraceEnabled())
- {
- _log.trace("Recover session " + this);
- }
-
- session.recover();
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a topic
- * @param topicName The topic name
- * @return The topic
- * @exception JMSException Thrown if an error occurs
- */
- public Topic createTopic(final String topicName) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Cannot create topic for javax.jms.QueueSession");
- }
-
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createTopic " + Util.asString(session) + " topicName=" + topicName);
- }
-
- Topic result = session.createTopic(topicName);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdTopic " + Util.asString(session) + " topic=" + result);
- }
-
- return result;
- }
-
- /**
- * Create a topic subscriber
- * @param topic The topic
- * @return The subscriber
- * @exception JMSException Thrown if an error occurs
- */
- public TopicSubscriber createSubscriber(final Topic topic) throws JMSException
- {
- lock();
- try
- {
- TopicSession session = getTopicSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createSubscriber " + Util.asString(session) + " topic=" + topic);
- }
-
- TopicSubscriber result = session.createSubscriber(topic);
- result = new QpidRATopicSubscriber(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdSubscriber " + Util.asString(session) + " QpidRATopicSubscriber=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a topic subscriber
- * @param topic The topic
- * @param messageSelector The message selector
- * @param noLocal If true inhibits the delivery of messages published by its own connection
- * @return The subscriber
- * @exception JMSException Thrown if an error occurs
- */
- public TopicSubscriber createSubscriber(final Topic topic, final String messageSelector, final boolean noLocal) throws JMSException
- {
- lock();
- try
- {
- TopicSession session = getTopicSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createSubscriber " + Util.asString(session) +
- " topic=" +
- topic +
- " selector=" +
- messageSelector +
- " noLocal=" +
- noLocal);
- }
-
- TopicSubscriber result = session.createSubscriber(topic, messageSelector, noLocal);
- result = new QpidRATopicSubscriber(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdSubscriber " + Util.asString(session) + " QpidRATopicSubscriber=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a durable topic subscriber
- * @param topic The topic
- * @param name The name
- * @return The subscriber
- * @exception JMSException Thrown if an error occurs
- */
- public TopicSubscriber createDurableSubscriber(final Topic topic, final String name) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Cannot create durable subscriber from javax.jms.QueueSession");
- }
-
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createDurableSubscriber " + Util.asString(session) + " topic=" + topic + " name=" + name);
- }
-
- TopicSubscriber result = session.createDurableSubscriber(topic, name);
- result = new QpidRATopicSubscriber(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdDurableSubscriber " + Util.asString(session) + " QpidRATopicSubscriber=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a topic subscriber
- * @param topic The topic
- * @param name The name
- * @param messageSelector The message selector
- * @param noLocal If true inhibits the delivery of messages published by its own connection
- * @return The subscriber
- * @exception JMSException Thrown if an error occurs
- */
- public TopicSubscriber createDurableSubscriber(final Topic topic,
- final String name,
- final String messageSelector,
- final boolean noLocal) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Cannot create durable subscriber from javax.jms.QueueSession");
- }
-
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createDurableSubscriber " + Util.asString(session) +
- " topic=" +
- topic +
- " name=" +
- name +
- " selector=" +
- messageSelector +
- " noLocal=" +
- noLocal);
- }
-
- TopicSubscriber result = session.createDurableSubscriber(topic, name, messageSelector, noLocal);
- result = new QpidRATopicSubscriber(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdDurableSubscriber " + Util.asString(session) + " QpidRATopicSubscriber=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a topic publisher
- * @param topic The topic
- * @return The publisher
- * @exception JMSException Thrown if an error occurs
- */
- public TopicPublisher createPublisher(final Topic topic) throws JMSException
- {
- lock();
- try
- {
- TopicSession session = getTopicSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createPublisher " + Util.asString(session) + " topic=" + topic);
- }
-
- TopicPublisher result = session.createPublisher(topic);
- result = new QpidRATopicPublisher(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdPublisher " + Util.asString(session) + " publisher=" + result);
- }
-
- addProducer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a temporary topic
- * @return The temporary topic
- * @exception JMSException Thrown if an error occurs
- */
- public TemporaryTopic createTemporaryTopic() throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Cannot create temporary topic for javax.jms.QueueSession");
- }
-
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createTemporaryTopic " + Util.asString(session));
- }
-
- TemporaryTopic temp = session.createTemporaryTopic();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdTemporaryTopic " + Util.asString(session) + " temp=" + temp);
- }
-
- _sf.addTemporaryTopic(temp);
-
- return temp;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Unsubscribe
- * @param name The name
- * @exception JMSException Thrown if an error occurs
- */
- public void unsubscribe(final String name) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_QUEUE_CONNECTION)
- {
- throw new IllegalStateException("Cannot unsubscribe for javax.jms.QueueSession");
- }
-
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("unsubscribe " + Util.asString(session) + " name=" + name);
- }
-
- session.unsubscribe(name);
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a browser
- * @param queue The queue
- * @return The browser
- * @exception JMSException Thrown if an error occurs
- */
- public QueueBrowser createBrowser(final Queue queue) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Cannot create browser for javax.jms.TopicSession");
- }
-
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createBrowser " + Util.asString(session) + " queue=" + queue);
- }
-
- QueueBrowser result = session.createBrowser(queue);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdBrowser " + Util.asString(session) + " browser=" + result);
- }
-
- return result;
- }
-
- /**
- * Create a browser
- * @param queue The queue
- * @param messageSelector The message selector
- * @return The browser
- * @exception JMSException Thrown if an error occurs
- */
- public QueueBrowser createBrowser(final Queue queue, final String messageSelector) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Cannot create browser for javax.jms.TopicSession");
- }
-
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createBrowser " + Util.asString(session) + " queue=" + queue + " selector=" + messageSelector);
- }
-
- QueueBrowser result = session.createBrowser(queue, messageSelector);
- result = new QpidRAQueueBrowser(result, this);
- addQueueBrowser(result) ;
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdBrowser " + Util.asString(session) + " browser=" + result);
- }
-
- return result;
- }
-
- /**
- * Create a queue
- * @param queueName The queue name
- * @return The queue
- * @exception JMSException Thrown if an error occurs
- */
- public Queue createQueue(final String queueName) throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Cannot create browser or javax.jms.TopicSession");
- }
-
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createQueue " + Util.asString(session) + " queueName=" + queueName);
- }
-
- Queue result = session.createQueue(queueName);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdQueue " + Util.asString(session) + " queue=" + result);
- }
-
- return result;
- }
-
- /**
- * Create a queue receiver
- * @param queue The queue
- * @return The queue receiver
- * @exception JMSException Thrown if an error occurs
- */
- public QueueReceiver createReceiver(final Queue queue) throws JMSException
- {
- lock();
- try
- {
- QueueSession session = getQueueSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createReceiver " + Util.asString(session) + " queue=" + queue);
- }
-
- QueueReceiver result = session.createReceiver(queue);
- result = new QpidRAQueueReceiver(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdReceiver " + Util.asString(session) + " receiver=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a queue receiver
- * @param queue The queue
- * @param messageSelector
- * @return The queue receiver
- * @exception JMSException Thrown if an error occurs
- */
- public QueueReceiver createReceiver(final Queue queue, final String messageSelector) throws JMSException
- {
- lock();
- try
- {
- QueueSession session = getQueueSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createReceiver " + Util.asString(session) + " queue=" + queue + " selector=" + messageSelector);
- }
-
- QueueReceiver result = session.createReceiver(queue, messageSelector);
- result = new QpidRAQueueReceiver(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdReceiver " + Util.asString(session) + " receiver=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a queue sender
- * @param queue The queue
- * @return The queue sender
- * @exception JMSException Thrown if an error occurs
- */
- public QueueSender createSender(final Queue queue) throws JMSException
- {
- lock();
- try
- {
- QueueSession session = getQueueSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createSender " + Util.asString(session) + " queue=" + queue);
- }
-
- QueueSender result = session.createSender(queue);
- result = new QpidRAQueueSender(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdSender " + Util.asString(session) + " sender=" + result);
- }
-
- addProducer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a temporary queue
- * @return The temporary queue
- * @exception JMSException Thrown if an error occurs
- */
- public TemporaryQueue createTemporaryQueue() throws JMSException
- {
- if (_cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION || _cri.getType() == QpidRAConnectionFactory.XA_TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Cannot create temporary queue for javax.jms.TopicSession");
- }
-
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createTemporaryQueue " + Util.asString(session));
- }
-
- TemporaryQueue temp = session.createTemporaryQueue();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdTemporaryQueue " + Util.asString(session) + " temp=" + temp);
- }
-
- _sf.addTemporaryQueue(temp);
-
- return temp;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a message consumer
- * @param destination The destination
- * @return The message consumer
- * @exception JMSException Thrown if an error occurs
- */
- public MessageConsumer createConsumer(final Destination destination) throws JMSException
- {
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createConsumer " + Util.asString(session) + " dest=" + destination);
- }
-
- MessageConsumer result = session.createConsumer(destination);
- result = new QpidRAMessageConsumer(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdConsumer " + Util.asString(session) + " consumer=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a message consumer
- * @param destination The destination
- * @param messageSelector The message selector
- * @return The message consumer
- * @exception JMSException Thrown if an error occurs
- */
- public MessageConsumer createConsumer(final Destination destination, final String messageSelector) throws JMSException
- {
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createConsumer " + Util.asString(session) +
- " dest=" +
- destination +
- " messageSelector=" +
- messageSelector);
- }
-
- MessageConsumer result = session.createConsumer(destination, messageSelector);
- result = new QpidRAMessageConsumer(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdConsumer " + Util.asString(session) + " consumer=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a message consumer
- * @param destination The destination
- * @param messageSelector The message selector
- * @param noLocal If true inhibits the delivery of messages published by its own connection
- * @return The message consumer
- * @exception JMSException Thrown if an error occurs
- */
- public MessageConsumer createConsumer(final Destination destination,
- final String messageSelector,
- final boolean noLocal) throws JMSException
- {
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createConsumer " + Util.asString(session) +
- " dest=" +
- destination +
- " messageSelector=" +
- messageSelector +
- " noLocal=" +
- noLocal);
- }
-
- MessageConsumer result = session.createConsumer(destination, messageSelector, noLocal);
- result = new QpidRAMessageConsumer(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdConsumer " + Util.asString(session) + " consumer=" + result);
- }
-
- addConsumer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Create a message producer
- * @param destination The destination
- * @return The message producer
- * @exception JMSException Thrown if an error occurs
- */
- public MessageProducer createProducer(final Destination destination) throws JMSException
- {
- lock();
- try
- {
- Session session = getSessionInternal();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createProducer " + Util.asString(session) + " dest=" + destination);
- }
-
- MessageProducer result = session.createProducer(destination);
- result = new QpidRAMessageProducer(result, this);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("createdProducer " + Util.asString(session) + " producer=" + result);
- }
-
- addProducer(result);
-
- return result;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Get the acknowledge mode
- * @return The mode
- * @exception JMSException Thrown if an error occurs
- */
- public int getAcknowledgeMode() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getAcknowledgeMode()");
- }
-
- getSessionInternal();
- return _cri.getAcknowledgeMode();
- }
-
- /**
- * Get the XA resource
- * @return The XA resource
- */
- public XAResource getXAResource()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getXAResource()");
- }
-
- if (_cri.getType() == QpidRAConnectionFactory.CONNECTION || _cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION ||
- _cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION)
- {
- return null;
- }
-
- try
- {
- lock();
-
- return getXAResourceInternal();
- }
- catch (Throwable t)
- {
- return null;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Get the session
- * @return The session
- * @exception JMSException Thrown if an error occurs
- */
- public Session getSession() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSession()");
- }
-
- if (_cri.getType() == QpidRAConnectionFactory.CONNECTION || _cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION ||
- _cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Non XA connection");
- }
-
- lock();
- try
- {
- return this;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Get the queue session
- * @return The queue session
- * @exception JMSException Thrown if an error occurs
- */
- public QueueSession getQueueSession() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getQueueSession()");
- }
-
- if (_cri.getType() == QpidRAConnectionFactory.CONNECTION || _cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION ||
- _cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Non XA connection");
- }
-
- lock();
- try
- {
- return this;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Get the topic session
- * @return The topic session
- * @exception JMSException Thrown if an error occurs
- */
- public TopicSession getTopicSession() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTopicSession()");
- }
-
- if (_cri.getType() == QpidRAConnectionFactory.CONNECTION || _cri.getType() == QpidRAConnectionFactory.QUEUE_CONNECTION ||
- _cri.getType() == QpidRAConnectionFactory.TOPIC_CONNECTION)
- {
- throw new IllegalStateException("Non XA connection");
- }
-
- lock();
- try
- {
- return this;
- }
- finally
- {
- unlock();
- }
- }
-
- /**
- * Set the managed connection
- * @param managedConnection The managed connection
- */
- void setManagedConnection(final QpidRAManagedConnection managedConnection)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setManagedConnection(" + managedConnection + ")");
- }
-
- final QpidRAManagedConnection mc = this._mc;
- if (mc != null)
- {
- mc.removeHandle(this);
- }
-
- this._mc = managedConnection;
- }
-
- /** for tests only */
- public ManagedConnection getManagedConnection()
- {
- return _mc;
- }
-
- /**
- * Destroy
- */
- void destroy()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("destroy()");
- }
-
- _mc = null;
- }
-
- /**
- * Start
- * @exception JMSException Thrown if an error occurs
- */
- public void start() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("start()");
- }
-
- final QpidRAManagedConnection mc = this._mc;
- if (mc != null)
- {
- _started.set(true) ;
- mc.start();
- }
- }
-
- /**
- * Stop
- * @exception JMSException Thrown if an error occurs
- */
- void stop() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("stop()");
- }
-
- final QpidRAManagedConnection mc = this._mc;
- if (mc != null)
- {
- mc.stop();
- _started.set(false) ;
- }
- }
-
- /**
- * Check strict
- * @exception JMSException Thrown if an error occurs
- */
- void checkStrict() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("checkStrict()");
- }
-
- if (_mc != null)
- {
- throw new IllegalStateException(QpidRASessionFactory.ISE);
- }
- }
-
- /**
- * Close session
- * @exception JMSException Thrown if an error occurs
- */
- public void closeSession() throws JMSException
- {
- final QpidRAManagedConnection mc = this._mc;
- if (mc != null)
- {
- _log.trace("Closing session");
-
- try
- {
- mc.stop();
- }
- catch (Throwable t)
- {
- _log.trace("Error stopping managed connection", t);
- }
-
- synchronized (_consumers)
- {
- for (Iterator<MessageConsumer> i = _consumers.iterator(); i.hasNext();)
- {
- QpidRAMessageConsumer consumer = (QpidRAMessageConsumer)i.next();
- try
- {
- consumer.closeConsumer();
- }
- catch (Throwable t)
- {
- _log.trace("Error closing consumer", t);
- }
- i.remove();
- }
- }
-
- synchronized (_producers)
- {
- for (Iterator<MessageProducer> i = _producers.iterator(); i.hasNext();)
- {
- QpidRAMessageProducer producer = (QpidRAMessageProducer)i.next();
- try
- {
- producer.closeProducer();
- }
- catch (Throwable t)
- {
- _log.trace("Error closing producer", t);
- }
- i.remove();
- }
- }
-
- synchronized (_browsers)
- {
- for (Iterator<QueueBrowser> i = _browsers.iterator(); i.hasNext();)
- {
- QpidRAQueueBrowser browser = (QpidRAQueueBrowser)i.next();
- try
- {
- browser.close();
- }
- catch (Throwable t)
- {
- _log.trace("Error closing browser", t);
- }
- i.remove();
- }
- }
-
- mc.removeHandle(this);
- ConnectionEvent ev = new ConnectionEvent(mc, ConnectionEvent.CONNECTION_CLOSED);
- ev.setConnectionHandle(this);
- mc.sendEvent(ev);
- this._mc = null;
- }
- }
-
- /**
- * Add consumer
- * @param consumer The consumer
- */
- void addConsumer(final MessageConsumer consumer)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("addConsumer(" + consumer + ")");
- }
-
- synchronized (_consumers)
- {
- _consumers.add(consumer);
- }
- }
-
- /**
- * Remove consumer
- * @param consumer The consumer
- */
- void removeConsumer(final MessageConsumer consumer)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("removeConsumer(" + consumer + ")");
- }
-
- synchronized (_consumers)
- {
- _consumers.remove(consumer);
- }
- }
-
- /**
- * Add producer
- * @param producer The producer
- */
- void addProducer(final MessageProducer producer)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("addProducer(" + producer + ")");
- }
-
- synchronized (_producers)
- {
- _producers.add(producer);
- }
- }
-
- /**
- * Remove producer
- * @param producer The producer
- */
- void removeProducer(final MessageProducer producer)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("removeProducer(" + producer + ")");
- }
-
- synchronized (_producers)
- {
- _producers.remove(producer);
- }
- }
-
- /**
- * Add queue browser
- * @param browser The queue browser
- */
- void addQueueBrowser(final QueueBrowser browser)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("addQueueBrowser(" + browser + ")");
- }
-
- synchronized (_browsers)
- {
- _browsers.add(browser);
- }
- }
-
- /**
- * Remove queue browser
- * @param browser The queue browser
- */
- void removeQueueBrowser(final QueueBrowser browser)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("removeQueueBrowser(" + browser + ")");
- }
-
- synchronized (_browsers)
- {
- _browsers.remove(browser);
- }
- }
-
- /**
- * Get the session and ensure that it is open
- * @return The session
- * @exception JMSException Thrown if an error occurs
- * @exception IllegalStateException The session is closed
- */
- Session getSessionInternal() throws JMSException
- {
- final QpidRAManagedConnection mc = this._mc;
- if (mc == null)
- {
- throw new IllegalStateException("The session is closed");
- }
-
- Session session = mc.getSession();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("getSessionInternal " + Util.asString(session) + " for " + this);
- }
-
- return session;
- }
-
- /**
- * Get the XA resource and ensure that it is open
- * @return The XA Resource
- * @exception JMSException Thrown if an error occurs
- * @exception IllegalStateException The session is closed
- */
- XAResource getXAResourceInternal() throws JMSException
- {
- final QpidRAManagedConnection mc = this._mc;
- if (mc == null)
- {
- throw new IllegalStateException("The session is closed");
- }
-
- try
- {
- XAResource xares = mc.getXAResource();
-
- if (_log.isTraceEnabled())
- {
- _log.trace("getXAResourceInternal " + xares + " for " + this);
- }
-
- return xares;
- }
- catch (ResourceException e)
- {
- JMSException jmse = new JMSException("Unable to get XA Resource");
- jmse.initCause(e);
- throw jmse;
- }
- }
-
- /**
- * Get the queue session
- * @return The queue session
- * @exception JMSException Thrown if an error occurs
- * @exception IllegalStateException The session is closed
- */
- QueueSession getQueueSessionInternal() throws JMSException
- {
- Session s = getSessionInternal();
- if (!(s instanceof QueueSession))
- {
- throw new InvalidDestinationException("Attempting to use QueueSession methods on: " + this);
- }
- return (QueueSession)s;
- }
-
- /**
- * Get the topic session
- * @return The topic session
- * @exception JMSException Thrown if an error occurs
- * @exception IllegalStateException The session is closed
- */
- TopicSession getTopicSessionInternal() throws JMSException
- {
- Session s = getSessionInternal();
- if (!(s instanceof TopicSession))
- {
- throw new InvalidDestinationException("Attempting to use TopicSession methods on: " + this);
- }
- return (TopicSession)s;
- }
-
- /**
- * throws SystemException
- * throws RollbackException
- *
- */
- public void checkState() throws JMSException
- {
- final QpidRAManagedConnection mc = this._mc;
- if (mc != null)
- {
- mc.checkTransactionActive();
- }
- }
-
- /**
- * Has this session been started?
- * @return true if started, false if stopped.
- */
- public boolean isStarted()
- {
- return _started.get();
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAStreamMessage.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAStreamMessage.java
deleted file mode 100644
index 3c2bee33f2..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAStreamMessage.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.jms.StreamMessage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message
- *
- */
-public class QpidRAStreamMessage extends QpidRAMessage implements StreamMessage
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAStreamMessage.class);
-
- /**
- * Create a new wrapper
- * @param message the message
- * @param session the session
- */
- public QpidRAStreamMessage(final StreamMessage message, final QpidRASessionImpl session)
- {
- super(message, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(message) + ", " + session + ")");
- }
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean readBoolean() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readBoolean()");
- }
-
- return ((StreamMessage)_message).readBoolean();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public byte readByte() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readByte()");
- }
-
- return ((StreamMessage)_message).readByte();
- }
-
- /**
- * Read
- * @param value The value
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int readBytes(final byte[] value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readBytes(" + value + ")");
- }
-
- return ((StreamMessage)_message).readBytes(value);
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public char readChar() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readChar()");
- }
-
- return ((StreamMessage)_message).readChar();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public double readDouble() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readDouble()");
- }
-
- return ((StreamMessage)_message).readDouble();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public float readFloat() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readFloat()");
- }
-
- return ((StreamMessage)_message).readFloat();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public int readInt() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readInt()");
- }
-
- return ((StreamMessage)_message).readInt();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public long readLong() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readLong()");
- }
-
- return ((StreamMessage)_message).readLong();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public Object readObject() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readObject()");
- }
-
- return ((StreamMessage)_message).readObject();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public short readShort() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readShort()");
- }
-
- return ((StreamMessage)_message).readShort();
- }
-
- /**
- * Read
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public String readString() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("readString()");
- }
-
- return ((StreamMessage)_message).readString();
- }
-
- /**
- * Reset
- * @exception JMSException Thrown if an error occurs
- */
- public void reset() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("reset()");
- }
-
- ((StreamMessage)_message).reset();
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeBoolean(final boolean value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeBoolean(" + value + ")");
- }
-
- ((StreamMessage)_message).writeBoolean(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeByte(final byte value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeByte(" + value + ")");
- }
-
- ((StreamMessage)_message).writeByte(value);
- }
-
- /**
- * Write
- * @param value The value
- * @param offset The offset
- * @param length The length
- * @exception JMSException Thrown if an error occurs
- */
- public void writeBytes(final byte[] value, final int offset, final int length) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeBytes(" + value + ", " + offset + ", " + length + ")");
- }
-
- ((StreamMessage)_message).writeBytes(value, offset, length);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeBytes(final byte[] value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeBytes(" + value + ")");
- }
-
- ((StreamMessage)_message).writeBytes(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeChar(final char value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeChar(" + value + ")");
- }
-
- ((StreamMessage)_message).writeChar(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeDouble(final double value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeDouble(" + value + ")");
- }
-
- ((StreamMessage)_message).writeDouble(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeFloat(final float value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeFloat(" + value + ")");
- }
-
- ((StreamMessage)_message).writeFloat(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeInt(final int value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeInt(" + value + ")");
- }
-
- ((StreamMessage)_message).writeInt(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeLong(final long value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeLong(" + value + ")");
- }
-
- ((StreamMessage)_message).writeLong(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeObject(final Object value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeObject(" + value + ")");
- }
-
- ((StreamMessage)_message).writeObject(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeShort(final short value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeShort(" + value + ")");
- }
-
- ((StreamMessage)_message).writeShort(value);
- }
-
- /**
- * Write
- * @param value The value
- * @exception JMSException Thrown if an error occurs
- */
- public void writeString(final String value) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("writeString(" + value + ")");
- }
-
- ((StreamMessage)_message).writeString(value);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATextMessage.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATextMessage.java
deleted file mode 100644
index d74d006a7f..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATextMessage.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.jms.TextMessage;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a message
- *
- */
-public class QpidRATextMessage extends QpidRAMessage implements TextMessage
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRATextMessage.class);
-
- /**
- * Create a new wrapper
- * @param message the message
- * @param session the session
- */
- public QpidRATextMessage(final TextMessage message, final QpidRASessionImpl session)
- {
- super(message, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(message) + ", " + session + ")");
- }
- }
-
- /**
- * Get text
- * @return The text
- * @exception JMSException Thrown if an error occurs
- */
- public String getText() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getText()");
- }
-
- return ((TextMessage)_message).getText();
- }
-
- /**
- * Set text
- * @param string The text
- * @exception JMSException Thrown if an error occurs
- */
- public void setText(final String string) throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setText(" + string + ")");
- }
-
- ((TextMessage)_message).setText(string);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicPublisher.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicPublisher.java
deleted file mode 100644
index b753690142..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicPublisher.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.Topic;
-import javax.jms.TopicPublisher;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * QpidRATopicPublisher.
- *
- */
-public class QpidRATopicPublisher extends QpidRAMessageProducer implements TopicPublisher
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRATopicPublisher.class);
-
- /**
- * Create a new wrapper
- * @param producer the producer
- * @param session the session
- */
- public QpidRATopicPublisher(final TopicPublisher producer, final QpidRASessionImpl session)
- {
- super(producer, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(producer) + ", " + session + ")");
- }
- }
-
- /**
- * Get the topic
- * @return The topic
- * @exception JMSException Thrown if an error occurs
- */
- public Topic getTopic() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTopic()");
- }
-
- return ((TopicPublisher)_producer).getTopic();
- }
-
- /**
- * Publish message
- * @param message The message
- * @param deliveryMode The delivery mode
- * @param priority The priority
- * @param timeToLive The time to live
- * @exception JMSException Thrown if an error occurs
- */
- public void publish(final Message message, final int deliveryMode, final int priority, final long timeToLive) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this +
- " message=" +
- Util.asString(message) +
- " deliveryMode=" +
- deliveryMode +
- " priority=" +
- priority +
- " ttl=" +
- timeToLive);
- }
-
- checkState();
-
- ((TopicPublisher)_producer).publish(message, deliveryMode, priority, timeToLive);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Publish message
- * @param message The message
- * @exception JMSException Thrown if an error occurs
- */
- public void publish(final Message message) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this + " message=" + Util.asString(message));
- }
-
- checkState();
-
- ((TopicPublisher)_producer).publish(message);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Publish message
- * @param destination The destination
- * @param message The message
- * @param deliveryMode The delivery mode
- * @param priority The priority
- * @param timeToLive The time to live
- * @exception JMSException Thrown if an error occurs
- */
- public void publish(final Topic destination,
- final Message message,
- final int deliveryMode,
- final int priority,
- final long timeToLive) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this +
- " destination=" +
- destination +
- " message=" +
- Util.asString(message) +
- " deliveryMode=" +
- deliveryMode +
- " priority=" +
- priority +
- " ttl=" +
- timeToLive);
- }
-
- checkState();
-
- ((TopicPublisher)_producer).publish(destination, message, deliveryMode, priority, timeToLive);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-
- /**
- * Publish message
- * @param destination The destination
- * @param message The message
- * @exception JMSException Thrown if an error occurs
- */
- public void publish(final Topic destination, final Message message) throws JMSException
- {
- _session.lock();
- try
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("send " + this + " destination=" + destination + " message=" + Util.asString(message));
- }
-
- checkState();
-
- ((TopicPublisher)_producer).publish(destination, message);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("sent " + this + " result=" + Util.asString(message));
- }
- }
- finally
- {
- _session.unlock();
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicSubscriber.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicSubscriber.java
deleted file mode 100644
index e423f468e0..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRATopicSubscriber.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.jms.JMSException;
-import javax.jms.Topic;
-import javax.jms.TopicSubscriber;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A wrapper for a topic subscriber
- *
- */
-public class QpidRATopicSubscriber extends QpidRAMessageConsumer implements TopicSubscriber
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRATopicSubscriber.class);
-
- /**
- * Create a new wrapper
- * @param consumer the topic subscriber
- * @param session the session
- */
- public QpidRATopicSubscriber(final TopicSubscriber consumer, final QpidRASessionImpl session)
- {
- super(consumer, session);
-
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + Util.asString(consumer) + ", " + session + ")");
- }
- }
-
- /**
- * Get the no local value
- * @return The value
- * @exception JMSException Thrown if an error occurs
- */
- public boolean getNoLocal() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getNoLocal()");
- }
-
- checkState();
- return ((TopicSubscriber)_consumer).getNoLocal();
- }
-
- /**
- * Get the topic
- * @return The topic
- * @exception JMSException Thrown if an error occurs
- */
- public Topic getTopic() throws JMSException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTopic()");
- }
-
- checkState();
- return ((TopicSubscriber)_consumer).getTopic();
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAXAResource.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAXAResource.java
deleted file mode 100644
index 37ae7f5514..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAXAResource.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.util.List;
-
-import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
-import javax.transaction.xa.Xid;
-
-import org.apache.qpid.client.AMQXAResource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * QpidRAXAResource.
- *
- */
-public class QpidRAXAResource implements AMQXAResource
-{
- /** The logger */
- private static final Logger _log = LoggerFactory.getLogger(QpidRAXAResource.class);
-
- /** The managed connection */
- private final QpidRAManagedConnection _managedConnection;
-
- /** The resource */
- private final XAResource _xaResource;
-
- /**
- * Create a new QpidRAXAResource.
- * @param managedConnection the managed connection
- * @param xaResource the xa resource
- */
- public QpidRAXAResource(final QpidRAManagedConnection managedConnection, final XAResource xaResource)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor(" + managedConnection + ", " + Util.asString(xaResource) + ")");
- }
-
- this._managedConnection = managedConnection;
- this._xaResource = xaResource;
- }
-
- /**
- * Start
- * @param xid A global transaction identifier
- * @param flags One of TMNOFLAGS, TMJOIN, or TMRESUME
- * @exception XAException An error has occurred
- */
- public void start(final Xid xid, final int flags) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("start(" + xid + ", " + flags + ")");
- }
-
- _managedConnection.lock();
- try
- {
- _xaResource.start(xid, flags);
- }
- finally
- {
- _managedConnection.setInManagedTx(true);
- _managedConnection.unlock();
- }
- }
-
- /**
- * End
- * @param xid A global transaction identifier
- * @param flags One of TMSUCCESS, TMFAIL, or TMSUSPEND.
- * @exception XAException An error has occurred
- */
- public void end(final Xid xid, final int flags) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("end(" + xid + ", " + flags + ")");
- }
-
- _managedConnection.lock();
- try
- {
- _xaResource.end(xid, flags);
- }
- finally
- {
- _managedConnection.setInManagedTx(false);
- _managedConnection.unlock();
- }
- }
-
- /**
- * Prepare
- * @param xid A global transaction identifier
- * @return XA_RDONLY or XA_OK
- * @exception XAException An error has occurred
- */
- public int prepare(final Xid xid) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("prepare(" + xid + ")");
- }
-
- return _xaResource.prepare(xid);
- }
-
- /**
- * Commit
- * @param xid A global transaction identifier
- * @param onePhase If true, the resource manager should use a one-phase commit protocol to commit the work done on behalf of xid.
- * @exception XAException An error has occurred
- */
- public void commit(final Xid xid, final boolean onePhase) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("commit(" + xid + ", " + onePhase + ")");
- }
-
- _xaResource.commit(xid, onePhase);
- }
-
- /**
- * Rollback
- * @param xid A global transaction identifier
- * @exception XAException An error has occurred
- */
- public void rollback(final Xid xid) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("rollback(" + xid + ")");
- }
-
- _xaResource.rollback(xid);
- }
-
- /**
- * Forget
- * @param xid A global transaction identifier
- * @exception XAException An error has occurred
- */
- public void forget(final Xid xid) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("forget(" + xid + ")");
- }
-
- _managedConnection.lock();
- try
- {
- _xaResource.forget(xid);
- }
- finally
- {
- _managedConnection.setInManagedTx(false);
- _managedConnection.unlock();
- }
- }
-
- /**
- * IsSameRM
- * @param xaRes An XAResource object whose resource manager instance is to be compared with the resource manager instance of the target object.
- * @return True if its the same RM instance; otherwise false.
- * @exception XAException An error has occurred
- */
- public boolean isSameRM(final XAResource xaRes) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("isSameRM(" + xaRes + ")");
- }
-
- return _xaResource.isSameRM(xaRes);
- }
-
- /**
- * Recover
- * @param flag One of TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS
- * @return Zero or more XIDs
- * @exception XAException An error has occurred
- */
- public Xid[] recover(final int flag) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("recover(" + flag + ")");
- }
-
- return _xaResource.recover(flag);
- }
-
- /**
- * Get the transaction timeout in seconds
- * @return The transaction timeout
- * @exception XAException An error has occurred
- */
- public int getTransactionTimeout() throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransactionTimeout()");
- }
-
- return _xaResource.getTransactionTimeout();
- }
-
- /**
- * Set the transaction timeout
- * @param seconds The number of seconds
- * @return True if the transaction timeout value is set successfully; otherwise false.
- * @exception XAException An error has occurred
- */
- public boolean setTransactionTimeout(final int seconds) throws XAException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTransactionTimeout(" + seconds + ")");
- }
-
- return _xaResource.setTransactionTimeout(seconds);
- }
-
- public String getBrokerUUID()
- {
- return ((AMQXAResource)_xaResource).getBrokerUUID();
- }
-
- public List<XAResource> getSiblings()
- {
- return ((AMQXAResource)_xaResource).getSiblings();
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidResourceAdapter.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidResourceAdapter.java
deleted file mode 100644
index 96fa83ceef..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidResourceAdapter.java
+++ /dev/null
@@ -1,777 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.jms.Session;
-import javax.jms.XASession;
-import javax.resource.ResourceException;
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.BootstrapContext;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.spi.ResourceAdapterInternalException;
-import javax.resource.spi.endpoint.MessageEndpointFactory;
-import javax.resource.spi.work.WorkManager;
-import javax.transaction.TransactionManager;
-import javax.transaction.xa.XAResource;
-
-import org.apache.qpid.client.AMQConnection;
-import org.apache.qpid.client.AMQConnectionFactory;
-import org.apache.qpid.client.AMQConnectionURL;
-import org.apache.qpid.client.XAConnectionImpl;
-import org.apache.qpid.ra.inflow.QpidActivation;
-import org.apache.qpid.ra.inflow.QpidActivationSpec;
-import org.apache.qpid.url.URLSyntaxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The resource adapter for Qpid
- *
- */
-public class QpidResourceAdapter implements ResourceAdapter, Serializable
-{
- private static final long serialVersionUID = -2446231446818098726L;
-
- private static final transient Logger _log = LoggerFactory.getLogger(QpidResourceAdapter.class);
-
- private BootstrapContext _ctx;
-
- private final QpidRAProperties _raProperties;
-
- private final AtomicBoolean _configured;
-
- private final Map<ActivationSpec, QpidActivation> _activations;
-
- private AMQConnectionFactory _defaultAMQConnectionFactory;
-
- private TransactionManager _tm;
-
- public QpidResourceAdapter()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
-
- _raProperties = new QpidRAProperties();
- _configured = new AtomicBoolean(false);
- _activations = new ConcurrentHashMap<ActivationSpec, QpidActivation>();
- }
-
- public TransactionManager getTM()
- {
- return _tm;
- }
-
- /**
- * Endpoint activation
- *
- * @param endpointFactory The endpoint factory
- * @param spec The activation spec
- * @throws ResourceException Thrown if an error occurs
- */
- public void endpointActivation(final MessageEndpointFactory endpointFactory, final ActivationSpec spec) throws ResourceException
- {
- if (!_configured.getAndSet(true))
- {
- try
- {
- setup();
- }
- catch (QpidRAException e)
- {
- throw new ResourceException("Unable to create activation", e);
- }
- }
- if (_log.isTraceEnabled())
- {
- _log.trace("endpointActivation(" + endpointFactory + ", " + spec + ")");
- }
-
- QpidActivation activation = new QpidActivation(this, endpointFactory, (QpidActivationSpec)spec);
- _activations.put(spec, activation);
- activation.start();
- }
-
- /**
- * Endpoint deactivation
- *
- * @param endpointFactory The endpoint factory
- * @param spec The activation spec
- */
- public void endpointDeactivation(final MessageEndpointFactory endpointFactory, final ActivationSpec spec)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("endpointDeactivation(" + endpointFactory + ", " + spec + ")");
- }
-
- QpidActivation activation = _activations.remove(spec);
- if (activation != null)
- {
- activation.stop();
- }
- }
-
- /**
- * Get XA resources
- *
- * @param specs The activation specs
- * @return The XA resources
- * @throws ResourceException Thrown if an error occurs or unsupported
- */
- public XAResource[] getXAResources(final ActivationSpec[] specs) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getXAResources(" + specs + ")");
- }
-
- return null;
- }
-
- /**
- * Start
- *
- * @param ctx The bootstrap context
- * @throws ResourceAdapterInternalException
- * Thrown if an error occurs
- */
- public void start(final BootstrapContext ctx) throws ResourceAdapterInternalException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("start(" + ctx + ")");
- }
-
- locateTM();
-
- this._ctx = ctx;
-
- _log.info("Qpid resource adapter started");
- }
-
- /**
- * Stop
- */
- public void stop()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("stop()");
- }
-
- for (Map.Entry<ActivationSpec, QpidActivation> entry : _activations.entrySet())
- {
- try
- {
- entry.getValue().stop();
- }
- catch (Exception ignored)
- {
- _log.debug("Ignored", ignored);
- }
- }
-
- _activations.clear();
-
- _log.info("Qpid resource adapter stopped");
- }
-
-
- /**
- * Get the client ID
- *
- * @return The value
- */
- public String getClientId()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getClientID()");
- }
-
- return _raProperties.getClientId();
- }
-
- /**
- * Set the client ID
- *
- * @param clientID The client id
- */
- public void setClientId(final String clientID)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setClientID(" + clientID + ")");
- }
-
- _raProperties.setClientId(clientID);
- }
-
- /**
- * Get the host
- *
- * @return The value
- */
- public String getHost()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getHost()");
- }
-
- return _raProperties.getHost();
- }
-
- /**
- * Set the host
- *
- * @param host The host
- */
- public void setHost(final String host)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setHost(" + host + ")");
- }
-
- _raProperties.setHost(host);
- }
-
- /**
- * Get the port
- *
- * @return The value
- */
- public Integer getPort()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPort()");
- }
-
- return _raProperties.getPort();
- }
-
- /**
- * Set the client ID
- *
- * @param port The port
- */
- public void setPort(final Integer port)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPort(" + port + ")");
- }
-
- _raProperties.setPort(port);
- }
-
- /**
- * Get the connection url
- *
- * @return The value
- */
- public String getPath()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPath()");
- }
-
- return _raProperties.getPath();
- }
-
- /**
- * Set the client ID
- *
- * @param path The path
- */
- public void setPath(final String path)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPath(" + path + ")");
- }
-
- _raProperties.setPath(path);
- }
-
- public String getUserName()
- {
- return _raProperties.getUserName();
- }
-
- public void setUserName(String userName)
- {
- _raProperties.setUserName(userName);
- }
-
- public String getPassword()
- {
- return _raProperties.getPassword();
- }
-
- public void setPassword(String password)
- {
- _raProperties.setPassword(password);
- }
-
- /**
- * Get the connection url
- *
- * @return The value
- */
- public String getConnectionURL()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getConnectionURL()");
- }
-
- return _raProperties.getConnectionURL();
- }
-
- /**
- * Set the client ID
- *
- * @param connectionURL The connection url
- */
- public void setConnectionURL(final String connectionURL)
- {
- _raProperties.setConnectionURL(connectionURL);
- }
-
- /**
- * Get the transaction manager locator class
- *
- * @return The value
- */
- public String getTransactionManagerLocatorClass()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransactionManagerLocatorClass()");
- }
-
- return _raProperties.getTransactionManagerLocatorClass();
- }
-
- /**
- * Set the transaction manager locator class
- *
- * @param locator The transaction manager locator class
- */
- public void setTransactionManagerLocatorClass(final String locator)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTransactionManagerLocatorClass(" + locator + ")");
- }
-
- _raProperties.setTransactionManagerLocatorClass(locator);
- }
-
- /**
- * Get the transaction manager locator method
- *
- * @return The value
- */
- public String getTransactionManagerLocatorMethod()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransactionManagerLocatorMethod()");
- }
-
- return _raProperties.getTransactionManagerLocatorMethod();
- }
-
- /**
- * Set the transaction manager locator method
- *
- * @param method The transaction manager locator method
- */
- public void setTransactionManagerLocatorMethod(final String method)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTransactionManagerLocatorMethod(" + method + ")");
- }
-
- _raProperties.setTransactionManagerLocatorMethod(method);
- }
-
- /**
- * Get the use XA flag
- *
- * @return The value
- */
- public Boolean isUseLocalTx()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getUseLocalTx()");
- }
-
- return _raProperties.isUseLocalTx();
- }
-
- /**
- * Set the use XA flag
- *
- * @param localTx The value
- */
- public void setUseLocalTx(final Boolean localTx)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setUseLocalTx(" + localTx + ")");
- }
-
- _raProperties.setUseLocalTx(localTx);
- }
-
- public Integer getSetupAttempts()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSetupAttempts()");
- }
- return _raProperties.getSetupAttempts();
- }
-
- public void setSetupAttempts(Integer setupAttempts)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSetupAttempts(" + setupAttempts + ")");
- }
- _raProperties.setSetupAttempts(setupAttempts);
- }
-
- public Long getSetupInterval()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSetupInterval()");
- }
- return _raProperties.getSetupInterval();
- }
-
- public void setSetupInterval(Long interval)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSetupInterval(" + interval + ")");
- }
- _raProperties.setSetupInterval(interval);
- }
-
- public Boolean isUseConnectionPerHandler()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("isConnectionPerHandler()");
- }
-
- return _raProperties.isUseConnectionPerHandler();
- }
-
- public void setUseConnectionPerHandler(Boolean connectionPerHandler)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setConnectionPerHandler(" + connectionPerHandler + ")");
- }
-
- _raProperties.setUseConnectionPerHandler(connectionPerHandler);
- }
-
- /**
- * Indicates whether some other object is "equal to" this one.
- *
- * @param obj Object with which to compare
- * @return True if this object is the same as the obj argument; false otherwise.
- */
- public boolean equals(final Object obj)
- {
- if (obj == null)
- {
- return false;
- }
-
- if (obj instanceof QpidResourceAdapter)
- {
- return _raProperties.equals(((QpidResourceAdapter)obj).getProperties());
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Return the hash code for the object
- *
- * @return The hash code
- */
- public int hashCode()
- {
- return _raProperties.hashCode();
- }
-
- /**
- * Get the work manager
- *
- * @return The manager
- */
- public WorkManager getWorkManager()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getWorkManager()");
- }
-
- if (_ctx == null)
- {
- return null;
- }
-
- return _ctx.getWorkManager();
- }
-
- public XASession createXASession(final XAConnectionImpl connection)
- throws Exception
- {
- final XASession result = connection.createXASession() ;
- if (_log.isDebugEnabled())
- {
- _log.debug("Using session " + Util.asString(result));
- }
- return result ;
- }
-
- public Session createSession(final AMQConnection connection,
- final int ackMode,
- final boolean useLocalTx,
- final Integer prefetchLow,
- final Integer prefetchHigh) throws Exception
- {
- Session result;
-
- if (prefetchLow == null)
- {
- result = connection.createSession(useLocalTx, ackMode) ;
- }
- else if (prefetchHigh == null)
- {
- result = connection.createSession(useLocalTx, ackMode, prefetchLow) ;
- }
- else
- {
- result = connection.createSession(useLocalTx, ackMode, prefetchHigh, prefetchLow) ;
- }
-
- if (_log.isDebugEnabled())
- {
- _log.debug("Using session " + Util.asString(result));
- }
-
- return result;
-
- }
-
- /**
- * Get the resource adapter properties
- *
- * @return The properties
- */
- protected QpidRAProperties getProperties()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getProperties()");
- }
-
- return _raProperties;
- }
-
- /**
- * Setup the factory
- */
- protected void setup() throws QpidRAException
- {
- _defaultAMQConnectionFactory = createAMQConnectionFactory(_raProperties);
- }
-
-
- public AMQConnectionFactory getDefaultAMQConnectionFactory() throws ResourceException
- {
- if (!_configured.getAndSet(true))
- {
- try
- {
- setup();
- }
- catch (QpidRAException e)
- {
- throw new ResourceException("Unable to create activation", e);
- }
- }
- return _defaultAMQConnectionFactory;
- }
-
- public AMQConnectionFactory createAMQConnectionFactory(final ConnectionFactoryProperties overrideProperties)
- throws QpidRAException
- {
- try
- {
- return createFactory(overrideProperties);
- }
- catch (final URLSyntaxException urlse)
- {
- throw new QpidRAException("Unexpected exception creating connection factory", urlse) ;
- }
- }
-
- public Map<String, Object> overrideConnectionParameters(final Map<String, Object> connectionParams,
- final Map<String, Object> overrideConnectionParams)
- {
- Map<String, Object> map = new HashMap<String, Object>();
-
- if(connectionParams != null)
- {
- map.putAll(connectionParams);
- }
- if(overrideConnectionParams != null)
- {
- for (Map.Entry<String, Object> stringObjectEntry : overrideConnectionParams.entrySet())
- {
- map.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
- }
- }
- return map;
- }
-
- private void locateTM() throws ResourceAdapterInternalException
- {
- if(_raProperties.getTransactionManagerLocatorClass() != null
- && _raProperties.getTransactionManagerLocatorMethod() != null)
- {
-
- String locatorClasses[] = _raProperties.getTransactionManagerLocatorClass().split(";");
- String locatorMethods[] = _raProperties.getTransactionManagerLocatorMethod().split(";");
-
- for (int i = 0 ; i < locatorClasses.length; i++)
- {
- _tm = Util.locateTM(locatorClasses[i], locatorMethods[i]);
- if (_tm != null)
- {
- break;
- }
- }
-
-
- }
-
- if (_tm == null)
- {
- _log.error("It was not possible to locate javax.transaction.TransactionManager via the RA properties TransactionManagerLocatorClass and TransactionManagerLocatorMethod");
- throw new ResourceAdapterInternalException("Could not locate javax.transaction.TransactionManager");
- }
- else
- {
- if (_log.isDebugEnabled())
- {
- _log.debug("TM located = " + _tm);
- }
- }
- }
-
-
- private AMQConnectionFactory createFactory(final ConnectionFactoryProperties overrideProperties)
- throws URLSyntaxException, QpidRAException
- {
- final String overrideURL = overrideProperties.getConnectionURL() ;
- final String url = overrideURL != null ? overrideURL : _raProperties.getConnectionURL() ;
-
- final String overrideClientID = overrideProperties.getClientId() ;
- final String clientID = (overrideClientID != null ? overrideClientID : _raProperties.getClientId()) ;
-
- final String overrideDefaultPassword = overrideProperties.getPassword() ;
- final String defaultPassword = (overrideDefaultPassword != null ? overrideDefaultPassword : _raProperties.getPassword()) ;
-
- final String overrideDefaultUsername = overrideProperties.getUserName() ;
- final String defaultUsername = (overrideDefaultUsername != null ? overrideDefaultUsername : _raProperties.getUserName()) ;
-
- final String overrideHost = overrideProperties.getHost() ;
- final String host = (overrideHost != null ? overrideHost : _raProperties.getHost()) ;
-
- final Integer overridePort = overrideProperties.getPort() ;
- final Integer port = (overridePort != null ? overridePort : _raProperties.getPort()) ;
-
- final String overridePath = overrideProperties.getPath() ;
- final String path = (overridePath != null ? overridePath : _raProperties.getPath()) ;
-
- final AMQConnectionFactory cf ;
-
- if (url != null)
- {
- cf = new AMQConnectionFactory(url) ;
-
- if (clientID != null)
- {
- cf.getConnectionURL().setClientName(clientID) ;
- }
- }
- else
- {
- // create a URL to force the connection details
- if ((host == null) || (port == null) || (path == null))
- {
- throw new QpidRAException("Configuration requires host/port/path if connectionURL is not specified") ;
- }
- final String username = (defaultUsername != null ? defaultUsername : "") ;
- final String password = (defaultPassword != null ? defaultPassword : "") ;
- final String client = (clientID != null ? clientID : "") ;
-
- final String newurl = AMQConnectionURL.AMQ_PROTOCOL + "://" + username +":" + password + "@" + client + "/" + path + '?' + AMQConnectionURL.OPTIONS_BROKERLIST + "='tcp://" + host + ':' + port + '\'' ;
-
- if (_log.isDebugEnabled())
- {
- _log.debug("Initialising connectionURL to " + newurl) ;
- }
-
- cf = new AMQConnectionFactory(newurl) ;
- }
-
- return cf ;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/Util.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/Util.java
deleted file mode 100644
index 491595b9fb..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/Util.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.lang.reflect.Method;
-
-import javax.naming.Context;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.Referenceable;
-import javax.naming.spi.NamingManager;
-import javax.transaction.TransactionManager;
-
-import org.apache.qpid.client.AMQConnectionURL;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Various utility functions
- *
- */
-public class Util
-{
-
- private static final Logger _log = LoggerFactory.getLogger(Util.class);
-
- /**
- * Compare two strings.
- * @param me First value
- * @param you Second value
- * @return True if object equals else false.
- */
- public static boolean compare(final String me, final String you)
- {
- // If both null or intern equals
- if (me == you)
- {
- return true;
- }
-
- // if me null and you are not
- if (me == null && you != null)
- {
- return false;
- }
-
- // me will not be null, test for equality
- return me.equals(you);
- }
-
- /**
- * Lookup an object in the default initial context
- * @param context The context to use
- * @param name the name to lookup
- * @param clazz the expected type
- * @return the object
- * @throws Exception for any error
- */
- public static <T> T lookup(final Context context, final String name, final Class<T> clazz) throws Exception
- {
- Object object = context.lookup(name);
-
- if (object instanceof Reference)
- {
- return (T)NamingManager.getObjectInstance(object, null, null, null);
- }
-
- return clazz.cast(object);
-
- }
-
- /** The Resource adapter can't depend on any provider's specific library. Because of that we use reflection to locate the
- * transaction manager during startup.
- *
- *
- * TODO: We should use a proper SPI instead of reflection
- * We would need to define a proper SPI package for this.
- **/
- public static TransactionManager locateTM(final String locatorClass, final String locatorMethod)
- {
- try
- {
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- Class<?> aClass = loader.loadClass(locatorClass);
- Object o = aClass.newInstance();
- Method m = aClass.getMethod(locatorMethod);
- return (TransactionManager)m.invoke(o);
- }
- catch (Throwable e)
- {
- _log.debug(e.getMessage(), e);
- return null;
- }
- }
-
- /**
- * Serialize the object into a byte array.
- * @param serializable The serializable object
- * @return The generated byte array
- * @throws IOException For errors during serialization.
- */
- public static byte[] serialize(final Serializable serializable)
- throws IOException
- {
- final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
- final ObjectOutputStream oos = new ObjectOutputStream(baos) ;
- oos.writeObject(serializable) ;
- oos.close() ;
- return baos.toByteArray() ;
- }
-
- /**
- * Deserialize the byte array into an object.
- * @param data The serialized object as a byte array
- * @return The serializable object.
- * @throws IOException For errors during deserialization
- * @throws ClassNotFoundException If the deserialized class cannot be found.
- */
- public static Object deserialize(final byte[] data)
- throws IOException, ClassNotFoundException
- {
- final ByteArrayInputStream bais = new ByteArrayInputStream(data) ;
- final ObjectInputStream ois = new ObjectInputStream(bais) ;
- return ois.readObject() ;
- }
-
- /**
- * Return a string identification for the specified object.
- * @param object The object value.
- * @return The string identification.
- */
- public static String asString(final Object object)
- {
- return (object == null ? "null" : object.getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(object))) ;
- }
-
-
- public static String maskUrlForLog(final String url)
- {
- String results = null;
-
- try
- {
- results = new AMQConnectionURL(url).toString();
- }
- catch(Exception ignore){}
-
- return (results == null) ? url : results;
- }
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/AdminObjectFactory.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/AdminObjectFactory.java
deleted file mode 100644
index 703547e2e8..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/AdminObjectFactory.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-import java.util.Hashtable;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.spi.ObjectFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AdminObjectFactory implements ObjectFactory
-{
- private static final Logger _log = LoggerFactory.getLogger(AdminObjectFactory.class);
-
- @Override
- public Object getObjectInstance(Object object, Name name, Context context, Hashtable<?, ?> env) throws Exception
- {
- if (object instanceof Reference)
- {
- Reference ref = (Reference) object;
- String bindingURLString;
-
- if (ref.getClassName().equals(QpidQueueImpl.class.getName()))
- {
- RefAddr addr = ref.get(QpidQueueImpl.class.getName());
- if (addr != null)
- {
- bindingURLString = (String) addr.getContent();
-
- return new QpidQueueImpl(bindingURLString);
- }
-
- }
-
- if (ref.getClassName().equals(QpidTopicImpl.class.getName()))
- {
- RefAddr addr = ref.get(QpidTopicImpl.class.getName());
-
- if (addr != null)
- {
- bindingURLString = (String) addr.getContent();
- return new QpidTopicImpl(bindingURLString);
- }
- }
- }
- return null;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidBindingURL.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidBindingURL.java
deleted file mode 100644
index 503f59eecc..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidBindingURL.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-import java.net.URISyntaxException;
-
-import org.apache.qpid.url.AMQBindingURL;
-import org.apache.qpid.url.BindingURL;
-
-public class QpidBindingURL extends AMQBindingURL {
-
- private String _url;
-
- public QpidBindingURL(String url) throws URISyntaxException {
- super(url);
-
- if (!url.contains(BindingURL.OPTION_ROUTING_KEY) || getRoutingKey() == null) {
- setOption(BindingURL.OPTION_ROUTING_KEY, null);
- }
-
- this._url = url;
- }
-
- @Override
- public String getURL() {
- return _url;
- }
-
- @Override
- public String toString() {
- return _url;
- }
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidConnectionFactoryProxy.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidConnectionFactoryProxy.java
deleted file mode 100644
index d7ca29e04a..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidConnectionFactoryProxy.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.JMSException;
-import javax.naming.NamingException;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.naming.Reference;
-import javax.naming.Referenceable;
-import javax.naming.spi.ObjectFactory;
-import javax.jms.TopicConnection;
-import javax.jms.TopicConnectionFactory;
-
-import org.apache.qpid.client.AMQConnectionFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- *
- *
- */
-public class QpidConnectionFactoryProxy implements QueueConnectionFactory, TopicConnectionFactory, Externalizable, Referenceable, Serializable
-{
- private static final Logger _log = LoggerFactory.getLogger(QpidDestinationProxy.class);
-
- private String _connectionURL;
-
- private ConnectionFactory _delegate;
-
- /**
- * This constructor should not only be used be de-serialisation code. Create
- * original object with the other constructor.
- */
- public QpidConnectionFactoryProxy()
- {
- }
-
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- {
- Reference ref = (Reference) in.readObject();
-
- try
- {
- _delegate = (ConnectionFactory) dereference(ref);
-
- } catch (Exception e)
- {
- _log.error("Failed to dereference ConnectionFactory " + e.getMessage(), e);
- throw new IOException("Failed to dereference ConnectionFactory: " + e.getMessage());
- }
- }
-
- public void writeExternal(ObjectOutput out) throws IOException
- {
-
- try
- {
- if(_delegate == null)
- {
- getReference();
- }
-
- out.writeObject(((Referenceable) _delegate).getReference());
- }
- catch (Exception e)
- {
- _log.error("Failed to dereference ConnectionFactory " + e.getMessage(), e);
- throw new IOException("Failed to dereference ConnectionFactory: " + e.getMessage());
- }
- }
-
- @Override
- public Reference getReference() throws NamingException
- {
- try
- {
- _delegate = new AMQConnectionFactory(getConnectionURL());
- return ((Referenceable) _delegate).getReference();
- }
- catch(Exception e)
- {
- throw new NamingException(e.getMessage());
- }
- }
- private Object dereference(Reference ref) throws Exception
- {
- ObjectFactory objFactory = (ObjectFactory) Class.forName(
- ref.getFactoryClassName()).newInstance();
- return objFactory.getObjectInstance(ref, null, null, null);
- }
-
- public void setConnectionURL(final String connectionURL)
- {
- this._connectionURL = connectionURL;
- }
- public String getConnectionURL()
- {
- return this._connectionURL;
- }
-
- /**
- * Create a connection
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public Connection createConnection() throws JMSException
- {
- try
- {
- if(_delegate == null)
- {
- getReference();
- }
-
- return _delegate.createConnection();
- }
- catch(Exception e)
- {
- throw new JMSException(e.getMessage());
- }
-
- }
-
- /**
- * Create a connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public Connection createConnection(final String userName, final String password) throws JMSException
- {
- try
- {
- if(_delegate == null)
- {
- getReference();
- }
-
- return _delegate.createConnection(userName, password);
- }
- catch(Exception e)
- {
- throw new JMSException(e.getMessage());
- }
- }
-
- /**
- * Create a queue connection
- * @return The queue connection
- * @exception JMSException Thrown if the operation fails
- */
- public QueueConnection createQueueConnection() throws JMSException
- {
- return (QueueConnection)createConnection();
- }
-
- /**
- * Create a queue connection
- * @param userName The user name
- * @param password The password
- * @return The connection
- * @exception JMSException Thrown if the operation fails
- */
- public QueueConnection createQueueConnection(final String userName, final String password) throws JMSException
- {
- return (QueueConnection)createConnection(userName, password);
- }
-
- /**
- * Create a topic connection
- * @return The topic connection
- * @exception JMSException Thrown if the operation fails
- */
- public TopicConnection createTopicConnection() throws JMSException
- {
- return (TopicConnection)createConnection();
- }
-
- /**
- * Create a topic connection
- * @param userName The user name
- * @param password The password
- * @return The topic connection
- * @exception JMSException Thrown if the operation fails
- */
- public TopicConnection createTopicConnection(final String userName, final String password) throws JMSException
- {
- return (TopicConnection)createConnection(userName, password);
- }
-
-}
-
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidDestinationProxy.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidDestinationProxy.java
deleted file mode 100644
index 7fc84ea69f..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidDestinationProxy.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-
-import javax.jms.Destination;
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.naming.Referenceable;
-import javax.naming.spi.ObjectFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The QpidDestinationProxy provides for allowing an administrator/developer to
- * create and bind QPID destinations into a JNDI tree. AdminObjects are used as
- * an generic integration point rather than relying on the EE server specific
- * API's to create destinations (queues, topics). AdminObjects and associated
- * properties are defined in the ra.xml file for a particular JCA adapter.
- * Please see the ra.xml file for the QPID JCA resource adapter as well as the
- * README.txt for the adapter for more details.
- *
- */
-public class QpidDestinationProxy implements Externalizable, Referenceable, Destination, Serializable
-{
- private static final long serialVersionUID = -1137413782643796461L;
-
- private static final Logger _log = LoggerFactory.getLogger(QpidDestinationProxy.class);
-
- private static final String DEFAULT_QUEUE_TYPE = "QUEUE";
-
- private static final String DEFAULT_TOPIC_TYPE = "TOPIC";
-
- private String _destinationAddress;
-
- private String _destinationType;
-
- private Destination _delegate;
-
- /**
- * This constructor should not only be used be de-serialisation code. Create
- * original object with the other constructor.
- */
- public QpidDestinationProxy()
- {
- }
-
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- {
- Reference ref = (Reference) in.readObject();
-
- try
- {
- _delegate = (Destination) dereference(ref);
-
- } catch (Exception e)
- {
- _log.error("Failed to dereference Destination " + e.getMessage(), e);
- throw new IOException("Failed to dereference Destination: " + e.getMessage());
- }
- }
-
- public void writeExternal(ObjectOutput out) throws IOException
- {
- if (_delegate == null)
- {
- _log.error("Null Destination ");
- throw new IOException("Null destination!");
- }
-
- try
- {
- out.writeObject(((Referenceable) _delegate).getReference());
- }
- catch (NamingException e)
- {
- _log.error("Failed to dereference Destination " + e.getMessage(), e);
- throw new IOException("Failed to dereference Destination: " + e.getMessage());
- }
- }
-
- @Override
- public Reference getReference() throws NamingException
- {
- try
- {
- if(getDestinationType().equalsIgnoreCase(DEFAULT_QUEUE_TYPE))
- {
- _delegate = new QpidQueueImpl(getDestinationAddress());
- }
- else if(getDestinationType().equalsIgnoreCase(DEFAULT_TOPIC_TYPE))
- {
- _delegate = new QpidTopicImpl(getDestinationAddress());
- }
- else
- {
- throw new IllegalStateException("Unknown destination type " + getDestinationType());
- }
-
- return ((Referenceable) _delegate).getReference();
-
- }
- catch(Exception e)
- {
- _log.error(e.getMessage(),e);
- throw new NamingException("Failed to create destination " + e.getMessage());
- }
-
- }
-
- private Object dereference(Reference ref) throws Exception
- {
- ObjectFactory objFactory = (ObjectFactory) Class.forName(
- ref.getFactoryClassName()).newInstance();
- return objFactory.getObjectInstance(ref, null, null, null);
- }
-
- public void setDestinationAddress(String destinationAddress) throws Exception
- {
- this._destinationAddress = destinationAddress;
- }
-
- public String getDestinationAddress()
- {
- return this._destinationAddress;
- }
-
- public void setDestinationType(String destinationType)
- {
- this._destinationType = destinationType;
- }
-
- public String getDestinationType()
- {
- return this._destinationType;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueue.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueue.java
deleted file mode 100644
index 1b93d1c42c..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueue.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-public interface QpidQueue
-{
- public void setDestinationAddress(String destinationAddress) throws Exception;
- public String getDestinationAddress();
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueueImpl.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueueImpl.java
deleted file mode 100644
index e313ba4b0a..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidQueueImpl.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.naming.StringRefAddr;
-
-import org.apache.qpid.client.AMQQueue;
-
-public class QpidQueueImpl extends AMQQueue implements QpidQueue, Externalizable
-{
- private static final long serialVersionUID = 7952672727182960611L;
- private String _url;
-
- public QpidQueueImpl()
- {
- super();
- }
-
- public QpidQueueImpl(final String address) throws Exception
- {
- super(address);
- this._url = address;
- }
-
- @Override
- public Reference getReference() throws NamingException
- {
- return new Reference(this.getClass().getName(), new StringRefAddr(this.getClass().getName(), toURL()),
- AdminObjectFactory.class.getName(), null);
- }
-
- @Override
- public String toURL()
- {
- return _url;
- }
-
- public void setDestinationAddress(String destinationAddress) throws Exception
- {
- this._url = destinationAddress;
- setDestinationString(this._url);
- }
-
-
- public String getDestinationAddress()
- {
- return this._url;
- }
-
- @Override
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- {
- this._url = (String)in.readObject();
-
- try
- {
- setDestinationString(this._url);
-
- }
- catch(Exception e)
- {
- throw new IOException(e.getMessage(), e);
- }
- }
-
- @Override
- public void writeExternal(ObjectOutput out) throws IOException
- {
- out.writeObject(this._url);
- }
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopic.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopic.java
deleted file mode 100644
index f87c35d9e2..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopic.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-public interface QpidTopic
-{
- public void setDestinationAddress(String destinationAddress) throws Exception;
- public String getDestinationAddress();
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopicImpl.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopicImpl.java
deleted file mode 100644
index 37e3c1a3ce..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/admin/QpidTopicImpl.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- *
- * 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.qpid.ra.admin;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.naming.StringRefAddr;
-
-import org.apache.qpid.client.AMQTopic;
-import org.apache.qpid.ra.inflow.QpidActivation;
-
-public class QpidTopicImpl extends AMQTopic implements QpidTopic, Externalizable
-{
- private static final long serialVersionUID = -2872685901706214228L;
- private String _url;
-
- public QpidTopicImpl()
- {
- super();
- }
- public QpidTopicImpl(final String address) throws Exception
- {
- super(address);
- this._url = address;
- }
-
- @Override
- public Reference getReference() throws NamingException
- {
- return new Reference(this.getClass().getName(), new StringRefAddr(this.getClass().getName(), toURL()),
- AdminObjectFactory.class.getName(), null);
- }
-
- @Override
- public String toURL()
- {
- return _url;
- }
-
- public void setDestinationAddress(String destinationAddress) throws Exception
- {
- this._url = destinationAddress;
- setDestinationString(this._url);
- }
-
-
- public String getDestinationAddress()
- {
- return this._url;
- }
-
- @Override
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- {
- this._url = (String)in.readObject();
-
- try
- {
- setDestinationString(this._url);
-
- }
- catch(Exception e)
- {
- throw new IOException(e.getMessage(), e);
- }
- }
-
- @Override
- public void writeExternal(ObjectOutput out) throws IOException
- {
- out.writeObject(this._url);
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivation.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivation.java
deleted file mode 100644
index 2327512a62..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivation.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- *
- * 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.qpid.ra.inflow;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.resource.ResourceException;
-import javax.resource.spi.endpoint.MessageEndpointFactory;
-import javax.resource.spi.work.Work;
-
-import org.apache.qpid.ra.QpidResourceAdapter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The activation.
- *
- */
-public class QpidActivation extends QpidExceptionHandler
-{
- private static final Logger _log = LoggerFactory.getLogger(QpidActivation.class);
-
- private final List<QpidMessageHandler> _handlers = new ArrayList<QpidMessageHandler>();
-
-
- /**
- * Constructor
- *
- * @param ra The resource adapter
- * @param endpointFactory The endpoint factory
- * @param spec The activation spec
- * @throws ResourceException Thrown if an error occurs
- */
- public QpidActivation(final QpidResourceAdapter ra,
- final MessageEndpointFactory endpointFactory,
- final QpidActivationSpec spec) throws ResourceException
- {
- super(ra, spec, endpointFactory);
-
- }
-
- /**
- * Start the activation
- *
- * @throws ResourceException Thrown if an error occurs
- */
- public void start() throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("start()");
- }
- _deliveryActive.set(true);
- new Thread(new SetupActivation()).start();
- }
-
- /**
- * Stop the activation
- */
- public void stop()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("stop()");
- }
-
- _deliveryActive.set(false);
- teardown();
- }
-
- /**
- * Setup the activation
- *
- * @throws Exception Thrown if an error occurs
- */
- public synchronized void setup() throws Exception
- {
- _log.debug("Setting up " + _spec);
- setupCF();
- setupDestination();
-
- if(!_spec.isUseConnectionPerHandler())
- {
- setupConnection();
- _connection.setExceptionListener(this);
- }
-
- for (int i = 0; i < _spec.getMaxSession(); i++)
- {
- try
- {
- QpidMessageHandler handler = null;
-
- if(_spec.isUseConnectionPerHandler())
- {
- handler = new QpidMessageHandler(_ra, _spec, _endpointFactory, _ra.getTM());
- }
- else
- {
- handler = new QpidMessageHandler(_ra, _spec, _endpointFactory, _ra.getTM(), _connection);
- }
-
- handler.start();
- _handlers.add(handler);
- }
- catch(Exception e)
- {
- try
- {
- if(_connection != null)
- {
- this._connection.close();
- }
- }
- catch (Exception e2)
- {
- _log.trace("Ignored error closing connection", e2);
- }
-
- throw e;
-
- }
-
- }
-
- if(!_spec.isUseConnectionPerHandler())
- {
- this._connection.start();
- _activated.set(true);
- }
-
- _log.debug("Setup complete " + this);
- }
-
- /**
- * Teardown the activation
- */
- protected synchronized void teardown()
- {
- _log.debug("Tearing down " + _spec);
-
- super.teardown();
-
- for (QpidMessageHandler handler : _handlers)
- {
- handler.stop();
- }
-
- _log.debug("Tearing down complete " + this);
- }
-
- /**
- * Get a string representation
- *
- * @return The value
- */
- @Override
- public String toString()
- {
- StringBuffer buffer = new StringBuffer();
- buffer.append(QpidActivation.class.getName()).append('(');
- buffer.append("spec=").append(_spec.getClass().getName());
- buffer.append(" mepf=").append(_endpointFactory.getClass().getName());
- buffer.append(" active=").append(_deliveryActive.get());
- if (_spec.getDestination() != null)
- {
- buffer.append(" destination=").append(_spec.getDestination());
- }
- buffer.append(" transacted=").append(_isDeliveryTransacted);
- buffer.append(')');
- return buffer.toString();
- }
-
-
- /**
- * Handles the setup
- */
- private class SetupActivation implements Work
- {
- public void run()
- {
- try
- {
- setup();
- }
- catch (Throwable t)
- {
- handleFailure(t);
- }
- }
-
- public void release()
- {
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivationSpec.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivationSpec.java
deleted file mode 100644
index 9654d06ef3..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidActivationSpec.java
+++ /dev/null
@@ -1,627 +0,0 @@
-/*
- *
- * 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.qpid.ra.inflow;
-
-import java.io.Serializable;
-
-import javax.jms.Session;
-import javax.resource.ResourceException;
-import javax.resource.spi.ActivationSpec;
-import javax.resource.spi.InvalidPropertyException;
-import javax.resource.spi.ResourceAdapter;
-
-import org.apache.qpid.ra.ConnectionFactoryProperties;
-import org.apache.qpid.ra.QpidResourceAdapter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The activation spec
- * These properties are set on the MDB ActivactionProperties
- *
- */
-public class QpidActivationSpec extends ConnectionFactoryProperties implements ActivationSpec, Serializable
-{
- private static final long serialVersionUID = 7379131936083146158L;
-
- private static final int DEFAULT_MAX_SESSION = 15;
-
- /** The logger */
- private static final transient Logger _log = LoggerFactory.getLogger(QpidActivationSpec.class);
-
- /** The resource adapter */
- private QpidResourceAdapter _ra;
-
- /** The destination */
- private String _destination;
-
- /** The destination type */
- private String _destinationType;
-
- /** The message selector */
- private String _messageSelector;
-
- /** The acknowledgement mode */
- private int _acknowledgeMode;
-
- /** The subscription durability */
- private boolean _subscriptionDurability;
-
- /** The subscription name */
- private String _subscriptionName;
-
- /** The maximum number of sessions */
- private Integer _maxSession;
-
- /** Transaction timeout */
- private Integer _transactionTimeout;
-
- /** prefetch low */
- private Integer _prefetchLow;
-
- /** prefetch high */
- private Integer _prefetchHigh;
-
- private boolean _useJNDI = true;
-
- // undefined by default, default is specified at the RA level in QpidRAProperties
- private Integer _setupAttempts;
-
- // undefined by default, default is specified at the RA level in QpidRAProperties
- private Long _setupInterval;
-
- private Boolean _useConnectionPerHandler;
-
- /**
- * Constructor
- */
- public QpidActivationSpec()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("constructor()");
- }
-
- _acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
- _maxSession = DEFAULT_MAX_SESSION;
- _transactionTimeout = 0;
- }
-
- /**
- * Get the resource adapter
- * @return The resource adapter
- */
- public ResourceAdapter getResourceAdapter()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getResourceAdapter()");
- }
-
- return _ra;
- }
-
- /**
- * @return the useJNDI
- */
- public boolean isUseJNDI()
- {
- return _useJNDI;
- }
-
- /**
- * @param value the useJNDI to set
- */
- public void setUseJNDI(final boolean value)
- {
- _useJNDI = value;
- }
-
- /**
- * Set the resource adapter
- * @param ra The resource adapter
- * @exception ResourceException Thrown if incorrect resource adapter
- */
- public void setResourceAdapter(final ResourceAdapter ra) throws ResourceException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setResourceAdapter(" + ra + ")");
- }
-
- if (ra == null || !(ra instanceof QpidResourceAdapter))
- {
- throw new ResourceException("Resource adapter is " + ra);
- }
-
- this._ra = (QpidResourceAdapter)ra;
- }
-
- /**
- * Get the destination
- * @return The value
- */
- public String getDestination()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDestination()");
- }
-
- return _destination;
- }
-
- /**
- * Set the destination
- * @param value The value
- */
- public void setDestination(final String value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDestination(" + value + ")");
- }
-
- _destination = value;
- }
-
- /**
- * Get the destination type
- * @return The value
- */
- public String getDestinationType()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getDestinationType()");
- }
-
- return _destinationType;
- }
-
- /**
- * Set the destination type
- * @param value The value
- */
- public void setDestinationType(final String value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setDestinationType(" + value + ")");
- }
-
- _destinationType = value;
- }
-
- /**
- * Get the message selector
- * @return The value
- */
- public String getMessageSelector()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMessageSelector()");
- }
-
- return _messageSelector;
- }
-
- /**
- * Set the message selector
- * @param value The value
- */
- public void setMessageSelector(final String value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setMessageSelector(" + value + ")");
- }
-
- _messageSelector = value;
- }
-
- /**
- * Get the acknowledge mode
- * @return The value
- */
- public String getAcknowledgeMode()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getAcknowledgeMode()");
- }
-
- if (Session.DUPS_OK_ACKNOWLEDGE == _acknowledgeMode)
- {
- return "Dups-ok-acknowledge";
- }
- else
- {
- return "Auto-acknowledge";
- }
- }
-
- /**
- * Set the acknowledge mode
- * @param value The value
- */
- public void setAcknowledgeMode(final String value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setAcknowledgeMode(" + value + ")");
- }
-
- if ("DUPS_OK_ACKNOWLEDGE".equalsIgnoreCase(value) || "Dups-ok-acknowledge".equalsIgnoreCase(value))
- {
- _acknowledgeMode = Session.DUPS_OK_ACKNOWLEDGE;
- }
- else if ("AUTO_ACKNOWLEDGE".equalsIgnoreCase(value) || "Auto-acknowledge".equalsIgnoreCase(value))
- {
- _acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
- }
- else
- {
- throw new IllegalArgumentException("Unsupported acknowledgement mode " + value);
- }
- }
-
- /**
- * @return the acknowledgement mode
- */
- public int getAcknowledgeModeInt()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getAcknowledgeMode()");
- }
-
- return _acknowledgeMode;
- }
-
- /**
- * Get the subscription durability
- * @return The value
- */
- public String getSubscriptionDurability()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSubscriptionDurability()");
- }
-
- if (_subscriptionDurability)
- {
- return "Durable";
- }
- else
- {
- return "NonDurable";
- }
- }
-
- /**
- * Set the subscription durability
- * @param value The value
- */
- public void setSubscriptionDurability(final String value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSubscriptionDurability(" + value + ")");
- }
-
- _subscriptionDurability = "Durable".equals(value);
- }
-
- /**
- * Get the status of subscription durability
- * @return The value
- */
- public boolean isSubscriptionDurable()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("isSubscriptionDurable()");
- }
-
- return _subscriptionDurability;
- }
-
- /**
- * Get the subscription name
- * @return The value
- */
- public String getSubscriptionName()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSubscriptionName()");
- }
-
- return _subscriptionName;
- }
-
- /**
- * Set the subscription name
- * @param value The value
- */
- public void setSubscriptionName(final String value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSubscriptionName(" + value + ")");
- }
-
- _subscriptionName = value;
- }
-
- /**
- * Get the number of max session
- * @return The value
- */
- public Integer getMaxSession()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getMaxSession()");
- }
-
- if (_maxSession == null)
- {
- return DEFAULT_MAX_SESSION;
- }
-
- return _maxSession;
- }
-
- /**
- * Set the number of max session
- * @param value The value
- */
- public void setMaxSession(final Integer value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setMaxSession(" + value + ")");
- }
-
- _maxSession = value;
- }
-
- /**
- * Get the transaction timeout
- * @return The value
- */
- public Integer getTransactionTimeout()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getTransactionTimeout()");
- }
-
- return _transactionTimeout;
- }
-
- /**
- * Set the transaction timeout
- * @param value The value
- */
- public void setTransactionTimeout(final Integer value)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setTransactionTimeout(" + value + ")");
- }
-
- _transactionTimeout = value;
- }
-
- /**
- * Get the prefetch low
- * @return The value
- */
- public Integer getPrefetchLow()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPrefetchLow()");
- }
-
- return _prefetchLow;
- }
-
- /**
- * Set the prefetch low
- * @param prefetchLow The value
- */
- public void setPrefetchLow(final Integer prefetchLow)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPrefetchLow(" + prefetchLow + ")");
- }
-
- this._prefetchLow = prefetchLow;
- }
-
- /**
- * Get the prefetch high
- * @return The value
- */
- public Integer getPrefetchHigh()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getPrefetchHigh()");
- }
-
- return _prefetchHigh;
- }
-
- /**
- * Set the prefetch high
- * @param prefetchHigh The value
- */
- public void setPrefetchHigh(final Integer prefetchHigh)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setPrefetchHigh(" + prefetchHigh + ")");
- }
-
- this._prefetchHigh = prefetchHigh;
- }
-
- public int getSetupAttempts()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSetupAttempts()");
- }
-
- if (_setupAttempts == null)
- {
- return _ra.getSetupAttempts();
- }
- else
- {
- return _setupAttempts;
- }
- }
-
- public void setSetupAttempts(int setupAttempts)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSetupAttempts(" + setupAttempts + ")");
- }
-
- this._setupAttempts = setupAttempts;
- }
-
- public long getSetupInterval()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("getSetupInterval()");
- }
-
- if (_setupInterval == null)
- {
- return _ra.getSetupInterval();
- }
- else
- {
- return _setupInterval;
- }
- }
-
- public void setSetupInterval(long setupInterval)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setSetupInterval(" + setupInterval + ")");
- }
-
- this._setupInterval = setupInterval;
- }
-
- public Boolean isUseConnectionPerHandler()
- {
- return (_useConnectionPerHandler == null) ? _ra.isUseConnectionPerHandler() : _useConnectionPerHandler;
- }
-
- public void setUseConnectionPerHandler(Boolean connectionPerHandler)
- {
- this._useConnectionPerHandler = connectionPerHandler;
- }
-
- /**
- * Validate
- * @exception InvalidPropertyException Thrown if a validation exception occurs
- */
- public void validate() throws InvalidPropertyException
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("validate()");
- }
-
- if (_destination == null || _destination.trim().equals(""))
- {
- throw new InvalidPropertyException("Destination is mandatory");
- }
- }
-
-
- /**
- * Get a string representation
- * @return The value
- */
- @Override
- public String toString()
- {
- StringBuffer buffer = new StringBuffer();
- buffer.append(QpidActivationSpec.class.getName()).append('(');
- buffer.append("ra=").append(_ra);
- buffer.append(" destination=").append(_destination);
- buffer.append(" destinationType=").append(_destinationType);
-
- if (_messageSelector != null)
- {
- buffer.append(" selector=").append(_messageSelector);
- }
-
- buffer.append(" ack=").append(getAcknowledgeMode());
- buffer.append(" durable=").append(_subscriptionDurability);
- buffer.append(" clientID=").append(getClientId());
-
- if (_subscriptionName != null)
- {
- buffer.append(" subscription=").append(_subscriptionName);
- }
-
- buffer.append(" user=").append(getUserName());
-
- if (getPassword() != null)
- {
- buffer.append(" password=").append("********");
- }
-
- buffer.append(" maxSession=").append(_maxSession);
-
- if (_prefetchLow != null)
- {
- buffer.append(" prefetchLow=").append(_prefetchLow);
- }
- if (_prefetchHigh != null)
- {
- buffer.append(" prefetchHigh=").append(_prefetchHigh);
- }
-
- buffer.append(" connectionPerHandler=").append(isUseConnectionPerHandler());
- buffer.append(')');
-
- return buffer.toString();
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidExceptionHandler.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidExceptionHandler.java
deleted file mode 100644
index edb82796e7..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidExceptionHandler.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- *
- * 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.qpid.ra.inflow;
-
-import java.lang.reflect.Method;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.Destination;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.jms.Queue;
-import javax.jms.Topic;
-import javax.jms.XAConnectionFactory;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.resource.ResourceException;
-import javax.resource.spi.endpoint.MessageEndpointFactory;
-
-import org.apache.qpid.AMQException;
-import org.apache.qpid.client.AMQDestination;
-import org.apache.qpid.protocol.AMQConstant;
-import org.apache.qpid.ra.QpidResourceAdapter;
-import org.apache.qpid.ra.Util;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class QpidExceptionHandler implements ExceptionListener
-{
- private static final Logger _log = LoggerFactory.getLogger(QpidExceptionHandler.class);
-
- public static final Method ONMESSAGE;
-
- protected final MessageEndpointFactory _endpointFactory;
-
- protected Connection _connection;
-
- protected ConnectionFactory _factory;
-
- protected Destination _destination;
-
- protected final QpidResourceAdapter _ra;
-
- protected final QpidActivationSpec _spec;
-
- protected boolean _isDeliveryTransacted;
-
- protected final AtomicBoolean _deliveryActive = new AtomicBoolean(false);
-
- protected boolean _isTopic = false;
-
- // Whether we are in the failure recovery loop
- protected AtomicBoolean _inFailure = new AtomicBoolean(false);
-
- //Whether or not we have completed activating
- protected AtomicBoolean _activated = new AtomicBoolean(false);
-
- static
- {
- try
- {
- ONMESSAGE = MessageListener.class.getMethod("onMessage", new Class[] { Message.class });
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
-
- public abstract void setup() throws Exception;
- public abstract void start() throws Exception;
- public abstract void stop();
-
- protected QpidExceptionHandler(QpidResourceAdapter ra,
- QpidActivationSpec spec,
- MessageEndpointFactory endpointFactory) throws ResourceException
- {
- this._ra = ra;
- this._spec = spec;
- this._endpointFactory = endpointFactory;
-
- try
- {
- _isDeliveryTransacted = endpointFactory.isDeliveryTransacted(QpidActivation.ONMESSAGE);
- }
- catch (Exception e)
- {
- throw new ResourceException(e);
- }
-
-
- }
-
- public void onException(JMSException e)
- {
- if(_activated.get())
- {
- handleFailure(e) ;
- }
- else
- {
- _log.warn("Received JMSException: " + e + " while endpoint was not activated.");
- }
- }
-
- /**
- * Handles any failure by trying to reconnect
- *
- * @param failure the reason for the failure
- */
- public void handleFailure(Throwable failure)
- {
- if(doesNotExist(failure))
- {
- _log.info("awaiting topic/queue creation " + _spec.getDestination());
- }
- else
- {
- _log.warn("Failure in Qpid activation " + _spec, failure);
- }
- int reconnectCount = 0;
- int setupAttempts = _spec.getSetupAttempts();
- long setupInterval = _spec.getSetupInterval();
-
- // Only enter the failure loop once
- if (_inFailure.getAndSet(true))
- return;
- try
- {
- while (_deliveryActive.get() && (setupAttempts == -1 || reconnectCount < setupAttempts))
- {
- teardown();
-
- try
- {
- Thread.sleep(setupInterval);
- }
- catch (InterruptedException e)
- {
- _log.debug("Interrupted trying to reconnect " + _spec, e);
- break;
- }
-
- _log.info("Attempting to reconnect " + _spec);
- try
- {
- setup();
- _log.info("Reconnected with Qpid");
- break;
- }
- catch (Throwable t)
- {
- if(doesNotExist(failure))
- {
- _log.info("awaiting topic/queue creation " + _spec.getDestination());
- }
- else
- {
- _log.error("Unable to reconnect " + _spec, t);
- }
- }
- ++reconnectCount;
- }
- }
- finally
- {
- // Leaving failure recovery loop
- _inFailure.set(false);
- }
- }
-
- /**
- * Check to see if the failure represents a missing endpoint
- * @param failure The failure.
- * @return true if it represents a missing endpoint, false otherwise
- */
- protected boolean doesNotExist(final Throwable failure)
- {
- return (failure instanceof AMQException) && (((AMQException)failure).getErrorCode() == AMQConstant.NOT_FOUND) ;
- }
-
- protected boolean isXA()
- {
- return _isDeliveryTransacted && !_spec.isUseLocalTx();
- }
-
- protected void setupConnection() throws Exception
- {
- this._connection = (isXA()) ? ((XAConnectionFactory)_factory).createXAConnection() : _factory.createConnection();
- }
-
- protected synchronized void teardown()
- {
- _log.debug("Tearing down " + _spec);
-
- try
- {
- if (_connection != null)
- {
- _connection.stop();
- }
- }
- catch (Throwable t)
- {
- _log.debug("Error stopping connection " + Util.asString(_connection), t);
- }
-
- try
- {
- if (_connection != null)
- {
- _connection.close();
- }
- }
- catch (Throwable t)
- {
- _log.debug("Error closing connection " + Util.asString(_connection), t);
- }
- if (_spec.isHasBeenUpdated())
- {
- _factory = null;
- }
- _log.debug("Tearing down complete " + this);
- }
-
- protected void setupCF() throws Exception
- {
- if (_spec.isHasBeenUpdated())
- {
- _factory = _ra.createAMQConnectionFactory(_spec);
- }
- else
- {
- _factory = _ra.getDefaultAMQConnectionFactory();
- }
- }
-
- protected void setupDestination() throws Exception
- {
-
- String destinationName = _spec.getDestination();
- String destinationTypeString = _spec.getDestinationType();
-
- if (_spec.isUseJNDI())
- {
- Context ctx = new InitialContext();
- _log.debug("Using context " + ctx.getEnvironment() + " for " + _spec);
- if (_log.isTraceEnabled())
- {
- _log.trace("setupDestination(" + ctx + ")");
- }
-
- if (destinationTypeString != null && !destinationTypeString.trim().equals(""))
- {
- _log.debug("Destination type defined as " + destinationTypeString);
-
- Class<? extends Destination> destinationType;
- if (Topic.class.getName().equals(destinationTypeString))
- {
- destinationType = Topic.class;
- _isTopic = true;
- }
- else
- {
- destinationType = Queue.class;
- }
-
- _log.debug("Retrieving destination " + destinationName +
- " of type " +
- destinationType.getName());
- _destination = Util.lookup(ctx, destinationName, destinationType);
-
- }
- else
- {
- _log.debug("Destination type not defined");
- _log.debug("Retrieving destination " + destinationName +
- " of type " +
- Destination.class.getName());
-
- _destination = Util.lookup(ctx, destinationName, AMQDestination.class);
- _isTopic = !(_destination instanceof Queue) ;
- }
- }
- else
- {
- _destination = (AMQDestination)AMQDestination.createDestination(_spec.getDestination(), false);
-
- if (destinationTypeString != null && !destinationTypeString.trim().equals(""))
- {
- _log.debug("Destination type defined as " + destinationTypeString);
- final boolean match ;
- if (Topic.class.getName().equals(destinationTypeString))
- {
- match = (_destination instanceof Topic) ;
- _isTopic = true;
- }
- else
- {
- match = (_destination instanceof Queue) ;
- }
- if (!match)
- {
- throw new ClassCastException("Expected destination of type " + destinationTypeString + " but created destination " + _destination) ;
- }
- }
- else
- {
- _isTopic = !(_destination instanceof Queue) ;
- }
- }
-
- _log.debug("Got destination " + _destination + " from " + destinationName);
- }
-
-
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidMessageHandler.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidMessageHandler.java
deleted file mode 100644
index a02adf0dad..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/inflow/QpidMessageHandler.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- *
- * 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.qpid.ra.inflow;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageListener;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.Topic;
-import javax.jms.XASession;
-import javax.resource.ResourceException;
-import javax.resource.spi.endpoint.MessageEndpoint;
-import javax.resource.spi.endpoint.MessageEndpointFactory;
-import javax.transaction.Status;
-import javax.transaction.TransactionManager;
-import javax.transaction.xa.XAResource;
-
-import org.apache.qpid.client.AMQConnection;
-import org.apache.qpid.client.XAConnectionImpl;
-import org.apache.qpid.ra.QpidResourceAdapter;
-import org.apache.qpid.ra.Util;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The message handler
- *
- */
-public class QpidMessageHandler extends QpidExceptionHandler implements MessageListener
-{
- private static final Logger _log = LoggerFactory.getLogger(QpidMessageHandler.class);
-
- private MessageConsumer _consumer;
-
- private MessageEndpoint _endpoint;
-
- private Session _session;
-
- private final TransactionManager _tm;
-
- public QpidMessageHandler(final QpidResourceAdapter ra,
- final QpidActivationSpec spec,
- final MessageEndpointFactory endpointFactory,
- final TransactionManager tm,
- final Connection connection) throws ResourceException
- {
- super(ra, spec, endpointFactory);
- this._tm = tm;
- this._connection = connection;
- }
-
- public QpidMessageHandler(final QpidResourceAdapter ra,
- final QpidActivationSpec spec,
- final MessageEndpointFactory endpointFactory,
- final TransactionManager tm) throws ResourceException
- {
- super(ra, spec, endpointFactory);
- this._tm = tm;
- }
-
- public void setup() throws Exception
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("setup()");
- }
-
- setupCF();
- setupDestination();
- String selector = _spec.getMessageSelector();
-
- if(_spec.isUseConnectionPerHandler())
- {
- setupConnection();
- _connection.setExceptionListener(this);
- }
-
- if(isXA())
- {
- _session = _ra.createXASession((XAConnectionImpl)_connection);
- }
- else
- {
- _session = _ra.createSession((AMQConnection)_connection,
- _spec.getAcknowledgeModeInt(),
- _spec.isUseLocalTx(),
- _spec.getPrefetchLow(),
- _spec.getPrefetchHigh());
- }
- // Create the message consumer
- if (_isTopic)
- {
- final Topic topic = (Topic) _destination;
- final String subscriptionName = _spec.getSubscriptionName();
-
- if (_spec.isSubscriptionDurable())
- {
- _consumer = _session.createDurableSubscriber(topic, subscriptionName, selector, false);
- }
- else
- {
- _consumer = _session.createConsumer(topic, selector) ;
- }
- }
- else
- {
- final Queue queue = (Queue) _destination;
- _consumer = _session.createConsumer(queue, selector);
- }
-
- if (isXA())
- {
- final XAResource xaResource = ((XASession)_session).getXAResource() ;
- _endpoint = _endpointFactory.createEndpoint(xaResource);
- }
- else
- {
- _endpoint = _endpointFactory.createEndpoint(null);
- }
- _consumer.setMessageListener(this);
- _connection.start();
- _activated.set(true);
- }
-
- /**
- * Stop the handler
- */
- public void teardown()
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("teardown()");
- }
-
- super.teardown();
-
- try
- {
- if (_endpoint != null)
- {
- _endpoint.release();
- _endpoint = null;
- }
- }
- catch (Throwable t)
- {
- _log.debug("Error releasing endpoint " + _endpoint, t);
- }
- }
-
- public void onMessage(final Message message)
- {
- if (_log.isTraceEnabled())
- {
- _log.trace("onMessage(" + Util.asString(message) + ")");
- }
-
- boolean beforeDelivery = false;
-
- try
- {
- if (_spec.getTransactionTimeout() > 0 && _tm != null)
- {
- _tm.setTransactionTimeout(_spec.getTransactionTimeout());
- }
-
- _endpoint.beforeDelivery(QpidActivation.ONMESSAGE);
- beforeDelivery = true;
-
- if(isXA())
- {
- message.acknowledge();
- }
-
- ((MessageListener)_endpoint).onMessage(message);
-
- if (isXA() && (_tm.getTransaction() != null))
- {
- final int status = _tm.getStatus() ;
- final boolean rollback = status == Status.STATUS_MARKED_ROLLBACK
- || status == Status.STATUS_ROLLING_BACK
- || status == Status.STATUS_ROLLEDBACK;
-
- if (rollback)
- {
- _session.recover() ;
- }
- }
- else
- {
- message.acknowledge();
- }
-
- try
- {
- _endpoint.afterDelivery();
- }
- catch (ResourceException e)
- {
- _log.warn("Unable to call after delivery", e);
- return;
- }
- if (!isXA() && _spec.isUseLocalTx())
- {
- _session.commit();
- }
- }
- catch (Throwable e)
- {
- _log.error("Failed to deliver message", e);
- // we need to call before/afterDelivery as a pair
- if (beforeDelivery)
- {
- try
- {
- _endpoint.afterDelivery();
- }
- catch (ResourceException e1)
- {
- _log.warn("Unable to call after delivery", e);
- }
- }
- if (!isXA() && _spec.isUseLocalTx())
- {
- try
- {
- _session.rollback();
- }
- catch (JMSException e1)
- {
- _log.warn("Unable to roll local transaction back", e1);
- }
- }
- else
- {
- try
- {
- _session.recover() ;
- }
- catch (JMSException e1)
- {
- _log.warn("Unable to recover XA transaction", e1);
- }
- }
- }
-
- }
-
- public void start() throws Exception
- {
- _deliveryActive.set(true);
- setup();
- }
-
- public void stop()
- {
- _deliveryActive.set(false);
- teardown();
- }
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GeronimoTransactionManagerLocator.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GeronimoTransactionManagerLocator.java
deleted file mode 100644
index 3a47824631..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GeronimoTransactionManagerLocator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.qpid.ra.tm;
-
-import java.util.Set;
-
-import javax.transaction.TransactionManager;
-
-import org.apache.geronimo.gbean.AbstractName;
-import org.apache.geronimo.gbean.AbstractNameQuery;
-import org.apache.geronimo.kernel.Kernel;
-import org.apache.geronimo.kernel.KernelRegistry;
-
-public class GeronimoTransactionManagerLocator
-{
-
- public GeronimoTransactionManagerLocator()
- {
- }
-
- public TransactionManager getTransactionManager()
- {
- try
- {
- Kernel kernel = KernelRegistry.getSingleKernel();
- AbstractNameQuery query = new AbstractNameQuery(TransactionManager.class.getName ());
- Set<AbstractName> names = kernel.listGBeans(query);
-
- if (names.size() != 1)
- {
- throw new IllegalStateException("Expected one transaction manager, not " + names.size());
- }
-
- AbstractName name = names.iterator().next();
- TransactionManager transMg = (TransactionManager) kernel.getGBean(name);
- return (TransactionManager)transMg;
-
- }
- catch(Exception e)
- {
- throw new RuntimeException(e);
- }
- }
-
-
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GlassfishTransactionManagerLocator.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GlassfishTransactionManagerLocator.java
deleted file mode 100644
index cff53d2710..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/GlassfishTransactionManagerLocator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.qpid.ra.tm;
-
-
-import javax.naming.InitialContext;
-import javax.transaction.TransactionManager;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class GlassfishTransactionManagerLocator
-{
- private static final Logger _log = LoggerFactory.getLogger(GlassfishTransactionManagerLocator.class);
-
- private static final String TM_JNDI_NAME = "java:appserver/TransactionManager";
-
- public TransactionManager getTm() throws Exception
- {
- InitialContext ctx = null;
- TransactionManager tm = null;
-
- try
- {
- ctx = new InitialContext();
- tm = (TransactionManager)ctx.lookup(TM_JNDI_NAME);
- }
- catch(Exception e)
- {
- _log.error("Error attempting to location TM " + e.getMessage());
- }
- finally
- {
- try
- {
- if(ctx != null)
- {
- ctx.close();
- }
- }
- catch(Exception ignore){}
- }
-
- return tm;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBoss7TransactionManagerLocator.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBoss7TransactionManagerLocator.java
deleted file mode 100644
index 6103433cbf..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBoss7TransactionManagerLocator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *
- * 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.qpid.ra.tm;
-
-import javax.naming.InitialContext;
-import javax.transaction.TransactionManager;
-
-public class JBoss7TransactionManagerLocator
-{
- private static final String TM_JNDI_NAME = "java:jboss/TransactionManager";
-
- public TransactionManager getTm() throws Exception
- {
- InitialContext ctx = null;
-
- try
- {
- ctx = new InitialContext();
- return (TransactionManager)ctx.lookup(TM_JNDI_NAME);
- }
- finally
- {
- try
- {
- if(ctx != null)
- {
- ctx.close();
- }
- }
- catch(Exception ignore)
- {
- }
- }
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBossTransactionManagerLocator.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBossTransactionManagerLocator.java
deleted file mode 100644
index 5a5b585984..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/JBossTransactionManagerLocator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
- * 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.qpid.ra.tm;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import javax.transaction.TransactionManager;
-
-/**
- */
-public class JBossTransactionManagerLocator
-{
- private final String LOCATOR = "org.jboss.tm.TransactionManagerLocator" ;
-
- public TransactionManager getTm()
- throws SecurityException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
- {
- final ClassLoader classLoader = Thread.currentThread().getContextClassLoader() ;
- final Class<?> locatorClass ;
- try
- {
- locatorClass = classLoader.loadClass(LOCATOR) ;
- }
- catch (final ClassNotFoundException cnfe)
- {
- return null ;
- }
-
- Method instanceMethod = null ;
- try
- {
- instanceMethod = locatorClass.getMethod("getInstance") ;
- }
- catch (final NoSuchMethodException nsme) {} // ignore
-
- final Object instance ;
- final String locatorMethodName ;
- if (instanceMethod != null)
- {
- instance = instanceMethod.invoke(null) ;
- locatorMethodName = "locate" ;
- }
- else
- {
- instance = null ;
- locatorMethodName = "locateTransactionManager" ;
- }
- final Method locatorMethod = locatorClass.getMethod(locatorMethodName) ;
- return (TransactionManager) locatorMethod.invoke(instance) ;
- }
-}
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/WLSTransactionManagerLocator.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/WLSTransactionManagerLocator.java
deleted file mode 100644
index 29e673d28e..0000000000
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/tm/WLSTransactionManagerLocator.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.qpid.ra.tm;
-
-
-import javax.naming.InitialContext;
-import javax.transaction.TransactionManager;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class WLSTransactionManagerLocator
-{
- private static final Logger _log = LoggerFactory.getLogger(WLSTransactionManagerLocator.class);
-
- private static final String TM_JNDI_NAME = "javax.transaction.TransactionManager";
-
- public TransactionManager getTm() throws Exception
- {
- InitialContext ctx = null;
- TransactionManager tm = null;
-
- try
- {
- ctx = new InitialContext();
- tm = (TransactionManager)ctx.lookup(TM_JNDI_NAME);
- }
- catch(Exception e)
- {
- _log.error("Unable to locate javax.transaction.TransactionManager " + e.getMessage());
- }
- finally
- {
- try
- {
- if(ctx != null)
- {
- ctx.close();
- }
- }
- catch(Exception ignore){}
- }
-
- return tm;
- }
-}
-
diff --git a/qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidActivationSpecTest.java b/qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidActivationSpecTest.java
deleted file mode 100644
index e811427223..0000000000
--- a/qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidActivationSpecTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectOutputStream;
-
-import javax.resource.spi.ResourceAdapterInternalException;
-
-import org.apache.qpid.ra.inflow.QpidActivationSpec;
-
-import junit.framework.TestCase;
-
-public class QpidActivationSpecTest extends TestCase
-{
-
- public void testActivationSpecBasicSerialization() throws Exception
- {
- QpidActivationSpec spec = new QpidActivationSpec();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(out);
- oos.writeObject(spec);
- oos.close();
- assertTrue(out.toByteArray().length > 0);
- }
-
-}
diff --git a/qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidResourceAdapterTest.java b/qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidResourceAdapterTest.java
deleted file mode 100644
index a6788a72c5..0000000000
--- a/qpid/java/jca/src/test/java/org/apache/qpid/ra/QpidResourceAdapterTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *
- * 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.qpid.ra;
-
-import javax.resource.spi.ResourceAdapterInternalException;
-
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectOutputStream;
-
-import junit.framework.TestCase;
-
-
-public class QpidResourceAdapterTest extends TestCase
-{
- public void testGetXAResources() throws Exception
- {
- QpidResourceAdapter ra = new QpidResourceAdapter();
- assertNull(ra.getXAResources(null));
- }
-
- public void testTransactionManagerLocatorException() throws Exception
- {
-
- QpidResourceAdapter ra = new QpidResourceAdapter();
- assertNull(ra.getTransactionManagerLocatorClass());
- assertNull(ra.getTransactionManagerLocatorMethod());
-
- try
- {
- ra.start(null);
- }
- catch(ResourceAdapterInternalException e)
- {
-
- }
-
- ra.setTransactionManagerLocatorClass("DummyLocator");
-
- try
- {
- ra.start(null);
- }
- catch(ResourceAdapterInternalException e)
- {
-
- }
-
- }
-
- public void testResourceAdapterBasicSerialization() throws Exception
- {
-
- QpidResourceAdapter ra = new QpidResourceAdapter();
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(out);
- oos.writeObject(ra);
- oos.close();
- assertTrue(out.toByteArray().length > 0);
- }
-}