You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by va...@apache.org on 2011/05/06 13:25:48 UTC
svn commit: r1100170 - in /geronimo/server/branches/2.1: ./
repository/org/apache/activemq/
repository/org/apache/activemq/activemq-core/4.1.2-G20100308/
repository/org/apache/activemq/activemq-core/4.1.2-G20110506/
repository/org/apache/activemq/activ...
Author: vamsic007
Date: Fri May 6 11:25:47 2011
New Revision: 1100170
URL: http://svn.apache.org/viewvc?rev=1100170&view=rev
Log:
GERONIMO-5950 "AMQ-3121: Avoid connection creation while creating XAResource if the connection factory is not an xa connection factory"
o Create a customized ActiveMQ 4.1.2 build for Geronimo 2.1.8. Jars changed are activemq-core and activemq-ra.
o Update server poms to use this build 4.1.2-G20110506.
Added:
geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20110506.README.TXT
- copied, changed from r1100140, geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20100308.README.TXT
geronimo/server/branches/2.1/repository/org/apache/activemq/AMQ-3121-v412.patch
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar (with props)
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.md5
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.sha1
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar (with props)
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.md5
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.sha1
Removed:
geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20100308.README.TXT
geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20100308/
Modified:
geronimo/server/branches/2.1/pom.xml
Modified: geronimo/server/branches/2.1/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/pom.xml?rev=1100170&r1=1100169&r2=1100170&view=diff
==============================================================================
--- geronimo/server/branches/2.1/pom.xml (original)
+++ geronimo/server/branches/2.1/pom.xml Fri May 6 11:25:47 2011
@@ -675,13 +675,13 @@
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
- <version>4.1.2-G20100308</version>
+ <version>4.1.2-G20110506</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-ra</artifactId>
- <version>4.1.2</version>
+ <version>4.1.2-G20110506</version>
</dependency>
<dependency>
Copied: geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20110506.README.TXT (from r1100140, geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20100308.README.TXT)
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20110506.README.TXT?p2=geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20110506.README.TXT&p1=geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20100308.README.TXT&r1=1100140&r2=1100170&rev=1100170&view=diff
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20100308.README.TXT (original)
+++ geronimo/server/branches/2.1/repository/org/apache/activemq/4.1.2-G20110506.README.TXT Fri May 6 11:25:47 2011
@@ -1,6 +1,6 @@
Private Build of ActiveMQ for Geronimo.
-How to build ActiveMQ 4.1.2-G20090207:
+How to build ActiveMQ 4.1.2-G20110506:
--------------------------------------
Checkout the ActiveMQ 4.1.2 tag
svn co https://svn.apache.org/repos/asf/activemq/tags/activemq-4.1.2 activemq-4.1.2
@@ -26,6 +26,7 @@ patch -p0 -u < AMQ-2094.patch
patch -p0 -u < build.patch
patch -p0 -u < AMQ-2346.patch
patch -p0 -u < unitcasesfix.patch
+patch -p0 -u < AMQ-3121-v412.patch
Answer 'y' to any prompts of "Reversed (or previously applied) patch detected! Assume -R? [n]"
@@ -34,20 +35,28 @@ Build ActiveMQ
cd activemq-4.1.2
mvn install
Notes:
- - we only need to build the activemq-core directory
- - I used Sun 1.5.0_13 and Maven 2.0.9 on MacOSX to build the jar
+ - we only need to build the activemq-core and activemq-ra directories
+ - I used Sun 1.5.0_17 and Maven 2.0.11 on Windows XP to build the jar
Copy patched activemq-core jar to appropriate filename
------------------------------------------------------
cd activemq-4.1.2
- cp activemq-core/target/activemq-core-4.1.2.jar <geronimo-root>/repository/org/apache/activemq/activemq-core/4.1.2-G20100308/activemq-core-4.1.2-G20100308.jar
+ cp activemq-core/target/activemq-core-4.1.2.jar <geronimo-root>/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar
+
+Copy patched activemq-ra jar to appropriate filename
+------------------------------------------------------
+ cd activemq-4.1.2
+ cp activemq-ra/target/activemq-ra-4.1.2.jar <geronimo-root>/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar
Optional steps:
---------------
- cd <geronimo-root>/repository/org/apache/activemq/activemq-core/4.1.2-G20100308
- md5sum activemq-core-4.1.2-G20100308.jar > activemq-core-4.1.2-G20100308.jar.md5
- sha1sum activemq-core-4.1.2-G20100308.jar > activemq-core-4.1.2-G20100308.jar.sha1
+ cd <geronimo-root>/repository/org/apache/activemq/activemq-core/4.1.2-G20110506
+ md5sum activemq-core-4.1.2-G20110506.jar > activemq-core-4.1.2-G20110506.jar.md5
+ sha1sum activemq-core-4.1.2-G20110506.jar > activemq-core-4.1.2-G20110506.jar.sha1
+ cd <geronimo-root>/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506
+ md5sum activemq-ra-4.1.2-G20110506.jar > activemq-ra-4.1.2-G20110506.jar.md5
+ sha1sum activemq-ra-4.1.2-G20110506.jar > activemq-ra-4.1.2-G20110506.jar.sha1
How the patch (AMQ1272-stomp-auth-v412.patch) was created:
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/AMQ-3121-v412.patch
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/AMQ-3121-v412.patch?rev=1100170&view=auto
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/activemq/AMQ-3121-v412.patch (added)
+++ geronimo/server/branches/2.1/repository/org/apache/activemq/AMQ-3121-v412.patch Fri May 6 11:25:47 2011
@@ -0,0 +1,108 @@
+Index: activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java
+===================================================================
+--- activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java (revision 1100085)
++++ activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQResourceAdapter.java (working copy)
+@@ -19,6 +19,7 @@
+
+ import org.apache.activemq.ActiveMQConnection;
+ import org.apache.activemq.ActiveMQConnectionFactory;
++import org.apache.activemq.ActiveMQXAConnectionFactory;
+ import org.apache.activemq.RedeliveryPolicy;
+ import org.apache.activemq.broker.BrokerFactory;
+ import org.apache.activemq.broker.BrokerService;
+@@ -26,7 +27,6 @@
+ import org.apache.commons.logging.Log;
+ import org.apache.commons.logging.LogFactory;
+
+-import javax.jms.Connection;
+ import javax.jms.JMSException;
+ import javax.jms.XAConnection;
+ import javax.jms.XASession;
+@@ -66,6 +66,7 @@
+ private String brokerXmlConfig;
+ private BrokerService broker;
+ private ActiveMQConnectionFactory connectionFactory;
++ private XAConnection cachedConnection;
+
+ public ActiveMQResourceAdapter() {
+ }
+@@ -172,6 +173,15 @@
+ ActiveMQEndpointActivationKey key = (ActiveMQEndpointActivationKey) endpointWorkers.keySet().iterator().next();
+ endpointDeactivation(key.getMessageEndpointFactory(), key.getActivationSpec());
+ }
++ if(cachedConnection != null) {
++ try {
++ log.debug("Closing cachedConnection... "+cachedConnection);
++ cachedConnection.close();
++ log.debug("Closed cachedConnection "+cachedConnection);
++ } catch(Throwable ignored) {
++ }
++ cachedConnection = null;
++ }
+ if (broker != null) {
+ ServiceSupport.dispose(broker);
+ broker = null;
+@@ -255,23 +265,49 @@
+ * @see javax.resource.spi.ResourceAdapter#getXAResources(javax.resource.spi.ActivationSpec[])
+ */
+ public XAResource[] getXAResources(ActivationSpec[] activationSpecs) throws ResourceException {
+- Connection connection = null;
+ try {
+- connection = makeConnection();
+- if (connection instanceof XAConnection) {
+- XASession session = ((XAConnection) connection).createXASession();
+- XAResource xaResource = session.getXAResource();
+- return new XAResource[] { xaResource };
+- } else {
+- return new XAResource[] {};
++ ActiveMQConnectionFactory cf = connectionFactory == null ? createConnectionFactory(getInfo()) : connectionFactory;
++ if (!(cf instanceof ActiveMQXAConnectionFactory)) {
++ return new XAResource[] {};
+ }
+- } catch (JMSException e) {
+- throw new ResourceException(e);
+- } finally {
+- try {
+- connection.close();
+- } catch (Throwable ignore) {
++ if(cachedConnection != null) {
++ try {
++ XAResource res = cachedConnection.createXASession().getXAResource();
++ log.debug("Created XA resource from cached connection "+cachedConnection);
++ return new XAResource[] {res};
++ } catch(Throwable t) {
++ log.debug("Failed to create XA resource from cached connection "+cachedConnection, t);
++ try {
++ log.debug("Closing cachedConnection... "+cachedConnection);
++ cachedConnection.close();
++ log.debug("Closed cachedConnection "+cachedConnection);
++ } catch(Throwable ignored) {
++ }
++ cachedConnection = null;
++ }
+ }
++ // Cached connection could not be used. Create a new connection, cache it and serve the request.
++ try {
++ cachedConnection = (XAConnection) makeConnection(getInfo(), cf);
++ XAResource res = cachedConnection.createXASession().getXAResource();
++ log.debug("Created XA resource from new connection "+cachedConnection);
++ return new XAResource[] {res};
++ } catch(Throwable t) {
++ log.debug("Failed to create XA resource from new connection "+cachedConnection, t);
++ if(cachedConnection != null) {
++ XAConnection temp = cachedConnection;
++ cachedConnection = null;
++ try {
++ log.debug("Closing new connection... "+temp);
++ temp.close();
++ log.debug("Closed new connection "+temp);
++ } catch(Throwable ignored) {
++ }
++ }
++ throw new ResourceException(t);
++ }
++ } catch (JMSException e) {
++ throw new ResourceException(e);
+ }
+ }
+
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar?rev=1100170&view=auto
==============================================================================
Binary file - no diff available.
Propchange: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar
------------------------------------------------------------------------------
svn:mime-type = application/java-archive
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.md5
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.md5?rev=1100170&view=auto
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.md5 (added)
+++ geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.md5 Fri May 6 11:25:47 2011
@@ -0,0 +1 @@
+97f72be0c5cc6d0e5e553886066ae9b9 activemq-core-4.1.2-G20110506.jar
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.sha1
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.sha1?rev=1100170&view=auto
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.sha1 (added)
+++ geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-core/4.1.2-G20110506/activemq-core-4.1.2-G20110506.jar.sha1 Fri May 6 11:25:47 2011
@@ -0,0 +1 @@
+6a083ab1f9cc2fe41846bf759ef341a624bca168 activemq-core-4.1.2-G20110506.jar
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar?rev=1100170&view=auto
==============================================================================
Binary file - no diff available.
Propchange: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar
------------------------------------------------------------------------------
svn:mime-type = application/java-archive
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.md5
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.md5?rev=1100170&view=auto
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.md5 (added)
+++ geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.md5 Fri May 6 11:25:47 2011
@@ -0,0 +1 @@
+2d8b94e1e17d49e494071f1ea0a9f874 activemq-ra-4.1.2-G20110506.jar
Added: geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.sha1
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.sha1?rev=1100170&view=auto
==============================================================================
--- geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.sha1 (added)
+++ geronimo/server/branches/2.1/repository/org/apache/activemq/activemq-ra/4.1.2-G20110506/activemq-ra-4.1.2-G20110506.jar.sha1 Fri May 6 11:25:47 2011
@@ -0,0 +1 @@
+1fba51f263dbffdc6ae431084aeaf84bcf7d5abf activemq-ra-4.1.2-G20110506.jar