[jboss-cvs] JBossAS SVN: r66991 - in branches/JBPAPP_4_2: messaging/src/etc/server-jbm and 19 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 12 17:28:38 EST 2007


Author: clebert.suconic at jboss.com
Date: 2007-11-12 17:28:37 -0500 (Mon, 12 Nov 2007)
New Revision: 66991

Added:
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/MANIFEST.MF
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/jboss-service.xml
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/connection-factories-service.xml
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/destinations-service.xml
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/messaging-service.xml
   branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/remoting-bisocket-service.xml
   branches/JBPAPP_4_2/testsuite/imports/sections/jbm.xml
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ClusteredTestCase.java
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTest.java
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTestContainer.java
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillService.java
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillServiceMBean.java
   branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/META-INF/
   branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/META-INF/jboss-service.xml
   branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/test-clustered-destinations-full-service.xml
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/deploy/
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/deploy/hsqldb-ds.xml
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/hsqldb-ds.xml
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/jboss-messaging.sar/
   branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/jboss-messaging.sar/messaging-service.xml
Modified:
   branches/JBPAPP_4_2/build/build-distr.xml
   branches/JBPAPP_4_2/build/build.xml
   branches/JBPAPP_4_2/testsuite/.classpath
   branches/JBPAPP_4_2/testsuite/build.xml
   branches/JBPAPP_4_2/testsuite/imports/server-config.xml
   branches/JBPAPP_4_2/testsuite/imports/test-jars.xml
   branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/JBossTestClusteredServices.java
Log:
http://jira.jboss.com/jira/browse/JBPAPP-413, http://jira.jboss.com/jira/browse/JBMESSAGING-726, http://jira.jboss.com/jira/browse/JBQA-1129 - Clustering tests for JBM & Configuration changes for JBM clustering (using HSQL (not intended for production))

Modified: branches/JBPAPP_4_2/build/build-distr.xml
===================================================================
--- branches/JBPAPP_4_2/build/build-distr.xml	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/build/build-distr.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -548,7 +548,7 @@
     </copy>
 
     <copy todir="${install.server}/${target}/deploy/jboss-messaging.sar" filtering="no">
-      <fileset dir="${project.root}/messaging/output/etc/server-jbm/default/deploy/jboss-messaging.sar">
+      <fileset dir="${project.root}/messaging/output/etc/server-jbm/${source-config}/deploy/jboss-messaging.sar">
         <include name="**"/>
       </fileset>
     </copy>

Modified: branches/JBPAPP_4_2/build/build.xml
===================================================================
--- branches/JBPAPP_4_2/build/build.xml	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/build/build.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -406,13 +406,16 @@
   <target name="replace-messaging" description = "Replace JBossMQ by JBoss Messaging on a given installation" depends="init" if="build.soa">
   	
   	 <ant antfile="build-distr.xml" target="replace-messaging">
- 	 	 <property name="target" value="default" />
+	 	 <property name="target" value="default" />
+	 	 <property name="source-config" value="default" />
   	 </ant>
  	 <ant antfile="build-distr.xml" target="replace-messaging">
 	 	 <property name="target" value="all" />
+	 	 <property name="source-config" value="clustered" />
  	 </ant>
  	 <ant antfile="build-distr.xml" target="replace-messaging">
 	 	 <property name="target" value="production" />
+	 	 <property name="source-config" value="clustered" />
  	 </ant>
   	
   </target>

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/MANIFEST.MF
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/MANIFEST.MF	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/MANIFEST.MF	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Ant-Version: Apache Ant 1.6.2
+Created-By: 1.5.0_07-b03 (Sun Microsystems Inc.)
+Specification-Title: JBoss Messaging
+Specification-Version: 1.3.0.GA
+Specification-Vendor: JBoss Inc. (http://www.jboss.org/)
+Implementation-Title: JBoss Messaging
+Implementation-URL: http://www.jboss.org/
+Implementation-Version: 1.3.0.GA (build: CVSTag=JBossMessaging_1_3_0_G
+ A date=200706111737)
+Implementation-Vendor: JBoss Inc. (http://www.jboss.org/)
+Implementation-Vendor-Id: http://www.jboss.org/
+

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/jboss-service.xml
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/jboss-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/jboss-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     Bootstrap - starts the messaging server peer
+
+     $Id$
+ -->
+
+<server>
+
+   <mbean code="org.jboss.jms.server.Bootstrap"
+      name="jboss.messaging:service=Bootstrap"
+      xmbean-dd="xmdesc/Bootstrap-xmbean.xml">
+      <depends>jboss.messaging:service=ServerPeer</depends>
+   </mbean>
+
+</server>
\ No newline at end of file


Property changes on: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/META-INF/jboss-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/connection-factories-service.xml
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/connection-factories-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/connection-factories-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     Messaging Connection Factories deployment descriptor.
+
+     $Id: connection-factories-service.xml 3201 2007-10-19 10:39:50Z timfox $
+ -->
+
+<server>
+
+   <!-- The default connection factory does not support automatic failover or load balancing-
+        this is so we can maintain compatiblity with applications written for JBoss MQ which use this
+        connection factory.
+   -->     
+   <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+      name="jboss.messaging.connectionfactory:service=ConnectionFactory"
+      xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+
+      <attribute name="JNDIBindings">
+         <bindings>
+            <binding>/ConnectionFactory</binding>
+            <binding>/XAConnectionFactory</binding>
+            <binding>java:/ConnectionFactory</binding>
+            <binding>java:/XAConnectionFactory</binding>
+         </bindings>
+      </attribute>
+   </mbean>
+
+   <!-- A clustered connection factory that supports automatic failover and load balancing of created
+        connections.
+        This factory is not suitable to be used by MDBs.
+   -->
+   <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+      name="jboss.messaging.connectionfactory:service=ClusteredConnectionFactory"
+      xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+
+      <attribute name="JNDIBindings">
+         <bindings>
+            <binding>/ClusteredConnectionFactory</binding>
+            <binding>/ClusteredXAConnectionFactory</binding>
+            <binding>java:/ClusteredConnectionFactory</binding>
+            <binding>java:/ClusteredXAConnectionFactory</binding>
+         </bindings>
+      </attribute>
+
+      <attribute name="SupportsFailover">true</attribute>
+      <attribute name="SupportsLoadBalancing">true</attribute>      
+   </mbean>
+   
+   <!-- A connection factory with no JNDI bindings that is used in clustering to create the connections that
+        pull messages from one node to another
+   -->
+   <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+      name="jboss.messaging.connectionfactory:service=ClusterPullConnectionFactory"
+      xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SupportsFailover">false</attribute>
+      <attribute name="SupportsLoadBalancing">false</attribute>      
+   </mbean>
+   
+   <!-- An example connection factory with all attributes shown 
+   
+   <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+      name="jboss.messaging.connectionfactory:service=MyExampleConnectionFactory"
+      xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+      
+      <constructor>
+      
+         <!- - You can specify the default Client ID to use for connections created using this factory - -> 
+         
+         <arg type="java.lang.String" value="MyClientID"/>
+         
+      </constructor>
+      
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      
+      <!- - The transport to use - can be bisocket, sslbisocket or http - ->
+      
+      <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=http</depends>
+      
+      <depends>jboss.messaging:service=PostOffice</depends>
+      
+      <!- - PrefetchSize determines the approximate maximum number of messages the client consumer will buffer locally - ->
+      
+      <attribute name="PrefetchSize">150</attribute>
+      
+      <!- - Paging params to be used for temporary queues - ->
+      
+      <attribute name="DefaultTempQueueFullSize">200000</attribute>
+      
+      <attribute name="DefaultTempQueuePageSizeSize">2000</attribute>
+      
+      <attribute name="DefaultTempQueueDownCacheSize">2000</attribute>
+      
+      <!- - The batch size to use when using the DUPS_OK_ACKNOWLEDGE acknowledgement mode - ->
+      
+      <attribute name="DupsOKBatchSize">5000</attribute>
+      
+      <!- - Does this connection factory support automatic failover? - ->
+      
+      <attribute name="SupportsFailover">false</attribute>
+      
+      <!- - Does this connection factory support automatic client side load balancing? - ->
+      
+      <attribute name="SupportsLoadBalancing">false</attribute>  
+            
+      <!- - The class name of the factory used to create the load balancing policy to use on the client side - ->
+      
+      <attribute name="LoadBalancingFactory">org.jboss.jms.client.plugin.RoundRobinLoadBalancingFactory</attribute>  
+
+      <!- - Whether we should be strict TCK compliant, i.e. how we deal with foreign messages, defaults to false- ->
+
+      <attribute name="StrictTck">false</attribute>
+      
+      <!- - Disable JBoss Remoting Connector sanity checks - There is rarely a good reason to set this to true - ->
+      
+      <attribute name="DisableRemotingChecks">false</attribute>
+
+      <!- - The connection factory will be bound in the following places in JNDI - ->
+
+      <attribute name="JNDIBindings">
+      
+         <bindings>
+         
+            <binding>/acme/MyExampleConnectionFactory</binding>
+            
+            <binding>/acme/MyExampleConnectionFactoryDupe</binding>
+            
+            <binding>java:/xyz/CF1</binding>
+            
+            <binding>java:/connectionfactories/acme/connection_factory</binding>
+            
+         </bindings>
+         
+      </attribute>   
+       
+   </mbean>
+   
+   -->
+
+</server>
\ No newline at end of file


Property changes on: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/connection-factories-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/destinations-service.xml
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/destinations-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/destinations-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     Messaging Destinations deployment descriptor.
+
+     $Id$
+ -->
+
+<server>
+
+   <!--
+      The Default Dead Letter Queue. This destination is a dependency of an EJB MDB container.
+   -->
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=DLQ"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+   
+   <!--
+      The Default Expiry Queue.
+   -->
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=ExpiryQueue"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>   
+
+   <!--
+        Example destinations.
+   -->
+
+   <mbean code="org.jboss.jms.server.destination.TopicService"
+      name="jboss.messaging.destination:service=Topic,name=testTopic"
+      xmbean-dd="xmdesc/Topic-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+         <security>
+            <role name="guest" read="true" write="true"/>
+            <role name="publisher" read="true" write="true" create="false"/>
+            <role name="durpublisher" read="true" write="true" create="true"/>
+         </security>
+      </attribute>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.TopicService"
+      name="jboss.messaging.destination:service=Topic,name=securedTopic"
+      xmbean-dd="xmdesc/Topic-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+         <security>
+            <role name="publisher" read="true" write="true" create="false"/>
+         </security>
+      </attribute>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.TopicService"
+      name="jboss.messaging.destination:service=Topic,name=testDurableTopic"
+      xmbean-dd="xmdesc/Topic-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+         <security>
+            <role name="guest" read="true" write="true"/>
+            <role name="publisher" read="true" write="true" create="false"/>
+            <role name="durpublisher" read="true" write="true" create="true"/>
+         </security>
+      </attribute>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=testQueue"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+         <security>
+            <role name="guest" read="true" write="true"/>
+            <role name="publisher" read="true" write="true" create="false"/>
+            <role name="noacc" read="false" write="false" create="false"/>
+         </security>
+      </attribute>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=A"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=B"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=C"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=D"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=ex"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+   
+   <!-- It's possible for indiviual queues and topics to use a specific queue for
+   an expiry or DLQ -->
+   
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=PrivateDLQ"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>
+   
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+   </mbean>      
+   
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=QueueWithOwnDLQAndExpiryQueue"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="DLQ">jboss.messaging.destination:service=Queue,name=PrivateDLQ</attribute>
+      <attribute name="ExpiryQueue">jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue</attribute>
+   </mbean> 
+   
+   <mbean code="org.jboss.jms.server.destination.TopicService"
+      name="jboss.messaging.destination:service=Topic,name=TopicWithOwnDLQAndExpiryQueue"
+      xmbean-dd="xmdesc/Topic-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="DLQ">jboss.messaging.destination:service=Queue,name=PrivateDLQ</attribute>
+      <attribute name="ExpiryQueue">jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue</attribute>
+   </mbean>       
+   
+   <!-- Queues and Topics can also specify their own redelivery delay -->
+   
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=QueueWithOwnRedeliveryDelay"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="RedeliveryDelay">5000</attribute>
+   </mbean>
+   
+   <mbean code="org.jboss.jms.server.destination.TopicService"
+      name="jboss.messaging.destination:service=Topic,name=TopicWithOwnRedeliveryDelay"
+      xmbean-dd="xmdesc/Topic-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="RedeliveryDelay">5000</attribute>
+   </mbean>     
+   
+   <!--
+        Example clustered destinations.
+   -->
+   
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=testDistributedQueue"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="Clustered">true</attribute>
+   </mbean>   
+   
+   <mbean code="org.jboss.jms.server.destination.TopicService"
+      name="jboss.messaging.destination:service=Topic,name=testDistributedTopic"
+      xmbean-dd="xmdesc/Topic-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="Clustered">true</attribute>
+   </mbean>   
+
+</server>
\ No newline at end of file


Property changes on: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/destinations-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     Hypersonic persistence deployment descriptor.
+     
+     DO NOT USE HYPERSONIC IN PRODUCTION or in a clustered environment- Hypersonic does not have transaction isolation
+
+     $Id$
+ -->
+
+<server>
+
+   <!-- Persistence Manager MBean configuration
+       ======================================= -->
+   
+   <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+      name="jboss.messaging:service=PersistenceManager"
+      xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+      
+      <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+      
+      <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+            
+      <!-- The datasource to use for the persistence manager -->
+                                
+      <attribute name="DataSource">java:/DefaultDS</attribute>
+      
+      <!-- If true will attempt to create tables and indexes on every start-up -->
+                  
+      <attribute name="CreateTablesOnStartup">true</attribute>
+      
+      <!-- If true then will use JDBC batch updates -->
+                 
+      <attribute name="UsingBatchUpdates">false</attribute>
+      
+      <!-- The maximum number of parameters to include in a prepared statement -->            
+      
+      <attribute name="MaxParams">500</attribute>
+   </mbean>
+
+   <!-- Messaging Post Office MBean configuration
+        ========================================= -->
+   
+   <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+      name="jboss.messaging:service=PostOffice"      
+      xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+            
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      
+      <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+      
+      <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+      
+      <!-- The name of the post office -->      
+                 
+      <attribute name="PostOfficeName">JMS post office</attribute>
+      
+      <!-- The datasource used by the post office to access it's binding information -->                       
+      
+      <attribute name="DataSource">java:/DefaultDS</attribute>
+      
+      <!-- If true will attempt to create tables and indexes on every start-up -->
+                        
+      <attribute name="CreateTablesOnStartup">true</attribute>
+      
+      <!-- This config was not meant to be used in production. For a clustered setup you need a shared database -->
+      
+      <attribute name="Clustered">true</attribute>
+      
+      <!-- All the remaining properties only have to be specified if the post office is clustered.
+           You can safely comment them out if your post office is non clustered -->
+
+      <!-- The JGroups group name that the post office will use -->
+
+      <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+     
+      <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+      <attribute name="StateTimeout">5000</attribute>
+
+      <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+      <attribute name="CastTimeout">50000</attribute>
+      
+      <!-- JGroups stack configuration for the data channel - used for sending data across the cluster -->
+
+      <!-- By default we use the TCP stack for data -->                  
+      <attribute name="DataChannelConfig">      
+         <config>
+            <TCP start_port="7900"
+                 loopback="true"
+                 recv_buf_size="20000000"
+                 send_buf_size="640000"
+                 discard_incompatible_packets="true"
+                 max_bundle_size="64000"
+                 max_bundle_timeout="30"
+                 use_incoming_packet_handler="true"
+                 use_outgoing_packet_handler="false"
+                 down_thread="false" up_thread="false"
+                 enable_bundling="false"
+                 use_send_queues="false"
+                 sock_conn_timeout="300"
+                 skip_suspected_members="true"/>
+            <MPING timeout="4000"
+		         bind_to_all_interfaces="true"
+		         mcast_addr="${jboss.messaging.datachanneludpaddress:228.6.6.6}"
+		         mcast_port="${jboss.messaging.datachanneludpport:45567}"
+		         ip_ttl="${jboss.messaging.ipttl:8}"
+		         num_initial_members="2"
+		         num_ping_requests="1"/>                     
+            <MERGE2 max_interval="100000"
+                    down_thread="false" up_thread="false" min_interval="20000"/>
+            <FD_SOCK down_thread="false" up_thread="false"/>            
+            <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
+            <pbcast.NAKACK max_xmit_size="60000"
+                           use_mcast_xmit="false" gc_lag="0"
+                           retransmit_timeout="300,600,1200,2400,4800"
+                           down_thread="false" up_thread="false"
+                           discard_delivered_msgs="true"/>
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           down_thread="false" up_thread="false"
+                           max_bytes="400000"/>
+            <pbcast.GMS print_local_addr="true" join_timeout="3000"
+                        down_thread="false" up_thread="false"
+                        join_retry_timeout="2000" shun="false"
+                        view_bundling="true"/>
+        </config>        
+      </attribute>
+      
+      <!-- JGroups stack configuration to use for the control channel - used for control messages -->         
+              
+      <!-- We use udp stack for the control channel -->
+      <attribute name="ControlChannelConfig">
+         <config>
+            <UDP
+                 mcast_addr="${jboss.messaging.controlchanneludpaddress:228.7.7.7}"
+                 mcast_port="${jboss.messaging.controlchanneludpport:45568}"
+                 tos="8"
+                 ucast_recv_buf_size="20000000"
+                 ucast_send_buf_size="640000"
+                 mcast_recv_buf_size="25000000"
+                 mcast_send_buf_size="640000"
+                 loopback="false"
+                 discard_incompatible_packets="true"
+                 max_bundle_size="64000"
+                 max_bundle_timeout="30"
+                 use_incoming_packet_handler="true"
+                 use_outgoing_packet_handler="false"
+                 ip_ttl="${jboss.messaging.ipttl:2}"
+                 down_thread="false" up_thread="false"
+                 enable_bundling="false"/>
+            <PING timeout="2000"
+                  down_thread="false" up_thread="false" num_initial_members="3"/>
+            <MERGE2 max_interval="100000"
+                    down_thread="false" up_thread="false" min_interval="20000"/>
+            <FD_SOCK down_thread="false" up_thread="false"/>
+            <FD timeout="10000" max_tries="5" down_thread="false" up_thread="false" shun="true"/>
+            <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
+            <pbcast.NAKACK max_xmit_size="60000"
+                           use_mcast_xmit="false" gc_lag="0"
+                           retransmit_timeout="300,600,1200,2400,4800"
+                           down_thread="false" up_thread="false"
+                           discard_delivered_msgs="true"/>
+            <UNICAST timeout="300,600,1200,2400,3600"
+                     down_thread="false" up_thread="false"/>
+            <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+                           down_thread="false" up_thread="false"
+                           max_bytes="400000"/>
+            <pbcast.GMS print_local_addr="true" join_timeout="3000" use_flush="true" flush_timeout="3000"
+                        down_thread="false" up_thread="false"
+                        join_retry_timeout="2000" shun="false"
+                        view_bundling="true"/>
+            <FRAG2 frag_size="60000" down_thread="false" up_thread="false"/>
+            <pbcast.STATE_TRANSFER down_thread="false" up_thread="false" use_flush="true" flush_timeout="3000"/>
+            <pbcast.FLUSH down_thread="false" up_thread="false" timeout="20000" auto_flush_conf="false"/>
+        </config>
+      </attribute>
+      
+   </mbean>
+
+   <!-- Messaging JMS User Manager MBean config
+        ======================================= -->
+   
+   <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+      name="jboss.messaging:service=JMSUserManager"
+      xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+      
+      <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+      
+      <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+      
+      <attribute name="DataSource">java:/DefaultDS</attribute>
+      
+      <attribute name="CreateTablesOnStartup">true</attribute>
+      
+      <attribute name="SqlProperties"><![CDATA[
+POPULATE.TABLES.1  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3  = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5  = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9  = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+      ]]></attribute>
+   </mbean>
+
+</server>
\ No newline at end of file


Property changes on: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/hsqldb-persistence-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/messaging-service.xml
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/messaging-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/messaging-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     The JBoss Messaging service deployment descriptor.
+
+     $Id: messaging-service.xml 3204 2007-10-19 12:42:17Z timfox $
+ -->
+
+<server>
+
+   <!-- ServerPeer MBean configuration
+        ============================== -->
+
+   <mbean code="org.jboss.jms.server.ServerPeer"
+      name="jboss.messaging:service=ServerPeer"
+      xmbean-dd="xmdesc/ServerPeer-xmbean.xml">
+
+      <!-- The unique id of the server peer - in a cluster each node MUST have a unique value - must be an integer -->
+
+      <attribute name="ServerPeerID">0</attribute>
+      
+      <!-- The default JNDI context to use for queues when they are deployed without specifying one --> 
+      
+      <attribute name="DefaultQueueJNDIContext">/queue</attribute>
+      
+      <!-- The default JNDI context to use for topics when they are deployed without specifying one --> 
+      
+      <attribute name="DefaultTopicJNDIContext">/topic</attribute>
+
+	  <attribute name="PostOffice">jboss.messaging:service=PostOffice</attribute>
+	  
+	  <!-- The JAAS security domain to use for JBoss Messaging -->
+	  
+      <attribute name="SecurityDomain">java:/jaas/messaging</attribute>
+      
+      <!-- The default security configuration to apply to destinations - this can be overridden on a per destination basis -->
+      
+      <attribute name="DefaultSecurityConfig">
+        <security>
+            <role name="guest" read="true" write="true" create="true"/>
+        </security>
+      </attribute>
+      
+      <!-- The default Dead Letter Queue (DLQ) to use for destinations.
+           This can be overridden on a per destinatin basis -->
+      
+      <attribute name="DefaultDLQ">jboss.messaging.destination:service=Queue,name=DLQ</attribute>
+      
+      <!-- The default maximum number of times to attempt delivery of a message before sending to the DLQ (if configured).
+           This can be overridden on a per destinatin basis -->
+      
+      <attribute name="DefaultMaxDeliveryAttempts">10</attribute>
+      
+      <!-- The default Expiry Queue to use for destinations. This can be overridden on a per destinatin basis -->
+      
+      <attribute name="DefaultExpiryQueue">jboss.messaging.destination:service=Queue,name=ExpiryQueue</attribute>
+      
+      <!-- The default redelivery delay to impose. This can be overridden on a per destination basis -->
+      
+      <attribute name="DefaultRedeliveryDelay">0</attribute>
+      
+      <!-- The periodicity of the message counter manager enquiring on queues for statistics -->
+      
+      <attribute name="MessageCounterSamplePeriod">5000</attribute>
+      
+      <!-- The maximum amount of time for a client to wait for failover to start on the server side after
+           it has detected failure -->
+      
+      <attribute name="FailoverStartTimeout">60000</attribute>
+      
+      <!-- The maximum amount of time for a client to wait for failover to complete on the server side after
+           it has detected failure -->
+      
+      <attribute name="FailoverCompleteTimeout">300000</attribute>
+      
+      <!-- The maximum number of days results to maintain in the message counter history -->
+      
+      <attribute name="DefaultMessageCounterHistoryDayLimit">-1</attribute>
+      
+      <!-- The name of the connection factory to use for creating connections between nodes to pull messages -->
+      
+      <attribute name="ClusterPullConnectionFactoryName">jboss.messaging.connectionfactory:service=ClusterPullConnectionFactory</attribute>
+      
+      <!-- Use XA when pulling persistent messages from a remote node to this one. -->
+      
+      <attribute name="UseXAForMessagePull">false</attribute>
+      
+      <!-- When redistributing messages in the cluster. Do we need to preserve the order of messages received
+            by a particular consumer from a particular producer? -->
+            
+      <attribute name="DefaultPreserveOrdering">false</attribute>
+      
+      <!-- Max. time to hold previously delivered messages back waiting for clients to reconnect after failover -->
+      
+      <attribute name="RecoverDeliveriesTimeout">300000</attribute>
+      
+      <!-- The password used by the message sucker connections to create connections.
+           THIS SHOULD ALWAYS BE CHANGED AT INSTALL TIME TO SECURE SYSTEM
+      <attribute name="SuckerPassword"></attribute>
+      -->
+
+      <depends optional-attribute-name="PersistenceManager">jboss.messaging:service=PersistenceManager</depends>
+      
+      <depends optional-attribute-name="JMSUserManager">jboss.messaging:service=JMSUserManager</depends>
+      
+      <depends>jboss.messaging:service=Connector,transport=bisocket</depends>
+
+   </mbean>
+
+</server>


Property changes on: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/messaging-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/remoting-bisocket-service.xml
===================================================================
--- branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/remoting-bisocket-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/remoting-bisocket-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     Standard bisocket-based Remoting service deployment descriptor.
+
+     $Id: remoting-bisocket-service.xml 3237 2007-10-21 15:27:51Z timfox $
+ -->
+
+<server>
+
+   <!-- Standard bisocket connector - the bisocket transport only opens connection from client->server
+        so can be used with firewalls where only outgoing connections are allowed.
+        For examples of HTTP and SSL transports see docs/examples -->
+   <mbean code="org.jboss.remoting.transport.Connector"
+          name="jboss.messaging:service=Connector,transport=bisocket"
+          display-name="Bisocket Transport Connector">
+      <attribute name="Configuration">
+         <config>
+            <invoker transport="bisocket">
+            
+               <!-- There should be no reason to change these parameters - warning!
+                    Changing them may stop JBoss Messaging working correctly -->            
+               <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+               <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+               <attribute name="dataType" isParam="true">jms</attribute>
+               <attribute name="socket.check_connection" isParam="true">false</attribute>
+               <attribute name="timeout" isParam="true">0</attribute>
+               <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
+               <attribute name="serverBindPort">4457</attribute>
+               <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
+               <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
+               <attribute name="numberOfCallRetries" isParam="true">1</attribute>
+               <attribute name="pingFrequency" isParam="true">214748364</attribute>
+               <attribute name="pingWindowFactor" isParam="true">10</attribute>
+               <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
+               <!-- End immutable parameters -->
+               
+               <!-- Periodicity of client pings. Server window by default is twice this figure -->                               
+               <attribute name="clientLeasePeriod" isParam="true">10000</attribute>
+
+               <!-- Number of seconds to wait for a connection in the client pool to become free -->
+               <attribute name="numberOfRetries" isParam="true">10</attribute>
+
+               <!-- Max Number of connections in client pool. This should be significantly higher than
+                    the max number of sessions/consumers you expect -->
+               <attribute name="clientMaxPoolSize" isParam="true">200</attribute>
+               
+               <!-- Use these parameters to specify values for binding and connecting control connections to 
+                    work with your firewall/NAT configuration
+               <attribute name="secondaryBindPort">xyz</attribute>                           
+               <attribute name="secondaryConnectPort">abc</attribute>               
+               -->
+                          
+            </invoker>
+            <handlers>
+               <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
+            </handlers>
+         </config>
+      </attribute>
+   </mbean>
+
+</server>


Property changes on: branches/JBPAPP_4_2/messaging/src/etc/server-jbm/clustered/deploy/jboss-messaging.sar/remoting-bisocket-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Modified: branches/JBPAPP_4_2/testsuite/.classpath
===================================================================
--- branches/JBPAPP_4_2/testsuite/.classpath	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/testsuite/.classpath	2007-11-12 22:28:37 UTC (rev 66991)
@@ -48,7 +48,6 @@
 	<classpathentry kind="lib" path="/tools/lib/ant-junit.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/cache/lib/jboss-cache-jdk50.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/apache-xalan/lib/xalan.jar"/>
-	<classpathentry kind="lib" path="/thirdparty/objectweb-joramtests/lib/joram-tests.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/javassist/lib/javassist.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/jbossxb/lib/jboss-xml-binding.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/apache-logging/lib/commons-logging.jar"/>
@@ -63,5 +62,7 @@
 	<classpathentry kind="lib" path="/thirdparty/jboss/profiler/jvmti/lib/jboss-profiler-jvmti.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/web/lib/jbossweb.jar" sourcepath="/thirdparty/jboss/web/lib/jbossweb-src.zip"/>
 	<classpathentry kind="lib" path="/thirdparty/apache-codec/lib/commons-codec.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/objectweb-joramtests/lib/joramtests.jar" sourcepath="/thirdparty/objectweb-joramtests/lib/joramtests-sources.jar"/>
+	<classpathentry kind="lib" path="/thirdparty/jboss/messaging/lib/jboss-messaging.jar"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: branches/JBPAPP_4_2/testsuite/build.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/build.xml	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/testsuite/build.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -836,6 +836,7 @@
     <antcall target="tests-unified"/>
     <antcall target="tests-aop-scoped"/>
     <antcall target="tests-classloader-leak"/>
+    <antcall target="tests-jbmcluster"/>
     <antcall target="tests-report"/>
     <record name="${basedir}/build.log" action="stop"/>
   </target>
@@ -975,7 +976,61 @@
     <antcall target="tests-txtimer"/>
     <server:stop name="all"/>
   </target>
+	
+   	
+   <target name="create-jbmcluster">
+      <!-- Create clean configuration -->
+   	  <delete dir="${jboss.dist}/server/jbm-cluster1" />
+   	  <delete dir="${jboss.dist}/server/jbm-cluster2" />
+      <create-config baseconf="all" newconf="jbm-cluster1">
+         <patternset>
+            <include name="conf/**"/>
+            <include name="deploy/**"/>
+            <include name="deployers/**"/>
+            <include name="deploy-hasingleton/**"/>
+            <include name="lib/**"/>
+         </patternset>
+      </create-config>
+      <create-config baseconf="all" newconf="jbm-cluster2">
+         <patternset>
+            <include name="conf/**"/>
+             <include name="deploy/**"/>
+             <include name="deployers/**"/>
+             <include name="deploy-hasingleton/**"/>
+             <include name="lib/**"/>
+         </patternset>
+      </create-config>
+   </target>
 
+   <target name="tests-jbmcluster"
+   	   description="Run JBM in cluster">
+
+      <antcall target="create-jbmcluster"/>
+
+      <server:start name="jbm-cluster1"/>
+      <server:start name="jbm-cluster2"/>
+
+      <antcall target="exec-jbmclustered"/>
+            
+      <server:stop name="jbm-cluster2"/>
+      <server:stop name="jbm-cluster1"/>
+   	   
+   </target>
+   
+   <target name="exec-jbmclustered">
+    <patternset id="jbm-clustered">
+      <include name="org/jboss/test/jbossmessaging/clustertest/*TestCase.class"/>
+    </patternset>
+
+    <antcall target="test-execute-units">
+      <param name="includes.refid" value="jbm-clustered"/>
+      <param name="jboss-junit-configuration" value="jbm-clustered"/>
+    </antcall>
+      
+   </target>
+
+	
+
   <!-- Test netbooting a subset of the default configuration
   -->
   <target name="netboot-tests" description="Tests run against a custom netboot configuration">

Added: branches/JBPAPP_4_2/testsuite/imports/sections/jbm.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/imports/sections/jbm.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/imports/sections/jbm.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,16 @@
+<project name="tests-jbm-jars">
+   
+   <!-- jms tests -->
+   <target name="_jars-jbm">
+      <mkdir dir="${build.lib}"/>
+      
+      <jar destfile="${build.lib}/jbm-killservice.sar">
+         <fileset dir="${build.classes}">
+            <include name="org/jboss/test/jbossmessaging/clustertest/killservice/*"/>
+         </fileset>
+         <fileset dir="${build.resources}/jbossmessaging">
+            <include name="META-INF/jboss-service.xml"/>		
+         </fileset>
+      </jar>	
+   </target>
+</project>


Property changes on: branches/JBPAPP_4_2/testsuite/imports/sections/jbm.xml
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Modified: branches/JBPAPP_4_2/testsuite/imports/server-config.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/imports/server-config.xml	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/testsuite/imports/server-config.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -83,7 +83,28 @@
          <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
          <sysproperty key="jgroups.udp.ip_ttl" value="${jbosstest.udp.ip_ttl}" />
       </server>
-      <server name="securitymgr" config="default" host="${node0}">
+
+   	<server name="jbm-cluster1" host="${node0}">
+       <jvmarg value="-Xms128m" />
+       <jvmarg value="-Xmx512m" />
+       <jvmarg value="-XX:MaxPermSize=512m" />
+       <jvmarg value="-XX:+HeapDumpOnOutOfMemoryError" />
+        <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+        <sysproperty key="java.net.preferIPv4Stack" value="true" />
+    </server>
+   	
+    <server name="jbm-cluster2" host="${node1}">
+       <jvmarg value="-Xms128m" />
+       <jvmarg value="-Xmx512m" />
+       <jvmarg value="-XX:MaxPermSize=512m" />
+       <jvmarg value="-XX:+HeapDumpOnOutOfMemoryError" />
+        <sysproperty key="java.net.preferIPv4Stack" value="true" />
+       <sysproperty key="jbossnode0" value="${node0}"/>
+       <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+        <sysproperty key="java.net.preferIPv4Stack" value="true" />
+    </server>
+
+    <server name="securitymgr" config="default" host="${node0}">
          <jvmarg value="${jpda.cmdline}" />
          <jvmarg value="-Xmx64m" />
          <jvmarg value="-Djboss.home.dir=${jboss.dist}" />

Modified: branches/JBPAPP_4_2/testsuite/imports/test-jars.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/imports/test-jars.xml	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/testsuite/imports/test-jars.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -70,6 +70,7 @@
 	<import file="sections/xa.xml"/>
 	<import file="sections/xslt.xml"/>
 	<import file="sections/byvalue.xml"/>
+	<import file="sections/jbm.xml"/>
 
 	<!--
 	| Build all jar files.
@@ -151,7 +152,8 @@
       _jars-wsrp,
       _jars-xa,
       _jars-xslt,
-      _jars-byvalue
+      _jars-byvalue,
+	  _jars-jbm
       ">
 	</target>
 

Modified: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/JBossTestClusteredServices.java
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/JBossTestClusteredServices.java	2007-11-12 22:16:24 UTC (rev 66990)
+++ branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/JBossTestClusteredServices.java	2007-11-12 22:28:37 UTC (rev 66991)
@@ -53,7 +53,7 @@
       super(className);
    }
 
-   int getServerCount()
+   public int getServerCount()
    {
       return servers.size();
    }
@@ -65,14 +65,15 @@
       adaptors.toArray(tmp);
       return tmp;
    }
-   RMIAdaptor getAdaptor(int index) throws Exception
+   
+   public RMIAdaptor getAdaptor(int index) throws Exception
    {
       init();
       RMIAdaptor adaptor = (RMIAdaptor) adaptors.get(index);
       return adaptor;
    }
 
-   String[] getServers() throws Exception
+   public String[] getServers() throws Exception
    {
       init();
       String[] tmp = new String[servers.size()];

Added: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ClusteredTestCase.java
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ClusteredTestCase.java	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ClusteredTestCase.java	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,463 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.jbossmessaging.clustertest;
+
+import java.util.concurrent.CountDownLatch;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import org.jboss.jmx.adaptor.rmi.RMIAdaptor;
+
+import org.jboss.jms.client.JBossConnection;
+import org.jboss.test.JBossClusteredTestCase;
+import org.jboss.test.JBossTestClusteredServices;
+import org.jboss.util.id.GUID;
+
+import junit.framework.Test;
+
+/**
+ * 
+ * @author <a href="clebert.suconic at jboss.com">Clebert Suconic</a>
+ *
+ */
+public class ClusteredTestCase extends ParallelTestContainer
+{
+
+    CountDownLatch latchCluster = new CountDownLatch(1);
+    CountDownLatch latchFailover = new CountDownLatch(3);
+    CountDownLatch latchServerAlreadyKilled = new CountDownLatch(1);
+
+    public ParallelTest[] getTests()
+    {
+        return new ParallelTest[]
+        { new ClusterTestSimple(latchCluster), new FailoverTestSimple(latchFailover, latchServerAlreadyKilled),
+            new FailoverTestSimpleTransacted("testFailoverTransactedKillOnCommit", true, latchFailover, latchServerAlreadyKilled, "testDistributedQueueC"),
+            new FailoverTestSimpleTransacted("testFailoverTransactedKillOnMessageReceive", false, latchFailover, latchServerAlreadyKilled, "testDistributedQueueD")};
+    }
+
+
+    public void doTest() throws Exception
+    {
+        
+        JBossTestClusteredServices testServices = new JBossTestClusteredServices("ClusteredTestCase");
+        testServices.init();
+        
+        RMIAdaptor rmi = testServices.getAdaptor(1);
+        
+        ObjectName name = new ObjectName("test:name=JBMKillService");
+        if (testServices.getServerCount() != 2)
+        {
+            throw new Exception ("This test requires 2 servers but it got with " + testServices.getServerCount());
+        }
+        
+        latchCluster.await();
+        
+        System.out.println("Clustered tests have finished");
+        
+        latchFailover.await();
+        
+        System.out.println("Ready to kill");
+
+        rmi.invoke(name, "kill", new Integer[]{1000}, new String[]{"int"});
+        
+        Thread.sleep(1000);
+        
+        System.out.println("Server already killed");
+        latchServerAlreadyKilled.countDown();
+        
+    }
+
+
+    
+    protected static int getServerId(Connection conn)
+    {
+        return ((JBossConnection) conn).getServerID();
+    }
+
+    protected Connection createConnectionOnServer(ConnectionFactory factory,
+            int serverId) throws Exception
+    {
+        int count = 0;
+
+        while (true)
+        {
+            if (count++ > 10)
+                throw new IllegalStateException(
+                        "Cannot make connection to node " + serverId);
+
+            Connection connection = factory.createConnection();
+
+            if (getServerId(connection) == serverId)
+            {
+                return connection;
+            } else
+            {
+                connection.close();
+            }
+        }
+    }
+    
+    class FailoverTestSimple extends ParallelTest
+    {
+
+        Context ctx;
+        ConnectionFactory cf;
+        CountDownLatch latch;
+        CountDownLatch latchAlreadyKilled;
+
+        public FailoverTestSimple(CountDownLatch latch, CountDownLatch latchAlreadyKilled)
+        {
+            super("testSimpleFailover");
+
+            this.latch = latch;
+            this.latchAlreadyKilled = latchAlreadyKilled; 
+        }
+
+        public void setUp() throws Exception
+        {
+            ctx = new InitialContext();
+            cf = (ConnectionFactory) ctx.lookup("/ClusteredConnectionFactory");
+        }
+
+        public void tearDown() throws Exception
+        {
+            super.tearDown();
+        }
+
+        public void runTest() throws Exception
+        {
+
+            boolean latchCalled = false;
+            Connection conn0 = null;
+            try
+            {
+                conn0 = createConnectionOnServer(cf, 1);
+                Queue queue = (Queue)ctx.lookup("/queue/testDistributedQueueA");
+                
+                
+                
+                Session session0 = conn0.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                MessageConsumer consumer = session0.createConsumer(queue);
+                MessageProducer producer = session0.createProducer(queue);
+                conn0.start();
+                
+                String strmsg = "Hello from " + this.getName() + " guid="+ new GUID().toString();
+
+                producer.send(session0.createTextMessage(strmsg));
+                
+                latchCalled = true;
+                latch.countDown();
+                latchAlreadyKilled.await();
+                
+                TextMessage msg = (TextMessage)consumer.receive(15000);
+                assertNotNull("message not received", msg);
+                assertEquals(strmsg, msg.getText());
+                
+            } 
+            finally
+            {
+                try
+                {
+                    if (conn0 != null)
+                    {
+                        conn0.close();
+                    }
+                }
+                catch (Throwable ignored)
+                {
+                    // It should never happen, but better to send it to System.out than just ignore it
+                    ignored.printStackTrace();
+                }
+
+                latch.countDown();
+            }
+        }
+
+    }
+
+    class FailoverTestSimpleTransacted extends ParallelTest
+    {
+
+        Context ctx;
+        ConnectionFactory cf;
+        CountDownLatch latch;
+        CountDownLatch latchAlreadyKilled;
+        String jndiQueue;
+        
+        boolean killOnTransaction;
+
+        public FailoverTestSimpleTransacted(String name, boolean killOnTransaction, CountDownLatch latch, CountDownLatch latchAlreadyKilled, String jndiQueue)
+        {
+            super(name);
+
+            this.latch = latch;
+            this.latchAlreadyKilled = latchAlreadyKilled;
+            this.killOnTransaction = killOnTransaction;
+            this.jndiQueue = jndiQueue;
+        }
+
+        public void setUp() throws Exception
+        {
+            ctx = new InitialContext();
+            cf = (ConnectionFactory) ctx.lookup("/ClusteredConnectionFactory");
+        }
+
+        public void tearDown() throws Exception
+        {
+            super.tearDown();
+        }
+
+        public void runTest() throws Exception
+        {
+
+            boolean latchCalled = false;
+            Connection conn0 = null;
+            try
+            {
+                conn0 = createConnectionOnServer(cf, 1);
+                Queue queue = (Queue)ctx.lookup("/queue/" + jndiQueue);
+                
+                Session session0 = conn0.createSession(true, Session.CLIENT_ACKNOWLEDGE);
+                MessageConsumer consumer = session0.createConsumer(queue);
+                MessageProducer producer = session0.createProducer(queue);
+                conn0.start();
+                
+                String strmsg = "Hello from " + this.getName() + " guid="+ new GUID().toString();
+
+                producer.send(session0.createTextMessage(strmsg));
+                session0.commit();
+                
+
+                if (!killOnTransaction)
+                {
+                    latchCalled = true;
+                    latch.countDown();
+                    latchAlreadyKilled.await();
+                    
+                    System.out.println("After kill on (kill on receive)");
+                }
+                
+                TextMessage msg = (TextMessage)consumer.receive(15000);
+                
+                msg.acknowledge();
+                
+                if (killOnTransaction)
+                {
+                    latchCalled = true;
+                    latch.countDown();
+                    latchAlreadyKilled.await();
+                    System.out.println("After kill on (kill on commit)");
+                }
+                
+                session0.commit();
+                
+                assertNotNull("message not received", msg);
+                assertEquals(strmsg, msg.getText());
+                
+                msg =  (TextMessage)consumer.receive(1000);
+                assertNull("Message Queue should be empty by now!", msg);
+                
+            } 
+            finally
+            {
+                try
+                {
+                    if (conn0 != null)
+                    {
+                        conn0.close();
+                    }
+                }
+                catch (Throwable ignored)
+                {
+                    // It should never happen, but better to send it to System.out than just ignore it
+                    ignored.printStackTrace();
+                }
+
+                if (!latchCalled)
+                {
+                    latch.countDown();
+                }
+            }
+        }
+
+    }
+
+    class ClusterTestSimple extends ParallelTest
+    {
+
+        Context ctx;
+        ConnectionFactory cf;
+        CountDownLatch latch;
+
+        public ClusterTestSimple(CountDownLatch latch)
+        {
+            super("testSimpleCluster");
+
+            this.latch = latch;
+        }
+
+        public void setUp() throws Exception
+        {
+            ctx = new InitialContext();
+            cf = (ConnectionFactory) ctx.lookup("/ClusteredConnectionFactory");
+        }
+
+        public void tearDown() throws Exception
+        {
+            super.tearDown();
+        }
+
+        public void runTest() throws Exception
+        {
+
+            Connection conn0 = null, conn1 = null;
+            try
+            {
+                conn0 = createConnectionOnServer(cf, 0);
+                conn1 = createConnectionOnServer(cf, 1);
+                Queue queue = (Queue)ctx.lookup("/queue/testDistributedQueueB");
+                
+                Session session1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                MessageConsumer consumer = session1.createConsumer(queue);
+                conn1.start();
+                
+                
+                Session session0 = conn0.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                MessageProducer producer = session0.createProducer(queue);
+                
+                String strmsg = "Hello from " + this.getName() + " guid="+ new GUID().toString();
+                
+                producer.send(session0.createTextMessage(strmsg));
+                
+                
+                TextMessage msg = (TextMessage)consumer.receive(15000);
+                assertNotNull("message not received", msg);
+                assertEquals(strmsg, msg.getText());
+                
+            } 
+            finally
+            {
+                try
+                {
+                    if (conn0 != null)
+                    {
+                        conn0.close();
+                    }
+                }
+                catch (Throwable ignored)
+                {
+                    // It should never happen, but better to send it to System.out than just ignore it
+                    ignored.printStackTrace();
+                }
+                try
+                {
+                    if (conn1 != null)
+                    {
+                        conn1.close();
+                    }
+                }
+                catch (Throwable ignored)
+                {
+                    // It should never happen, but better to send it to System.out than just ignore it
+                    ignored.printStackTrace();
+                }
+                
+                latch.countDown();
+            }
+        }
+
+    }
+
+    class TestA extends ParallelTest
+    {
+        public TestA(String name)
+        {
+            super(name);
+            // TODO Auto-generated constructor stub
+        }
+
+        public void setUp()
+        {
+            System.out.println("setup on A");
+        }
+
+        public void tearDown()
+        {
+            System.out.println("tearDown on A");
+        }
+
+        public void runTest()
+        {
+            System.out.println("A is being executed");
+            fail("A");
+        }
+    }
+
+    class TestB extends ParallelTest
+    {
+        public TestB(String name)
+        {
+            super(name);
+            // TODO Auto-generated constructor stub
+        }
+
+        public void runTest()
+        {
+            System.out.println("TestB");
+        }
+    }
+
+    class TestC extends ParallelTest
+    {
+        public TestC(String name)
+        {
+            super(name);
+        }
+
+        public void runTest()
+        {
+            fail("Hello");
+        }
+    }
+
+    public static Test suite() throws Exception
+    {
+        Test test = new ClusteredTestCase();
+        
+        ClassLoader loader = ClusteredTestCase.class.getClassLoader(); 
+
+        String destinations = loader.getResource("jbossmessaging/test-clustered-destinations-full-service.xml").toString();
+        //String killJar = loader.getResource("jbm-killservice.sar").toString();
+        test = JBossClusteredTestCase.getDeploySetup(test, destinations + ",jbm-killservice.sar");
+        
+        return test;
+    }
+}


Property changes on: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ClusteredTestCase.java
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTest.java
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTest.java	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTest.java	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.jbossmessaging.clustertest;
+
+import junit.framework.TestCase;
+import junit.framework.TestListener;
+import junit.framework.TestResult;
+
+/**
+ * On clustered Tests we execute a series of tests simultaneously, and get the
+ * results at once. This is done because several tests will require a server
+ * kill. Doing the test this way we can save a bunch of server kills
+ */
+public abstract class ParallelTest extends TestCase
+{
+
+    boolean isSuccess;
+
+    public TestResult result;
+    public Thread t;
+    public TestListener listener;
+
+    public ParallelTest(String name)
+    {
+        super(name);
+    }
+
+
+    public void setListener(TestListener listener)
+    {
+        this.listener = listener;
+    }
+    
+    public void run(TestResult result)
+    {
+        result.addListener(listener);
+        super.run(result);
+    }
+
+    
+    public abstract void runTest() throws Throwable;
+    
+    public void execRun()
+    {
+        result = run();
+    }
+
+    class LocalThread extends Thread
+    {
+        public void run()
+        {
+            execRun();
+        }
+    }
+
+    public void startTest()
+    {
+        t = new LocalThread();
+        t.start();
+    }
+
+    public void join() throws InterruptedException
+    {
+        t.join();
+    }
+
+}


Property changes on: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTest.java
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTestContainer.java
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTestContainer.java	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTestContainer.java	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,116 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+
+package org.jboss.test.jbossmessaging.clustertest;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.Test;
+import junit.framework.TestListener;
+import junit.framework.TestResult;
+
+public abstract class ParallelTestContainer implements Test
+{
+
+    public abstract ParallelTest[] getTests();
+    
+    public void run(TestResult res)
+    {
+        AggregatorListener listener = new AggregatorListener(res);
+        
+        ParallelTest tests[] = getTests();
+        
+        for (ParallelTest test: tests)
+        {
+            test.setListener(listener);
+            test.startTest();
+        }
+        
+        try
+        {
+            doTest();
+        }
+        catch (Throwable e)
+        {
+            res.addError(this, e);
+        }
+        
+        for (ParallelTest test: tests)
+        {
+            try
+            {
+                test.join();
+            } catch (InterruptedException ignored)
+            {
+                // this should never happen, but case it ever happens doesn't hurt anything some debug info on the System.out
+                ignored.printStackTrace();
+            }
+        }
+        
+    }
+    
+    
+    // This execution point could be used to do some logic as tests are being executed
+    public abstract void doTest() throws Throwable;
+    
+    
+   
+    class AggregatorListener implements TestListener
+    {
+        
+        TestResult target;
+
+        public AggregatorListener(TestResult target)
+        {
+            this.target=target;
+        }
+
+        public void addError(Test test, Throwable t)
+        {
+            
+            target.addError(test, t);
+        }
+
+        public void addFailure(Test test, AssertionFailedError t)
+        {
+            target.addFailure(test, t);
+        }
+
+        public void endTest(Test test)
+        {
+            target.endTest(test);
+        }
+
+        public void startTest(Test test)
+        {
+            target.startTest(test);
+        }
+    }
+    
+    public int countTestCases()
+    {
+        return 1;
+    }
+    
+    
+
+}


Property changes on: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/ParallelTestContainer.java
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillService.java
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillService.java	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillService.java	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,70 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+
+package org.jboss.test.jbossmessaging.clustertest.killservice;
+
+import java.lang.reflect.Method;
+
+import org.jboss.system.ServiceMBeanSupport;
+
+
+public class KillService extends ServiceMBeanSupport implements KillServiceMBean
+{
+
+    public void kill(final int miliseconds)
+    {
+        new Thread()
+        {
+            public void run()
+            {
+                try
+                {
+                    System.out.println("Server will be killed in " + miliseconds + " miliseconds");
+                    Thread.sleep(miliseconds);
+                    try
+                    {
+                        /** We need a real halt for failover, as System.exit would cause a regular shutdown process */
+                        Class clazz = this.getClass().getClassLoader().loadClass("java.lang.Shutdown");
+                        Method method = clazz.getDeclaredMethod("halt",  new Class[]{Integer.TYPE});
+                        method.setAccessible(true);
+                        System.out.println("Halt forced!");
+                        System.out.flush();
+                        method.invoke(null, new Object[]{new Integer(-1)});
+                    }
+                    catch (Exception ex)
+                    {
+                        ex.printStackTrace();
+                    }
+                }
+                catch (Exception ignored)
+                {
+                    // nothing to do if it's interrupted
+                }
+                
+                
+            }
+        }.start();
+        
+    }
+
+}


Property changes on: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillService.java
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillServiceMBean.java
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillServiceMBean.java	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillServiceMBean.java	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,29 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+
+
+package org.jboss.test.jbossmessaging.clustertest.killservice;
+
+public interface KillServiceMBean
+{
+   public void kill(int seconds);
+}


Property changes on: branches/JBPAPP_4_2/testsuite/src/main/org/jboss/test/jbossmessaging/clustertest/killservice/KillServiceMBean.java
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/META-INF/jboss-service.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/META-INF/jboss-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/META-INF/jboss-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE server
+    PUBLIC "-//JBoss//DTD MBean Service 4.0//EN"
+    "http://www.jboss.org/j2ee/dtd/jboss-service_4_0.dtd">
+
+<server>
+
+   <mbean code="org.jboss.test.jbossmessaging.clustertest.killservice.KillService"
+      name="test:name=JBMKillService">
+   </mbean>
+
+</server>
\ No newline at end of file


Property changes on: branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/META-INF/jboss-service.xml
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/test-clustered-destinations-full-service.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/test-clustered-destinations-full-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/test-clustered-destinations-full-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<server>
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=testDistributedQueueA"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+        <security>
+           <role name="guest" read="true" write="true"/>
+        </security>
+      </attribute>
+      <attribute name="Clustered">true</attribute>
+   </mbean>   
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=testDistributedQueueB"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+        <security>
+           <role name="guest" read="true" write="true"/>
+        </security>
+      </attribute>
+      <attribute name="Clustered">true</attribute>
+   </mbean>   
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=testDistributedQueueC"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+        <security>
+           <role name="guest" read="true" write="true"/>
+        </security>
+      </attribute>
+      <attribute name="Clustered">true</attribute>
+   </mbean>   
+
+   <mbean code="org.jboss.jms.server.destination.QueueService"
+      name="jboss.messaging.destination:service=Queue,name=testDistributedQueueD"
+      xmbean-dd="xmdesc/Queue-xmbean.xml">
+      <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+      <depends>jboss.messaging:service=PostOffice</depends>
+      <attribute name="SecurityConfig">
+        <security>
+           <role name="guest" read="true" write="true"/>
+        </security>
+      </attribute>
+      <attribute name="Clustered">true</attribute>
+   </mbean>   
+
+
+</server>


Property changes on: branches/JBPAPP_4_2/testsuite/src/resources/jbossmessaging/test-clustered-destinations-full-service.xml
___________________________________________________________________
Name: svn:keywords
   + Id LastChangedDate Author Revision

Added: branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/deploy/hsqldb-ds.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/deploy/hsqldb-ds.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/deploy/hsqldb-ds.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- The Hypersonic embedded database JCA connection factory config -->
+
+<!-- $Id: hsqldb-ds.xml 39791 2006-01-10 18:14:42Z dimitris $ -->
+
+<datasources>
+   <local-tx-datasource>
+
+      <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
+      <!-- Datasources are not available outside the virtual machine -->
+      <jndi-name>DefaultDS</jndi-name>
+
+      <connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:1701</connection-url>
+
+      <!-- The driver class -->
+      <driver-class>org.hsqldb.jdbcDriver</driver-class>
+
+      <!-- The login and password -->
+      <user-name>sa</user-name>
+      <password></password>
+
+      <!--example of how to specify class that determines if exception means connection should be destroyed-->
+      <!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->
+
+      <!-- this will be run before a managed connection is removed from the pool for use by a client-->
+      <!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> -->
+
+      <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
+      <min-pool-size>5</min-pool-size>
+
+      <!-- The maximum connections in a pool/sub-pool -->
+      <max-pool-size>20</max-pool-size>
+
+      <!-- The time before an unused connection is destroyed -->
+      <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
+      <!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
+      <idle-timeout-minutes>0</idle-timeout-minutes>
+
+      <!-- sql to call when connection is created
+        <new-connection-sql>some arbitrary sql</new-connection-sql>
+      -->
+
+      <!-- sql to call on an existing pooled connection when it is obtained from pool 
+         <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
+      -->
+
+      <!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
+         <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
+      -->
+
+      <!-- Whether to check all statements are closed when the connection is returned to the pool,
+           this is a debugging feature that should be turned off in production -->
+      <track-statements/>
+
+      <!-- Use the getConnection(user, pw) for logins
+        <application-managed-security/>
+      -->
+
+      <!-- Use the security domain defined in conf/login-config.xml -->
+      <security-domain>HsqlDbRealm</security-domain>
+
+      <!-- Use the security domain defined in conf/login-config.xml or the
+           getConnection(user, pw) for logins. The security domain takes precedence.
+        <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
+      -->
+
+      <!-- HSQL DB benefits from prepared statement caching -->
+      <prepared-statement-cache-size>32</prepared-statement-cache-size>
+
+      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
+      <metadata>
+         <type-mapping>Hypersonic SQL</type-mapping>
+      </metadata>
+
+      <depends>jboss:service=Hypersonic</depends>
+   </local-tx-datasource>
+
+   <mbean code="org.jboss.jdbc.HypersonicDatabase" 
+     name="jboss:service=Hypersonic">
+     <attribute name="Port">1701</attribute>
+     <attribute name="BindAddress">${jboss.bind.address}</attribute>     
+     <attribute name="Silent">true</attribute>
+     <attribute name="Database">default</attribute>
+     <attribute name="Trace">false</attribute>
+     <attribute name="No_system_exit">true</attribute>
+   </mbean>
+
+</datasources>


Property changes on: branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster1/deploy/hsqldb-ds.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/hsqldb-ds.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/hsqldb-ds.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/hsqldb-ds.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- The Hypersonic embedded database JCA connection factory config -->
+
+<!-- $Id: hsqldb-ds.xml 39791 2006-01-10 18:14:42Z dimitris $ -->
+
+<datasources>
+   <local-tx-datasource>
+
+      <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
+      <!-- Datasources are not available outside the virtual machine -->
+      <jndi-name>DefaultDS</jndi-name>
+
+      <connection-url>jdbc:hsqldb:hsql://${jbossnode0}:1701</connection-url>
+
+      <!-- The driver class -->
+      <driver-class>org.hsqldb.jdbcDriver</driver-class>
+
+      <!-- The login and password -->
+      <user-name>sa</user-name>
+      <password></password>
+
+      <!--example of how to specify class that determines if exception means connection should be destroyed-->
+      <!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->
+
+      <!-- this will be run before a managed connection is removed from the pool for use by a client-->
+      <!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> -->
+
+      <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
+      <min-pool-size>5</min-pool-size>
+
+      <!-- The maximum connections in a pool/sub-pool -->
+      <max-pool-size>20</max-pool-size>
+
+      <!-- The time before an unused connection is destroyed -->
+      <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
+      <!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
+      <idle-timeout-minutes>0</idle-timeout-minutes>
+
+      <!-- sql to call when connection is created
+        <new-connection-sql>some arbitrary sql</new-connection-sql>
+      -->
+
+      <!-- sql to call on an existing pooled connection when it is obtained from pool 
+         <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
+      -->
+
+      <!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
+         <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
+      -->
+
+      <!-- Whether to check all statements are closed when the connection is returned to the pool,
+           this is a debugging feature that should be turned off in production -->
+      <track-statements/>
+
+      <!-- Use the getConnection(user, pw) for logins
+        <application-managed-security/>
+      -->
+
+      <!-- Use the security domain defined in conf/login-config.xml -->
+      <security-domain>HsqlDbRealm</security-domain>
+
+      <!-- Use the security domain defined in conf/login-config.xml or the
+           getConnection(user, pw) for logins. The security domain takes precedence.
+        <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
+      -->
+
+      <!-- HSQL DB benefits from prepared statement caching -->
+      <prepared-statement-cache-size>32</prepared-statement-cache-size>
+
+      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
+      <metadata>
+         <type-mapping>Hypersonic SQL</type-mapping>
+      </metadata>
+
+   </local-tx-datasource>
+
+</datasources>


Property changes on: branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/hsqldb-ds.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"

Added: branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/jboss-messaging.sar/messaging-service.xml
===================================================================
--- branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/jboss-messaging.sar/messaging-service.xml	                        (rev 0)
+++ branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/jboss-messaging.sar/messaging-service.xml	2007-11-12 22:28:37 UTC (rev 66991)
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+     The JBoss Messaging service deployment descriptor.
+
+     $Id: messaging-service.xml 64130 2007-07-18 23:21:27Z clebert.suconic at jboss.com $
+ -->
+
+<server>
+
+   <!-- ServerPeer MBean configuration
+        ============================== -->
+
+   <mbean code="org.jboss.jms.server.ServerPeer"
+      name="jboss.messaging:service=ServerPeer"
+      xmbean-dd="xmdesc/ServerPeer-xmbean.xml">
+
+      <!-- The unique id of the server peer - in a cluster each node MUST have a unique value - must be an integer -->
+
+      <attribute name="ServerPeerID">1</attribute>
+      
+      <!-- The default JNDI context to use for queues when they are deployed without specifying one --> 
+      
+      <attribute name="DefaultQueueJNDIContext">/queue</attribute>
+      
+      <!-- The default JNDI context to use for topics when they are deployed without specifying one --> 
+      
+      <attribute name="DefaultTopicJNDIContext">/topic</attribute>
+
+	  <attribute name="PostOffice">jboss.messaging:service=PostOffice</attribute>
+	  
+	  <!-- The JAAS security domain to use for JBoss Messaging -->
+	  
+      <attribute name="SecurityDomain">java:/jaas/messaging</attribute>
+      
+      <!-- The default security configuration to apply to destinations - this can be overridden on a per destination basis -->
+      
+      <attribute name="DefaultSecurityConfig">
+        <security>
+            <role name="Administrator" read="true" write="true" create="true"/>
+            <role name="Manager" read="true" write="true" create="true"/>
+            <role name="guest" read="true" write="true" create="true"/>
+        </security>
+      </attribute>
+      
+      <!-- The default Dead Letter Queue (DLQ) to use for destinations.
+           This can be overridden on a per destinatin basis -->
+      
+      <attribute name="DefaultDLQ">jboss.messaging.destination:service=Queue,name=DLQ</attribute>
+      
+      <!-- The default maximum number of times to attempt delivery of a message before sending to the DLQ (if configured).
+           This can be overridden on a per destinatin basis -->
+      
+      <attribute name="DefaultMaxDeliveryAttempts">10</attribute>
+      
+      <!-- The default Expiry Queue to use for destinations. This can be overridden on a per destinatin basis -->
+      
+      <attribute name="DefaultExpiryQueue">jboss.messaging.destination:service=Queue,name=ExpiryQueue</attribute>
+      
+      <!-- The default redelivery delay to impose. This can be overridden on a per destination basis -->
+      
+      <attribute name="DefaultRedeliveryDelay">0</attribute>
+      
+      <!-- The periodicity of the message counter manager enquiring on queues for statistics -->
+      
+      <attribute name="MessageCounterSamplePeriod">5000</attribute>
+      
+      <!-- The maximum amount of time for a client to wait for failover to start on the server side after
+           it has detected failure -->
+      
+      <attribute name="FailoverStartTimeout">60000</attribute>
+      
+      <!-- The maximum amount of time for a client to wait for failover to complete on the server side after
+           it has detected failure -->
+      
+      <attribute name="FailoverCompleteTimeout">300000</attribute>
+
+      <attribute name="StrictTck">true</attribute>
+      
+      <!-- The maximum number of days results to maintain in the message counter history -->
+      
+      <attribute name="DefaultMessageCounterHistoryDayLimit">-1</attribute>
+      
+      <!-- The name of the connection factory to use for creating connections between nodes to pull messages -->
+      
+      <attribute name="ClusterPullConnectionFactoryName">jboss.messaging.connectionfactory:service=ClusterPullConnectionFactory</attribute>
+      
+      <!-- Use XA when pulling persistent messages from a remote node to this one. -->
+      
+      <attribute name="UseXAForMessagePull">true</attribute>
+      
+      <!-- When redistributing messages in the cluster. Do we need to preserve the order of messages received
+            by a particular consumer from a particular producer? -->
+            
+      <attribute name="DefaultPreserveOrdering">false</attribute>
+      
+      <!-- Max. time to hold previously delivered messages back waiting for clients to reconnect after failover -->
+      
+      <attribute name="RecoverDeliveriesTimeout">300000</attribute>
+
+      <depends optional-attribute-name="PersistenceManager">jboss.messaging:service=PersistenceManager</depends>
+      
+      <depends optional-attribute-name="JMSUserManager">jboss.messaging:service=JMSUserManager</depends>
+      
+      <depends>jboss.messaging:service=Connector,transport=bisocket</depends>
+
+   </mbean>
+
+</server>


Property changes on: branches/JBPAPP_4_2/testsuite/src/resources/test-configs/jbm-cluster2/deploy/jboss-messaging.sar/messaging-service.xml
___________________________________________________________________
Name: svn:keywords
   + "Id LastChangedDate Author Revision"




More information about the jboss-cvs-commits mailing list