You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2012/07/11 13:36:20 UTC
svn commit: r1360125 - in /activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/jndi/ActiveMQInitialContextFactory.java
test/java/org/apache/activemq/jndi/InitialContextTest.java
Author: gtully
Date: Wed Jul 11 11:36:20 2012
New Revision: 1360125
URL: http://svn.apache.org/viewvc?rev=1360125&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-2656 - add wellknown xa factory name, XAConnectionFactory so that context.lookup("XAConnectionFactory") will work as expected out of the box
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/jndi/ActiveMQInitialContextFactory.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/jndi/InitialContextTest.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/jndi/ActiveMQInitialContextFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/jndi/ActiveMQInitialContextFactory.java?rev=1360125&r1=1360124&r2=1360125&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/jndi/ActiveMQInitialContextFactory.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/jndi/ActiveMQInitialContextFactory.java Wed Jul 11 11:36:20 2012
@@ -48,7 +48,7 @@ import org.apache.activemq.command.Activ
*/
public class ActiveMQInitialContextFactory implements InitialContextFactory {
- private static final String[] DEFAULT_CONNECTION_FACTORY_NAMES = {"ConnectionFactory", "QueueConnectionFactory", "TopicConnectionFactory"};
+ private static final String[] DEFAULT_CONNECTION_FACTORY_NAMES = {"ConnectionFactory", "XAConnectionFactory", "QueueConnectionFactory", "TopicConnectionFactory"};
private String connectionPrefix = "connection.";
private String queuePrefix = "queue.";
@@ -127,6 +127,10 @@ public class ActiveMQInitialContextFacto
protected ActiveMQConnectionFactory createConnectionFactory(String name, Hashtable environment) throws URISyntaxException {
Hashtable temp = new Hashtable(environment);
+ if (DEFAULT_CONNECTION_FACTORY_NAMES[1].equals(name)) {
+ // don't try to mod environment, it may be readonly
+ temp.put("xa", String.valueOf(true));
+ }
String prefix = connectionPrefix + name + ".";
for (Iterator iter = environment.entrySet().iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry)iter.next();
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/jndi/InitialContextTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/jndi/InitialContextTest.java?rev=1360125&r1=1360124&r2=1360125&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/jndi/InitialContextTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/jndi/InitialContextTest.java Wed Jul 11 11:36:20 2012
@@ -23,6 +23,7 @@ import javax.naming.InitialContext;
import junit.framework.TestCase;
import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.activemq.ActiveMQXAConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,6 +46,18 @@ public class InitialContextTest extends
}
+ public void testInitialContextHasXA() throws Exception {
+ InitialContext context = new InitialContext();
+ assertTrue("Created context", context != null);
+
+ ActiveMQXAConnectionFactory connectionFactory = (ActiveMQXAConnectionFactory)context.lookup("XAConnectionFactory");
+
+ assertTrue("Should have created an XAConnectionFactory", connectionFactory != null);
+
+ LOG.info("Created with brokerURL: " + connectionFactory.getBrokerURL());
+
+ }
+
public void testUsingStandardJNDIKeys() throws Exception {
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory");