You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2014/12/08 18:25:43 UTC
[2/3] activemq-6 git commit: ACTIVEMQ6-6 - remove SPI usage
ACTIVEMQ6-6 - remove SPI usage
https://issues.apache.org/jira/browse/ACTIVEMQ6-6
Removed the jboss security implementations and also implemented the location of Transaction Managers using Service Loader and removed the jboss implementation.
Project: http://git-wip-us.apache.org/repos/asf/activemq-6/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-6/commit/e34fd09c
Tree: http://git-wip-us.apache.org/repos/asf/activemq-6/tree/e34fd09c
Diff: http://git-wip-us.apache.org/repos/asf/activemq-6/diff/e34fd09c
Branch: refs/heads/master
Commit: e34fd09ce325a551bf2eaf579854e2e107435502
Parents: 46182e4
Author: Andy Taylor <an...@apache.org>
Authored: Sat Dec 6 10:59:17 2014 +0000
Committer: Andy Taylor <an...@apache.org>
Committed: Mon Dec 8 11:06:24 2014 +0000
----------------------------------------------------------------------
activemq-jms-server/pom.xml | 5 +
.../apache/activemq/jms/bridge/JMSBridge.java | 8 -
.../activemq/jms/bridge/JMSBridgeControl.java | 8 -
.../jms/bridge/impl/JMSBridgeControlImpl.java | 20 --
.../activemq/jms/bridge/impl/JMSBridgeImpl.java | 58 +---
.../apache/activemq/ra/ActiveMQRALogger.java | 4 -
.../activemq/ra/ActiveMQRAProperties.java | 33 --
.../org/apache/activemq/ra/ActiveMQRaUtils.java | 34 --
.../activemq/ra/ActiveMQResourceAdapter.java | 64 +---
activemq-service-extensions/pom.xml | 4 +
.../service/extensions/ServiceUtils.java | 21 ++
.../transactions/TransactionManagerLocator.java | 27 ++
.../DummyTransactionManagerLocator.java | 94 ++++++
.../TransactionManagerLocatorTest.java | 34 ++
...sions.transactions.TransactionManagerLocator | 1 +
.../activemq-jboss-as-integration/pom.xml | 61 ----
.../integration/jboss/ActiveMQJBossBundle.java | 35 ---
.../integration/jboss/ActiveMQJBossLogger.java | 62 ----
.../jboss/security/AS4SecurityActions.java | 130 --------
.../jboss/security/JBossASSecurityManager.java | 313 -------------------
.../jboss/security/SecurityActions.java | 167 ----------
.../tm/JBoss4TransactionManagerLocator.java | 32 --
.../tm/JBoss5TransactionManagerLocator.java | 32 --
pom.xml | 9 +-
.../tests/ActiveMQMessageHandlerTest.java | 6 -
.../integration/jms/bridge/JMSBridgeTest.java | 2 -
.../ra/ActiveMQMessageHandlerTest.java | 6 -
.../integration/ra/ActiveMQRATestBase.java | 3 -
.../tests/integration/ra/JMSContextTest.java | 2 -
.../integration/ra/OutgoingConnectionTest.java | 4 -
.../integration/ra/ResourceAdapterTest.java | 17 -
.../ra/ActiveMQResourceAdapterConfigTest.java | 12 -
.../ra/ConnectionFactoryPropertiesTest.java | 2 -
.../tests/unit/ra/ResourceAdapterTest.java | 4 -
34 files changed, 196 insertions(+), 1118 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-jms-server/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-jms-server/pom.xml b/activemq-jms-server/pom.xml
index c39a31e..73215ae 100644
--- a/activemq-jms-server/pom.xml
+++ b/activemq-jms-server/pom.xml
@@ -37,6 +37,11 @@
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-service-extensions</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.spec.javax.jms</groupId>
<artifactId>jboss-jms-api_2.0_spec</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridge.java
----------------------------------------------------------------------
diff --git a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridge.java b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridge.java
index b50923a..986d6d1 100644
--- a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridge.java
+++ b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridge.java
@@ -86,14 +86,6 @@ public interface JMSBridge extends ActiveMQComponent
void setClientID(String clientID);
- String getTransactionManagerLocatorClass();
-
- void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
-
- String getTransactionManagerLocatorMethod();
-
- void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
-
boolean isAddMessageIDInHeader();
void setAddMessageIDInHeader(boolean value);
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridgeControl.java
----------------------------------------------------------------------
diff --git a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridgeControl.java b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridgeControl.java
index 1b1dc01..3f1c503 100644
--- a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridgeControl.java
+++ b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/JMSBridgeControl.java
@@ -78,14 +78,6 @@ public interface JMSBridgeControl extends ActiveMQComponentControl
void setClientID(String clientID);
- String getTransactionManagerLocatorClass();
-
- void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
-
- String getTransactionManagerLocatorMethod();
-
- void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
-
boolean isAddMessageIDInHeader();
void setAddMessageIDInHeader(boolean value);
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeControlImpl.java
----------------------------------------------------------------------
diff --git a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeControlImpl.java b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeControlImpl.java
index 68f5ec4..59af74b 100644
--- a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeControlImpl.java
+++ b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeControlImpl.java
@@ -136,16 +136,6 @@ public class JMSBridgeControlImpl extends StandardMBean implements JMSBridgeCont
return bridge.getTargetUsername();
}
- public String getTransactionManagerLocatorClass()
- {
- return bridge.getTransactionManagerLocatorClass();
- }
-
- public String getTransactionManagerLocatorMethod()
- {
- return bridge.getTransactionManagerLocatorMethod();
- }
-
public boolean isAddMessageIDInHeader()
{
return bridge.isAddMessageIDInHeader();
@@ -233,16 +223,6 @@ public class JMSBridgeControlImpl extends StandardMBean implements JMSBridgeCont
bridge.setTargetUsername(name);
}
- public void setTransactionManagerLocatorClass(final String transactionManagerLocatorClass)
- {
- bridge.setTransactionManagerLocatorClass(transactionManagerLocatorClass);
- }
-
- public void setTransactionManagerLocatorMethod(final String transactionManagerLocatorMethod)
- {
- bridge.setTransactionManagerLocatorMethod(transactionManagerLocatorMethod);
- }
-
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeImpl.java
----------------------------------------------------------------------
diff --git a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeImpl.java b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeImpl.java
index 4e77486..169bce8 100644
--- a/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeImpl.java
+++ b/activemq-jms-server/src/main/java/org/apache/activemq/jms/bridge/impl/JMSBridgeImpl.java
@@ -36,7 +36,6 @@ import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.TransactionRolledbackException;
import javax.transaction.xa.XAResource;
-import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Enumeration;
@@ -66,6 +65,7 @@ import org.apache.activemq.jms.client.ActiveMQMessage;
import org.apache.activemq.jms.server.ActiveMQJMSServerBundle;
import org.apache.activemq.jms.server.recovery.ActiveMQRegistryBase;
import org.apache.activemq.jms.server.recovery.XARecoveryConfig;
+import org.apache.activemq.service.extensions.ServiceUtils;
import org.apache.activemq.utils.ClassloadingUtil;
import org.apache.activemq.utils.DefaultSensitiveStringCodec;
import org.apache.activemq.utils.PasswordMaskingUtil;
@@ -167,10 +167,6 @@ public final class JMSBridgeImpl implements JMSBridge
private int forwardMode;
- private String transactionManagerLocatorClass = "org.apache.activemq.integration.jboss.tm.JBoss5TransactionManagerLocator";
-
- private String transactionManagerLocatorMethod = "getTm";
-
private MBeanServer mbeanServer;
private ObjectName objectName;
@@ -404,7 +400,7 @@ public final class JMSBridgeImpl implements JMSBridge
checkParams();
- TransactionManager tm = getTm();
+ TransactionManager tm = ServiceUtils.getTransactionManager();
// There may already be a JTA transaction associated to the thread
@@ -839,27 +835,6 @@ public final class JMSBridgeImpl implements JMSBridge
this.clientID = clientID;
}
- public String getTransactionManagerLocatorClass()
- {
- return transactionManagerLocatorClass;
- }
-
- public void setTransactionManagerLocatorClass(final String transactionManagerLocatorClass)
- {
- checkBridgeNotStarted();
- this.transactionManagerLocatorClass = transactionManagerLocatorClass;
- }
-
- public String getTransactionManagerLocatorMethod()
- {
- return transactionManagerLocatorMethod;
- }
-
- public void setTransactionManagerLocatorMethod(final String transactionManagerLocatorMethod)
- {
- this.transactionManagerLocatorMethod = transactionManagerLocatorMethod;
- }
-
public boolean isAddMessageIDInHeader()
{
return addMessageIDInHeader;
@@ -1038,7 +1013,7 @@ public final class JMSBridgeImpl implements JMSBridge
ActiveMQJMSBridgeLogger.LOGGER.trace("Starting JTA transaction");
}
- TransactionManager tm = getTm();
+ TransactionManager tm = ServiceUtils.getTransactionManager();
// Set timeout to a large value since we do not want to time out while waiting for messages
// to arrive - 10 years should be enough
@@ -1061,33 +1036,6 @@ public final class JMSBridgeImpl implements JMSBridge
return tx;
}
- private TransactionManager getTm()
- {
- if (tm == null)
- {
- try
- {
- Object o = safeInitNewInstance(transactionManagerLocatorClass);
- Method m = o.getClass().getMethod(transactionManagerLocatorMethod);
- tm = (TransactionManager) m.invoke(o);
- }
- catch (Exception e)
- {
- throw new IllegalStateException("unable to create TransactionManager from " + transactionManagerLocatorClass +
- "." +
- transactionManagerLocatorMethod,
- e);
- }
-
- if (tm == null)
- {
- throw new IllegalStateException("Cannot locate a transaction manager");
- }
- }
-
- return tm;
- }
-
private Connection createConnection(final String username, final String password,
final ConnectionFactoryFactory cff,
final String clientID,
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRALogger.java
----------------------------------------------------------------------
diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRALogger.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRALogger.java
index fbad1e6..caa35d2 100644
--- a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRALogger.java
+++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRALogger.java
@@ -76,10 +76,6 @@ public interface ActiveMQRALogger extends BasicLogger
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\nActiveMQ 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 ActiveMQ xa session after failure", format = Message.Format.MESSAGE_FORMAT)
void problemResettingXASession();
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRAProperties.java
----------------------------------------------------------------------
diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRAProperties.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRAProperties.java
index 703ed77..51282f6 100644
--- a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRAProperties.java
+++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRAProperties.java
@@ -58,18 +58,6 @@ public class ActiveMQRAProperties extends ConnectionFactoryProperties implements
*/
private Boolean localTx = false;
-
- /**
- * Class used to locate the Transaction Manager.
- * Using JBoss5 as the default locator
- */
- private String transactionManagerLocatorClass = "org.apache.activemq.integration.jboss.tm.JBoss5TransactionManagerLocator;org.apache.activemq.integration.jboss.tm.JBoss4TransactionManagerLocator";
-
- /**
- * Method used to locate the TM
- */
- private String transactionManagerLocatorMethod = "getTm;getTM";
-
private static final int DEFAULT_SETUP_ATTEMPTS = -1;
private static final long DEFAULT_SETUP_INTERVAL = 2 * 1000;
@@ -236,27 +224,6 @@ public class ActiveMQRAProperties extends ConnectionFactoryProperties implements
this.localTx = localTx;
}
-
- public void setTransactionManagerLocatorClass(final String transactionManagerLocatorClass)
- {
- this.transactionManagerLocatorClass = transactionManagerLocatorClass;
- }
-
- public String getTransactionManagerLocatorClass()
- {
- return transactionManagerLocatorClass;
- }
-
- public String getTransactionManagerLocatorMethod()
- {
- return transactionManagerLocatorMethod;
- }
-
- public void setTransactionManagerLocatorMethod(final String transactionManagerLocatorMethod)
- {
- this.transactionManagerLocatorMethod = transactionManagerLocatorMethod;
- }
-
public int getSetupAttempts()
{
return setupAttempts;
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRaUtils.java
----------------------------------------------------------------------
diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRaUtils.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRaUtils.java
index 676abfc..5911723 100644
--- a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRaUtils.java
+++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQRaUtils.java
@@ -17,7 +17,6 @@
package org.apache.activemq.ra;
import javax.naming.Context;
-import javax.transaction.TransactionManager;
import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -254,39 +253,6 @@ public final class ActiveMQRaUtils
return res;
}
-
- /**
- * 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.
- * <p/>
- * <p/>
- * TODO: https://jira.jboss.org/browse/HORNETQ-417
- * 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)
- {
- return AccessController.doPrivileged(new PrivilegedAction<TransactionManager>()
- {
- public TransactionManager run()
- {
- 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)
- {
- ActiveMQRALogger.LOGGER.debug(e.getMessage(), e);
- return null;
- }
- }
- });
- }
-
/**
* Within AS7 the RA is loaded by JCA. properties can only be passed in String form. However if
* RA is configured using jgroups stack, we need to pass a Channel object. As is impossible with
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java
----------------------------------------------------------------------
diff --git a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java
index 3aa392e..1675f3f 100644
--- a/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java
+++ b/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java
@@ -53,6 +53,7 @@ import org.apache.activemq.jms.client.ActiveMQConnectionFactory;
import org.apache.activemq.ra.inflow.ActiveMQActivation;
import org.apache.activemq.ra.inflow.ActiveMQActivationSpec;
import org.apache.activemq.ra.recovery.RecoveryManager;
+import org.apache.activemq.service.extensions.ServiceUtils;
import org.apache.activemq.utils.SensitiveDataCodec;
import org.jgroups.JChannel;
@@ -247,7 +248,7 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable
ActiveMQRALogger.LOGGER.trace("start(" + ctx + ")");
}
- locateTM();
+ tm = ServiceUtils.getTransactionManager();
recoveryManager.start(useAutoRecovery);
@@ -1811,24 +1812,6 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable
}
/**
- * @param transactionManagerLocatorClass
- * @see ActiveMQRAProperties#setTransactionManagerLocatorClass(java.lang.String)
- */
- public void setTransactionManagerLocatorClass(String transactionManagerLocatorClass)
- {
- raProperties.setTransactionManagerLocatorClass(transactionManagerLocatorClass);
- }
-
- /**
- * @return
- * @see ActiveMQRAProperties#getTransactionManagerLocatorClass()
- */
- public String getTransactionManagerLocatorClass()
- {
- return raProperties.getTransactionManagerLocatorClass();
- }
-
- /**
* @return
* @see ActiveMQRAProperties#getJgroupsChannelLocatorClass()
*/
@@ -1864,24 +1847,6 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable
raProperties.setJgroupsChannelRefName(jgroupsChannelRefName);
}
- /**
- * @return
- * @see ActiveMQRAProperties#getTransactionManagerLocatorMethod()
- */
- public String getTransactionManagerLocatorMethod()
- {
- return raProperties.getTransactionManagerLocatorMethod();
- }
-
- /**
- * @param transactionManagerLocatorMethod
- * @see ActiveMQRAProperties#setTransactionManagerLocatorMethod(java.lang.String)
- */
- public void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod)
- {
- raProperties.setTransactionManagerLocatorMethod(transactionManagerLocatorMethod);
- }
-
public ActiveMQConnectionFactory createActiveMQConnectionFactory(final ConnectionFactoryProperties overrideProperties)
{
ActiveMQConnectionFactory cf;
@@ -2173,31 +2138,6 @@ public class ActiveMQResourceAdapter implements ResourceAdapter, Serializable
return map;
}
- private void locateTM()
- {
- String[] locatorClasses = raProperties.getTransactionManagerLocatorClass().split(";");
- String[] locatorMethods = raProperties.getTransactionManagerLocatorMethod().split(";");
-
- for (int i = 0; i < locatorClasses.length; i++)
- {
- tm = ActiveMQRaUtils.locateTM(locatorClasses[i], locatorMethods[i]);
- if (tm != null)
- {
- break;
- }
- }
-
- if (tm == null)
- {
- ActiveMQRALogger.LOGGER.noTXLocator();
- }
- else
- {
- ActiveMQRALogger.LOGGER.debug("TM located = " + tm);
- }
- }
-
-
private void setParams(final ActiveMQConnectionFactory cf,
final ConnectionFactoryProperties overrideProperties)
{
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-service-extensions/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-service-extensions/pom.xml b/activemq-service-extensions/pom.xml
index ea44ad2..c0072b3 100644
--- a/activemq-service-extensions/pom.xml
+++ b/activemq-service-extensions/pom.xml
@@ -27,6 +27,10 @@
<artifactId>jboss-logging-processor</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jta_1.1_spec</artifactId>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/ServiceUtils.java b/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/ServiceUtils.java
index 1e38f62..240916c 100644
--- a/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/ServiceUtils.java
+++ b/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/ServiceUtils.java
@@ -16,10 +16,13 @@
*/
package org.apache.activemq.service.extensions;
+import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
+import java.util.Iterator;
import java.util.Map;
import java.util.ServiceLoader;
+import org.apache.activemq.service.extensions.transactions.TransactionManagerLocator;
import org.apache.activemq.service.extensions.xa.ActiveMQXAResourceWrapper;
import org.apache.activemq.service.extensions.xa.ActiveMQXAResourceWrapperFactory;
import org.apache.activemq.service.extensions.xa.ActiveMQXAResourceWrapperFactoryImpl;
@@ -32,6 +35,10 @@ public class ServiceUtils
{
private static ActiveMQXAResourceWrapperFactory activeMQXAResourceWrapperFactory;
+ private static TransactionManager transactionManager;
+
+ private static boolean transactionManagerLoaded = false;
+
private static ActiveMQXAResourceWrapperFactory getActiveMQXAResourceWrapperFactory()
{
if (activeMQXAResourceWrapperFactory == null)
@@ -46,6 +53,20 @@ public class ServiceUtils
return getActiveMQXAResourceWrapperFactory().wrap(xaResource, properties);
}
+ public static synchronized TransactionManager getTransactionManager()
+ {
+ if (!transactionManagerLoaded)
+ {
+ Iterator<TransactionManagerLocator> it = ServiceLoader.load(TransactionManagerLocator.class).iterator();
+ if (it.hasNext())
+ {
+ transactionManager = it.next().getTransactionManager();
+ }
+ transactionManagerLoaded = true;
+ }
+ return transactionManager;
+ }
+
private static void setActiveMQXAResourceWrapperFactory(Iterable<ActiveMQXAResourceWrapperFactory> iterable)
{
if (iterable.iterator().hasNext())
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/transactions/TransactionManagerLocator.java
----------------------------------------------------------------------
diff --git a/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/transactions/TransactionManagerLocator.java b/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/transactions/TransactionManagerLocator.java
new file mode 100644
index 0000000..d0d249b
--- /dev/null
+++ b/activemq-service-extensions/src/main/java/org/apache/activemq/service/extensions/transactions/TransactionManagerLocator.java
@@ -0,0 +1,27 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.service.extensions.transactions;
+
+import javax.transaction.TransactionManager;
+
+/**
+ * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
+ */
+public interface TransactionManagerLocator
+{
+ TransactionManager getTransactionManager();
+}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/DummyTransactionManagerLocator.java
----------------------------------------------------------------------
diff --git a/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/DummyTransactionManagerLocator.java b/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/DummyTransactionManagerLocator.java
new file mode 100644
index 0000000..d26efc3
--- /dev/null
+++ b/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/DummyTransactionManagerLocator.java
@@ -0,0 +1,94 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.service.extensions.tests.transactions;
+
+import org.apache.activemq.service.extensions.transactions.TransactionManagerLocator;
+
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.InvalidTransactionException;
+import javax.transaction.NotSupportedException;
+import javax.transaction.RollbackException;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+
+/**
+ * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
+ */
+public class DummyTransactionManagerLocator implements TransactionManagerLocator,TransactionManager
+{
+ @Override
+ public void begin() throws NotSupportedException, SystemException
+ {
+
+ }
+
+ @Override
+ public void commit() throws HeuristicMixedException, HeuristicRollbackException, IllegalStateException, RollbackException, SecurityException, SystemException
+ {
+
+ }
+
+ @Override
+ public int getStatus() throws SystemException
+ {
+ return 0;
+ }
+
+ @Override
+ public Transaction getTransaction() throws SystemException
+ {
+ return null;
+ }
+
+ @Override
+ public void resume(Transaction transaction) throws IllegalStateException, InvalidTransactionException, SystemException
+ {
+
+ }
+
+ @Override
+ public void rollback() throws IllegalStateException, SecurityException, SystemException
+ {
+
+ }
+
+ @Override
+ public void setRollbackOnly() throws IllegalStateException, SystemException
+ {
+
+ }
+
+ @Override
+ public void setTransactionTimeout(int i) throws SystemException
+ {
+
+ }
+
+ @Override
+ public Transaction suspend() throws SystemException
+ {
+ return null;
+ }
+
+ @Override
+ public TransactionManager getTransactionManager()
+ {
+ return this;
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/TransactionManagerLocatorTest.java
----------------------------------------------------------------------
diff --git a/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/TransactionManagerLocatorTest.java b/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/TransactionManagerLocatorTest.java
new file mode 100644
index 0000000..ee4b8de
--- /dev/null
+++ b/activemq-service-extensions/src/test/java/org/apache/activemq/service/extensions/tests/transactions/TransactionManagerLocatorTest.java
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.service.extensions.tests.transactions;
+
+import org.apache.activemq.service.extensions.ServiceUtils;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
+ */
+public class TransactionManagerLocatorTest extends Assert
+{
+ @Test
+ public void getTM()
+ {
+ assertNotNull(ServiceUtils.getTransactionManager());
+ assertEquals(ServiceUtils.getTransactionManager().getClass(), DummyTransactionManagerLocator.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/activemq-service-extensions/src/test/resources/META-INF/services/org.apache.activemq.service.extensions.transactions.TransactionManagerLocator
----------------------------------------------------------------------
diff --git a/activemq-service-extensions/src/test/resources/META-INF/services/org.apache.activemq.service.extensions.transactions.TransactionManagerLocator b/activemq-service-extensions/src/test/resources/META-INF/services/org.apache.activemq.service.extensions.transactions.TransactionManagerLocator
new file mode 100644
index 0000000..c4bc639
--- /dev/null
+++ b/activemq-service-extensions/src/test/resources/META-INF/services/org.apache.activemq.service.extensions.transactions.TransactionManagerLocator
@@ -0,0 +1 @@
+org.apache.activemq.service.extensions.tests.transactions.DummyTransactionManagerLocator
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/pom.xml
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/pom.xml b/integration/activemq-jboss-as-integration/pom.xml
deleted file mode 100644
index bb7eaa3..0000000
--- a/integration/activemq-jboss-as-integration/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-pom</artifactId>
- <version>6.0.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
-
- <artifactId>activemq-jboss-as-integration</artifactId>
- <packaging>jar</packaging>
- <name>ActiveMQ6 JBoss AS Integration</name>
-
- <properties>
- <activemq.basedir>${project.basedir}/../..</activemq.basedir>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging-processor</artifactId>
- </dependency>
-
- <!--
- JBoss Logging
- -->
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-server</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-security-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-ejb_3.0_spec</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-transaction-spi</artifactId>
- </dependency>
- <!--this for xa recovery-->
- <dependency>
- <groupId>org.jboss.jbossts.jts</groupId>
- <artifactId>jbossjts-jacorb</artifactId>
- </dependency>
- </dependencies>
-
-</project>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossBundle.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossBundle.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossBundle.java
deleted file mode 100644
index beb074f..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossBundle.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.activemq.integration.jboss;
-
-
-import org.jboss.logging.annotations.MessageBundle;
-
-/**
- * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
- * 3/12/12
- *
- * Logger Code 13
- *
- * each message id must be 6 digits long starting with 13, the 3rd digit should be 9
- *
- * so 139000 to 139999
- */
-@MessageBundle(projectCode = "AMQ")
-public class ActiveMQJBossBundle
-{
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossLogger.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossLogger.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossLogger.java
deleted file mode 100644
index ad79bdc..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/ActiveMQJBossLogger.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.activemq.integration.jboss;
-
-import javax.security.auth.Subject;
-
-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;
-
-/**
- * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
- * 3/15/12
- *
- * Logger Code 13
- *
- * each message id must be 6 digits long starting with 13, the 3rd digit donates the level so
- *
- * INF0 1
- * WARN 2
- * DEBUG 3
- * ERROR 4
- * TRACE 5
- * FATAL 6
- *
- * so an INFO message would be 131000 to 131999
- */
-@MessageLogger(projectCode = "AMQ")
-public interface ActiveMQJBossLogger extends BasicLogger
-{
- /**
- * The jboss integration logger.
- */
- ActiveMQJBossLogger LOGGER = Logger.getMessageLogger(ActiveMQJBossLogger.class, ActiveMQJBossLogger.class.getPackage().getName());
-
- @LogMessage(level = Logger.Level.INFO)
- @Message(id = 131001, value = "Security Context Setting Subject = {0}",
- format = Message.Format.MESSAGE_FORMAT)
- void settingSecuritySubject(Subject subject);
-
- @LogMessage(level = Logger.Level.WARN)
- @Message(id = 132001, value = "An error happened while setting the context",
- format = Message.Format.MESSAGE_FORMAT)
- void errorSettingSecurityContext(@Cause Throwable Throwable);
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/AS4SecurityActions.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/AS4SecurityActions.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/AS4SecurityActions.java
deleted file mode 100644
index 5823ce4..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/AS4SecurityActions.java
+++ /dev/null
@@ -1,130 +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.activemq.integration.jboss.security;
-
-import java.security.AccessController;
-import java.security.Principal;
-import java.security.PrivilegedAction;
-
-import javax.security.auth.Subject;
-
-import org.jboss.security.SecurityAssociation;
-
-/** A collection of privileged actions for this package
- * @author Scott.Stark@jboss.org
- * @author <a href="mailto:alex@jboss.org">Alexey Loubyansky</a>
- * @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
- * @author <a href="mailto:anil.saldhana@jboss.com">anil saldhana</a>
- * @version $Revison: 1.0$
- */
-
-/**
- * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
- * Created Oct 21, 2009
- */
-public class AS4SecurityActions
-{
- interface PrincipalInfoAction
- {
- PrincipalInfoAction PRIVILEGED = new PrincipalInfoAction()
- {
- public void push(final Principal principal, final Object credential, final Subject subject)
- {
- AccessController.doPrivileged(new PrivilegedAction()
- {
- public Object run()
- {
- SecurityAssociation.pushSubjectContext(subject, principal, credential);
- return null;
- }
- });
- }
-
- public void dup()
- {
- AccessController.doPrivileged(new PrivilegedAction()
- {
- public Object run()
- {
- SecurityAssociation.dupSubjectContext();
- return null;
- }
- });
- }
-
- public void pop()
- {
- AccessController.doPrivileged(new PrivilegedAction()
- {
- public Object run()
- {
- SecurityAssociation.popSubjectContext();
- return null;
- }
- });
- }
- };
-
- PrincipalInfoAction NON_PRIVILEGED = new PrincipalInfoAction()
- {
- public void push(final Principal principal, final Object credential, final Subject subject)
- {
- SecurityAssociation.pushSubjectContext(subject, principal, credential);
- }
-
- public void dup()
- {
- SecurityAssociation.dupSubjectContext();
- }
-
- public void pop()
- {
- SecurityAssociation.popSubjectContext();
- }
- };
-
- void push(Principal principal, Object credential, Subject subject);
-
- void dup();
-
- void pop();
- }
-
- static void pushSubjectContext(final Principal principal, final Object credential, final Subject subject)
- {
- if (System.getSecurityManager() == null)
- {
- PrincipalInfoAction.NON_PRIVILEGED.push(principal, credential, subject);
- }
- else
- {
- PrincipalInfoAction.PRIVILEGED.push(principal, credential, subject);
- }
- }
-
- static void popSubjectContext()
- {
- if (System.getSecurityManager() == null)
- {
- PrincipalInfoAction.NON_PRIVILEGED.pop();
- }
- else
- {
- PrincipalInfoAction.PRIVILEGED.pop();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/JBossASSecurityManager.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/JBossASSecurityManager.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/JBossASSecurityManager.java
deleted file mode 100644
index 8292ead..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/JBossASSecurityManager.java
+++ /dev/null
@@ -1,313 +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.activemq.integration.jboss.security;
-
-import java.security.AccessController;
-import java.security.Principal;
-import java.security.PrivilegedAction;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.naming.InitialContext;
-import javax.security.auth.Subject;
-
-import org.apache.activemq.core.security.CheckType;
-import org.apache.activemq.core.security.Role;
-import org.apache.activemq.core.server.ActiveMQComponent;
-import org.apache.activemq.integration.jboss.ActiveMQJBossLogger;
-import org.apache.activemq.spi.core.security.ActiveMQSecurityManager;
-import org.jboss.security.AuthenticationManager;
-import org.jboss.security.RealmMapping;
-import org.jboss.security.SecurityContext;
-import org.jboss.security.SecurityContextAssociation;
-import org.jboss.security.SimplePrincipal;
-
-/**
- * This implementation delegates to the JBoss AS security interfaces (which in turn use JAAS)
- * It can be used when running ActiveMQ in JBoss AS
- *
- * @author <a href="ataylor@redhat.com">Andy Taylor</a>
- * @author <a href="tim.fox@jboss.com">Tim Fox</a>
- */
-public class JBossASSecurityManager implements ActiveMQSecurityManager, ActiveMQComponent
-{
- // Static --------------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- private final boolean trace = ActiveMQJBossLogger.LOGGER.isTraceEnabled();
-
- /**
- * the realmmapping
- */
- private RealmMapping realmMapping;
-
- /**
- * the JAAS Authentication Manager
- */
- private AuthenticationManager authenticationManager;
-
- /**
- * The JNDI name of the AuthenticationManager(and RealmMapping since they are the same object).
- */
- private String securityDomainName = "java:/jaas/activemq";
-
- private boolean started;
-
- private boolean isAs5 = true;
-
- private boolean allowClientLogin = false;
-
- private boolean authoriseOnClientLogin = false;
-
- public boolean validateUser(final String user, final String password)
- {
- SimplePrincipal principal = new SimplePrincipal(user);
-
- char[] passwordChars = null;
-
- if (password != null)
- {
- passwordChars = password.toCharArray();
- }
-
- Subject subject = new Subject();
-
- return authenticationManager.isValid(principal, passwordChars, subject);
- }
-
- public boolean validateUserAndRole(final String user,
- final String password,
- final Set<Role> roles,
- final CheckType checkType)
- {
- if (allowClientLogin && SecurityContextAssociation.isClient())
- {
- return authoriseOnClientLogin ? useClientAuthentication(roles, checkType) : true;
- }
- else
- {
- return useConnectionAuthentication(user, password, roles, checkType);
- }
- }
-
- private boolean useConnectionAuthentication(final String user,
- final String password,
- final Set<Role> roles,
- final CheckType checkType)
- {
- return AccessController.doPrivileged(new PrivilegedAction<Boolean>()
- {
- public Boolean run()
- {
-
- SimplePrincipal principal = user == null ? null : new SimplePrincipal(user);
-
- char[] passwordChars = null;
-
- if (password != null)
- {
- passwordChars = password.toCharArray();
- }
-
- Subject subject = new Subject();
-
- boolean authenticated = authenticationManager.isValid(principal, passwordChars, subject);
- // Authenticate. Successful authentication will place a new SubjectContext on thread local,
- // which will be used in the authorization process. However, we need to make sure we clean up
- // thread local immediately after we used the information, otherwise some other people
- // security my be screwed up, on account of thread local security stack being corrupted.
- if (authenticated)
- {
- pushSecurityContext(principal, passwordChars, subject);
- Set<Principal> rolePrincipals = getRolePrincipals(checkType, roles);
-
- authenticated = realmMapping.doesUserHaveRole(principal, rolePrincipals);
-
- if (trace)
- {
- ActiveMQJBossLogger.LOGGER.trace("user " + user +
- (authenticated ? " is " : " is NOT ") +
- "authorized");
- }
- popSecurityContext();
- }
- return authenticated;
- }
- });
- }
-
- private boolean useClientAuthentication(final Set<Role> roles, final CheckType checkType)
- {
- return AccessController.doPrivileged(new PrivilegedAction<Boolean>()
- {
- public Boolean run()
- {
- SecurityContext sc = SecurityContextAssociation.getSecurityContext();
- Principal principal = sc.getUtil().getUserPrincipal();
-
- char[] passwordChars = (char[])sc.getUtil().getCredential();
-
- Subject subject = sc.getSubjectInfo().getAuthenticatedSubject();
-
- boolean authenticated = authenticationManager.isValid(principal, passwordChars, subject);
-
- if (authenticated)
- {
- Set<Principal> rolePrincipals = getRolePrincipals(checkType, roles);
-
- authenticated = realmMapping.doesUserHaveRole(principal, rolePrincipals);
-
- if (trace)
- {
- ActiveMQJBossLogger.LOGGER.trace("user " + principal.getName() +
- (authenticated ? " is " : " is NOT ") +
- "authorized");
- }
- }
- return authenticated;
- }
-
- });
-
- }
-
- private void popSecurityContext()
- {
- if (isAs5)
- {
- SecurityActions.popSubjectContext();
- }
- else
- {
- AS4SecurityActions.popSubjectContext();
- }
- }
-
- private void pushSecurityContext(final SimplePrincipal principal, final char[] passwordChars, final Subject subject)
- {
- if (isAs5)
- {
- SecurityActions.pushSubjectContext(principal, passwordChars, subject, securityDomainName);
- }
- else
- {
- AS4SecurityActions.pushSubjectContext(principal, passwordChars, subject);
- }
- }
-
- public void addRole(final String user, final String role)
- {
- // NO-OP
- }
-
- public void addUser(final String user, final String password)
- {
- // NO-OP
- }
-
- public void removeRole(final String user, final String role)
- {
- // NO-OP
- }
-
- public void removeUser(final String user)
- {
- // NO-OP
- }
-
- public void setDefaultUser(final String username)
- {
- // NO-OP
- }
-
- private Set<Principal> getRolePrincipals(final CheckType checkType, final Set<Role> roles)
- {
- Set<Principal> principals = new HashSet<Principal>();
- for (Role role : roles)
- {
- if (checkType.hasRole(role))
- {
- principals.add(new SimplePrincipal(role.getName()));
- }
- }
- return principals;
- }
-
- public void setRealmMapping(final RealmMapping realmMapping)
- {
- this.realmMapping = realmMapping;
- }
-
- public void setAuthenticationManager(final AuthenticationManager authenticationManager)
- {
- this.authenticationManager = authenticationManager;
- }
-
- /**
- * lifecycle method, needs to be called
- *
- * @throws Exception
- */
- public synchronized void start() throws Exception
- {
- if (started)
- {
- return;
- }
-
- InitialContext ic = new InitialContext();
- authenticationManager = (AuthenticationManager)ic.lookup(securityDomainName);
- realmMapping = (RealmMapping)authenticationManager;
-
- started = true;
- }
-
- public synchronized void stop()
- {
- if (!started)
- {
- return;
- }
- started = false;
- }
-
- public synchronized boolean isStarted()
- {
- return started;
- }
-
- public void setSecurityDomainName(final String securityDomainName)
- {
- this.securityDomainName = securityDomainName;
- }
-
- public void setAs5(final boolean as5)
- {
- isAs5 = as5;
- }
-
- public void setAllowClientLogin(final boolean allowClientLogin)
- {
- this.allowClientLogin = allowClientLogin;
- }
-
- public void setAuthoriseOnClientLogin(final boolean authoriseOnClientLogin)
- {
- this.authoriseOnClientLogin = authoriseOnClientLogin;
- }
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/SecurityActions.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/SecurityActions.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/SecurityActions.java
deleted file mode 100644
index 006880d..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/security/SecurityActions.java
+++ /dev/null
@@ -1,167 +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.activemq.integration.jboss.security;
-
-import java.security.AccessController;
-import java.security.Principal;
-import java.security.PrivilegedAction;
-
-import javax.security.auth.Subject;
-
-import org.apache.activemq.integration.jboss.ActiveMQJBossLogger;
-import org.jboss.security.SecurityContext;
-import org.jboss.security.SecurityContextAssociation;
-import org.jboss.security.SecurityContextFactory;
-
-/** A collection of privileged actions for this package
- * @author Scott.Stark@jboss.org
- * @author <a href="mailto:alex@jboss.org">Alexey Loubyansky</a>
- * @author <a her="mailto:tim.fox@jboss.com">Tim Fox</a>
- * @version $Revison: 1.0$
- */
-class SecurityActions
-{
- interface PrincipalInfoAction
- {
- PrincipalInfoAction PRIVILEGED = new PrincipalInfoAction()
- {
- public void push(final Principal principal,
- final Object credential,
- final Subject subject,
- final String securityDomain)
- {
- AccessController.doPrivileged(new PrivilegedAction<Object>()
- {
- public Object run()
- {
-
- try
- {
- ActiveMQJBossLogger.LOGGER.settingSecuritySubject(subject);
- // SecurityAssociation.pushSubjectContext(subject, principal, credential);
- SecurityContext sc = SecurityContextAssociation.getSecurityContext();
- if (sc == null)
- {
- try
- {
- sc = SecurityContextFactory.createSecurityContext(principal,
- credential,
- subject,
- securityDomain);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
- else
- {
- sc.getUtil().createSubjectInfo(principal, credential, subject);
- }
-
- SecurityContextAssociation.setSecurityContext(sc);
- }
- catch (Throwable t)
- {
- ActiveMQJBossLogger.LOGGER.errorSettingSecurityContext(t);
- }
-
- return null;
- }
- });
- }
-
- public void pop()
- {
- AccessController.doPrivileged(new PrivilegedAction<Object>()
- {
- public Object run()
- {
- // SecurityAssociation.popSubjectContext();
- SecurityContextAssociation.clearSecurityContext();
- return null;
- }
- });
- }
- };
-
- PrincipalInfoAction NON_PRIVILEGED = new PrincipalInfoAction()
- {
- public void push(final Principal principal,
- final Object credential,
- final Subject subject,
- final String securityDomain)
- {
- // SecurityAssociation.pushSubjectContext(subject, principal, credential);
- SecurityContext sc = SecurityContextAssociation.getSecurityContext();
- if (sc == null)
- {
- try
- {
- sc = SecurityContextFactory.createSecurityContext(principal, credential, subject, securityDomain);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
- else
- {
- sc.getUtil().createSubjectInfo(principal, credential, subject);
- }
- SecurityContextAssociation.setSecurityContext(sc);
- }
-
- public void pop()
- {
- // SecurityAssociation.popSubjectContext();
- SecurityContextAssociation.clearSecurityContext();
- }
- };
-
- void push(Principal principal, Object credential, Subject subject, String securityDomain);
-
- void pop();
- }
-
- static void pushSubjectContext(final Principal principal,
- final Object credential,
- final Subject subject,
- final String securityDomainName)
- {
- if (System.getSecurityManager() == null)
- {
- PrincipalInfoAction.NON_PRIVILEGED.push(principal, credential, subject, securityDomainName);
- }
- else
- {
- PrincipalInfoAction.PRIVILEGED.push(principal, credential, subject, securityDomainName);
- }
- }
-
- static void popSubjectContext()
- {
- if (System.getSecurityManager() == null)
- {
- PrincipalInfoAction.NON_PRIVILEGED.pop();
- }
- else
- {
- PrincipalInfoAction.PRIVILEGED.pop();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss4TransactionManagerLocator.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss4TransactionManagerLocator.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss4TransactionManagerLocator.java
deleted file mode 100644
index 17e6910..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss4TransactionManagerLocator.java
+++ /dev/null
@@ -1,32 +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.activemq.integration.jboss.tm;
-
-import javax.transaction.TransactionManager;
-
-import org.jboss.tm.TransactionManagerLocator;
-
-/**
- * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
- */
-public class JBoss4TransactionManagerLocator
-{
- public TransactionManager getTm()
- {
- return TransactionManagerLocator.getInstance().locate();
- }
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss5TransactionManagerLocator.java
----------------------------------------------------------------------
diff --git a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss5TransactionManagerLocator.java b/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss5TransactionManagerLocator.java
deleted file mode 100644
index f5fa9dd..0000000
--- a/integration/activemq-jboss-as-integration/src/main/java/org/apache/activemq/integration/jboss/tm/JBoss5TransactionManagerLocator.java
+++ /dev/null
@@ -1,32 +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.activemq.integration.jboss.tm;
-
-import javax.transaction.TransactionManager;
-
-import org.jboss.tm.TransactionManagerLocator;
-
-/**
- * @author <a href="mailto:andy.taylor@jboss.org">Andy Taylor</a>
- */
-public class JBoss5TransactionManagerLocator
-{
- public TransactionManager getTm()
- {
- return TransactionManagerLocator.locateTransactionManager();
- }
-}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c868686..664f238 100644
--- a/pom.xml
+++ b/pom.xml
@@ -220,6 +220,11 @@
<artifactId>geronimo-jta_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jta_1.1_spec</artifactId>
+ <version>1.1.1</version>
+ </dependency>
<!--this specifically for the JMS Bridge-->
<dependency>
@@ -489,7 +494,6 @@
<module>activemq-rest</module>
<module>activemq-tools</module>
<module>activemq-service-extensions</module>
- <module>integration/activemq-jboss-as-integration</module>
<module>integration/activemq-spring-integration</module>
<module>integration/activemq-aerogear-integration</module>
<module>integration/activemq-vertx-integration</module>
@@ -517,7 +521,6 @@
<module>activemq-rest</module>
<module>activemq-tools</module>
<module>activemq-service-extensions</module>
- <module>integration/activemq-jboss-as-integration</module>
<module>integration/activemq-spring-integration</module>
<module>integration/activemq-aerogear-integration</module>
<module>integration/activemq-vertx-integration</module>
@@ -555,7 +558,6 @@
<module>activemq-rest</module>
<module>activemq-tools</module>
<module>activemq-service-extensions</module>
- <module>integration/activemq-jboss-as-integration</module>
<module>integration/activemq-spring-integration</module>
<module>integration/activemq-aerogear-integration</module>
<module>integration/activemq-vertx-integration</module>
@@ -589,7 +591,6 @@
<module>activemq-rest</module>
<module>activemq-tools</module>
<module>activemq-service-extensions</module>
- <module>integration/activemq-jboss-as-integration</module>
<module>integration/activemq-spring-integration</module>
<module>integration/activemq-aerogear-integration</module>
<module>integration/activemq-vertx-integration</module>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/byteman-tests/src/test/java/org/apache/activemq/byteman/tests/ActiveMQMessageHandlerTest.java
----------------------------------------------------------------------
diff --git a/tests/byteman-tests/src/test/java/org/apache/activemq/byteman/tests/ActiveMQMessageHandlerTest.java b/tests/byteman-tests/src/test/java/org/apache/activemq/byteman/tests/ActiveMQMessageHandlerTest.java
index 0afbdf8..fe07bd0 100644
--- a/tests/byteman-tests/src/test/java/org/apache/activemq/byteman/tests/ActiveMQMessageHandlerTest.java
+++ b/tests/byteman-tests/src/test/java/org/apache/activemq/byteman/tests/ActiveMQMessageHandlerTest.java
@@ -90,9 +90,6 @@ public class ActiveMQMessageHandlerTest extends ActiveMQRATestBase
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
resourceAdapter = qResourceAdapter;
- qResourceAdapter.setTransactionManagerLocatorClass(DummyTMLocator.class.getName());
- qResourceAdapter.setTransactionManagerLocatorMethod("getTM");
-
MyBootstrapContext ctx = new MyBootstrapContext();
qResourceAdapter.setConnectorClassName(NETTY_CONNECTOR_FACTORY);
@@ -170,9 +167,6 @@ public class ActiveMQMessageHandlerTest extends ActiveMQRATestBase
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
resourceAdapter = qResourceAdapter;
- qResourceAdapter.setTransactionManagerLocatorClass(DummyTMLocator.class.getName());
- qResourceAdapter.setTransactionManagerLocatorMethod("getTM");
-
MyBootstrapContext ctx = new MyBootstrapContext();
qResourceAdapter.setConnectorClassName(NETTY_CONNECTOR_FACTORY);
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/bridge/JMSBridgeTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/bridge/JMSBridgeTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/bridge/JMSBridgeTest.java
index bf83708..19dddd6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/bridge/JMSBridgeTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/bridge/JMSBridgeTest.java
@@ -2371,8 +2371,6 @@ public class JMSBridgeTest extends BridgeTestBase
null,
null,
false);
- bridge.setTransactionManagerLocatorClass(this.getClass().getName());
- bridge.setTransactionManagerLocatorMethod("getNewTm");
bridge.start();
}
finally
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQMessageHandlerTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQMessageHandlerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQMessageHandlerTest.java
index 9b072d2..cdf90f7 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQMessageHandlerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQMessageHandlerTest.java
@@ -197,8 +197,6 @@ public class ActiveMQMessageHandlerTest extends ActiveMQRATestBase
protected ActiveMQResourceAdapter newResourceAdapter()
{
ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter();
- qResourceAdapter.setTransactionManagerLocatorClass("");
- qResourceAdapter.setTransactionManagerLocatorMethod("");
qResourceAdapter.setConnectorClassName(UnitTestCase.INVM_CONNECTOR_FACTORY);
return qResourceAdapter;
}
@@ -209,8 +207,6 @@ public class ActiveMQMessageHandlerTest extends ActiveMQRATestBase
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
qResourceAdapter.setReconnectAttempts(-1);
qResourceAdapter.setCallTimeout(500L);
- qResourceAdapter.setTransactionManagerLocatorClass("");
- qResourceAdapter.setTransactionManagerLocatorMethod("");
qResourceAdapter.setRetryInterval(500L);
MyBootstrapContext ctx = new MyBootstrapContext();
qResourceAdapter.start(ctx);
@@ -551,8 +547,6 @@ public class ActiveMQMessageHandlerTest extends ActiveMQRATestBase
public void testNonDurableSubscriptionDeleteAfterCrash() throws Exception
{
ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter();
- qResourceAdapter.setTransactionManagerLocatorClass("");
- qResourceAdapter.setTransactionManagerLocatorMethod("");
MyBootstrapContext ctx = new MyBootstrapContext();
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java
index 7778a45..307f827 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java
@@ -99,9 +99,6 @@ public abstract class ActiveMQRATestBase extends JMSTestBase
protected ActiveMQResourceAdapter newResourceAdapter()
{
ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter();
- // We don't have a TM on these tests.. This would cause the lookup to take at least 10 seconds if we didn't set to ""
- qResourceAdapter.setTransactionManagerLocatorClass("");
- qResourceAdapter.setTransactionManagerLocatorMethod("");
qResourceAdapter.setConnectorClassName(UnitTestCase.INVM_CONNECTOR_FACTORY);
return qResourceAdapter;
}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/JMSContextTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/JMSContextTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/JMSContextTest.java
index 0224c3f..aeed55c 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/JMSContextTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/JMSContextTest.java
@@ -60,8 +60,6 @@ public class JMSContextTest extends ActiveMQRATestBase
roles.add(role);
server.getSecurityRepository().addMatch(MDBQUEUEPREFIXED, roles);
resourceAdapter = new ActiveMQResourceAdapter();
- resourceAdapter.setTransactionManagerLocatorClass(JMSContextTest.class.getName());
- resourceAdapter.setTransactionManagerLocatorMethod("getTm");
resourceAdapter.setConnectorClassName(InVMConnectorFactory.class.getName());
MyBootstrapContext ctx = new MyBootstrapContext();
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/OutgoingConnectionTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/OutgoingConnectionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/OutgoingConnectionTest.java
index 9f0c3ef..4dbf1af 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/OutgoingConnectionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/OutgoingConnectionTest.java
@@ -96,8 +96,6 @@ public class OutgoingConnectionTest extends ActiveMQRATestBase
server.getSecurityRepository().addMatch(MDBQUEUEPREFIXED, roles);
resourceAdapter = new ActiveMQResourceAdapter();
- resourceAdapter.setTransactionManagerLocatorClass(JMSContextTest.class.getName());
- resourceAdapter.setTransactionManagerLocatorMethod("getTm");
resourceAdapter.setEntries("[\"java://jmsXA\"]");
resourceAdapter.setConnectorClassName(InVMConnectorFactory.class.getName());
@@ -288,8 +286,6 @@ public class OutgoingConnectionTest extends ActiveMQRATestBase
{
setupDLQ(10);
resourceAdapter = newResourceAdapter();
- resourceAdapter.setTransactionManagerLocatorClass(JMSContextTest.class.getName());
- resourceAdapter.setTransactionManagerLocatorMethod("getTm");
DummyTransactionManager.tm.tx = new DummyTransaction();
MyBootstrapContext ctx = new MyBootstrapContext();
resourceAdapter.start(ctx);
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ResourceAdapterTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ResourceAdapterTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ResourceAdapterTest.java
index 9387ab5..d9f7c69 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ResourceAdapterTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ResourceAdapterTest.java
@@ -69,8 +69,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
ra.setConnectorClassName("org.apache.activemq.core.remoting.impl.invm.InVMConnectorFactory");
ra.setUserName("userGlobal");
ra.setPassword("passwordGlobal");
- ra.setTransactionManagerLocatorClass("");
- ra.setTransactionManagerLocatorMethod("");
ra.start(new org.apache.activemq.tests.unit.ra.BootstrapContext());
Connection conn = ra.getDefaultActiveMQConnectionFactory().createConnection();
@@ -131,7 +129,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectorClassName(UnitTestCase.INVM_CONNECTOR_FACTORY);
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -363,7 +360,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -390,7 +386,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -419,7 +414,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -446,7 +440,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setDiscoveryInitialWaitTimeout(1L);
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -469,10 +462,8 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter();
qResourceAdapter.setDiscoveryAddress("231.7.7.7");
- // qResourceAdapter.getTransactionManagerLocatorClass
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
@@ -504,7 +495,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setHA(true);
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -528,7 +518,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -552,7 +541,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -577,7 +565,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setReconnectAttempts(100);
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -601,7 +588,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -625,7 +611,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setConnectionParameters("server-id=0");
ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext();
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
spec.setResourceAdapter(qResourceAdapter);
@@ -654,7 +639,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setUseMaskedPassword(true);
qResourceAdapter.setPassword(mask);
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
assertEquals("helloworld", qResourceAdapter.getPassword());
@@ -699,7 +683,6 @@ public class ResourceAdapterTest extends ActiveMQRATestBase
qResourceAdapter.setPassword(mask);
- qResourceAdapter.setTransactionManagerLocatorClass("");
qResourceAdapter.start(ctx);
assertEquals("helloworld", qResourceAdapter.getPassword());
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ActiveMQResourceAdapterConfigTest.java
----------------------------------------------------------------------
diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ActiveMQResourceAdapterConfigTest.java b/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ActiveMQResourceAdapterConfigTest.java
index 5a7c4d1..4f3d414 100644
--- a/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ActiveMQResourceAdapterConfigTest.java
+++ b/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ActiveMQResourceAdapterConfigTest.java
@@ -280,18 +280,6 @@ public class ActiveMQResourceAdapterConfigTest extends UnitTestCase
" <config-property-type>long</config-property-type>\n" +
" <config-property-value></config-property-value>\n" +
" </config-property>\n" +
- " <config-property>" +
- " <description></description>" +
- " <config-property-name>TransactionManagerLocatorMethod</config-property-name>" +
- " <config-property-type>java.lang.String</config-property-type>" +
- " <config-property-value></config-property-value>" +
- " </config-property>" +
- " <config-property>" +
- " <description></description>" +
- " <config-property-name>TransactionManagerLocatorClass</config-property-name>" +
- " <config-property-type>java.lang.String</config-property-type>" +
- " <config-property-value></config-property-value>" +
- " </config-property>" +
" <config-property>\n" +
" <description>How many attempts should be made when connecting the MDB</description>\n" +
" <config-property-name>SetupAttempts</config-property-name>\n" +
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e34fd09c/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ConnectionFactoryPropertiesTest.java
----------------------------------------------------------------------
diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ConnectionFactoryPropertiesTest.java b/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ConnectionFactoryPropertiesTest.java
index 9c68c13..481d969 100644
--- a/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ConnectionFactoryPropertiesTest.java
+++ b/tests/unit-tests/src/test/java/org/apache/activemq/tests/unit/ra/ConnectionFactoryPropertiesTest.java
@@ -50,8 +50,6 @@ public class ConnectionFactoryPropertiesTest extends UnitTestCase
UNSUPPORTED_RA_PROPERTIES.add("discoveryInitialWaitTimeout");
UNSUPPORTED_RA_PROPERTIES.add("connectionParameters");
UNSUPPORTED_RA_PROPERTIES.add("connectorClassName");
- UNSUPPORTED_RA_PROPERTIES.add("transactionManagerLocatorClass");
- UNSUPPORTED_RA_PROPERTIES.add("transactionManagerLocatorMethod");
UNSUPPORTED_RA_PROPERTIES.add("managedConnectionFactory");
UNSUPPORTED_RA_PROPERTIES.add("jndiParams");
UNSUPPORTED_RA_PROPERTIES.add("password");