[hornetq-commits] JBoss hornetq SVN: r7951 - in trunk: docs/user-manual/en and 13 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Sep 10 07:19:52 EDT 2009
Author: ataylor
Date: 2009-09-10 07:19:52 -0400 (Thu, 10 Sep 2009)
New Revision: 7951
Added:
trunk/src/main/org/hornetq/integration/jboss/
trunk/src/main/org/hornetq/integration/jboss/security/
trunk/src/main/org/hornetq/integration/jboss/tm/
trunk/src/main/org/hornetq/integration/jboss/tm/JBoss4TransactionManagerLocator.java
trunk/src/main/org/hornetq/integration/jboss/tm/JBoss5TransactionManagerLocator.java
Removed:
trunk/src/main/org/hornetq/integration/security/
trunk/src/main/org/hornetq/ra/inflow/JBoss4TransactionManagerLocator.java
trunk/src/main/org/hornetq/ra/inflow/JBoss5TransactionManagerLocator.java
Modified:
trunk/build-hornetq.xml
trunk/build-maven.xml
trunk/docs/user-manual/en/security.xml
trunk/examples/javaee/jms-bridge/server/jms-bridge-jboss-beans.xml
trunk/examples/jms/jaas/readme.html
trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml
trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml
trunk/src/main/org/hornetq/integration/jboss/security/JBossASSecurityManager.java
trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java
trunk/src/main/org/hornetq/jms/bridge/BridgeService.java
trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java
trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
trunk/src/main/org/hornetq/ra/HornetQRAProperties.java
trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-119 - also fixed same issue with the JMS bridge and some maven tweaks
Modified: trunk/build-hornetq.xml
===================================================================
--- trunk/build-hornetq.xml 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/build-hornetq.xml 2009-09-10 11:19:52 UTC (rev 7951)
@@ -49,7 +49,7 @@
<property name="jms.client.jar.name" value="hornetq-jms-client.jar"/>
<property name="jnp.client.jar.name" value="jnp-client.jar"/>
<property name="transports.jar.name" value="hornetq-transports.jar"/>
- <property name="security.jar.name" value="hornetq-jboss-as-security.jar"/>
+ <property name="jboss.integration.jar.name" value="hornetq-jboss-as-integration.jar"/>
<property name="bootstrap.jar.name" value="hornetq-bootstrap.jar"/>
<property name="logging.jar.name" value="hornetq-logging.jar"/>
<property name="core.client.jar.name" value="hornetq-core-client.jar"/>
@@ -65,7 +65,7 @@
<property name="build.core.classes.dir" value="${build.dir}/classes/core"/>
<property name="build.jms.classes.dir" value="${build.dir}/classes/jms"/>
<property name="build.transports.classes.dir" value="${build.dir}/classes/transports"/>
- <property name="build.security.classes.dir" value="${build.dir}/classes/security"/>
+ <property name="build.jboss.integration.classes.dir" value="${build.dir}/classes/jboss-integration"/>
<property name="build.bootstrap.classes.dir" value="${build.dir}/classes/bootstrap"/>
<property name="build.logging.classes.dir" value="${build.dir}/classes/logging"/>
<property name="build.ra.classes.dir" value="${build.dir}/classes/ra"/>
@@ -171,9 +171,11 @@
<path refid="org.jboss.netty.classpath"/>
</path>
- <path id="security.compilation.classpath">
+ <path id="jboss.integration.compilation.classpath">
<path location="${build.core.classes.dir}"/>
<path refid="org.jboss.security.classpath"/>
+ <path refid="org.jboss.integration.classpath"/>
+ <path refid="org.jboss.javaee.classpath"/>
</path>
<path id="bootstrap.compilation.classpath">
@@ -195,20 +197,20 @@
<path id="test.compilation.classpath">
<path refid="jms.compilation.classpath"/>
<path refid="transports.compilation.classpath"/>
- <path refid="security.compilation.classpath"/>
+ <path refid="jboss.integration.compilation.classpath"/>
<path refid="bootstrap.compilation.classpath"/>
<path refid="junit.junit.classpath"/>
<path location="${build.jars.dir}/${ra.jar.name}"/>
<path location="${build.jars.dir}/${jms.jar.name}"/>
<path location="${build.jars.dir}/${transports.jar.name}"/>
- <path location="${build.jars.dir}/${security.jar.name}"/>
+ <path location="${build.jars.dir}/${jboss.integration.jar.name}"/>
<path location="${build.jars.dir}/${bootstrap.jar.name}"/>
<path location="${build.jars.dir}/${logging.jar.name}"/>
</path>
<path id="jms.test.compilation.classpath">
<path refid="transports.compilation.classpath"/>
- <path refid="security.compilation.classpath"/>
+ <path refid="jboss.integration.compilation.classpath"/>
<path refid="bootstrap.compilation.classpath"/>
<path refid="jms.compilation.classpath"/>
<path refid="junit.junit.classpath"/>
@@ -216,7 +218,7 @@
<path location="${build.jars.dir}/${core.jar.name}"/>
<path location="${build.jars.dir}/${jms.jar.name}"/>
<path location="${build.jars.dir}/${transports.jar.name}"/>
- <path location="${build.jars.dir}/${security.jar.name}"/>
+ <path location="${build.jars.dir}/${jboss.integration.jar.name}"/>
<path location="${build.jars.dir}/${bootstrap.jar.name}"/>
<path location="${build.jars.dir}/${logging.jar.name}"/>
</path>
@@ -321,7 +323,7 @@
<mkdir dir="${build.core.classes.dir}"/>
<mkdir dir="${build.jms.classes.dir}"/>
<mkdir dir="${build.transports.classes.dir}"/>
- <mkdir dir="${build.security.classes.dir}"/>
+ <mkdir dir="${build.jboss.integration.classes.dir}"/>
<mkdir dir="${build.bootstrap.classes.dir}"/>
<mkdir dir="${build.logging.classes.dir}"/>
<mkdir dir="${build.ra.classes.dir}"/>
@@ -430,8 +432,8 @@
</javac>
</target>
- <target name="compile-security" depends="compile-core">
- <javac destdir="${build.security.classes.dir}"
+ <target name="compile-jboss-integration" depends="compile-core">
+ <javac destdir="${build.jboss.integration.classes.dir}"
target="${javac.target}"
source="${javac.source}"
optimize="${javac.optimize}"
@@ -445,8 +447,8 @@
<src>
<pathelement path="${src.main.dir}"/>
</src>
- <include name="org/hornetq/integration/security/**/*.java"/>
- <classpath refid="security.compilation.classpath"/>
+ <include name="org/hornetq/integration/jboss/**/*.java"/>
+ <classpath refid="jboss.integration.compilation.classpath"/>
</javac>
</target>
@@ -562,7 +564,7 @@
<!-- ======================================================================================== -->
<target name="jar"
- depends="jar-core, jar-core-client, jar-jms, jar-jms-client, jar-transports, jar-security, jar-bootstrap, jar-logging, jar-ra, jar-mc, jar-jnp-client">
+ depends="jar-core, jar-core-client, jar-jms, jar-jms-client, jar-transports, jar-jboss-integration, jar-bootstrap, jar-logging, jar-ra, jar-mc, jar-jnp-client">
</target>
<target name="jar-jnp-client" depends="init">
<jar jarfile="${build.jars.dir}/${jnp.client.jar.name}">
@@ -637,10 +639,10 @@
</target>
- <target name="jar-security" depends="compile-security">
+ <target name="jar-jboss-integration" depends="compile-jboss-integration">
- <jar jarfile="${build.jars.dir}/${security.jar.name}">
- <fileset dir="${build.security.classes.dir}" includes="**"/>
+ <jar jarfile="${build.jars.dir}/${jboss.integration.jar.name}">
+ <fileset dir="${build.jboss.integration.classes.dir}" includes="**"/>
</jar>
</target>
@@ -742,7 +744,7 @@
<include name="${core.jar.name}"/>
<include name="${jms.jar.name}"/>
<include name="${transports.jar.name}"/>
- <include name="${security.jar.name}"/>
+ <include name="${jboss.integration.jar.name}"/>
<include name="${bootstrap.jar.name}"/>
<include name="${logging.jar.name}"/>
<include name="${mc.jar.name}"/>
@@ -942,7 +944,7 @@
</antcall>
<antcall target="artifact">
- <param name="artifact.name" value="hornetq-jboss-as-security"/>
+ <param name="artifact.name" value="hornetq-jboss-as-integration"/>
</antcall>
<antcall target="artifact">
Modified: trunk/build-maven.xml
===================================================================
--- trunk/build-maven.xml 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/build-maven.xml 2009-09-10 11:19:52 UTC (rev 7951)
@@ -68,7 +68,7 @@
<target name="uploadHornetQSecurity">
<antcall target="upload">
- <param name="artifact.id" value="hornetq-jboss-as-security"/>
+ <param name="artifact.id" value="hornetq-jboss-as-integration"/>
<param name="artifact.type" value="jar"/>
</antcall>
</target>
Modified: trunk/docs/user-manual/en/security.xml
===================================================================
--- trunk/docs/user-manual/en/security.xml 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/docs/user-manual/en/security.xml 2009-09-10 11:19:52 UTC (rev 7951)
@@ -215,12 +215,12 @@
<para>To configure the JAAS security manager to work with your pre-built JAAS infrastructure
you need to specify the security manager as a <literal>JAASSecurityManager</literal> in
the beans file. Here's an example:</para>
- <programlisting>
-<bean name="HornetQSecurityManager"
- class="org.hornetq.integration.security.JAASSecurityManager">
+ <programlisting><![CDATA[
+<bean name="HornetQSecurityManager"
+ class="org.hornetq.integration.jboss.security.JAASSecurityManager">
<start ignored="true"/>
<stop ignored="true"/>
-
+
<property name="ConfigurationName">org.hornetq.jms.example.ExampleLoginModule</property>
<property name="Configuration">
<inject bean="ExampleConfiguration"/>
@@ -228,8 +228,8 @@
<property name="CallbackHandler">
<inject bean="ExampleCallbackHandler"/>
</property>
-</bean>
- </programlisting>
+</bean>
+ ]]></programlisting>
<para>Note that you need to feed the JAAS security manager with three properties:</para>
<itemizedlist>
<listitem>
@@ -257,7 +257,7 @@
Application server. This allows tight integration with the JBoss Application Server's
security model.</para>
<para>The class name of this security manager is <literal
- >org.hornetq.integration.security.JBossASSecurityManager</literal></para>
+ >org.hornetq.integration.jboss.security.JBossASSecurityManager</literal></para>
<para>Take a look at one of the default <literal>hornetq-jboss-beans.xml</literal> files for
JBoss Application Server that are bundled in the distribution for an example of how this
is configured.</para>
Modified: trunk/examples/javaee/jms-bridge/server/jms-bridge-jboss-beans.xml
===================================================================
--- trunk/examples/javaee/jms-bridge/server/jms-bridge-jboss-beans.xml 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/examples/javaee/jms-bridge/server/jms-bridge-jboss-beans.xml 2009-09-10 11:19:52 UTC (rev 7951)
@@ -52,6 +52,8 @@
<property name="transactionManager">
<inject bean="RealTransactionManager"/>
</property>
+ <!--<property name="transactionManagerLocatorClass">org.hornetq.integration.jboss.tm.JBoss5TransactionManagerLocator</property>
+ <property name="transactionManagerLocatorMethod">getTm</property>-->
</bean>
<!-- SourceCFF describes the ConnectionFactory used to connect to the source destination -->
Modified: trunk/examples/jms/jaas/readme.html
===================================================================
--- trunk/examples/jms/jaas/readme.html 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/examples/jms/jaas/readme.html 2009-09-10 11:19:52 UTC (rev 7951)
@@ -22,44 +22,45 @@
<p>HornetQ can use a JAAS security manager by specifying it in <a href="server0/hornetq-beans.xml">hornetq-beans.xml</a>:</p>
<pre>
<code>
- <!-- The security manager using JAAS -->
- <bean name="HornetQSecurityManager" class="org.hornetq.integration.security.JAASSecurityManager">
- <property name="configurationName">org.hornetq.jms.example.ExampleLoginModule</property>
- <property name="configuration">
- <inject bean="ExampleConfiguration"/>
- </property>
- <property name="callbackHandler">
- <inject bean="ExampleCallbackHandler" />
- </property>
- </bean>
+ &lt;!-- The security manager using JAAS --&gt;
+ &lt;bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JAASSecurityManager"&gt;
+ &lt;property name="configurationName"&gt;org.hornetq.jms.example.ExampleLoginModule&lt;/property&gt;
+ &lt;property name="configuration"&gt;
+ &lt;inject bean="ExampleConfiguration"/&gt;
+ &lt;/property&gt;
+ &lt;property name="callbackHandler"&gt;
+ &lt;inject bean="ExampleCallbackHandler" /&gt;
+ &lt;/property&gt;
+ &lt;/bean&gt;
- <!-- JAAS uses a simple LoginModule where the user credentials and roles are
- specified as options in the constructor -->
- <bean name="ExampleConfiguration" class="org.hornetq.jms.example.ExampleConfiguration">
- <constructor>
- <parameter>org.hornetq.jms.example.ExampleLoginModule</parameter>
- <parameter>
- <map class="java.util.HashMap" keyClass="java.lang.String"
- valueClass="java.lang.String">
- <entry>
- <key>user</key>
- <value>jboss</value>
- </entry>
- <entry>
- <key>pass</key>
- <value>redhat</value>
- </entry>
- <entry>
- <key>role</key>
- <value>guest</value>
- </entry>
- </map>
- </parameter>
- </constructor>
- </bean>
+ &lt;!-- JAAS uses a simple LoginModule where the user credentials and roles are
+ specified as options in the constructor --&gt;
+ &lt;bean name="ExampleConfiguration" class="org.hornetq.jms.example.ExampleConfiguration"&gt;
+ &lt;constructor&gt;
+ &lt;parameter&gt;org.hornetq.jms.example.ExampleLoginModule&lt;/parameter&gt;
+ &lt;parameter&gt;
+ &lt;map class="java.util.HashMap" keyClass="java.lang.String"
+ valueClass="java.lang.String"&gt;
+ &lt;entry&gt;
+ &lt;key&gt;user&lt;/key&gt;
+ &lt;value&gt;jboss&lt;/value&gt;
+ &lt;/entry&gt;
+ &lt;entry&gt;
+ &lt;key&gt;pass&lt;/key&gt;
+ &lt;value&gt;redhat&lt;/value&gt;
+ &lt;/entry&gt;
+ &lt;entry&gt;
+ &lt;key&gt;role&lt;/key&gt;
+ &lt;value&gt;guest&lt;/value&gt;
+ &lt;/entry&gt;
+ &lt;/map&gt;
+ &lt;/parameter&gt;
+ &lt;/constructor&gt;
+ &lt;/bean&gt;
- <!-- the CallbackHandler does nothing as we don't have any user interaction -->
- <bean name="ExampleCallbackHandler" class="org.hornetq.jms.example.ExampleCallbackHandler" />
+ &lt;!-- the CallbackHandler does nothing as we don't have any user interaction --&gt;
+ &lt;bean name="ExampleCallbackHandler" class="org.hornetq.jms.example.ExampleCallbackHandler"
+ /&gt;
</code>
</pre>
Modified: trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml
===================================================================
--- trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml 2009-09-10 11:19:52 UTC (rev 7951)
@@ -12,7 +12,7 @@
<bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
<!-- The security manager -->
- <bean name="HornetQSecurityManager" class="org.hornetq.integration.security.JBossASSecurityManager">
+ <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
<depends>JBossSecurityJNDIContextEstablishment</depends>
<start ignored="true"/>
<stop ignored="true"/>
Modified: trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml
===================================================================
--- trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml 2009-09-10 11:19:52 UTC (rev 7951)
@@ -12,7 +12,7 @@
<bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
<!-- The security manager -->
- <bean name="HornetQSecurityManager" class="org.hornetq.integration.security.JBossASSecurityManager">
+ <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
<depends>JBossSecurityJNDIContextEstablishment</depends>
<start ignored="true"/>
<stop ignored="true"/>
Copied: trunk/src/main/org/hornetq/integration/jboss/security (from rev 7939, trunk/src/main/org/hornetq/integration/security)
Modified: trunk/src/main/org/hornetq/integration/jboss/security/JBossASSecurityManager.java
===================================================================
--- trunk/src/main/org/hornetq/integration/security/JBossASSecurityManager.java 2009-09-04 17:41:16 UTC (rev 7939)
+++ trunk/src/main/org/hornetq/integration/jboss/security/JBossASSecurityManager.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -11,7 +11,7 @@
* permissions and limitations under the License.
*/
-package org.hornetq.integration.security;
+package org.hornetq.integration.jboss.security;
import java.security.Principal;
import java.util.HashSet;
Modified: trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java
===================================================================
--- trunk/src/main/org/hornetq/integration/security/SecurityActions.java 2009-09-04 17:41:16 UTC (rev 7939)
+++ trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -11,7 +11,7 @@
* permissions and limitations under the License.
*/
-package org.hornetq.integration.security;
+package org.hornetq.integration.jboss.security;
import java.security.AccessController;
import java.security.Principal;
Copied: trunk/src/main/org/hornetq/integration/jboss/tm/JBoss4TransactionManagerLocator.java (from rev 7939, trunk/src/main/org/hornetq/ra/inflow/JBoss4TransactionManagerLocator.java)
===================================================================
--- trunk/src/main/org/hornetq/integration/jboss/tm/JBoss4TransactionManagerLocator.java (rev 0)
+++ trunk/src/main/org/hornetq/integration/jboss/tm/JBoss4TransactionManagerLocator.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat 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.hornetq.integration.jboss.tm;
+
+import org.jboss.tm.TransactionManagerLocator;
+
+import javax.transaction.TransactionManager;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class JBoss4TransactionManagerLocator
+{
+ public TransactionManager getTm()
+ {
+ return TransactionManagerLocator.getInstance().locate();
+ }
+}
Copied: trunk/src/main/org/hornetq/integration/jboss/tm/JBoss5TransactionManagerLocator.java (from rev 7939, trunk/src/main/org/hornetq/ra/inflow/JBoss5TransactionManagerLocator.java)
===================================================================
--- trunk/src/main/org/hornetq/integration/jboss/tm/JBoss5TransactionManagerLocator.java (rev 0)
+++ trunk/src/main/org/hornetq/integration/jboss/tm/JBoss5TransactionManagerLocator.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat 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.hornetq.integration.jboss.tm;
+
+import org.jboss.tm.TransactionManagerLocator;
+
+import javax.transaction.TransactionManager;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ */
+public class JBoss5TransactionManagerLocator
+{
+ public TransactionManager getTm()
+ {
+ return TransactionManagerLocator.locateTransactionManager();
+ }
+}
Modified: trunk/src/main/org/hornetq/jms/bridge/BridgeService.java
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/BridgeService.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/main/org/hornetq/jms/bridge/BridgeService.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -239,7 +239,28 @@
{
bridge.setAddMessageIDInHeader(value);
}
-
+
+
+ public String getTransactionManagerLocatorClass()
+ {
+ return bridge.getTransactionManagerLocatorClass();
+ }
+
+ public void setTransactionManagerLocatorClass(String transactionManagerLocatorClass)
+ {
+ bridge.setTransactionManagerLocatorClass(transactionManagerLocatorClass);
+ }
+
+ public String getTransactionManagerLocatorMethod()
+ {
+ return bridge.getTransactionManagerLocatorMethod();
+ }
+
+ public void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod)
+ {
+ bridge.setTransactionManagerLocatorMethod(transactionManagerLocatorMethod);
+ }
+
public boolean isFailed()
{
return bridge.isFailed();
Modified: trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -87,6 +87,14 @@
void setClientID(String clientID);
+ String getTransactionManagerLocatorClass();
+
+ void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
+
+ String getTransactionManagerLocatorMethod();
+
+ void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
+
boolean isAddMessageIDInHeader();
void setAddMessageIDInHeader(boolean value);
Modified: trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -18,6 +18,8 @@
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
@@ -144,6 +146,10 @@
private boolean failed;
private int forwardMode;
+
+ private String transactionManagerLocatorClass = "org.hornetq.integration.jboss.tm.JBoss5TransactionManagerLocator";
+
+ private String transactionManagerLocatorMethod = "getTm";
private static final int FORWARD_MODE_XA = 0;
@@ -561,7 +567,28 @@
this.clientID = clientID;
}
-
+
+ public String getTransactionManagerLocatorClass()
+ {
+ return transactionManagerLocatorClass;
+ }
+
+ public void setTransactionManagerLocatorClass(String transactionManagerLocatorClass)
+ {
+ checkBridgeNotStarted();
+ this.transactionManagerLocatorClass = transactionManagerLocatorClass;
+ }
+
+ public String getTransactionManagerLocatorMethod()
+ {
+ return transactionManagerLocatorMethod;
+ }
+
+ public void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod)
+ {
+ this.transactionManagerLocatorMethod = transactionManagerLocatorMethod;
+ }
+
public boolean isAddMessageIDInHeader()
{
return this.addMessageIDInHeader;
@@ -744,8 +771,20 @@
{
if (tm == null)
{
- tm = TransactionManagerLocator.getInstance().locate();
-
+ try
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ Class aClass = loader.loadClass(transactionManagerLocatorClass);
+ Object o = aClass.newInstance();
+ Method m = aClass.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");
Modified: trunk/src/main/org/hornetq/ra/HornetQRAProperties.java
===================================================================
--- trunk/src/main/org/hornetq/ra/HornetQRAProperties.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/main/org/hornetq/ra/HornetQRAProperties.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -47,7 +47,7 @@
/** Use Local TX instead of XA */
private Boolean localTx = false;
- private String transactionManagerLocatorClass = "org.hornetq.ra.inflow.JBoss5TransactionManagerLocator";
+ private String transactionManagerLocatorClass = "org.hornetq.integration.jboss.tm.JBoss5TransactionManagerLocator";
private String transactionManagerLocatorMethod = "getTm";
Deleted: trunk/src/main/org/hornetq/ra/inflow/JBoss4TransactionManagerLocator.java
===================================================================
--- trunk/src/main/org/hornetq/ra/inflow/JBoss4TransactionManagerLocator.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/main/org/hornetq/ra/inflow/JBoss4TransactionManagerLocator.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -1,28 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat 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.hornetq.ra.inflow;
-
-import org.jboss.tm.TransactionManagerLocator;
-
-import javax.transaction.TransactionManager;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class JBoss4TransactionManagerLocator
-{
- public TransactionManager getTm()
- {
- return TransactionManagerLocator.getInstance().locate();
- }
-}
Deleted: trunk/src/main/org/hornetq/ra/inflow/JBoss5TransactionManagerLocator.java
===================================================================
--- trunk/src/main/org/hornetq/ra/inflow/JBoss5TransactionManagerLocator.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/src/main/org/hornetq/ra/inflow/JBoss5TransactionManagerLocator.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -1,28 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat 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.hornetq.ra.inflow;
-
-import org.jboss.tm.TransactionManagerLocator;
-
-import javax.transaction.TransactionManager;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- */
-public class JBoss5TransactionManagerLocator
-{
- public TransactionManager getTm()
- {
- return TransactionManagerLocator.locateTransactionManager();
- }
-}
Modified: trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java 2009-09-10 09:34:46 UTC (rev 7950)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java 2009-09-10 11:19:52 UTC (rev 7951)
@@ -1575,8 +1575,35 @@
}
}
}
-
-
+
+ public void testSetTMClass() throws Exception
+ {
+ JMSBridgeImpl bridge = null;
+
+ try
+ {
+ bridge = new JMSBridgeImpl(cff0, cff0, sourceQueueFactory, localTargetQueueFactory,
+ null, null, null, null,
+ null, 3000, 10, QualityOfServiceMode.AT_MOST_ONCE,
+ 10000, 3000,
+ null, null, false);
+ bridge.setTransactionManagerLocatorClass(this.getClass().getName());
+ bridge.setTransactionManagerLocatorMethod("getNewTm");
+ bridge.start();
+ }
+ finally
+ {
+ if (bridge != null)
+ {
+ bridge.stop();
+ }
+ }
+ }
+
+ public TransactionManager getNewTm()
+ {
+ return newTransactionManager();
+ }
// Inner classes -------------------------------------------------------------------
private static class StressSender implements Runnable
More information about the hornetq-commits
mailing list