http://git-wip-us.apache.org/repos/asf/activemq-6/blob/034adfbf/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRALogger.java ---------------------------------------------------------------------- diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRALogger.java b/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRALogger.java deleted file mode 100644 index d582e50..0000000 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRALogger.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2005-2014 Red Hat, Inc. - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package org.apache.activemq.ra; - -import org.apache.activemq.ra.inflow.HornetQActivationSpec; -import org.jboss.logging.BasicLogger; -import org.jboss.logging.Logger; -import org.jboss.logging.annotations.Cause; -import org.jboss.logging.annotations.LogMessage; -import org.jboss.logging.annotations.Message; -import org.jboss.logging.annotations.MessageLogger; - -/** - * Logger Code 15 - * <p/> - * each message id must be 6 digits long starting with 15, the 3rd digit donates - * the level so - * <p/> - * <pre> - * INF0 1 - * WARN 2 - * DEBUG 3 - * ERROR 4 - * TRACE 5 - * FATAL 6 - * </pre> - * <p/> - * so an INFO message would be 151000 to 151999 - * - * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> 3/15/12 - */ -@MessageLogger(projectCode = "HQ") -public interface HornetQRALogger extends BasicLogger -{ - /** - * The default logger. - */ - HornetQRALogger LOGGER = Logger.getMessageLogger(HornetQRALogger.class, HornetQRALogger.class.getPackage().getName()); - - @LogMessage(level = Logger.Level.INFO) - @Message(id = 151000, value = "awaiting topic/queue creation {0}", format = Message.Format.MESSAGE_FORMAT) - void awaitingTopicQueueCreation(String destination); - - @LogMessage(level = Logger.Level.INFO) - @Message(id = 151001, value = "Attempting to reconnect {0}", format = Message.Format.MESSAGE_FORMAT) - void attemptingReconnect(HornetQActivationSpec spec); - - @LogMessage(level = Logger.Level.INFO) - @Message(id = 151002, value = "Reconnected with HornetQ", format = Message.Format.MESSAGE_FORMAT) - void reconnected(); - - @LogMessage(level = Logger.Level.INFO) - @Message(id = 151003, value = "HornetQ resource adaptor stopped", format = Message.Format.MESSAGE_FORMAT) - void raStopped(); - - @LogMessage(level = Logger.Level.INFO) - @Message(id = 151004, value = "Instantiating {0} \"{1}\" directly since UseJNDI=false.", format = Message.Format.MESSAGE_FORMAT) - void instantiatingDestination(String destinationType, String destination); - - @LogMessage(level = Logger.Level.INFO) - @Message(id = 151005, value = "awaiting HornetQ Server availability", format = Message.Format.MESSAGE_FORMAT) - void awaitingJMSServerCreation(); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152000, value = "It wasn''t possible to lookup for a Transaction Manager through the configured properties TransactionManagerLocatorClass and TransactionManagerLocatorMethod\nHornetQ Resource Adapter won''t be able to set and verify transaction timeouts in certain cases.", format = Message.Format.MESSAGE_FORMAT) - void noTXLocator(); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152001, value = "problem resetting HornetQ xa session after failure", format = Message.Format.MESSAGE_FORMAT) - void problemResettingXASession(); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152002, value = "Unable to roll local transaction back", format = Message.Format.MESSAGE_FORMAT) - void unableToRollbackTX(); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152003, value = "unable to reset session after failure", format = Message.Format.MESSAGE_FORMAT) - void unableToResetSession(); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152004, value = "Handling JMS exception failure", format = Message.Format.MESSAGE_FORMAT) - void handlingJMSFailure(@Cause Exception e); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152005, value = "Failure in HornetQ activation {0}", format = Message.Format.MESSAGE_FORMAT) - void failureInActivation(@Cause Throwable t, HornetQActivationSpec spec); - - @LogMessage(level = Logger.Level.WARN) - @Message(id = 152006, value = "Unable to call after delivery", format = Message.Format.MESSAGE_FORMAT) - void unableToCallAfterDelivery(@Cause Exception e); - - @LogMessage(level = Logger.Level.ERROR) - @Message(id = 154000, value = "Error while creating object Reference.", format = Message.Format.MESSAGE_FORMAT) - void errorCreatingReference(@Cause Exception e); - - @LogMessage(level = Logger.Level.ERROR) - @Message(id = 154001, value = "Unable to stop HornetQ resource adapter.", format = Message.Format.MESSAGE_FORMAT) - void errorStoppingRA(@Cause Exception e); - - @LogMessage(level = Logger.Level.ERROR) - @Message(id = 154003, value = "Unable to reconnect {0}", format = Message.Format.MESSAGE_FORMAT) - void errorReconnecting(@Cause Throwable t, HornetQActivationSpec spec); - - @LogMessage(level = Logger.Level.ERROR) - @Message(id = 154004, value = "Failed to deliver message", format = Message.Format.MESSAGE_FORMAT) - void errorDeliveringMessage(@Cause Throwable t); - - @LogMessage(level = Logger.Level.DEBUG) - @Message(id = 153001, value = "using different HornetQRAConnectionFactory", format = Message.Format.MESSAGE_FORMAT) - void warnDifferentConnectionfactory(); -}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/034adfbf/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMCFProperties.java ---------------------------------------------------------------------- diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMCFProperties.java b/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMCFProperties.java deleted file mode 100644 index a161027..0000000 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMCFProperties.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright 2005-2014 Red Hat, Inc. - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package org.apache.activemq.ra; - -import java.io.Serializable; - -import javax.jms.Queue; -import javax.jms.Topic; - - -/** - * The MCF default properties - these are set in the <tx-connection-factory> at the jms-ds.xml - * - * @author <a href="mailto:adr...@jboss.com">Adrian Brock</a> - * @author <a href="mailto:jesper.peder...@jboss.org">Jesper Pedersen</a> - * @author <a href="mailto:clebert.suco...@jboss.org">Clebert Suconic</a> - * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> - */ -public class HornetQRAMCFProperties extends ConnectionFactoryProperties implements Serializable -{ - /** - * Serial version UID - */ - static final long serialVersionUID = -5951352236582886862L; - /** - * Trace enabled - */ - private static boolean trace = HornetQRALogger.LOGGER.isTraceEnabled(); - - /** - * The queue type - */ - private static final String QUEUE_TYPE = Queue.class.getName(); - - /** - * The topic type - */ - private static final String TOPIC_TYPE = Topic.class.getName(); - - - private String strConnectorClassName; - - public String strConnectionParameters; - - /** - * The connection type - */ - private int type = HornetQRAConnectionFactory.CONNECTION; - - /** - * Use tryLock - */ - private Integer useTryLock; - - /** - * Constructor - */ - public HornetQRAMCFProperties() - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("constructor()"); - } - - useTryLock = null; - } - - /** - * Get the connection type - * - * @return The type - */ - public int getType() - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("getType()"); - } - - return type; - } - - public String getConnectorClassName() - { - return strConnectorClassName; - } - - public void setConnectorClassName(final String connectorClassName) - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("setConnectorClassName(" + connectorClassName + ")"); - } - - strConnectorClassName = connectorClassName; - - setParsedConnectorClassNames(HornetQRaUtils.parseConnectorConnectorConfig(connectorClassName)); - } - /** - * @return the connectionParameters - */ - public String getStrConnectionParameters() - { - return strConnectionParameters; - } - - public void setConnectionParameters(final String configuration) - { - strConnectionParameters = configuration; - setParsedConnectionParameters(HornetQRaUtils.parseConfig(configuration)); - } - - /** - * Set the default session type. - * - * @param defaultType either javax.jms.Topic or javax.jms.Queue - */ - public void setSessionDefaultType(final String defaultType) - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("setSessionDefaultType(" + type + ")"); - } - - if (defaultType.equals(HornetQRAMCFProperties.QUEUE_TYPE)) - { - type = HornetQRAConnectionFactory.QUEUE_CONNECTION; - } - else if (defaultType.equals(HornetQRAMCFProperties.TOPIC_TYPE)) - { - type = HornetQRAConnectionFactory.TOPIC_CONNECTION; - } - else - { - type = HornetQRAConnectionFactory.CONNECTION; - } - } - - /** - * Get the default session type. - * - * @return The default session type - */ - public String getSessionDefaultType() - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("getSessionDefaultType()"); - } - - if (type == HornetQRAConnectionFactory.CONNECTION) - { - return "BOTH"; - } - else if (type == HornetQRAConnectionFactory.QUEUE_CONNECTION) - { - return HornetQRAMCFProperties.TOPIC_TYPE; - } - else - { - return HornetQRAMCFProperties.QUEUE_TYPE; - } - } - - /** - * Get the useTryLock. - * - * @return the useTryLock. - */ - public Integer getUseTryLock() - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("getUseTryLock()"); - } - - return useTryLock; - } - - /** - * Set the useTryLock. - * - * @param useTryLock the useTryLock. - */ - public void setUseTryLock(final Integer useTryLock) - { - if (HornetQRAMCFProperties.trace) - { - HornetQRALogger.LOGGER.trace("setUseTryLock(" + useTryLock + ")"); - } - - this.useTryLock = useTryLock; - } -} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/034adfbf/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnection.java ---------------------------------------------------------------------- diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnection.java b/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnection.java deleted file mode 100644 index d61c2b5..0000000 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnection.java +++ /dev/null @@ -1,921 +0,0 @@ -/* - * Copyright 2005-2014 Red Hat, Inc. - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package org.apache.activemq.ra; - -import javax.jms.ExceptionListener; -import javax.jms.JMSException; -import javax.jms.ResourceAllocationException; -import javax.jms.Session; -import javax.jms.XASession; -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 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 org.apache.activemq.core.client.impl.ClientSessionInternal; -import org.apache.activemq.jms.client.HornetQConnection; -import org.apache.activemq.jms.client.HornetQConnectionFactory; -import org.apache.activemq.jms.client.HornetQXAConnection; - -/** - * The managed connection - * - * @author <a href="mailto:adr...@jboss.com">Adrian Brock</a> - * @author <a href="mailto:jesper.peder...@jboss.org">Jesper Pedersen</a> - * @author <a href="mailto:mtay...@redhat.com">Martyn Taylor</a> - */ -public final class HornetQRAManagedConnection implements ManagedConnection, ExceptionListener -{ - /** - * Trace enabled - */ - private static boolean trace = HornetQRALogger.LOGGER.isTraceEnabled(); - - /** - * The managed connection factory - */ - private final HornetQRAManagedConnectionFactory mcf; - - /** - * The connection request information - */ - private final HornetQRAConnectionRequestInfo cri; - - /** - * The resource adapter - */ - private final HornetQResourceAdapter ra; - - /** - * 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<HornetQRASession> handles; - - /** - * Lock - */ - private ReentrantLock lock = new ReentrantLock(); - - // Physical connection stuff - private HornetQConnectionFactory connectionFactory; - - private HornetQXAConnection connection; - - // The ManagedConnection will play with a XA and a NonXASession to couple with - // cases where a commit is called on a non-XAed (or non-enlisted) case. - private Session nonXAsession; - - private XASession xaSession; - - private XAResource xaResource; - - 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 HornetQRAManagedConnection(final HornetQRAManagedConnectionFactory mcf, - final HornetQRAConnectionRequestInfo cri, - final HornetQResourceAdapter ra, - final String userName, - final String password) throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("constructor(" + mcf + ", " + cri + ", " + userName + ", ****)"); - } - - this.mcf = mcf; - this.cri = cri; - this.tm = ra.getTM(); - this.ra = ra; - this.userName = userName; - this.password = password; - eventListeners = Collections.synchronizedList(new ArrayList<ConnectionEventListener>()); - handles = Collections.synchronizedSet(new HashSet<HornetQRASession>()); - - connection = null; - nonXAsession = null; - xaSession = null; - xaResource = null; - - try - { - setup(); - } - catch (ResourceException e) - { - try - { - destroy(); - } - catch (Throwable ignored) - { - } - - throw e; - } - 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 - * @throws ResourceException Thrown if an error occurs - */ - public synchronized Object getConnection(final Subject subject, final ConnectionRequestInfo cxRequestInfo) throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getConnection(" + subject + ", " + cxRequestInfo + ")"); - } - - // Check user first - HornetQRACredential credential = HornetQRACredential.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"); - } - - HornetQRASession session = new HornetQRASession(this, (HornetQRAConnectionRequestInfo) cxRequestInfo); - handles.add(session); - return session; - } - - /** - * Destroy all handles. - * - * @throws ResourceException Failed to close one or more handles. - */ - private void destroyHandles() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("destroyHandles()"); - } - - try - { - - if (connection != null) - { - connection.stop(); - } - } - catch (Throwable t) - { - HornetQRALogger.LOGGER.trace("Ignored error stopping connection", t); - } - - for (HornetQRASession session : handles) - { - session.destroy(); - } - - handles.clear(); - } - - /** - * Destroy the physical connection. - * - * @throws ResourceException Could not property close the session and connection. - */ - public void destroy() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("destroy()"); - } - - if (isDestroyed.get() || connection == null) - { - return; - } - - isDestroyed.set(true); - - try - { - connection.setExceptionListener(null); - } - catch (JMSException e) - { - HornetQRALogger.LOGGER.debug("Error unsetting the exception listener " + this, e); - } - if (connection != null) - { - connection.signalStopToAllSessions(); - } - - destroyHandles(); - - try - { - /** - * (xa|nonXA)Session.close() may NOT be called BEFORE connection.close() - * <p> - * If the ClientSessionFactory is trying to fail-over or reconnect with -1 attempts, and - * one calls session.close() it may effectively dead-lock. - * <p> - * connection close will close the ClientSessionFactory which will close all sessions. - */ - if (connection != null) - { - connection.close(); - } - - // The following calls should not be necessary, as the connection should close the - // ClientSessionFactory, which will close the sessions. - try - { - if (nonXAsession != null) - { - nonXAsession.close(); - } - - if (xaSession != null) - { - xaSession.close(); - } - } - catch (JMSException e) - { - HornetQRALogger.LOGGER.debug("Error closing session " + this, e); - } - - // we must close the HornetQConnectionFactory because it contains a ServerLocator - if (connectionFactory != null) - { - connectionFactory.close(); - } - } - catch (Throwable e) - { - throw new ResourceException("Could not properly close the session and connection", e); - } - } - - /** - * Cleanup - * - * @throws ResourceException Thrown if an error occurs - */ - public void cleanup() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("cleanup()"); - } - - if (isDestroyed.get()) - { - throw new IllegalStateException("ManagedConnection already destroyed"); - } - - destroyHandles(); - - inManagedTx = false; - - 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 HornetQSession. - * @throws ResourceException Failed to associate connection. - * @throws IllegalStateException ManagedConnection in an illegal state. - */ - public void associateConnection(final Object obj) throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("associateConnection(" + obj + ")"); - } - - if (!isDestroyed.get() && obj instanceof HornetQRASession) - { - HornetQRASession h = (HornetQRASession) 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 (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("lock()"); - } - - lock.lock(); - } - - /** - * Aqquire a lock on the managed connection within the specified period - * - * @throws JMSException Thrown if an error occurs - */ - protected void tryLock() throws JMSException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("unlock()"); - } - - lock.unlock(); - } - - /** - * Add a connection event listener. - * - * @param l The connection event listener to be added. - */ - public void addConnectionEventListener(final ConnectionEventListener l) - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("removeConnectionEventListener(" + l + ")"); - } - - eventListeners.remove(l); - } - - /** - * Get the XAResource for the connection. - * - * @return The XAResource for the connection. - * @throws ResourceException XA transaction not supported - */ - public XAResource getXAResource() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getXAResource()"); - } - - // - // Spec says a mc must always return the same XA resource, - // so we cache it. - // - if (xaResource == null) - { - ClientSessionInternal csi = (ClientSessionInternal) xaSession.getXAResource(); - HornetQRAXAResource hqXAResource = new HornetQRAXAResource(this, xaSession.getXAResource()); - xaResource = new HornetQXAResourceWrapper(hqXAResource, ra.getJndiName(), csi.getNodeId()); - } - - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("XAResource=" + xaResource); - } - - return xaResource; - } - - /** - * Get the location transaction for the connection. - * - * @return The local transaction for the connection. - * @throws ResourceException Thrown if operation fails. - */ - public LocalTransaction getLocalTransaction() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getLocalTransaction()"); - } - - LocalTransaction tx = new HornetQRALocalTransaction(this); - - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("LocalTransaction=" + tx); - } - - return tx; - } - - /** - * Get the meta data for the connection. - * - * @return The meta data for the connection. - * @throws ResourceException Thrown if the operation fails. - * @throws IllegalStateException Thrown if the managed connection already is destroyed. - */ - public ManagedConnectionMetaData getMetaData() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getMetaData()"); - } - - if (isDestroyed.get()) - { - throw new IllegalStateException("The managed connection is already destroyed"); - } - - return new HornetQRAMetaData(this); - } - - /** - * Set the log writer -- NOT SUPPORTED - * - * @param out The log writer - * @throws ResourceException If operation fails - */ - public void setLogWriter(final PrintWriter out) throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("setLogWriter(" + out + ")"); - } - } - - /** - * Get the log writer -- NOT SUPPORTED - * - * @return Always null - * @throws ResourceException If operation fails - */ - public PrintWriter getLogWriter() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getLogWriter()"); - } - - return null; - } - - /** - * Notifies user of a JMS exception. - * - * @param exception The JMS exception - */ - public void onException(final JMSException exception) - { - if (HornetQConnection.EXCEPTION_FAILOVER.equals(exception.getErrorCode())) - { - return; - } - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("onException(" + exception + ")"); - } - - if (isDestroyed.get()) - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("Ignoring error on already destroyed connection " + this, exception); - } - return; - } - - HornetQRALogger.LOGGER.handlingJMSFailure(exception); - - try - { - connection.setExceptionListener(null); - } - catch (JMSException e) - { - HornetQRALogger.LOGGER.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 (xaResource != null && inManagedTx) - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getSession() -> XA session " + xaSession.getSession()); - } - - return xaSession.getSession(); - } - else - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getSession() -> non XA session " + nonXAsession); - } - - return nonXAsession; - } - } - - /** - * Send an event. - * - * @param event The event to send. - */ - protected void sendEvent(final ConnectionEvent event) - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.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 HornetQRASession handle) - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("removeHandle(" + handle + ")"); - } - - handles.remove(handle); - } - - /** - * Get the request info for this connection. - * - * @return The connection request info for this connection. - */ - protected HornetQRAConnectionRequestInfo getCRI() - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getCRI()"); - } - - return cri; - } - - /** - * Get the connection factory for this connection. - * - * @return The connection factory for this connection. - */ - protected HornetQRAManagedConnectionFactory getManagedConnectionFactory() - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getManagedConnectionFactory()"); - } - - return mcf; - } - - /** - * Start the connection - * - * @throws JMSException Thrown if the connection can't be started - */ - void start() throws JMSException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("start()"); - } - - if (connection != null) - { - connection.start(); - } - } - - /** - * Stop the connection - * - * @throws JMSException Thrown if the connection can't be stopped - */ - void stop() throws JMSException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("stop()"); - } - - if (connection != null) - { - connection.stop(); - } - } - - /** - * Get the user name - * - * @return The user name - */ - protected String getUserName() - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("getUserName()"); - } - - return userName; - } - - /** - * Setup the connection. - * - * @throws ResourceException Thrown if a connection couldn't be created - */ - private void setup() throws ResourceException - { - if (HornetQRAManagedConnection.trace) - { - HornetQRALogger.LOGGER.trace("setup()"); - } - - try - { - - createCF(); - - boolean transacted = cri.isTransacted(); - int acknowledgeMode = Session.AUTO_ACKNOWLEDGE; - if (cri.getType() == HornetQRAConnectionFactory.TOPIC_CONNECTION) - { - if (userName != null && password != null) - { - connection = (HornetQXAConnection) connectionFactory.createXATopicConnection(userName, password); - } - else - { - connection = (HornetQXAConnection) connectionFactory.createXATopicConnection(); - } - - connection.setExceptionListener(this); - - xaSession = connection.createXATopicSession(); - nonXAsession = connection.createNonXATopicSession(transacted, acknowledgeMode); - - } - else if (cri.getType() == HornetQRAConnectionFactory.QUEUE_CONNECTION) - { - if (userName != null && password != null) - { - connection = (HornetQXAConnection) connectionFactory.createXAQueueConnection(userName, password); - } - else - { - connection = (HornetQXAConnection) connectionFactory.createXAQueueConnection(); - } - - connection.setExceptionListener(this); - - xaSession = connection.createXAQueueSession(); - nonXAsession = connection.createNonXAQueueSession(transacted, acknowledgeMode); - - } - else - { - if (userName != null && password != null) - { - connection = (HornetQXAConnection) connectionFactory.createXAConnection(userName, password); - } - else - { - connection = (HornetQXAConnection) connectionFactory.createXAConnection(); - } - - connection.setExceptionListener(this); - - xaSession = connection.createXASession(); - nonXAsession = connection.createNonXASession(transacted, acknowledgeMode); - } - - } - catch (JMSException je) - { - throw new ResourceException(je.getMessage(), je); - } - } - - private void createCF() - { - if (connectionFactory == null) - { - connectionFactory = ra.createHornetQConnectionFactory(mcf.getProperties()); - } - } - - protected void setInManagedTx(boolean inManagedTx) - { - this.inManagedTx = inManagedTx; - } - -} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/034adfbf/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnectionFactory.java ---------------------------------------------------------------------- diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnectionFactory.java b/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnectionFactory.java deleted file mode 100644 index 788d867..0000000 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAManagedConnectionFactory.java +++ /dev/null @@ -1,805 +0,0 @@ -/* - * Copyright 2005-2014 Red Hat, Inc. - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package org.apache.activemq.ra; - -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 java.io.PrintWriter; -import java.util.Iterator; -import java.util.Set; - -import org.apache.activemq.jms.client.HornetQConnectionFactory; -import org.apache.activemq.jms.server.recovery.XARecoveryConfig; - -/** - * HornetQ ManagedConnectionFactory - * - * @author <a href="mailto:adr...@jboss.com">Adrian Brock</a> - * @author <a href="mailto:jesper.peder...@jboss.org">Jesper Pedersen</a>. - * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> - */ -public final class HornetQRAManagedConnectionFactory implements ManagedConnectionFactory, ResourceAdapterAssociation -{ - /** - * Serial version UID - */ - static final long serialVersionUID = -1452379518562456741L; - /** - * Trace enabled - */ - private static boolean trace = HornetQRALogger.LOGGER.isTraceEnabled(); - - /** - * The resource adapter - */ - private HornetQResourceAdapter ra; - - /** - * Connection manager - */ - private ConnectionManager cm; - - /** - * The managed connection factory properties - */ - private final HornetQRAMCFProperties mcfProperties; - - /** - * Connection Factory used if properties are set - */ - private HornetQConnectionFactory recoveryConnectionFactory; - - /* - * The resource recovery if there is one - * */ - private XARecoveryConfig resourceRecovery; - - /** - * Constructor - */ - public HornetQRAManagedConnectionFactory() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("constructor()"); - } - - ra = null; - cm = null; - mcfProperties = new HornetQRAMCFProperties(); - } - - /** - * Creates a Connection Factory instance - * - * @return javax.resource.cci.ConnectionFactory instance - * @throws ResourceException Thrown if a connection factory can't be created - */ - public Object createConnectionFactory() throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.debug("createConnectionFactory()"); - } - - return createConnectionFactory(new HornetQRAConnectionManager()); - } - - /** - * Creates a Connection Factory instance - * - * @param cxManager The connection manager - * @return javax.resource.cci.ConnectionFactory instance - * @throws ResourceException Thrown if a connection factory can't be created - */ - public Object createConnectionFactory(final ConnectionManager cxManager) throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("createConnectionFactory(" + cxManager + ")"); - } - - cm = cxManager; - - HornetQRAConnectionFactory cf = new HornetQRAConnectionFactoryImpl(this, cm); - - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.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 can't be created - */ - public ManagedConnection createManagedConnection(final Subject subject, final ConnectionRequestInfo cxRequestInfo) throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("createManagedConnection(" + subject + ", " + cxRequestInfo + ")"); - } - - HornetQRAConnectionRequestInfo cri = getCRI((HornetQRAConnectionRequestInfo) cxRequestInfo); - - HornetQRACredential credential = HornetQRACredential.getCredential(this, subject, cri); - - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("jms credential: " + credential); - } - - HornetQRAManagedConnection mc = new HornetQRAManagedConnection(this, - cri, - ra, - credential.getUserName(), - credential.getPassword()); - - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("created new managed connection: " + mc); - } - - registerRecovery(); - - return mc; - } - - private synchronized void registerRecovery() - { - if (recoveryConnectionFactory == null) - { - recoveryConnectionFactory = ra.createRecoveryHornetQConnectionFactory(mcfProperties); - resourceRecovery = ra.getRecoveryManager().register(recoveryConnectionFactory, null, null); - } - } - - public XARecoveryConfig getResourceRecovery() - { - return resourceRecovery; - } - - /** - * 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 the managed connection can not be found - */ - public ManagedConnection matchManagedConnections(@SuppressWarnings("rawtypes") final Set connectionSet, final Subject subject, final ConnectionRequestInfo cxRequestInfo) throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("matchManagedConnections(" + connectionSet + - ", " + - subject + - ", " + - cxRequestInfo + - ")"); - } - - HornetQRAConnectionRequestInfo cri = getCRI((HornetQRAConnectionRequestInfo) cxRequestInfo); - HornetQRACredential credential = HornetQRACredential.getCredential(this, subject, cri); - - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("Looking for connection matching credentials: " + credential); - } - - Iterator<?> connections = connectionSet.iterator(); - - while (connections.hasNext()) - { - Object obj = connections.next(); - - if (obj instanceof HornetQRAManagedConnection) - { - HornetQRAManagedConnection mc = (HornetQRAManagedConnection) 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 (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("Found matching connection: " + mc); - } - - return mc; - } - } - } - } - - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("No matching connection was found"); - } - - return null; - } - - /** - * Set the log writer -- NOT SUPPORTED - * - * @param out The writer - * @throws ResourceException Thrown if the writer can't be set - */ - public void setLogWriter(final PrintWriter out) throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("setLogWriter(" + out + ")"); - } - } - - /** - * Get the log writer -- NOT SUPPORTED - * - * @return The writer - * @throws ResourceException Thrown if the writer can't be retrieved - */ - public PrintWriter getLogWriter() throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("getLogWriter()"); - } - - return null; - } - - /** - * Get the resource adapter - * - * @return The resource adapter - */ - public ResourceAdapter getResourceAdapter() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("getResourceAdapter()"); - } - - return ra; - } - - /** - * Set the resource adapter - * <p/> - * This should ensure that when the RA is stopped, this MCF will be stopped as well. - * - * @param ra The resource adapter - * @throws ResourceException Thrown if incorrect resource adapter - */ - public void setResourceAdapter(final ResourceAdapter ra) throws ResourceException - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("setResourceAdapter(" + ra + ")"); - } - - if (ra == null || !(ra instanceof HornetQResourceAdapter)) - { - throw new ResourceException("Resource adapter is " + ra); - } - - this.ra = (HornetQResourceAdapter) ra; - this.ra.setManagedConnectionFactory(this); - } - - /** - * 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 (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("equals(" + obj + ")"); - } - - if (obj == null) - { - return false; - } - - if (obj instanceof HornetQRAManagedConnectionFactory) - { - HornetQRAManagedConnectionFactory other = (HornetQRAManagedConnectionFactory) 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() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("hashCode()"); - } - - int hash = mcfProperties.hashCode(); - hash += 31 * ra.hashCode(); - - return hash; - } - - /** - * Get the default session type - * - * @return The value - */ - public String getSessionDefaultType() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("setSessionDefaultType(" + type + ")"); - } - - mcfProperties.setSessionDefaultType(type); - } - - /** - * @return the connectionParameters - */ - public String getConnectionParameters() - { - return mcfProperties.getStrConnectionParameters(); - } - - public void setConnectionParameters(final String configuration) - { - mcfProperties.setConnectionParameters(configuration); - } - - /** - * @return the transportType - */ - public String getConnectorClassName() - { - return mcfProperties.getConnectorClassName(); - } - - public void setConnectorClassName(final String value) - { - mcfProperties.setConnectorClassName(value); - } - - public String getConnectionLoadBalancingPolicyClassName() - { - return mcfProperties.getConnectionLoadBalancingPolicyClassName(); - } - - public void setConnectionLoadBalancingPolicyClassName(final String connectionLoadBalancingPolicyClassName) - { - mcfProperties.setConnectionLoadBalancingPolicyClassName(connectionLoadBalancingPolicyClassName); - } - - public String getDiscoveryAddress() - { - return mcfProperties.getDiscoveryAddress(); - } - - public void setDiscoveryAddress(final String discoveryAddress) - { - mcfProperties.setDiscoveryAddress(discoveryAddress); - } - - public Integer getDiscoveryPort() - { - return mcfProperties.getDiscoveryPort(); - } - - public void setDiscoveryPort(final Integer discoveryPort) - { - mcfProperties.setDiscoveryPort(discoveryPort); - } - - public Long getDiscoveryRefreshTimeout() - { - return mcfProperties.getDiscoveryRefreshTimeout(); - } - - public void setDiscoveryRefreshTimeout(final Long discoveryRefreshTimeout) - { - mcfProperties.setDiscoveryRefreshTimeout(discoveryRefreshTimeout); - } - - public Long getDiscoveryInitialWaitTimeout() - { - return mcfProperties.getDiscoveryInitialWaitTimeout(); - } - - public void setDiscoveryInitialWaitTimeout(final Long discoveryInitialWaitTimeout) - { - mcfProperties.setDiscoveryInitialWaitTimeout(discoveryInitialWaitTimeout); - } - - public String getClientID() - { - return mcfProperties.getClientID(); - } - - public void setClientID(final String clientID) - { - mcfProperties.setClientID(clientID); - } - - public Integer getDupsOKBatchSize() - { - return mcfProperties.getDupsOKBatchSize(); - } - - public void setDupsOKBatchSize(final Integer dupsOKBatchSize) - { - mcfProperties.setDupsOKBatchSize(dupsOKBatchSize); - } - - public Integer getTransactionBatchSize() - { - return mcfProperties.getTransactionBatchSize(); - } - - public void setTransactionBatchSize(final Integer transactionBatchSize) - { - mcfProperties.setTransactionBatchSize(transactionBatchSize); - } - - public Long getClientFailureCheckPeriod() - { - return mcfProperties.getClientFailureCheckPeriod(); - } - - public void setClientFailureCheckPeriod(final Long clientFailureCheckPeriod) - { - mcfProperties.setClientFailureCheckPeriod(clientFailureCheckPeriod); - } - - public Long getConnectionTTL() - { - return mcfProperties.getConnectionTTL(); - } - - public void setConnectionTTL(final Long connectionTTL) - { - mcfProperties.setConnectionTTL(connectionTTL); - } - - public Long getCallTimeout() - { - return mcfProperties.getCallTimeout(); - } - - public void setCallTimeout(final Long callTimeout) - { - mcfProperties.setCallTimeout(callTimeout); - } - - public Integer getConsumerWindowSize() - { - return mcfProperties.getConsumerWindowSize(); - } - - public void setConsumerWindowSize(final Integer consumerWindowSize) - { - mcfProperties.setConsumerWindowSize(consumerWindowSize); - } - - public Integer getConsumerMaxRate() - { - return mcfProperties.getConsumerMaxRate(); - } - - public void setConsumerMaxRate(final Integer consumerMaxRate) - { - mcfProperties.setConsumerMaxRate(consumerMaxRate); - } - - public Integer getConfirmationWindowSize() - { - return mcfProperties.getConfirmationWindowSize(); - } - - public void setConfirmationWindowSize(final Integer confirmationWindowSize) - { - mcfProperties.setConfirmationWindowSize(confirmationWindowSize); - } - - public Integer getProducerMaxRate() - { - return mcfProperties.getProducerMaxRate(); - } - - public void setProducerMaxRate(final Integer producerMaxRate) - { - mcfProperties.setProducerMaxRate(producerMaxRate); - } - - public Integer getMinLargeMessageSize() - { - return mcfProperties.getMinLargeMessageSize(); - } - - public void setMinLargeMessageSize(final Integer minLargeMessageSize) - { - mcfProperties.setMinLargeMessageSize(minLargeMessageSize); - } - - public Boolean isBlockOnAcknowledge() - { - return mcfProperties.isBlockOnAcknowledge(); - } - - public void setBlockOnAcknowledge(final Boolean blockOnAcknowledge) - { - mcfProperties.setBlockOnAcknowledge(blockOnAcknowledge); - } - - public Boolean isBlockOnNonDurableSend() - { - return mcfProperties.isBlockOnNonDurableSend(); - } - - public void setBlockOnNonDurableSend(final Boolean blockOnNonDurableSend) - { - mcfProperties.setBlockOnNonDurableSend(blockOnNonDurableSend); - } - - public Boolean isBlockOnDurableSend() - { - return mcfProperties.isBlockOnDurableSend(); - } - - public void setBlockOnDurableSend(final Boolean blockOnDurableSend) - { - mcfProperties.setBlockOnDurableSend(blockOnDurableSend); - } - - public Boolean isAutoGroup() - { - return mcfProperties.isAutoGroup(); - } - - public void setAutoGroup(final Boolean autoGroup) - { - mcfProperties.setAutoGroup(autoGroup); - } - - public Boolean isPreAcknowledge() - { - return mcfProperties.isPreAcknowledge(); - } - - public void setPreAcknowledge(final Boolean preAcknowledge) - { - mcfProperties.setPreAcknowledge(preAcknowledge); - } - - public Long getRetryInterval() - { - return mcfProperties.getRetryInterval(); - } - - public void setRetryInterval(final Long retryInterval) - { - mcfProperties.setRetryInterval(retryInterval); - } - - public Double getRetryIntervalMultiplier() - { - return mcfProperties.getRetryIntervalMultiplier(); - } - - public void setRetryIntervalMultiplier(final Double retryIntervalMultiplier) - { - mcfProperties.setRetryIntervalMultiplier(retryIntervalMultiplier); - } - - public Integer getReconnectAttempts() - { - return mcfProperties.getReconnectAttempts(); - } - - public void setReconnectAttempts(final Integer reconnectAttempts) - { - mcfProperties.setReconnectAttempts(reconnectAttempts); - } - - public Boolean isUseGlobalPools() - { - return mcfProperties.isUseGlobalPools(); - } - - public void setUseGlobalPools(final Boolean useGlobalPools) - { - mcfProperties.setUseGlobalPools(useGlobalPools); - } - - public Integer getScheduledThreadPoolMaxSize() - { - return mcfProperties.getScheduledThreadPoolMaxSize(); - } - - public void setScheduledThreadPoolMaxSize(final Integer scheduledThreadPoolMaxSize) - { - mcfProperties.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize); - } - - public Integer getThreadPoolMaxSize() - { - return mcfProperties.getThreadPoolMaxSize(); - } - - public void setThreadPoolMaxSize(final Integer threadPoolMaxSize) - { - mcfProperties.setThreadPoolMaxSize(threadPoolMaxSize); - } - - public Boolean isHA() - { - return mcfProperties.isHA(); - } - - public void setHA(Boolean ha) - { - mcfProperties.setHA(ha); - } - - /** - * Get the useTryLock. - * - * @return the useTryLock. - */ - public Integer getUseTryLock() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("getUseTryLock()"); - } - - return mcfProperties.getUseTryLock(); - } - - /** - * Set the useTryLock. - * - * @param useTryLock the useTryLock. - */ - public void setUseTryLock(final Integer useTryLock) - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("setUseTryLock(" + useTryLock + ")"); - } - - mcfProperties.setUseTryLock(useTryLock); - } - - /** - * Get the connection metadata - * - * @return The metadata - */ - public ConnectionMetaData getMetaData() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("getMetadata()"); - } - - return new HornetQRAConnectionMetaData(); - } - - /** - * Get the managed connection factory properties - * - * @return The properties - */ - protected HornetQRAMCFProperties getProperties() - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.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 - */ - private HornetQRAConnectionRequestInfo getCRI(final HornetQRAConnectionRequestInfo info) - { - if (HornetQRAManagedConnectionFactory.trace) - { - HornetQRALogger.LOGGER.trace("getCRI(" + info + ")"); - } - - if (info == null) - { - // Create a default one - return new HornetQRAConnectionRequestInfo(ra.getProperties(), mcfProperties.getType()); - } - else - { - // Fill the one with any defaults - info.setDefaults(ra.getProperties()); - return info; - } - } - - // this should be called when HornetQResourceAdapter.stop() is called since this MCF is registered with it - public void stop() - { - if (resourceRecovery != null) - { - ra.getRecoveryManager().unRegister(resourceRecovery); - } - - if (recoveryConnectionFactory != null) - { - recoveryConnectionFactory.close(); - recoveryConnectionFactory = null; - } - } -} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/034adfbf/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMapMessage.java ---------------------------------------------------------------------- diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMapMessage.java b/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMapMessage.java deleted file mode 100644 index 30abb59..0000000 --- a/activemq-ra/src/main/java/org/apache/activemq/ra/HornetQRAMapMessage.java +++ /dev/null @@ -1,452 +0,0 @@ -/* - * Copyright 2005-2014 Red Hat, Inc. - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package org.apache.activemq.ra; - -import java.util.Arrays; -import java.util.Enumeration; - -import javax.jms.JMSException; -import javax.jms.MapMessage; - - -/** - * A wrapper for a message - * - * @author <a href="mailto:adr...@jboss.com">Adrian Brock</a> - * @author <a href="mailto:jesper.peder...@jboss.org">Jesper Pedersen</a> - * @version $Revision: 71554 $ - */ -public class HornetQRAMapMessage extends HornetQRAMessage implements MapMessage -{ - /** Whether trace is enabled */ - private static boolean trace = HornetQRALogger.LOGGER.isTraceEnabled(); - - /** - * Create a new wrapper - * - * @param message the message - * @param session the session - */ - public HornetQRAMapMessage(final MapMessage message, final HornetQRASession session) - { - super(message, session); - - if (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.trace("getLong(" + name + ")"); - } - - return ((MapMessage)message).getLong(name); - } - - /** - * Get the map names - * @return The values - * @exception JMSException Thrown if an error occurs - */ - @SuppressWarnings("rawtypes") - public Enumeration getMapNames() throws JMSException - { - if (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.trace("setBytes(" + name + ", " + Arrays.toString(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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.trace("setBytes(" + name + ", " + Arrays.toString(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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.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 (HornetQRAMapMessage.trace) - { - HornetQRALogger.LOGGER.trace("setString(" + name + ", " + value + ")"); - } - - ((MapMessage)message).setString(name, value); - } -}