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 2013/07/31 18:54:04 UTC

svn commit: r1508958 - in /activemq/trunk: activemq-pool/src/main/java/org/apache/activemq/pool/ activemq-rar/ activemq-rar/src/main/rar/META-INF/

Author: gtully
Date: Wed Jul 31 16:54:04 2013
New Revision: 1508958

URL: http://svn.apache.org/r1508958
Log:
allow xapooledconnectionfactory as an admin object - allows xa enlistment at the session level for jms style use cases with the RAR contents. validation of https://issues.apache.org/jira/browse/AMQ-3560 in eap 6.1

Modified:
    activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java
    activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java
    activemq/trunk/activemq-rar/pom.xml
    activemq/trunk/activemq-rar/src/main/rar/META-INF/ra.xml

Modified: activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java?rev=1508958&r1=1508957&r2=1508958&view=diff
==============================================================================
--- activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java (original)
+++ activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/PooledConnectionFactory.java Wed Jul 31 16:54:04 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.pool;
 
+import java.util.Properties;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.jms.Connection;
@@ -25,6 +26,7 @@ import javax.jms.JMSException;
 import org.apache.activemq.ActiveMQConnection;
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.Service;
+import org.apache.activemq.jndi.JNDIBaseStorable;
 import org.apache.activemq.util.JMSExceptionSupport;
 import org.apache.commons.pool.KeyedObjectPool;
 import org.apache.commons.pool.KeyedPoolableObjectFactory;
@@ -62,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *
  * @org.apache.xbean.XBean element="pooledConnectionFactory"
  */
-public class PooledConnectionFactory implements ConnectionFactory, Service {
+public class PooledConnectionFactory extends JNDIBaseStorable implements ConnectionFactory, Service {
     private static final transient Logger LOG = LoggerFactory.getLogger(PooledConnectionFactory.class);
 
     private final AtomicBoolean stopped = new AtomicBoolean(false);
@@ -484,4 +486,16 @@ public class PooledConnectionFactory imp
     protected ConnectionPool createConnectionPool(ActiveMQConnection connection) {
         return new ConnectionPool(connection);
     }
+
+    @Override
+    protected void buildFromProperties(Properties props) {
+        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
+        activeMQConnectionFactory.buildFromProperties(props);
+        connectionFactory = activeMQConnectionFactory;
+    }
+
+    @Override
+    protected void populateProperties(Properties props) {
+        ((ActiveMQConnectionFactory)connectionFactory).populateProperties(props);
+    }
 }

Modified: activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java?rev=1508958&r1=1508957&r2=1508958&view=diff
==============================================================================
--- activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java (original)
+++ activemq/trunk/activemq-pool/src/main/java/org/apache/activemq/pool/XaPooledConnectionFactory.java Wed Jul 31 16:54:04 2013
@@ -18,6 +18,7 @@ package org.apache.activemq.pool;
 
 import java.io.Serializable;
 import java.util.Hashtable;
+import java.util.Properties;
 import javax.jms.JMSException;
 import javax.jms.QueueConnection;
 import javax.jms.QueueConnectionFactory;
@@ -161,4 +162,21 @@ public class XaPooledConnectionFactory e
     public TopicConnection createTopicConnection(String userName, String password) throws JMSException {
         return (TopicConnection) createConnection(userName, password);
     }
+
+    @Override
+    protected void buildFromProperties(Properties props) {
+        super.buildFromProperties(props);
+        for (String v : new String[]{"tmFromJndi", "tmJndiName"}) {
+            if (props.containsKey(v)) {
+                IntrospectionSupport.setProperty(this, v, props.getProperty(v));
+            }
+        }
+    }
+
+    @Override
+    protected void populateProperties(Properties props) {
+        super.populateProperties(props);
+        props.setProperty("tmFromJndi", String.valueOf(isTmFromJndi()));
+        props.setProperty("tmJndiName", tmJndiName);
+    }
 }

Modified: activemq/trunk/activemq-rar/pom.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-rar/pom.xml?rev=1508958&r1=1508957&r2=1508958&view=diff
==============================================================================
--- activemq/trunk/activemq-rar/pom.xml (original)
+++ activemq/trunk/activemq-rar/pom.xml Wed Jul 31 16:54:04 2013
@@ -336,6 +336,10 @@
       <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
     </dependency>
     <dependency>
+      <groupId>commons-pool</groupId>
+      <artifactId>commons-pool</artifactId>
+    </dependency>
+    <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
     </dependency>

Modified: activemq/trunk/activemq-rar/src/main/rar/META-INF/ra.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-rar/src/main/rar/META-INF/ra.xml?rev=1508958&r1=1508957&r2=1508958&view=diff
==============================================================================
--- activemq/trunk/activemq-rar/src/main/rar/META-INF/ra.xml (original)
+++ activemq/trunk/activemq-rar/src/main/rar/META-INF/ra.xml Wed Jul 31 16:54:04 2013
@@ -174,6 +174,19 @@
               <config-property-type>java.lang.String</config-property-type>
           </config-property>
       </adminobject>
+      <adminobject>
+          <adminobject-interface>javax.jms.ConnectionFactory</adminobject-interface>
+          <adminobject-class>org.apache.activemq.pool.XaPooledConnectionFactory</adminobject-class>
+          <config-property>
+              <config-property-name>brokerUrl</config-property-name>
+              <config-property-type>java.lang.String</config-property-type>
+          </config-property>
+          <config-property>
+            <config-property-name>tmFromJndi</config-property-name>
+            <config-property-type>java.lang.Boolean</config-property-type>
+          </config-property>
+      </adminobject>
+
 
     </resourceadapter>
 </connector>