[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>
-&lt;bean name="HornetQSecurityManager" 
-      class="org.hornetq.integration.security.JAASSecurityManager"&gt;      
+        <programlisting><![CDATA[
+&lt;bean name="HornetQSecurityManager"
+      class="org.hornetq.integration.jboss.security.JAASSecurityManager"&gt;
     &lt;start ignored="true"/&gt;
     &lt;stop ignored="true"/&gt;
-    
+
     &lt;property name="ConfigurationName"&gt;org.hornetq.jms.example.ExampleLoginModule&lt;/property&gt;
     &lt;property name="Configuration"&gt;
        &lt;inject bean="ExampleConfiguration"/&gt;
@@ -228,8 +228,8 @@
     &lt;property name="CallbackHandler"&gt;
        &lt;inject bean="ExampleCallbackHandler"/&gt;
     &lt;/property&gt;
-&lt;/bean&gt;            
-        </programlisting>
+&lt;/bean&gt;
+        ]]></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>
-            &lt;!-- The security manager using JAAS --&gt;
-            &lt;bean name="HornetQSecurityManager" class="org.hornetq.integration.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;
+             &amp;lt;!-- The security manager using JAAS --&amp;gt;
+             &amp;lt;bean name=&quot;HornetQSecurityManager&quot; class=&quot;org.hornetq.integration.jboss.security.JAASSecurityManager&quot;&amp;gt;
+             &amp;lt;property name=&quot;configurationName&quot;&amp;gt;org.hornetq.jms.example.ExampleLoginModule&amp;lt;/property&amp;gt;
+             &amp;lt;property name=&quot;configuration&quot;&amp;gt;
+             &amp;lt;inject bean=&quot;ExampleConfiguration&quot;/&amp;gt;
+             &amp;lt;/property&amp;gt;
+             &amp;lt;property name=&quot;callbackHandler&quot;&amp;gt;
+             &amp;lt;inject bean=&quot;ExampleCallbackHandler&quot; /&amp;gt;
+             &amp;lt;/property&amp;gt;
+             &amp;lt;/bean&amp;gt;
 
-            &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;
+             &amp;lt;!-- JAAS uses a simple LoginModule where the user credentials and roles are
+             specified as options in the constructor --&amp;gt;
+             &amp;lt;bean name=&quot;ExampleConfiguration&quot; class=&quot;org.hornetq.jms.example.ExampleConfiguration&quot;&amp;gt;
+             &amp;lt;constructor&amp;gt;
+             &amp;lt;parameter&amp;gt;org.hornetq.jms.example.ExampleLoginModule&amp;lt;/parameter&amp;gt;
+             &amp;lt;parameter&amp;gt;
+             &amp;lt;map class=&quot;java.util.HashMap&quot; keyClass=&quot;java.lang.String&quot;
+             valueClass=&quot;java.lang.String&quot;&amp;gt;
+             &amp;lt;entry&amp;gt;
+             &amp;lt;key&amp;gt;user&amp;lt;/key&amp;gt;
+             &amp;lt;value&amp;gt;jboss&amp;lt;/value&amp;gt;
+             &amp;lt;/entry&amp;gt;
+             &amp;lt;entry&amp;gt;
+             &amp;lt;key&amp;gt;pass&amp;lt;/key&amp;gt;
+             &amp;lt;value&amp;gt;redhat&amp;lt;/value&amp;gt;
+             &amp;lt;/entry&amp;gt;
+             &amp;lt;entry&amp;gt;
+             &amp;lt;key&amp;gt;role&amp;lt;/key&amp;gt;
+             &amp;lt;value&amp;gt;guest&amp;lt;/value&amp;gt;
+             &amp;lt;/entry&amp;gt;
+             &amp;lt;/map&amp;gt;
+             &amp;lt;/parameter&amp;gt;
+             &amp;lt;/constructor&amp;gt;
+             &amp;lt;/bean&amp;gt;
 
-            &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;                             
+             &amp;lt;!-- the CallbackHandler does nothing as we don&apos;t have any user interaction --&amp;gt;
+             &amp;lt;bean name=&quot;ExampleCallbackHandler&quot; class=&quot;org.hornetq.jms.example.ExampleCallbackHandler&quot;
+             /&amp;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