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>