[jboss-cvs] JBoss Messaging SVN: r5671 - in trunk: src/main/org/jboss/messaging/core/config/cluster and 14 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 20 17:13:24 EST 2009


Author: timfox
Date: 2009-01-20 17:13:24 -0500 (Tue, 20 Jan 2009)
New Revision: 5671

Added:
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java
Removed:
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/DiscoveryFlowTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchSizeTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchTimeTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowReconnectTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowRestartTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTransformerTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWildcardTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWithFilterTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/SimpleTransformer.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/StaticFlowTest.java
Modified:
   trunk/src/config/jbm-configuration.xml
   trunk/src/main/org/jboss/messaging/core/config/cluster/BridgeConfiguration.java
   trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
   trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
   trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
   trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
   trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
   trunk/src/main/org/jboss/messaging/core/server/cluster/Bridge.java
   trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BridgeImpl.java
   trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
   trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
   trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
   trunk/src/main/org/jboss/messaging/jms/bridge/impl/BridgeImpl.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java
   trunk/src/main/org/jboss/messaging/util/UUID.java
   trunk/src/main/org/jboss/messaging/util/UUIDGenerator.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/BasicMessageFlowTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java
Log:
More tests etc


Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/config/jbm-configuration.xml	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,4 +1,4 @@
-<deployment xmlns="urn:jboss:messaging-configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:jboss:messaging-configuration ../schemas/jbm-configuration.xsd ">
+<deployment xmlns="urn:jboss:messaging-configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:jboss:messaging-configuration ../schemas/jbm-configuration.xsd">
    <configuration>
 
       <clustered>false</clustered>

Modified: trunk/src/main/org/jboss/messaging/core/config/cluster/BridgeConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/cluster/BridgeConfiguration.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/config/cluster/BridgeConfiguration.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -68,8 +68,6 @@
 
    private final boolean useDuplicateDetection;
 
-   private final int maxHops;
-
    public BridgeConfiguration(final String name,
                               final String queueName,
                               final String forwardingAddress,
@@ -81,8 +79,7 @@
                               final double retryIntervalMultiplier,
                               final int maxRetriesBeforeFailover,
                               final int maxRetriesAfterFailover,
-                              final boolean useDuplicateDetection,
-                              final int maxHops,
+                              final boolean useDuplicateDetection,                             
                               final Pair<String, String> connectorPair)
    {
       this.name = name;
@@ -97,7 +94,6 @@
       this.maxRetriesBeforeFailover = maxRetriesBeforeFailover;
       this.maxRetriesAfterFailover = maxRetriesAfterFailover;
       this.useDuplicateDetection = useDuplicateDetection;
-      this.maxHops = maxHops;
       this.connectorPair = connectorPair;
       this.discoveryGroupName = null;
    }
@@ -113,8 +109,7 @@
                               final double retryIntervalMultiplier,
                               final int maxRetriesBeforeFailover,
                               final int maxRetriesAfterFailover,
-                              final boolean useDuplicateDetection,
-                              final int maxHops,
+                              final boolean useDuplicateDetection,                             
                               final String discoveryGroupName)
    {
       this.name = name;
@@ -129,7 +124,6 @@
       this.maxRetriesBeforeFailover = maxRetriesBeforeFailover;
       this.maxRetriesAfterFailover = maxRetriesAfterFailover;
       this.useDuplicateDetection = useDuplicateDetection;
-      this.maxHops = maxHops;
       this.connectorPair = null;
       this.discoveryGroupName = discoveryGroupName;
    }
@@ -176,7 +170,7 @@
 
    public String getDiscoveryGroupName()
    {
-      return this.discoveryGroupName;
+      return discoveryGroupName;
    }
 
    public long getRetryInterval()
@@ -203,9 +197,4 @@
    {
       return useDuplicateDetection;
    }
-
-   public int getMaxHops()
-   {
-      return maxHops;
-   }
 }

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -122,8 +122,6 @@
    
    public static final boolean DEFAULT_USE_DUPLICATE_DETECTION = true;
    
-   public static final int DEFAULT_MAX_HOPS = 1;
-   
    public static final boolean DEFAULT_DIVERT_EXCLUSIVE = false;
    
    // Attributes -----------------------------------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -703,8 +703,6 @@
       
       boolean useDuplicateDetection = DEFAULT_USE_DUPLICATE_DETECTION;
       
-      int maxHops = DEFAULT_MAX_HOPS;
-      
       NodeList children = brNode.getChildNodes();
 
       for (int j = 0; j < children.getLength(); j++)
@@ -763,10 +761,6 @@
          {
             useDuplicateDetection = XMLUtil.parseBoolean(child);
          }
-         else if (child.getNodeName().equals("max-hops"))
-         {
-            maxHops = XMLUtil.parseInt(child);
-         }
          else if (child.getNodeName().equals("connector-ref"))
          {
             String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
@@ -799,8 +793,7 @@
                                                retryIntervalMultiplier,
                                                maxRetriesBeforeFailover,
                                                maxRetriesAfterFailover,
-                                               useDuplicateDetection,
-                                               maxHops,                                               
+                                               useDuplicateDetection,                                                                                       
                                                connectorPair);
       }
       else
@@ -816,8 +809,7 @@
                                                retryIntervalMultiplier,
                                                maxRetriesBeforeFailover,
                                                maxRetriesAfterFailover,       
-                                               useDuplicateDetection,
-                                               maxHops,                                               
+                                               useDuplicateDetection,                                                                                         
                                                discoveryGroupName);
       }
 

Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -30,7 +30,6 @@
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -140,7 +139,7 @@
    private volatile boolean started;
 
    private final ExecutorService executor;
-
+    
    public JournalStorageManager(final Configuration config)
    {
       this.executor = Executors.newCachedThreadPool(new JBMThreadFactory("JBM-journal-storage-manager"));
@@ -230,7 +229,7 @@
    {
       return idGenerator.generateID();
    }
-
+   
    public LargeServerMessage createLargeMessage()
    {
       return new JournalLargeServerMessage(this);
@@ -1240,7 +1239,7 @@
       }
 
    }
-
+   
    private static class LargeMessageEncoding implements EncodingSupport
    {
       private final LargeServerMessage message;

Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -285,7 +285,7 @@
    }
 
    public void route(final ServerMessage message, Transaction tx) throws Exception
-   {
+   {      
       SimpleString address = message.getDestination();
 
       if (checkAllowable)
@@ -360,7 +360,7 @@
       }
 
       Bindings bindings = addressManager.getBindings(address);
-
+          
       if (bindings != null)
       {
          bindings.route(message, tx);

Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -506,7 +506,7 @@
    public void bufferReceived(final Object connectionID, final MessagingBuffer buffer)
    {
       final Packet packet = decode(buffer);
-
+      
       synchronized (transferLock)
       {
          if (!frozen)
@@ -1034,7 +1034,7 @@
                }
 
                if (connection.active || packet.isWriteAlways())
-               {
+               {              
                   connection.transportConnection.write(buffer);
                }
             }
@@ -1388,7 +1388,7 @@
       }
 
       private void handlePacket(final Packet packet)
-      {
+      {     
          if (packet.getType() == PACKETS_CONFIRMED)
          {
             if (resendCache != null)
@@ -1433,7 +1433,7 @@
             }
 
             if (packet.isResponse())
-            {
+            {           
                response = packet;
 
                confirm(packet);

Modified: trunk/src/main/org/jboss/messaging/core/server/cluster/Bridge.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/cluster/Bridge.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/server/cluster/Bridge.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -54,7 +54,5 @@
 
    Transformer getTransformer();
 
-   int getMaxHops();
-
    boolean isUseDuplicateDetection();   
 }

Modified: trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BridgeImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BridgeImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/server/cluster/impl/BridgeImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -35,10 +35,11 @@
 import org.jboss.messaging.core.client.impl.ClientSessionImpl;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.filter.Filter;
+import org.jboss.messaging.core.filter.impl.FilterImpl;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.persistence.StorageManager;
-import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.remoting.FailureListener;
 import org.jboss.messaging.core.remoting.RemotingConnection;
 import org.jboss.messaging.core.server.HandleStatus;
@@ -47,8 +48,6 @@
 import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.server.cluster.Bridge;
 import org.jboss.messaging.core.server.cluster.Transformer;
-import org.jboss.messaging.core.settings.HierarchicalRepository;
-import org.jboss.messaging.core.settings.impl.QueueSettings;
 import org.jboss.messaging.core.transaction.Transaction;
 import org.jboss.messaging.core.transaction.impl.TransactionImpl;
 import org.jboss.messaging.util.Future;
@@ -73,7 +72,7 @@
    // Attributes ----------------------------------------------------
 
    private final SimpleString name;
-   
+
    private final Queue queue;
 
    private final Executor executor;
@@ -83,9 +82,11 @@
    private final int maxBatchSize;
 
    private final long maxBatchTime;
-   
+
    private final SimpleString filterString;
 
+   private final Filter filter;
+
    private final SimpleString forwardingAddress;
 
    private int count;
@@ -110,8 +111,6 @@
 
    private final ScheduledFuture<?> future;
 
-   private final int maxHops;
-   
    private final boolean useDuplicateDetection;
 
    // Static --------------------------------------------------------
@@ -134,12 +133,11 @@
                      final long retryInterval,
                      final double retryIntervalMultiplier,
                      final int maxRetriesBeforeFailover,
-                     final int maxRetriesAfterFailover,
-                     final int maxHops,
-                     final boolean useDuplicateDetection)
+                     final int maxRetriesAfterFailover,                 
+                     final boolean useDuplicateDetection) throws Exception
    {
       this.name = name;
-      
+
       this.queue = queue;
 
       this.executor = executor;
@@ -147,17 +145,24 @@
       this.maxBatchSize = maxBatchSize;
 
       this.maxBatchTime = maxBatchTime;
-      
+
       this.filterString = filterString;
 
+      if (this.filterString != null)
+      {
+         this.filter = new FilterImpl(filterString);
+      }
+      else
+      {
+         this.filter = null;
+      }
+
       this.forwardingAddress = forwardingAddress;
 
       this.storageManager = storageManager;
 
       this.transformer = transformer;
 
-      this.maxHops = maxHops;
-      
       this.useDuplicateDetection = useDuplicateDetection;
 
       this.csf = new ClientSessionFactoryImpl(connectorPair.a,
@@ -179,8 +184,6 @@
          future = null;
       }
    }
-   
-   
 
    public synchronized void start() throws Exception
    {
@@ -253,6 +256,11 @@
          return HandleStatus.BUSY;
       }
 
+      if (filter != null && !filter.match(reference.getMessage()))
+      {
+         return HandleStatus.NO_MATCH;
+      }
+
       synchronized (this)
       {
          if (!started)
@@ -379,20 +387,6 @@
                message = transformer.transform(message);
             }
 
-            if (maxHops != -1)
-            {
-               Integer iMaxHops = (Integer)message.getProperty(MessageImpl.HDR_MAX_HOPS);
-
-               if (iMaxHops == null)
-               {
-                  message.putIntProperty(MessageImpl.HDR_MAX_HOPS, maxHops - 1);
-               }
-               else
-               {
-                  message.putIntProperty(MessageImpl.HDR_MAX_HOPS, iMaxHops - 1);
-               }
-            }
-
             SimpleString dest;
 
             if (forwardingAddress != null)
@@ -492,11 +486,6 @@
       return transformer;
    }
 
-   public int getMaxHops()
-   {
-      return maxHops;
-   }
-
    public boolean isUseDuplicateDetection()
    {
       return useDuplicateDetection;

Modified: trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/server/cluster/impl/ClusterManagerImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -479,11 +479,11 @@
 
          return;
       }
-      
+
       Transformer transformer = instantiateTransformer(config.getTransformerClassName());
 
       Pair<String, String> connectorNamePair = config.getConnectorPair();
-      
+
       Binding binding = postOffice.getBinding(new SimpleString(config.getQueueName()));
 
       if (binding == null)
@@ -494,7 +494,7 @@
       }
 
       Queue queue = (Queue)binding.getBindable();
-      
+
       Bridge bridge;
 
       if (connectorNamePair != null)
@@ -523,69 +523,64 @@
             }
          }
 
-         
          Pair<TransportConfiguration, TransportConfiguration> pair = new Pair<TransportConfiguration, TransportConfiguration>(connector,
                                                                                                                               backupConnector);
 
          bridge = new BridgeImpl(new SimpleString(config.getName()),
-                                        queue,
-                                        pair,
-                                        executorFactory.getExecutor(),
-                                        config.getMaxBatchSize(),
-                                        config.getMaxBatchTime(),
-                                        new SimpleString(config.getForwardingAddress()),
-                                        config.getFilterString() == null ? null
-                                                                        : new SimpleString(config.getFilterString()),
-                                        storageManager,                      
-                                        scheduledExecutor,
-                                        transformer,
-                                        config.getRetryInterval(),
-                                        config.getRetryIntervalMultiplier(),
-                                        config.getMaxRetriesBeforeFailover(),
-                                        config.getMaxRetriesAfterFailover(),
-                                        config.getMaxHops(),
-                                        config.isUseDuplicateDetection());  
-         
+                                 queue,
+                                 pair,
+                                 executorFactory.getExecutor(),
+                                 config.getMaxBatchSize(),
+                                 config.getMaxBatchTime(),
+                                 config.getFilterString() == null ? null : new SimpleString(config.getFilterString()),
+                                 new SimpleString(config.getForwardingAddress()),                                 
+                                 storageManager,
+                                 scheduledExecutor,
+                                 transformer,
+                                 config.getRetryInterval(),
+                                 config.getRetryIntervalMultiplier(),
+                                 config.getMaxRetriesBeforeFailover(),
+                                 config.getMaxRetriesAfterFailover(),                               
+                                 config.isUseDuplicateDetection());
+
          bridges.put(config.getName(), bridge);
 
-         log.info("registering bridge");
          managementService.registerBridge(bridge, config);
 
-         bridge.start();                 
+         bridge.start();
       }
-//      else
-//      {
-//         DiscoveryGroup group = discoveryGroups.get(config.getDiscoveryGroupName());     
-//         
-//         if (group == null)
-//         {
-//            log.warn("There is no discovery-group with name " + config.getDiscoveryGroupName() +
-//                     " deployed. This one will not be deployed.");
-//
-//            return;
-//         }
-//         
-//         bridge = new BridgeImpl(new SimpleString(config.getName()),
-//                                        queue,
-//                                        config.getDiscoveryGroupName(),
-//                                        executorFactory.getExecutor(),
-//                                        config.getMaxBatchSize(),
-//                                        config.getMaxBatchTime(),
-//                                        new SimpleString(config.getForwardingAddress()),
-//                                        config.getFilterString() == null ? null
-//                                                                        : new SimpleString(config.getFilterString()),
-//                                        storageManager,                      
-//                                        scheduledExecutor,
-//                                        transformer,
-//                                        config.getRetryInterval(),
-//                                        config.getRetryIntervalMultiplier(),
-//                                        config.getMaxRetriesBeforeFailover(),
-//                                        config.getMaxRetriesAfterFailover(),
-//                                        config.getMaxHops(),
-//                                        config.isUseDuplicateDetection());
-//      }
-      
-      
+      // else
+      // {
+      // DiscoveryGroup group = discoveryGroups.get(config.getDiscoveryGroupName());
+      //         
+      // if (group == null)
+      // {
+      // log.warn("There is no discovery-group with name " + config.getDiscoveryGroupName() +
+      // " deployed. This one will not be deployed.");
+      //
+      // return;
+      // }
+      //         
+      // bridge = new BridgeImpl(new SimpleString(config.getName()),
+      // queue,
+      // config.getDiscoveryGroupName(),
+      // executorFactory.getExecutor(),
+      // config.getMaxBatchSize(),
+      // config.getMaxBatchTime(),
+      // new SimpleString(config.getForwardingAddress()),
+      // config.getFilterString() == null ? null
+      // : new SimpleString(config.getFilterString()),
+      // storageManager,
+      // scheduledExecutor,
+      // transformer,
+      // config.getRetryInterval(),
+      // config.getRetryIntervalMultiplier(),
+      // config.getMaxRetriesBeforeFailover(),
+      // config.getMaxRetriesAfterFailover(),
+      // config.getMaxHops(),
+      // config.isUseDuplicateDetection());
+      // }
+
    }
 
    private Transformer instantiateTransformer(final String transformerClassName)

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -659,8 +659,8 @@
                                                      final boolean xa,
                                                      final int sendWindowSize) throws Exception
    {
-      checkActivate(connection);
-
+      checkActivate(connection);     
+      
       return doCreateSession(name,
                              channelID,
                              username,
@@ -847,9 +847,7 @@
          }
          
          SimpleString sName = new SimpleString(config.getName());
-
-         log.info("deploying divert with name " + sName);
-         
+     
          if (postOffice.getBinding(sName) != null)
          {
             log.warn("Binding already exists with name " + sName + ", divert will not be deployed");

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -81,7 +81,7 @@
       Packet response = null;
 
       byte type = packet.getType();
-
+      
       // All these operations need to be idempotent since they are outside of the session
       // reliability replay functionality
       try
@@ -160,7 +160,7 @@
       if (response != null)
       {
          if (result == null)
-         {
+         {           
             channel1.send(response);
          }
          else
@@ -170,13 +170,13 @@
             result.setResultRunner(new Runnable()
             {
                public void run()
-               {
+               {                  
                   channel1.send(theResponse);
                }
             });
          }
       }
-
+    
       channel1.replicateComplete();
    }
 }
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -200,7 +200,7 @@
    }
    
    public void route(final ServerMessage message, final Transaction tx) throws Exception
-   {
+   { 
       // Temp
       SimpleString routeToHeader = MessageImpl.HDR_ROUTE_TO_PREFIX.concat(name);
       message.removeProperty(routeToHeader);
@@ -243,7 +243,7 @@
          addLast(ref);
       }
       else
-      {
+      {         
          if (durableRef)
          {
             if (!message.isStored())

Modified: trunk/src/main/org/jboss/messaging/jms/bridge/impl/BridgeImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/bridge/impl/BridgeImpl.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/jms/bridge/impl/BridgeImpl.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -226,7 +226,7 @@
    // MessagingComponent overrides --------------------------------------------------
         
    public synchronized void start() throws Exception
-   {
+   {      
       if (started)
       {
          log.warn("Attempt to start, but is already started");

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessageProducer.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -18,7 +18,7 @@
  * 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.messaging.jms.client;
 
@@ -61,138 +61,140 @@
 public class JBossMessageProducer implements MessageProducer, QueueSender, TopicPublisher
 {
    // Constants -----------------------------------------------------
-   
-   // Static --------------------------------------------------------      
 
+   // Static --------------------------------------------------------
+
    private static final Logger log = Logger.getLogger(JBossMessageProducer.class);
-   
+
    // Attributes ----------------------------------------------------
-   
+
    private JBossConnection jbossConn;
-   
+
    private final SimpleString connID;
-   
+
    private ClientProducer producer;
-   
+
    private boolean disableMessageID = false;
-   
+
    private boolean disableMessageTimestamp = false;
-   
+
    private int defaultPriority = 4;
-   
+
    private long defaultTimeToLive = 0;
-   
+
    private int defaultDeliveryMode = DeliveryMode.PERSISTENT;
-   
+
    private JBossDestination defaultDestination;
-   
+
    private final String messageIDPrefix;
-   
+
    private final AtomicLong sequenceNumber = new AtomicLong(0);
-   
+
    private ClientSession clientSession;
 
    // Constructors --------------------------------------------------
-   
-   public JBossMessageProducer(final JBossConnection jbossConn, final ClientProducer producer,
-            final JBossDestination defaultDestination, final ClientSession clientSession) throws JMSException
+
+   public JBossMessageProducer(final JBossConnection jbossConn,
+                               final ClientProducer producer,
+                               final JBossDestination defaultDestination,
+                               final ClientSession clientSession) throws JMSException
    {
       this.jbossConn = jbossConn;
-      
+
       this.connID = jbossConn.getUID();
-      
-      this.producer = producer;     
-      
+
+      this.producer = producer;
+
       this.defaultDestination = defaultDestination;
 
       this.clientSession = clientSession;
-      
-      //TODO the UUID should be generated at the JMS Connection level, 
+
+      // TODO the UUID should be generated at the JMS Connection level,
       // then session, producers & messages ID could be created using simple sequences
       String uuid = UUIDGenerator.getInstance().generateSimpleStringUUID().toString();
-      
+
       messageIDPrefix = "ID:" + uuid + ":";
    }
-   
+
    // MessageProducer implementation --------------------------------
-   
+
    public void setDisableMessageID(boolean value) throws JMSException
    {
       checkClosed();
-      
+
       disableMessageID = value;
    }
-   
+
    public boolean getDisableMessageID() throws JMSException
    {
       checkClosed();
-      
+
       return disableMessageID;
    }
-   
+
    public void setDisableMessageTimestamp(boolean value) throws JMSException
    {
       checkClosed();
-      
+
       disableMessageTimestamp = value;
    }
-   
+
    public boolean getDisableMessageTimestamp() throws JMSException
    {
       checkClosed();
-      
+
       return disableMessageTimestamp;
    }
-   
+
    public void setDeliveryMode(int deliveryMode) throws JMSException
    {
       checkClosed();
-      
+
       this.defaultDeliveryMode = deliveryMode;
    }
-   
+
    public int getDeliveryMode() throws JMSException
    {
       checkClosed();
-      
+
       return this.defaultDeliveryMode;
    }
-   
+
    public void setPriority(int defaultPriority) throws JMSException
    {
       checkClosed();
-      
+
       this.defaultPriority = defaultPriority;
    }
-   
+
    public int getPriority() throws JMSException
    {
       checkClosed();
-      
+
       return defaultPriority;
    }
-   
+
    public void setTimeToLive(long timeToLive) throws JMSException
    {
       checkClosed();
-      
+
       this.defaultTimeToLive = timeToLive;
    }
-   
+
    public long getTimeToLive() throws JMSException
    {
       checkClosed();
-      
+
       return defaultTimeToLive;
    }
-   
+
    public Destination getDestination() throws JMSException
    {
       checkClosed();
-      
+
       return defaultDestination;
    }
-   
+
    public void close() throws JMSException
    {
       try
@@ -201,54 +203,49 @@
       }
       catch (MessagingException e)
       {
-         throw JMSExceptionHelper.convertFromMessagingException(e);     
-      }   
+         throw JMSExceptionHelper.convertFromMessagingException(e);
+      }
    }
-   
+
    public void send(Message message) throws JMSException
    {
       checkClosed();
 
       message.setJMSDeliveryMode(defaultDeliveryMode);
-      
+
       message.setJMSPriority(defaultPriority);
-      
+
       doSend(message, defaultTimeToLive, null);
    }
-   
+
    public void send(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
-   { 
+   {
       checkClosed();
 
       message.setJMSDeliveryMode(deliveryMode);
-      
+
       message.setJMSPriority(priority);
-            
+
       doSend(message, timeToLive, null);
    }
-   
+
    public void send(Destination destination, Message message) throws JMSException
-   {      
+   {
       checkClosed();
 
       if (destination != null && !(destination instanceof JBossDestination))
       {
          throw new InvalidDestinationException("Not a JBoss Destination:" + destination);
       }
-      
+
       message.setJMSDeliveryMode(defaultDeliveryMode);
-      
+
       message.setJMSPriority(defaultPriority);
-      
+
       doSend(message, defaultTimeToLive, (JBossDestination)destination);
    }
 
-
-   public void send(Destination destination,
-                    Message message,
-                    int deliveryMode,
-                    int priority,
-                    long timeToLive) throws JMSException
+   public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
    {
       checkClosed();
 
@@ -258,9 +255,9 @@
       }
 
       message.setJMSDeliveryMode(deliveryMode);
-      
+
       message.setJMSPriority(priority);
-            
+
       doSend(message, timeToLive, (JBossDestination)destination);
    }
 
@@ -270,25 +267,23 @@
    {
       return (Topic)getDestination();
    }
-   
+
    public void publish(Message message) throws JMSException
    {
       send(message);
    }
-   
+
    public void publish(Topic topic, Message message) throws JMSException
    {
       send(topic, message);
    }
-   
-   public void publish(Message message, int deliveryMode, int priority, long timeToLive)
-      throws JMSException
+
+   public void publish(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
    {
       send(message, deliveryMode, priority, timeToLive);
    }
-   
-   public void publish(Topic topic, Message message, int deliveryMode,
-                       int priority, long timeToLive) throws JMSException
+
+   public void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
    {
       send(topic, message, deliveryMode, priority, timeToLive);
    }
@@ -299,18 +294,17 @@
    {
       send((Destination)queue, message);
    }
-   
-   public void send(Queue queue, Message message, int deliveryMode, int priority,
-                    long timeToLive) throws JMSException
+
+   public void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
    {
       send((Destination)queue, message, deliveryMode, priority, timeToLive);
    }
-   
+
    public Queue getQueue() throws JMSException
    {
       return (Queue)getDestination();
    }
-   
+
    // Public --------------------------------------------------------
 
    public String toString()
@@ -319,11 +313,11 @@
    }
 
    // Package protected ---------------------------------------------
-   
+
    // Protected -----------------------------------------------------
-   
+
    // Private -------------------------------------------------------
-   
+
    private void doSend(Message message, long timeToLive, JBossDestination destination) throws JMSException
    {
       if (timeToLive == 0)
@@ -334,7 +328,7 @@
       {
          message.setJMSExpiration(System.currentTimeMillis() + timeToLive);
       }
-      
+
       if (!disableMessageTimestamp)
       {
          message.setJMSTimestamp(System.currentTimeMillis());
@@ -343,34 +337,33 @@
       {
          message.setJMSTimestamp(0);
       }
-      
+
       SimpleString address = null;
-      
+
       if (destination == null)
       {
-      	if (defaultDestination == null)
-      	{
-      		throw new InvalidDestinationException("Destination must be specified on send with an anonymous producer");
-      	}
-      	
-      	destination = defaultDestination;
+         if (defaultDestination == null)
+         {
+            throw new InvalidDestinationException("Destination must be specified on send with an anonymous producer");
+         }
+
+         destination = defaultDestination;
       }
       else
       {
-      	if (defaultDestination != null)
-      	{
-      		if (!destination.equals(defaultDestination))
-      		{
-      			throw new JMSException("Where a default destination is specified " +
-                     "for the sender and a destination is " +
-                     "specified in the arguments to the send, " +
-                     "these destinations must be equal");
-      		}
-      	}
-      	
-      	address = destination.getSimpleAddress();
+         if (defaultDestination != null)
+         {
+            if (!destination.equals(defaultDestination))
+            {
+               throw new JMSException("Where a default destination is specified " + "for the sender and a destination is "
+                                      + "specified in the arguments to the send, "
+                                      + "these destinations must be equal");
+            }
+         }
+
+         address = destination.getSimpleAddress();
       }
-      
+
       JBossMessage jbm;
 
       boolean foreign = false;
@@ -383,7 +376,7 @@
 
          if (message instanceof BytesMessage)
          {
-            jbm = new JBossBytesMessage((BytesMessage)message, clientSession );
+            jbm = new JBossBytesMessage((BytesMessage)message, clientSession);
          }
          else if (message instanceof MapMessage)
          {
@@ -436,9 +429,9 @@
       catch (Exception e)
       {
          JMSException je = new JMSException(e.getMessage());
-         
+
          je.initCause(e);
-         
+
          throw je;
       }
 
@@ -450,15 +443,15 @@
       }
 
       try
-      {      	
-      	producer.send(address, coreMessage);         
+      {
+         producer.send(address, coreMessage);
       }
       catch (MessagingException e)
       {
-         throw JMSExceptionHelper.convertFromMessagingException(e);     
-      } 
+         throw JMSExceptionHelper.convertFromMessagingException(e);
+      }
    }
-   
+
    private void checkClosed() throws JMSException
    {
       if (producer.isClosed())
@@ -466,6 +459,6 @@
          throw new IllegalStateException("Producer is closed");
       }
    }
-   
+
    // Inner classes -------------------------------------------------
 }

Modified: trunk/src/main/org/jboss/messaging/util/UUID.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/UUID.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/util/UUID.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -40,7 +40,7 @@
  * bytes).
  */
 
-public class UUID
+public final class UUID
 {
    private final static String kHexChars = "0123456789abcdefABCDEF";
 
@@ -101,6 +101,11 @@
       mId[INDEX_VARIATION] &= (byte) 0x3F;
       mId[INDEX_VARIATION] |= (byte) 0x80;
    }
+   
+   public final byte[] asBytes()
+   {
+      return mId;
+   }
 
    /**
     * Could use just the default hash code, but we can probably create a better
@@ -116,7 +121,7 @@
     */
    private final static int[] kShifts = { 3, 7, 17, 21, 29, 4, 9 };
 
-   public int hashCode()
+   public final int hashCode()
    {
       if (mHashCode == 0)
       {
@@ -158,7 +163,7 @@
       return mHashCode;
    }
 
-   public String toString()
+   public final String toString()
    {
       /*
        * Could be synchronized, but there isn't much harm in just taking our
@@ -197,7 +202,7 @@
    /**
     * Checking equality of UUIDs is easy; just compare the 128-bit number.
     */
-   public boolean equals(Object o)
+   public final boolean equals(Object o)
    {
       if (!(o instanceof UUID))
       {

Modified: trunk/src/main/org/jboss/messaging/util/UUIDGenerator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/UUIDGenerator.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/src/main/org/jboss/messaging/util/UUIDGenerator.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -59,7 +59,7 @@
     * care of it); it might even be good for getting really 'random' stuff to
     * get shared access...
     */
-   public Random getRandomNumberGenerator()
+   public final Random getRandomNumberGenerator()
    {
       /*
        * Could be synchronized, but since side effects are trivial (ie.
@@ -73,7 +73,7 @@
       return mRnd;
    }
 
-   public UUID generateTimeBasedUUID(InetAddress addr)
+   public final UUID generateTimeBasedUUID(InetAddress addr)
    {
       byte[] contents = new byte[16];
       byte[] byteAddr = addr.getAddress();
@@ -96,17 +96,29 @@
       return new UUID(UUID.TYPE_TIME_BASED, contents);
    }
    
-   public SimpleString generateSimpleStringUUID()
+   private InetAddress address;
+   
+   private final InetAddress getAddress()
    {
-      InetAddress localHost = null;
-      
-      try
+      if (address == null)
       {
-         localHost = InetAddress.getLocalHost();
+         address = null;
+         
+         try
+         {
+            address = InetAddress.getLocalHost();
+         }
+         catch (UnknownHostException e)
+         {        
+         }
       }
-      catch (UnknownHostException e)
-      {        
-      }
+      return address;
+   }
+   
+   public final SimpleString generateSimpleStringUUID()
+   {
+      InetAddress localHost  = getAddress();
+      
       SimpleString uid;
       if (localHost == null)
       {
@@ -121,17 +133,29 @@
       return uid;
    }
    
-   public String generateStringUUID()
+   public final SimpleString generateSimpleStringUUID2()
    {
-      InetAddress localHost = null;
+      UUID uuid = generateUUID();
       
-      try
-      {
-         localHost = InetAddress.getLocalHost();
-      }
-      catch (UnknownHostException e)
-      {        
-      }
+      SimpleString str = new SimpleString(uuid.asBytes());
+      
+      return str;
+   }
+   
+   public final UUID generateUUID()
+   {
+      InetAddress localHost  = getAddress();
+      
+      UUIDGenerator gen = UUIDGenerator.getInstance();
+      UUID uid = gen.generateTimeBasedUUID(localHost);         
+      
+      return uid;
+   }
+   
+   public final String generateStringUUID()
+   {
+      InetAddress localHost  = getAddress();
+      
       String uid;
       if (localHost == null)
       {

Added: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeReconnectTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -0,0 +1,721 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * 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.messaging.tests.integration.cluster.bridge;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.cluster.BridgeConfiguration;
+import org.jboss.messaging.core.config.cluster.QueueConfiguration;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.RemotingConnection;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnector;
+import org.jboss.messaging.core.server.MessagingService;
+import org.jboss.messaging.core.server.cluster.Bridge;
+import org.jboss.messaging.core.server.cluster.impl.BridgeImpl;
+import org.jboss.messaging.util.Pair;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * A BridgeReconnectTest
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 20 Jan 2009 19:20:41
+ *
+ *
+ */
+public class BridgeReconnectTest extends BridgeTestBase
+{
+   private static final Logger log = Logger.getLogger(BridgeReconnectTest.class);
+
+   public void testAutomaticReconnectBeforeFailover() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createMessagingService(0, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      MessagingService service1 = createMessagingService(1, service1Params);
+
+      Map<String, Object> service2Params = new HashMap<String, Object>();
+      MessagingService service2 = createMessagingService(2, service2Params, true);
+
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params,
+                                                                    "server0tc");
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params,
+                                                                    "server1tc");
+
+      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service2Params,
+                                                                    "server2tc");
+
+      connectors.put(server1tc.getName(), server1tc);
+
+      connectors.put(server2tc.getName(), server2tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      service1.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      service1.getServer().getConfiguration().setBackupConnectorName(server2tc.getName());
+
+      final String bridgeName = "bridge1";
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+
+      final long retryInterval = 50;
+      final double retryIntervalMultiplier = 1d;
+      final int retriesBeforeFailover = 3;
+      final int maxRetriesAfterFailover = -1;
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), server2tc.getName());
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration(bridgeName,
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        retryInterval,
+                                                                        retryIntervalMultiplier,
+                                                                        retriesBeforeFailover,
+                                                                        maxRetriesAfterFailover,
+                                                                        false,
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+      service2.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service2.start();
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
+      ClientSession session0 = csf0.createSession(false, true, true);
+
+      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
+      ClientSession session1 = csf1.createSession(false, true, true);
+
+      ClientProducer prod0 = session0.createProducer(testAddress);
+
+      ClientConsumer cons1 = session1.createConsumer(queueName0);
+
+      session1.start();
+
+      log.info("Simulating failure");
+
+      // Now we will simulate a failure of the message flow connection between server1 and server2
+      // And prevent reconnection for a few tries, then it will reconnect without failing over
+      Bridge bridge = service0.getServer().getClusterManager().getBridges().get(bridgeName);
+      RemotingConnection forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover - 1;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+
+      final int numMessages = 10;
+
+      SimpleString propKey = new SimpleString("propkey");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, i);
+         message.getBody().flip();
+
+         prod0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage r1 = cons1.receive(500);
+         assertNotNull(r1);
+         assertEquals(i, r1.getProperty(propKey));
+      }
+
+      session0.close();
+      session1.close();
+
+      service0.stop();
+      service1.stop();
+      service2.stop();
+
+      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
+   }
+
+   public void testAutomaticReconnectTryThenFailover() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createMessagingService(0, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      MessagingService service1 = createMessagingService(1, service1Params);
+
+      Map<String, Object> service2Params = new HashMap<String, Object>();
+      MessagingService service2 = createMessagingService(2, service2Params, true);
+
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params,
+                                                                    "server0tc");
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params,
+                                                                    "server1tc");
+
+      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service2Params,
+                                                                    "server2tc");
+
+      connectors.put(server1tc.getName(), server1tc);
+
+      connectors.put(server2tc.getName(), server2tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+      service1.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      service1.getServer().getConfiguration().setBackupConnectorName(server2tc.getName());
+
+      final String bridgeName = "bridge1";
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+
+      final long retryInterval = 50;
+      final double retryIntervalMultiplier = 1d;
+      final int retriesBeforeFailover = 3;
+      final int maxRetriesAfterFailover = -1;
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), server2tc.getName());
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration(bridgeName,
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        retryInterval,
+                                                                        retryIntervalMultiplier,
+                                                                        retriesBeforeFailover,
+                                                                        maxRetriesAfterFailover,
+                                                                        false,
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+      service2.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service2.start();
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
+      ClientSession session0 = csf0.createSession(false, true, true);
+
+      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
+      ClientSession session2 = csf2.createSession(false, true, true);
+
+      ClientProducer prod0 = session0.createProducer(testAddress);
+
+      ClientConsumer cons2 = session2.createConsumer(queueName0);
+
+      session2.start();
+
+      log.info("Simulating failure");
+
+      // Now we will simulate a failure of the message flow connection between server1 and server2
+      // And prevent reconnection for a few tries, then it will reconnect without failing over
+      Bridge bridge = service0.getServer().getClusterManager().getBridges().get(bridgeName);
+      RemotingConnection forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+
+      final int numMessages = 10;
+
+      SimpleString propKey = new SimpleString("propkey");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, i);
+         message.getBody().flip();
+
+         prod0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage r1 = cons2.receive(1500);
+         assertNotNull(r1);
+         assertEquals(i, r1.getProperty(propKey));
+      }
+
+      session0.close();
+      session2.close();
+
+      service0.stop();
+      service1.stop();
+      service2.stop();
+
+      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
+   }
+
+   public void testFailoverThenReconnectAfterFailover() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createMessagingService(0, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      MessagingService service1 = createMessagingService(1, service1Params);
+
+      Map<String, Object> service2Params = new HashMap<String, Object>();
+      MessagingService service2 = createMessagingService(2, service2Params, true);
+
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params,
+                                                                    "server0tc");
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params,
+                                                                    "server1tc");
+
+      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service2Params,
+                                                                    "server2tc");
+
+      connectors.put(server1tc.getName(), server1tc);
+
+      connectors.put(server2tc.getName(), server2tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+      service1.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      service1.getServer().getConfiguration().setBackupConnectorName(server2tc.getName());
+
+      final String bridgeName = "bridge1";
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+
+      final long retryInterval = 50;
+      final double retryIntervalMultiplier = 1d;
+      final int retriesBeforeFailover = 3;
+      final int maxRetriesAfterFailover = 3;
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), server2tc.getName());
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration(bridgeName,
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        retryInterval,
+                                                                        retryIntervalMultiplier,
+                                                                        retriesBeforeFailover,
+                                                                        maxRetriesAfterFailover,
+                                                                        false,
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+      service2.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service2.start();
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
+      ClientSession session0 = csf0.createSession(false, true, true);
+
+      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
+      ClientSession session2 = csf2.createSession(false, true, true);
+
+      ClientProducer prod0 = session0.createProducer(testAddress);
+
+      ClientConsumer cons2 = session2.createConsumer(queueName0);
+
+      session2.start();
+
+      log.info("Simulating failure");
+
+      // Now we will simulate a failure of the message flow connection between server1 and server2
+      // And prevent reconnection for a few tries, then it will reconnect without failing over
+      Bridge bridge = service0.getServer().getClusterManager().getBridges().get(bridgeName);
+      RemotingConnection forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+
+      // Now we should be failed over so fail again and should reconnect
+      forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.resetFailures();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover - 1;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+
+      final int numMessages = 10;
+
+      SimpleString propKey = new SimpleString("propkey");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, i);
+         message.getBody().flip();
+
+         prod0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage r1 = cons2.receive(1500);
+         assertNotNull(r1);
+         assertEquals(i, r1.getProperty(propKey));
+      }
+
+      session0.close();
+      session2.close();
+
+      service0.stop();
+      service1.stop();
+      service2.stop();
+
+      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
+   }
+
+   public void testAutomaticReconnectSingleServer() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createMessagingService(0, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      MessagingService service1 = createMessagingService(1, service1Params);
+
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params,
+                                                                    "server0tc");
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params,
+                                                                    "server1tc");
+
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      final String bridgeName = "bridge1";
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+
+      final long retryInterval = 50;
+      final double retryIntervalMultiplier = 1d;
+      final int retriesBeforeFailover = 3;
+      final int maxRetriesAfterFailover = -1;
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration(bridgeName,
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        retryInterval,
+                                                                        retryIntervalMultiplier,
+                                                                        retriesBeforeFailover,
+                                                                        maxRetriesAfterFailover,
+                                                                        false,
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
+      ClientSession session0 = csf0.createSession(false, true, true);
+
+      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
+      ClientSession session1 = csf1.createSession(false, true, true);
+
+      ClientProducer prod0 = session0.createProducer(testAddress);
+
+      ClientConsumer cons1 = session1.createConsumer(queueName0);
+
+      session1.start();
+
+      log.info("Simulating failure");
+
+      // Now we will simulate a failure of the message flow connection between server1 and server2
+      // And prevent reconnection for a few tries, then it will reconnect without failing over
+      Bridge bridge = service0.getServer().getClusterManager().getBridges().get(bridgeName);
+      RemotingConnection forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover - 1;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+
+      final int numMessages = 10;
+
+      SimpleString propKey = new SimpleString("propkey");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, i);
+         message.getBody().flip();
+
+         prod0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage r1 = cons1.receive(1500);
+         assertNotNull(r1);
+         assertEquals(i, r1.getProperty(propKey));
+      }
+
+      session0.close();
+
+      service0.stop();
+      service1.stop();
+
+      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
+   }
+   
+   public void testNonAutomaticReconnectSingleServer() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createMessagingService(0, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      MessagingService service1 = createMessagingService(1, service1Params);
+
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params,
+                                                                    "server0tc");
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params,
+                                                                    "server1tc");
+
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      final String bridgeName = "bridge1";
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+
+      final long retryInterval = 50;
+      final double retryIntervalMultiplier = 1d;
+      final int retriesBeforeFailover = 3;
+      final int maxRetriesAfterFailover = -1;
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration(bridgeName,
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        retryInterval,
+                                                                        retryIntervalMultiplier,
+                                                                        retriesBeforeFailover,
+                                                                        maxRetriesAfterFailover,
+                                                                        false,
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
+      ClientSession session0 = csf0.createSession(false, true, true);
+
+      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
+      ClientSession session1 = csf1.createSession(false, true, true);
+
+      ClientProducer prod0 = session0.createProducer(testAddress);
+
+      ClientConsumer cons1 = session1.createConsumer(queueName0);
+
+      session1.start();
+
+      log.info("Simulating failure");
+
+      // Now we will simulate a failure of the message flow connection between server1 and server2
+      // And prevent reconnection for a few tries, then it will reconnect without failing over
+      Bridge bridge = service0.getServer().getClusterManager().getBridges().get(bridgeName);
+      RemotingConnection forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover * 2;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+
+      final int numMessages = 10;
+
+      SimpleString propKey = new SimpleString("propkey");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, i);
+         message.getBody().flip();
+
+         prod0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage r1 = cons1.receive(1500);
+         assertNotNull(r1);
+         assertEquals(i, r1.getProperty(propKey));
+      }
+      
+      forwardingConnection = ((BridgeImpl)bridge).getForwardingConnection();
+      InVMConnector.failOnCreateConnection = true;
+      InVMConnector.numberOfFailures = retriesBeforeFailover * 2;
+      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
+      
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, i);
+         message.getBody().flip();
+
+         prod0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage r1 = cons1.receive(1500);
+         assertNotNull(r1);
+         assertEquals(i, r1.getProperty(propKey));
+      }
+
+      session0.close();
+
+      service0.stop();
+      service1.stop();
+
+      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
+      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
+   }
+}

Added: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -0,0 +1,655 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * 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.messaging.tests.integration.cluster.bridge;
+
+import static org.jboss.messaging.core.remoting.impl.invm.TransportConstants.SERVER_ID_PROP_NAME;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.messaging.core.client.ClientConsumer;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientProducer;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.cluster.BridgeConfiguration;
+import org.jboss.messaging.core.config.cluster.QueueConfiguration;
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.server.MessagingService;
+import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.util.Pair;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * A BridgeTest
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 14 Jan 2009 14:05:01
+ *
+ *
+ */
+public class BridgeTest extends ServiceTestBase
+{
+   private static final Logger log = Logger.getLogger(BridgeTest.class);
+
+   public void testSimpleBridge() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createClusteredServiceWithParams(0, false, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      service1Params.put(SERVER_ID_PROP_NAME, 1);
+      MessagingService service1 = createClusteredServiceWithParams(1, false, service1Params);
+
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+      final String queueName1 = "queue1";
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params);
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params);
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration("bridge1",
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        1000,
+                                                                        1d,
+                                                                        0,
+                                                                        0,
+                                                                        false,                                                                        
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName1, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory sf0 = new ClientSessionFactoryImpl(server0tc);
+
+      ClientSessionFactory sf1 = new ClientSessionFactoryImpl(server1tc);
+
+      ClientSession session0 = sf0.createSession(false, true, true);
+
+      ClientSession session1 = sf1.createSession(false, true, true);
+
+      ClientProducer producer0 = session0.createProducer(new SimpleString(testAddress));
+
+      ClientConsumer consumer1 = session1.createConsumer(queueName1);
+
+      session1.start();
+
+      final int numMessages = 10;
+
+      final SimpleString propKey = new SimpleString("testkey");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+
+         message.putIntProperty(propKey, i);
+
+         producer0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = consumer1.receive(200);
+
+         assertNotNull(message);
+
+         assertEquals((Integer)i, (Integer)message.getProperty(propKey));
+
+         message.acknowledge();
+      }
+
+      assertNull(consumer1.receive(200));
+
+      session0.close();
+
+      session1.close();
+
+      sf0.close();
+
+      sf1.close();
+
+      service0.stop();
+
+      service1.stop();
+   }
+
+   public void testBatchSize() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createClusteredServiceWithParams(0, false, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      service1Params.put(SERVER_ID_PROP_NAME, 1);
+      MessagingService service1 = createClusteredServiceWithParams(1, false, service1Params);
+
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+      final String queueName1 = "queue1";
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params);
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params);
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      final int batchSize = 10;
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration("bridge1",
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        batchSize,
+                                                                        -1,
+                                                                        null,
+                                                                        1000,
+                                                                        1d,
+                                                                        0,
+                                                                        0,
+                                                                        false,                                                                        
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName1, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory sf0 = new ClientSessionFactoryImpl(server0tc);
+
+      ClientSessionFactory sf1 = new ClientSessionFactoryImpl(server1tc);
+
+      ClientSession session0 = sf0.createSession(false, true, true);
+
+      ClientSession session1 = sf1.createSession(false, true, true);
+
+      ClientProducer producer0 = session0.createProducer(new SimpleString(testAddress));
+
+      ClientConsumer consumer1 = session1.createConsumer(queueName1);
+
+      session1.start();
+
+      final SimpleString propKey = new SimpleString("testkey");
+
+      for (int j = 0; j < 10; j++)
+      {
+         for (int i = 0; i < batchSize - 1; i++)
+         {
+            ClientMessage message = session0.createClientMessage(false);
+            message.putIntProperty(propKey, i);
+            message.getBody().flip();
+
+            producer0.send(message);
+         }
+
+         ClientMessage message = consumer1.receive(250);
+
+         assertNull(message);
+
+         message = session0.createClientMessage(false);
+         message.putIntProperty(propKey, batchSize - 1);
+         message.getBody().flip();
+
+         producer0.send(message);
+
+         for (int i = 0; i < batchSize; i++)
+         {
+            message = consumer1.receive(250);
+
+            assertNotNull(message);
+
+            assertEquals(i, message.getProperty(propKey));
+         }
+
+         message = consumer1.receive(250);
+
+         assertNull(message);
+      }
+
+      session0.close();
+
+      session1.close();
+
+      sf0.close();
+
+      sf1.close();
+
+      service0.stop();
+
+      service1.stop();
+   }
+
+   public void testBatchTime() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createClusteredServiceWithParams(0, false, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      service1Params.put(SERVER_ID_PROP_NAME, 1);
+      MessagingService service1 = createClusteredServiceWithParams(1, false, service1Params);
+
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+      final String queueName1 = "queue1";
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params);
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params);
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      final int batchSize = 10;
+      final long batchTime = 250;
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration("bridge1",
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        batchSize,
+                                                                        batchTime,
+                                                                        null,
+                                                                        1000,
+                                                                        1d,
+                                                                        0,
+                                                                        0,
+                                                                        false,                                                                        
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName1, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory sf0 = new ClientSessionFactoryImpl(server0tc);
+
+      ClientSessionFactory sf1 = new ClientSessionFactoryImpl(server1tc);
+
+      ClientSession session0 = sf0.createSession(false, true, true);
+
+      ClientSession session1 = sf1.createSession(false, true, true);
+
+      ClientProducer producer0 = session0.createProducer(new SimpleString(testAddress));
+
+      ClientConsumer consumer1 = session1.createConsumer(queueName1);
+
+      session1.start();
+
+      final SimpleString propKey = new SimpleString("testkey");
+
+      for (int j = 0; j < 5; j++)
+      {
+         for (int i = 0; i < batchSize - 1; i++)
+         {
+            ClientMessage message = session0.createClientMessage(false);
+            message.putIntProperty(propKey, i);
+            message.getBody().flip();
+
+            producer0.send(message);
+         }
+
+         ClientMessage message = consumer1.receiveImmediate();
+
+         assertNull(message);
+
+         // Now wait until max batch time is exceeded - this should prompt delivery
+
+         Thread.sleep(batchTime * 2);
+
+         for (int i = 0; i < batchSize - 1; i++)
+         {
+            message = consumer1.receive(1000);
+
+            assertNotNull(message);
+
+            assertEquals(i, message.getProperty(propKey));
+         }
+      }
+
+      session0.close();
+
+      session1.close();
+
+      sf0.close();
+
+      sf1.close();
+
+      service0.stop();
+
+      service1.stop();
+   }
+
+   public void testWithFilter() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createClusteredServiceWithParams(0, false, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      service1Params.put(SERVER_ID_PROP_NAME, 1);
+      MessagingService service1 = createClusteredServiceWithParams(1, false, service1Params);
+
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+      final String queueName1 = "queue1";
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params);
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params);
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      final String filterString = "animal='goat'";
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration("bridge1",
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        filterString,
+                                                                        1,
+                                                                        -1,
+                                                                        null,
+                                                                        1000,
+                                                                        1d,
+                                                                        0,
+                                                                        0,
+                                                                        false,                                                                        
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName1, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory sf0 = new ClientSessionFactoryImpl(server0tc);
+
+      ClientSessionFactory sf1 = new ClientSessionFactoryImpl(server1tc);
+
+      ClientSession session0 = sf0.createSession(false, true, true);
+
+      ClientSession session1 = sf1.createSession(false, true, true);
+
+      ClientProducer producer0 = session0.createProducer(new SimpleString(testAddress));
+
+      ClientConsumer consumer1 = session1.createConsumer(queueName1);
+
+      session1.start();
+
+      final int numMessages = 10;
+
+      final SimpleString propKey = new SimpleString("testkey");
+
+      final SimpleString selectorKey = new SimpleString("animal");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+
+         message.putIntProperty(propKey, i);
+
+         message.putStringProperty(selectorKey, new SimpleString("monkey"));
+
+         producer0.send(message);
+      }
+
+      assertNull(consumer1.receive(200));
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+
+         message.putIntProperty(propKey, i);
+
+         message.putStringProperty(selectorKey, new SimpleString("goat"));
+
+         producer0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = consumer1.receive(200);
+
+         assertNotNull(message);
+
+         assertEquals((Integer)i, (Integer)message.getProperty(propKey));
+
+         message.acknowledge();
+      }
+
+      assertNull(consumer1.receive(200));
+
+      session0.close();
+
+      session1.close();
+
+      sf0.close();
+
+      sf1.close();
+
+      service0.stop();
+
+      service1.stop();
+   }
+
+   public void testWithTransformer() throws Exception
+   {
+      Map<String, Object> service0Params = new HashMap<String, Object>();
+      MessagingService service0 = createClusteredServiceWithParams(0, false, service0Params);
+
+      Map<String, Object> service1Params = new HashMap<String, Object>();
+      service1Params.put(SERVER_ID_PROP_NAME, 1);
+      MessagingService service1 = createClusteredServiceWithParams(1, false, service1Params);
+
+      final String testAddress = "testAddress";
+      final String queueName0 = "queue0";
+      final String forwardAddress = "forwardAddress";
+      final String queueName1 = "queue1";
+
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service0Params);
+      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                    service1Params);
+      connectors.put(server1tc.getName(), server1tc);
+
+      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
+
+      Pair<String, String> connectorPair = new Pair<String, String>(server1tc.getName(), null);
+
+      BridgeConfiguration bridgeConfiguration = new BridgeConfiguration("bridge1",
+                                                                        queueName0,
+                                                                        forwardAddress,
+                                                                        null,
+                                                                        1,
+                                                                        -1,
+                                                                        SimpleTransformer.class.getName(),
+                                                                        1000,
+                                                                        1d,
+                                                                        0,
+                                                                        0,
+                                                                        false,                                                                        
+                                                                        connectorPair);
+
+      List<BridgeConfiguration> bridgeConfigs = new ArrayList<BridgeConfiguration>();
+      bridgeConfigs.add(bridgeConfiguration);
+      service0.getServer().getConfiguration().setBridgeConfigurations(bridgeConfigs);
+
+      QueueConfiguration queueConfig0 = new QueueConfiguration(testAddress, queueName0, null, true);
+      List<QueueConfiguration> queueConfigs0 = new ArrayList<QueueConfiguration>();
+      queueConfigs0.add(queueConfig0);
+      service0.getServer().getConfiguration().setQueueConfigurations(queueConfigs0);
+
+      QueueConfiguration queueConfig1 = new QueueConfiguration(forwardAddress, queueName1, null, true);
+      List<QueueConfiguration> queueConfigs1 = new ArrayList<QueueConfiguration>();
+      queueConfigs1.add(queueConfig1);
+      service1.getServer().getConfiguration().setQueueConfigurations(queueConfigs1);
+
+      service1.start();
+      service0.start();
+
+      ClientSessionFactory sf0 = new ClientSessionFactoryImpl(server0tc);
+
+      ClientSessionFactory sf1 = new ClientSessionFactoryImpl(server1tc);
+
+      ClientSession session0 = sf0.createSession(false, true, true);
+
+      ClientSession session1 = sf1.createSession(false, true, true);
+
+      ClientProducer producer0 = session0.createProducer(new SimpleString(testAddress));
+
+      ClientConsumer consumer1 = session1.createConsumer(queueName1);
+
+      session1.start();
+
+      final int numMessages = 10;
+
+      final SimpleString propKey = new SimpleString("wibble");
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = session0.createClientMessage(false);
+
+         message.putStringProperty(propKey, new SimpleString("bing"));
+
+         message.getBody().putString("doo be doo be doo be doo");
+
+         message.getBody().flip();
+
+         producer0.send(message);
+      }
+
+      for (int i = 0; i < numMessages; i++)
+      {
+         ClientMessage message = consumer1.receive(200);
+
+         assertNotNull(message);
+
+         SimpleString val = (SimpleString)message.getProperty(propKey);
+
+         assertEquals(new SimpleString("bong"), val);
+
+         String sval = message.getBody().getString();
+
+         assertEquals("dee be dee be dee be dee", sval);
+
+         message.acknowledge();
+      }
+
+      assertNull(consumer1.receive(200));
+
+      session0.close();
+
+      session1.close();
+
+      sf0.close();
+
+      sf1.close();
+
+      service0.stop();
+
+      service1.stop();
+   }
+
+}

Added: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTestBase.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/BridgeTestBase.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.messaging.tests.integration.cluster.bridge;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
+import org.jboss.messaging.core.server.MessagingService;
+import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
+
+/**
+ * A BridgeTestBase
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 21 Nov 2008 10:32:23
+ *
+ *
+ */
+public abstract class BridgeTestBase extends TestCase
+{
+   protected MessagingService createMessagingServiceNIO(final int id, final Map<String, Object> params)
+   {
+      Configuration serviceConf = new ConfigurationImpl();
+      serviceConf.setClustered(true);
+      serviceConf.setSecurityEnabled(false); 
+      serviceConf.setJournalMinFiles(2);
+      serviceConf.setJournalFileSize(100 * 1024);
+      params.put(TransportConstants.SERVER_ID_PROP_NAME, id);
+      serviceConf.getAcceptorConfigurations()
+                  .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
+                                                  params));
+      MessagingService service = MessagingServiceImpl.newMessagingService(serviceConf);
+      return service;
+   }
+   
+   protected MessagingService createMessagingService(final int id, final Map<String, Object> params)
+   {
+      Configuration serviceConf = new ConfigurationImpl();
+      serviceConf.setClustered(true);
+      serviceConf.setSecurityEnabled(false);     
+      params.put(TransportConstants.SERVER_ID_PROP_NAME, id);
+      serviceConf.getAcceptorConfigurations()
+                  .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
+                                                  params));
+      MessagingService service = MessagingServiceImpl.newNullStorageMessagingService(serviceConf);
+      return service;
+   }
+   
+   protected MessagingService createMessagingService(final int id, final Map<String, Object> params, final boolean backup)
+   {
+      Configuration serviceConf = new ConfigurationImpl();
+      serviceConf.setClustered(true);
+      serviceConf.setSecurityEnabled(false);     
+      serviceConf.setBackup(backup);
+      params.put(TransportConstants.SERVER_ID_PROP_NAME, id);
+      serviceConf.getAcceptorConfigurations()
+                  .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
+                                                  params));
+      MessagingService service = MessagingServiceImpl.newNullStorageMessagingService(serviceConf);
+      return service;
+   }
+   
+   protected MessagingService createMessagingService(final int id)
+   {
+      return this.createMessagingService(id, new HashMap<String, Object>());
+   }
+}

Copied: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java (from rev 5666, trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/SimpleTransformer.java)
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/bridge/SimpleTransformer.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.messaging.tests.integration.cluster.bridge;
+
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.core.server.cluster.Transformer;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * A SimpleTransformer
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 21 Nov 2008 11:44:37
+ *
+ *
+ */
+public class SimpleTransformer implements Transformer
+{
+   private static final Logger log = Logger.getLogger(SimpleTransformer.class);
+   
+   public ServerMessage transform(final ServerMessage message)
+   {
+      SimpleString oldProp = (SimpleString)message.getProperty(new SimpleString("wibble"));
+      
+      if (!oldProp.equals(new SimpleString("bing")))
+      {
+         throw new IllegalStateException("Wrong property value!!");
+      }
+      
+      //Change a property
+      message.putStringProperty(new SimpleString("wibble"), new SimpleString("bong"));
+      
+      //Change the body
+      MessagingBuffer buffer = message.getBody();
+      
+      String str = buffer.getString();
+      
+      if (!str.equals("doo be doo be doo be doo"))
+      {
+         throw new IllegalStateException("Wrong body!!");
+      }
+        
+      buffer.flip();
+      
+      buffer.putString("dee be dee be dee be dee");
+      
+      return message;
+   }
+
+}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/BasicMessageFlowTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/BasicMessageFlowTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/BasicMessageFlowTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -22,33 +22,8 @@
 
 package org.jboss.messaging.tests.integration.cluster.distribution;
 
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
+import org.jboss.messaging.tests.integration.cluster.bridge.BridgeTestBase;
 
 /**
  * 
@@ -60,7 +35,7 @@
  *
  *
  */
-public class BasicMessageFlowTest extends MessageFlowTestBase
+public class BasicMessageFlowTest extends BridgeTestBase
 {
 //   private static final Logger log = Logger.getLogger(BasicMessageFlowTest.class);
 //

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/DiscoveryFlowTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/DiscoveryFlowTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/DiscoveryFlowTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,330 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.BroadcastGroupConfiguration;
-import org.jboss.messaging.core.config.cluster.DiscoveryGroupConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A DiscoveryFlowTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 24 Nov 2008 14:25:45
- *
- *
- */
-public class DiscoveryFlowTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(DiscoveryFlowTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//   
-//   public void testDiscoveryOutflow() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      final String groupAddress = "230.1.2.3";
-//
-//      final int groupPort = 8765;
-//
-//      final long broadcastPeriod = 250;
-//
-//      final String bcGroupName = "bc1";
-//
-//      final String localBindAddress = "localhost";
-//
-//      final int localBindPort = 5432;
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params);
-//      Map<String, TransportConfiguration> server1Connectors = new HashMap<String, TransportConfiguration>();
-//      server1Connectors.put(server1tc.getName(), server1tc);
-//      service1.getServer().getConfiguration().setConnectorConfigurations(server1Connectors);
-//      List<Pair<String, String>> connectorNames1 = new ArrayList<Pair<String, String>>();
-//      connectorNames1.add(new Pair<String, String>(server1tc.getName(), null));
-//      BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
-//                                                                              localBindAddress,
-//                                                                              localBindPort,
-//                                                                              groupAddress,
-//                                                                              groupPort,
-//                                                                              broadcastPeriod,
-//                                                                              connectorNames1);
-//      Set<BroadcastGroupConfiguration> bcConfigs1 = new HashSet<BroadcastGroupConfiguration>();
-//      bcConfigs1.add(bcConfig1);
-//      service1.getServer().getConfiguration().setBroadcastGroupConfigurations(bcConfigs1);
-//      service1.start();
-//
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params);
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params);
-//      Map<String, TransportConfiguration> server2Connectors = new HashMap<String, TransportConfiguration>();
-//      server2Connectors.put(server2tc.getName(), server2tc);
-//      service2.getServer().getConfiguration().setConnectorConfigurations(server2Connectors);
-//      List<Pair<String, String>> connectorNames2 = new ArrayList<Pair<String, String>>();
-//      connectorNames2.add(new Pair<String, String>(server2tc.getName(), null));
-//      BroadcastGroupConfiguration bcConfig2 = new BroadcastGroupConfiguration(bcGroupName,
-//                                                                              localBindAddress,
-//                                                                              localBindPort,
-//                                                                              groupAddress,
-//                                                                              groupPort,
-//                                                                              broadcastPeriod,
-//                                                                              connectorNames2);
-//      Set<BroadcastGroupConfiguration> bcConfigs2 = new HashSet<BroadcastGroupConfiguration>();
-//      bcConfigs2.add(bcConfig2);
-//      service2.getServer().getConfiguration().setBroadcastGroupConfigurations(bcConfigs2);
-//      service2.start();
-//
-//      Map<String, Object> service3Params = new HashMap<String, Object>();
-//      MessagingService service3 = createMessagingService(3, service3Params);
-//      TransportConfiguration server3tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service3Params);
-//      Map<String, TransportConfiguration> server3Connectors = new HashMap<String, TransportConfiguration>();
-//      server3Connectors.put(server3tc.getName(), server3tc);
-//      service3.getServer().getConfiguration().setConnectorConfigurations(server3Connectors);
-//      List<Pair<String, String>> connectorNames3 = new ArrayList<Pair<String, String>>();
-//      connectorNames3.add(new Pair<String, String>(server3tc.getName(), null));
-//      BroadcastGroupConfiguration bcConfig3 = new BroadcastGroupConfiguration(bcGroupName,
-//                                                                              localBindAddress,
-//                                                                              localBindPort,
-//                                                                              groupAddress,
-//                                                                              groupPort,
-//                                                                              broadcastPeriod,
-//                                                                              connectorNames3);
-//      Set<BroadcastGroupConfiguration> bcConfigs3 = new HashSet<BroadcastGroupConfiguration>();
-//      bcConfigs3.add(bcConfig3);
-//      service3.getServer().getConfiguration().setBroadcastGroupConfigurations(bcConfigs3);
-//      service3.start();
-//
-//      Map<String, Object> service4Params = new HashMap<String, Object>();
-//      MessagingService service4 = createMessagingService(4, service4Params);
-//      TransportConfiguration server4tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service4Params);
-//      Map<String, TransportConfiguration> server4Connectors = new HashMap<String, TransportConfiguration>();
-//      server4Connectors.put(server4tc.getName(), server4tc);
-//      service4.getServer().getConfiguration().setConnectorConfigurations(server4Connectors);
-//      List<Pair<String, String>> connectorNames4 = new ArrayList<Pair<String, String>>();
-//      connectorNames4.add(new Pair<String, String>(server4tc.getName(), null));
-//      BroadcastGroupConfiguration bcConfig4 = new BroadcastGroupConfiguration(bcGroupName,
-//                                                                              localBindAddress,
-//                                                                              localBindPort,
-//                                                                              groupAddress,
-//                                                                              groupPort,
-//                                                                              broadcastPeriod,
-//                                                                              connectorNames4);
-//      Set<BroadcastGroupConfiguration> bcConfigs4 = new HashSet<BroadcastGroupConfiguration>();
-//      bcConfigs4.add(bcConfig4);
-//      service4.getServer().getConfiguration().setBroadcastGroupConfigurations(bcConfigs4);
-//      service4.start();
-//
-//      final SimpleString testAddress = new SimpleString("testaddress");
-//
-//      final long discoveryTimeout = 500;
-//      
-//      final String discoveryGroupName = "dcGroup";
-//
-//      DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration(discoveryGroupName,
-//                                                                             groupAddress,
-//                                                                             groupPort,
-//                                                                             discoveryTimeout);
-//      
-//      
-//      Map<String, DiscoveryGroupConfiguration> dcConfigs = new HashMap<String, DiscoveryGroupConfiguration>();
-//      dcConfigs.put(dcConfig.getName(), dcConfig);
-//      service0.getServer().getConfiguration().setDiscoveryGroupConfigurations(dcConfigs);
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       testAddress.toString(),
-//                                                                       null,
-//                                                                       false,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       discoveryGroupName);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//      
-//      Thread.sleep(1000);
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-//      ClientSession session2 = csf2.createSession(false, true, true);
-//
-//      ClientSessionFactory csf3 = new ClientSessionFactoryImpl(server3tc);
-//      ClientSession session3 = csf3.createSession(false, true, true);
-//
-//      ClientSessionFactory csf4 = new ClientSessionFactoryImpl(server4tc);
-//      ClientSession session4 = csf4.createSession(false, true, true);
-//
-//      session0.createQueue(testAddress, testAddress, null, false, false);
-//      session1.createQueue(testAddress, testAddress, null, false, false);
-//      session2.createQueue(testAddress, testAddress, null, false, false);
-//      session3.createQueue(testAddress, testAddress, null, false, false);
-//      session4.createQueue(testAddress, testAddress, null, false, false);
-//
-//      ClientProducer prod0 = session0.createProducer(testAddress);
-//
-//      ClientConsumer cons0 = session0.createConsumer(testAddress);
-//      ClientConsumer cons1 = session1.createConsumer(testAddress);
-//      ClientConsumer cons2 = session2.createConsumer(testAddress);
-//      ClientConsumer cons3 = session3.createConsumer(testAddress);
-//      ClientConsumer cons4 = session4.createConsumer(testAddress);
-//
-//      session0.start();
-//
-//      session1.start();
-//      session2.start();
-//      session3.start();
-//      session4.start();
-//
-//      final int numMessages = 100;
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0.send(message);
-//      }
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage0 = cons0.receive(1000);
-//         assertNotNull(rmessage0);
-//         assertEquals(i, rmessage0.getProperty(propKey));
-//
-//         ClientMessage rmessage1 = cons1.receive(1000);
-//         assertNotNull(rmessage1);
-//         assertEquals(i, rmessage1.getProperty(propKey));
-//
-//         ClientMessage rmessage2 = cons2.receive(1000);
-//         assertNotNull(rmessage2);
-//         assertEquals(i, rmessage2.getProperty(propKey));
-//
-//         ClientMessage rmessage3 = cons3.receive(1000);
-//         assertNotNull(rmessage3);
-//         assertEquals(i, rmessage3.getProperty(propKey));
-//
-//         ClientMessage rmessage4 = cons4.receive(1000);
-//         assertNotNull(rmessage4);
-//         assertEquals(i, rmessage4.getProperty(propKey));
-//      }
-//      
-//      session0.close();
-//      session1.close();
-//      session2.close();
-//      session3.close();
-//      session4.close();
-//      
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//      service3.stop();
-//      service4.stop();
-//      
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service3.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service4.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchSizeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchSizeTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchSizeTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,223 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A MessageFlowBatchSizeTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 15 Nov 2008 09:06:55
- *
- *
- */
-public class MessageFlowBatchSizeTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowBatchSizeTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//
-//   public void testBatchSize() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final int batchSize = 10;
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//      
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       address1.toString(),
-//                                                                       null,
-//                                                                       false,
-//                                                                       batchSize,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//
-//      session1.createQueue(address1, address1, null, false, false);
-//
-//      ClientProducer prod0_1 = session0.createProducer(address1);
-//
-//      ClientConsumer cons0_1 = session0.createConsumer(address1);
-//
-//      ClientConsumer cons1_1 = session1.createConsumer(address1);
-//
-//      session0.start();
-//
-//      session1.start();
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int j = 0; j < 10; j++)
-//      {
-//
-//         for (int i = 0; i < batchSize - 1; i++)
-//         {
-//            ClientMessage message = session0.createClientMessage(false);
-//            message.putIntProperty(propKey, i);
-//            message.getBody().flip();
-//
-//            prod0_1.send(message);
-//         }
-//
-//         for (int i = 0; i < batchSize - 1; i++)
-//         {
-//            ClientMessage rmessage1 = cons0_1.receive(1000);
-//
-//            assertNotNull(rmessage1);
-//
-//            assertEquals(i, rmessage1.getProperty(propKey));
-//         }
-//
-//         ClientMessage rmessage1 = cons1_1.receive(250);
-//
-//         assertNull(rmessage1);
-//
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, batchSize - 1);
-//         message.getBody().flip();
-//
-//         prod0_1.send(message);
-//
-//         rmessage1 = cons0_1.receive(1000);
-//
-//         assertNotNull(rmessage1);
-//
-//         assertEquals(batchSize - 1, rmessage1.getProperty(propKey));
-//
-//         for (int i = 0; i < batchSize; i++)
-//         {
-//            rmessage1 = cons1_1.receive(1000);
-//
-//            assertNotNull(rmessage1);
-//
-//            assertEquals(i, rmessage1.getProperty(propKey));
-//         }
-//      }
-//
-//      session0.close();
-//
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchTimeTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchTimeTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowBatchTimeTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,216 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A MessageFlowBatchTimeTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 15 Nov 2008 09:06:55
- *
- *
- */
-public class MessageFlowBatchTimeTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowBatchTimeTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//
-//   public void testBatchTime() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final int batchSize = 10;
-//      final long batchTime = 250;
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       address1.toString(),
-//                                                                       null,
-//                                                                       false,
-//                                                                       batchSize,
-//                                                                       batchTime,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//
-//      session1.createQueue(address1, address1, null, false, false);
-//
-//      ClientProducer prod0_1 = session0.createProducer(address1);
-//
-//      ClientConsumer cons0_1 = session0.createConsumer(address1);
-//
-//      ClientConsumer cons1_1 = session1.createConsumer(address1);
-//
-//      session0.start();
-//
-//      session1.start();
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int j = 0; j < 5; j++)
-//      {
-//
-//         for (int i = 0; i < batchSize - 1; i++)
-//         {
-//            ClientMessage message = session0.createClientMessage(false);
-//            message.putIntProperty(propKey, i);
-//            message.getBody().flip();
-//
-//            prod0_1.send(message);
-//         }
-//
-//         for (int i = 0; i < batchSize - 1; i++)
-//         {
-//            ClientMessage rmessage1 = cons0_1.receive(1000);
-//
-//            assertNotNull(rmessage1);
-//
-//            assertEquals(i, rmessage1.getProperty(propKey));
-//         }
-//
-//         ClientMessage rmessage1 = cons1_1.receiveImmediate();
-//
-//         assertNull(rmessage1);
-//
-//         // Now wait until max batch time is exceeded - this should prompt delivery
-//
-//         Thread.sleep(batchTime * 2);
-//
-//         for (int i = 0; i < batchSize - 1; i++)
-//         {
-//            rmessage1 = cons1_1.receive(1000);
-//
-//            assertNotNull(rmessage1);
-//
-//            assertEquals(i, rmessage1.getProperty(propKey));
-//         }
-//      }
-//
-//      session0.close();
-//
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowReconnectTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowReconnectTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowReconnectTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,718 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnector;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-
-/**
- * 
- * A MessageFlowReconnectTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 7 Dec 2008 11:48:30
- *
- *
- */
-public class MessageFlowReconnectTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowReconnectTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//
-//   public void testAutomaticReconnectBeforeFailover() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params);
-//      service2.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params,
-//                                                                    "server0tc");
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "server1tc");
-//
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params,
-//                                                                    "server2tc");
-//
-//      connectors.put(server1tc.getName(), server1tc);
-//      
-//      connectors.put(server2tc.getName(), server2tc);
-//      
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), server2tc.getName()));
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final long retryInterval = 50;
-//      final double retryIntervalMultiplier = 1d;
-//      final int retriesBeforeFailover = 3;
-//      final int maxRetriesAfterFailover = -1;
-//      
-//      final String flowName = "flow1";
-//      
-//      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration(flowName,
-//                                                                        address1.toString(),
-//                                                                        null,
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        retryInterval,
-//                                                                        retryIntervalMultiplier,
-//                                                                        retriesBeforeFailover,
-//                                                                        maxRetriesAfterFailover,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames);
-//
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig1);
-//
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//      session1.createQueue(address1, address1, null, false, false);
-//      ClientProducer prod0 = session0.createProducer(address1);
-//
-//      ClientConsumer cons1 = session1.createConsumer(address1);
-//
-//      session1.start();
-//      
-//      //Now we will simulate a failure of the message flow connection between server1 and server2
-//      //And prevent reconnection for a few tries, then it will reconnect without failing over
-//      MessageFlow flow = service0.getServer().getClusterManager().getMessageFlows().get(flowName);
-//      Forwarder forwarder = flow.getForwarders().iterator().next();
-//      RemotingConnection forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover - 1;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//
-//      final int numMessages = 10;
-//      
-//      SimpleString propKey = new SimpleString("propkey");      
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);         
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//         
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage r1 = cons1.receive(500);
-//         assertNotNull(r1);
-//         assertEquals(i, r1.getProperty(propKey));
-//      }
-//
-//      session0.close();
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//   }
-//   
-//   public void testAutomaticReconnectTryThenFailover() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//            
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params, true);
-//      
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params,
-//                                                                    "server0tc");
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "server1tc");
-//
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params,
-//                                                                    "server2tc");
-//      
-//      connectors.put(server1tc.getName(), server1tc);
-//      
-//      connectors.put(server2tc.getName(), server2tc);
-//      
-//      service1.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//      
-//      service1.getServer().getConfiguration().setBackupConnectorName(server2tc.getName());
-//      
-//      service2.getServer().getConfiguration().setBackup(true);
-//      
-//      service1.start();
-//      
-//      service2.start();
-//      
-//      log.info("Started service1 and service2");
-//                 
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), server2tc.getName()));
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final long retryInterval = 50;
-//      final double retryIntervalMultiplier = 1d;
-//      final int retriesBeforeFailover = 3;
-//      final int maxRetriesAfterFailover = -1;
-//      
-//      final String flowName = "flow1";
-//      
-//      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration(flowName,
-//                                                                        address1.toString(),
-//                                                                        null,
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        retryInterval,
-//                                                                        retryIntervalMultiplier,
-//                                                                        retriesBeforeFailover,
-//                                                                        maxRetriesAfterFailover,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames);
-//
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig1);
-//
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//      
-//      log.info("started service0");
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-//      ClientSession session2 = csf2.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//      session2.createQueue(address1, address1, null, false, false);
-//      ClientProducer prod0 = session0.createProducer(address1);
-//
-//      ClientConsumer cons1 = session2.createConsumer(address1);
-//
-//      session2.start();
-//
-//      
-//      
-//      //Now we will simulate a failure of the message flow connection between server1 and server2
-//      //And prevent reconnection for a few tries, then it will failover
-//      MessageFlow flow = service0.getServer().getClusterManager().getMessageFlows().get(flowName);
-//      Forwarder forwarder = flow.getForwarders().iterator().next();
-//      RemotingConnection forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//
-//      final int numMessages = 10;
-//      
-//      SimpleString propKey = new SimpleString("propkey");      
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);         
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//         
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage r1 = cons1.receive(500);
-//         assertNotNull(r1);
-//         assertEquals(i, r1.getProperty(propKey));
-//      }
-//
-//      session0.close();
-//      session2.close();
-//
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//   }
-//   
-//   public void testFailoverThenReconnectAfterFailover() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//            
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params, true);
-//      
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params,
-//                                                                    "server0tc");
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "server1tc");
-//
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params,
-//                                                                    "server2tc");
-//      
-//      connectors.put(server1tc.getName(), server1tc);
-//      
-//      connectors.put(server2tc.getName(), server2tc);
-//      
-//      service1.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//      
-//      service1.getServer().getConfiguration().setBackupConnectorName(server2tc.getName());
-//      
-//      service2.getServer().getConfiguration().setBackup(true);
-//      
-//      service1.start();
-//      
-//      service2.start();
-//      
-//      log.info("Started service1 and service2");
-//                 
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), server2tc.getName()));
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final long retryInterval = 50;
-//      final double retryIntervalMultiplier = 1d;
-//      final int retriesBeforeFailover = 3;
-//      final int maxRetriesAfterFailover = 3;
-//      
-//      final String flowName = "flow1";
-//      
-//      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration(flowName,
-//                                                                        address1.toString(),
-//                                                                        null,
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        retryInterval,
-//                                                                        retryIntervalMultiplier,
-//                                                                        retriesBeforeFailover,
-//                                                                        maxRetriesAfterFailover,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames);
-//
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig1);
-//
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//      
-//      log.info("started service0");
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-//      ClientSession session2 = csf2.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//      session2.createQueue(address1, address1, null, false, false);
-//      ClientProducer prod0 = session0.createProducer(address1);
-//
-//      ClientConsumer cons1 = session2.createConsumer(address1);
-//
-//      session2.start();
-//     
-//      //Now we will simulate a failure of the message flow connection between server1 and server2
-//      //And prevent reconnection for a few tries, then it will failover
-//      MessageFlow flow = service0.getServer().getClusterManager().getMessageFlows().get(flowName);
-//      Forwarder forwarder = flow.getForwarders().iterator().next();
-//      RemotingConnection forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//      
-//      //Now we should be failed over so fail again and should reconnect
-//      forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.resetFailures();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover - 1;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//
-//      final int numMessages = 10;
-//      
-//      SimpleString propKey = new SimpleString("propkey");      
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);         
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//         
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage r1 = cons1.receive(500);
-//         assertNotNull(r1);
-//         assertEquals(i, r1.getProperty(propKey));
-//      }
-//
-//      session0.close();
-//      session2.close();
-//
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//   }
-//   
-//   public void testAutomaticReconnectSingleServer() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params,
-//                                                                    "server0tc");
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "server1tc");
-//   
-//      connectors.put(server1tc.getName(), server1tc);
-//      
-// 
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final long retryInterval = 50;
-//      final double retryIntervalMultiplier = 1d;
-//      final int retriesBeforeFailover = 3;
-//      final int maxRetriesAfterFailover = -1;
-//      
-//      final String flowName = "flow1";
-//      
-//      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration(flowName,
-//                                                                        address1.toString(),
-//                                                                        null,
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        retryInterval,
-//                                                                        retryIntervalMultiplier,
-//                                                                        retriesBeforeFailover,
-//                                                                        maxRetriesAfterFailover,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames);
-//
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig1);
-//
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//      session1.createQueue(address1, address1, null, false, false);
-//      ClientProducer prod0 = session0.createProducer(address1);
-//
-//      ClientConsumer cons1 = session1.createConsumer(address1);
-//
-//      session1.start();
-//      
-//      //Now we will simulate a failure of the message flow connection between server1 and server2
-//      //And prevent reconnection for a few tries, then it will reconnect without failing over
-//      MessageFlow flow = service0.getServer().getClusterManager().getMessageFlows().get(flowName);
-//      Forwarder forwarder = flow.getForwarders().iterator().next();
-//      RemotingConnection forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover - 1;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//
-//      final int numMessages = 10;
-//      
-//      SimpleString propKey = new SimpleString("propkey");      
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);         
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//         
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage r1 = cons1.receive(500);
-//         assertNotNull(r1);
-//         assertEquals(i, r1.getProperty(propKey));
-//      }
-//
-//      session0.close();
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-//   
-//   public void testNonAutomaticReconnectSingleServer() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params,
-//                                                                    "server0tc");
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "server1tc");
-//   
-//      connectors.put(server1tc.getName(), server1tc);
-//      
-// 
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final long retryInterval = 50;
-//      final double retryIntervalMultiplier = 1d;
-//      final int retriesBeforeFailover = 3;
-//      final int maxRetriesAfterFailover = 0;
-//      
-//      final String flowName = "flow1";
-//      
-//      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration(flowName,
-//                                                                        address1.toString(),
-//                                                                        null,
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        retryInterval,
-//                                                                        retryIntervalMultiplier,
-//                                                                        retriesBeforeFailover,
-//                                                                        maxRetriesAfterFailover,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames);
-//
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig1);
-//
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//      session1.createQueue(address1, address1, null, false, false);
-//      ClientProducer prod0 = session0.createProducer(address1);
-//
-//      ClientConsumer cons1 = session1.createConsumer(address1);
-//
-//      session1.start();
-//      
-//      //Now we will simulate a failure of the message flow connection between server1 and server2
-//      //And prevent reconnection for a few tries, then it will reconnect without failing over
-//      MessageFlow flow = service0.getServer().getClusterManager().getMessageFlows().get(flowName);
-//      Forwarder forwarder = flow.getForwarders().iterator().next();
-//      RemotingConnection forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover * 2;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//
-//      final int numMessages = 10;
-//      
-//      SimpleString propKey = new SimpleString("propkey");      
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);         
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//         
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage r1 = cons1.receive(500);
-//         assertNotNull(r1);
-//         assertEquals(i, r1.getProperty(propKey));
-//      }
-//      
-//      //Now fail it again
-//      
-//      InVMConnector.resetFailures();
-//      forwardingConnection = ((ForwarderImpl)forwarder).getForwardingConnection();
-//      InVMConnector.failOnCreateConnection = true;
-//      InVMConnector.numberOfFailures = retriesBeforeFailover * 2;
-//      forwardingConnection.fail(new MessagingException(MessagingException.NOT_CONNECTED));
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);         
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//         
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage r1 = cons1.receive(500);
-//         assertNotNull(r1);
-//         assertEquals(i, r1.getProperty(propKey));
-//      }
-//
-//      session0.close();
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      InVMConnector.resetFailures();
-      
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowRestartTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowRestartTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowRestartTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,638 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.tests.util.ServiceTestBase;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A MessageFlowRestartTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 24 Nov 2008 14:26:45
- *
- *
- */
-public class MessageFlowRestartTest extends ServiceTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowRestartTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-   
-   
-   public void testFoo()
-   {      
-   }
-   
-//
-//   public void testRestartOutflow() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createClusteredServiceWithParams(0, true, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      service1Params.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
-//      MessagingService service1 = createClusteredServiceWithParams(1, true, service1Params);
-//      
-//      //We don't start server 1 at this point
-//      
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//     
-//      final SimpleString testAddress = new SimpleString("testaddress");
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       testAddress.toString(),
-//                                                                       null,
-//                                                                       false,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       0,
-//                                                                       0,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      log.info("starting service0");
-//      service0.start();
-//      
-//      log.info("started service");
-//      
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//      
-//      session0.createQueue(testAddress, testAddress, null, false, false);
-//            
-//      ClientProducer prod0 = session0.createProducer(testAddress);
-//
-//      ClientConsumer cons0 = session0.createConsumer(testAddress);
-//      
-//      session0.start();
-//
-//      final int numMessages = 10;
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(true);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0.send(message);
-//      }
-//      
-//      log.info("sent messages");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage0 = cons0.receive(1000);
-//         assertNotNull(rmessage0);
-//         assertEquals(i, rmessage0.getProperty(propKey));
-//      }
-//          
-//      // At this point the messages should be in the store and forward queue for server 1
-//      
-//      // Now shutdown server 0 and start servers 1 and 0
-//             
-//      service0.stop();
-//      
-//      service1.start();
-//      
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//      
-//      session1.createQueue(testAddress, testAddress, null, false, false);
-//      
-//      service0.start();
-//         
-//      csf0 = new ClientSessionFactoryImpl(server0tc);
-//      session0 = csf0.createSession(false, true, true);
-//      
-//      session0.createQueue(testAddress, testAddress, null, false, false);
-//            
-//      cons0 = session0.createConsumer(testAddress);
-//      
-//      session0.start();
-//                               
-//      ClientConsumer cons1 = session1.createConsumer(testAddress);
-//      
-//      session1.start();
-//      
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage0 = cons1.receive(1000);
-//         assertNotNull(rmessage0);
-//         assertEquals(i, rmessage0.getProperty(propKey));
-//      }
-//      
-//      ClientMessage rmessage = cons0.receive(1000);
-//      
-//      assertNull(rmessage);
-//      
-//      service0.stop();      
-//      service1.stop();
-//      
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-////
-////   public void testStaticListRoundRobin() throws Exception
-////   {
-////      Map<String, Object> service0Params = new HashMap<String, Object>();
-////      MessagingService service0 = createMessagingService(0, service0Params);
-////
-////      Map<String, Object> service1Params = new HashMap<String, Object>();
-////      MessagingService service1 = createMessagingService(1, service1Params);
-////      service1.start();
-////
-////      Map<String, Object> service2Params = new HashMap<String, Object>();
-////      MessagingService service2 = createMessagingService(2, service2Params);
-////      service2.start();
-////
-////      Map<String, Object> service3Params = new HashMap<String, Object>();
-////      MessagingService service3 = createMessagingService(3, service3Params);
-////      service3.start();
-////
-////      Map<String, Object> service4Params = new HashMap<String, Object>();
-////      MessagingService service4 = createMessagingService(4, service4Params);
-////      service4.start();
-////
-////      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-////
-////      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service1Params,
-////                                                                    "connector1");
-////      connectors.put(server1tc.getName(), server1tc);
-////
-////      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service2Params,
-////                                                                    "connector2");
-////      connectors.put(server2tc.getName(), server2tc);
-////
-////      TransportConfiguration server3tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service3Params,
-////                                                                    "connector3");
-////      connectors.put(server3tc.getName(), server3tc);
-////
-////      TransportConfiguration server4tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service4Params,
-////                                                                    "connector4");
-////      connectors.put(server4tc.getName(), server4tc);
-////
-////      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-////
-////      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-////      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-////      connectorNames.add(new Pair<String, String>(server2tc.getName(), null));
-////      connectorNames.add(new Pair<String, String>(server3tc.getName(), null));
-////      connectorNames.add(new Pair<String, String>(server4tc.getName(), null));
-////
-////      final SimpleString testAddress = new SimpleString("testaddress");
-////
-////      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-////                                                                       testAddress.toString(),
-////                                                                       null,
-////                                                                       true,
-////                                                                       1,
-////                                                                       -1,
-////                                                                       null,
-////                                                                       DEFAULT_RETRY_INTERVAL,
-////                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-////                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-////                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-////                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-////                                                                       connectorNames);
-////      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-////      ofconfigs.add(ofconfig);
-////      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-////
-////      service0.start();
-////
-////      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service0Params);
-////
-////      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-////      ClientSession session0 = csf0.createSession(false, true, true);
-////
-////      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-////      ClientSession session1 = csf1.createSession(false, true, true);
-////
-////      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-////      ClientSession session2 = csf2.createSession(false, true, true);
-////
-////      ClientSessionFactory csf3 = new ClientSessionFactoryImpl(server3tc);
-////      ClientSession session3 = csf3.createSession(false, true, true);
-////
-////      ClientSessionFactory csf4 = new ClientSessionFactoryImpl(server4tc);
-////      ClientSession session4 = csf4.createSession(false, true, true);
-////
-////      session0.createQueue(testAddress, testAddress, null, false, false);
-////      session1.createQueue(testAddress, testAddress, null, false, false);
-////      session2.createQueue(testAddress, testAddress, null, false, false);
-////      session3.createQueue(testAddress, testAddress, null, false, false);
-////      session4.createQueue(testAddress, testAddress, null, false, false);
-////
-////      ClientProducer prod0 = session0.createProducer(testAddress);
-////
-////      ClientConsumer cons0 = session0.createConsumer(testAddress);
-////      ClientConsumer cons1 = session1.createConsumer(testAddress);
-////      ClientConsumer cons2 = session2.createConsumer(testAddress);
-////      ClientConsumer cons3 = session3.createConsumer(testAddress);
-////      ClientConsumer cons4 = session4.createConsumer(testAddress);
-////
-////      session0.start();
-////
-////      session1.start();
-////      session2.start();
-////      session3.start();
-////      session4.start();
-////
-////      final int numMessages = 10;
-////
-////      final SimpleString propKey = new SimpleString("testkey");
-////
-////      for (int i = 0; i < numMessages; i++)
-////      {
-////         ClientMessage message = session0.createClientMessage(false);
-////         message.putIntProperty(propKey, i);
-////         message.getBody().flip();
-////
-////         prod0.send(message);
-////      }
-////
-////      // Refs should be round-robin'd in the same order the connectors are specified in the outflow
-////      // With the local consumer being last since it was created last
-////
-////      ArrayList<ClientConsumer> consumers = new ArrayList<ClientConsumer>();
-////
-////      consumers.add(cons1);
-////      consumers.add(cons2);
-////      consumers.add(cons3);
-////      consumers.add(cons4);
-////      consumers.add(cons0);
-////
-////      int count = 0;
-////      for (int i = 0; i < numMessages; i++)
-////      {
-////         ClientConsumer consumer = consumers.get(count);
-////
-////         count++;
-////         if (count == consumers.size())
-////         {
-////            count = 0;
-////         }
-////
-////         ClientMessage msg = consumer.receive(1000);
-////
-////         assertNotNull(msg);
-////
-////         assertEquals(i, msg.getProperty(propKey));
-////
-////         msg.acknowledge();
-////      }
-////
-////      session0.close();
-////      session1.close();
-////      session2.close();
-////      session3.close();
-////      session4.close();
-////
-////      service0.stop();
-////      service1.stop();
-////      service2.stop();
-////      service3.stop();
-////      service4.stop();
-////
-////      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service3.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service4.getServer().getRemotingService().getConnections().size());
-////   }
-////
-////
-////   public void testMultipleFlows() throws Exception
-////   {
-////      Map<String, Object> service0Params = new HashMap<String, Object>();
-////      MessagingService service0 = createMessagingService(0, service0Params);
-////
-////      Map<String, Object> service1Params = new HashMap<String, Object>();
-////      MessagingService service1 = createMessagingService(1, service1Params);
-////      service1.start();
-////
-////      Map<String, Object> service2Params = new HashMap<String, Object>();
-////      MessagingService service2 = createMessagingService(2, service2Params);
-////      service2.start();
-////
-////      Map<String, Object> service3Params = new HashMap<String, Object>();
-////      MessagingService service3 = createMessagingService(3, service3Params);
-////      service3.start();
-////
-////      Map<String, Object> service4Params = new HashMap<String, Object>();
-////      MessagingService service4 = createMessagingService(4, service4Params);
-////      service4.start();
-////
-////      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-////
-////      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service1Params,
-////                                                                    "connector1");
-////      connectors.put(server1tc.getName(), server1tc);
-////
-////      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service2Params,
-////                                                                    "connector2");
-////      connectors.put(server2tc.getName(), server2tc);
-////
-////      TransportConfiguration server3tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service3Params,
-////                                                                    "connector3");
-////      connectors.put(server3tc.getName(), server3tc);
-////
-////      TransportConfiguration server4tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service4Params,
-////                                                                    "connector4");
-////      connectors.put(server4tc.getName(), server4tc);
-////
-////      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-////
-////      List<Pair<String, String>> connectorNames1 = new ArrayList<Pair<String, String>>();
-////      connectorNames1.add(new Pair<String, String>(server1tc.getName(), null));
-////      
-////      List<Pair<String, String>> connectorNames2 = new ArrayList<Pair<String, String>>();
-////      connectorNames2.add(new Pair<String, String>(server2tc.getName(), null));
-////      
-////      List<Pair<String, String>> connectorNames3 = new ArrayList<Pair<String, String>>();
-////      connectorNames3.add(new Pair<String, String>(server3tc.getName(), null));
-////      
-////      List<Pair<String, String>> connectorNames4 = new ArrayList<Pair<String, String>>();
-////      connectorNames4.add(new Pair<String, String>(server4tc.getName(), null));
-////      
-////      final SimpleString testAddress = new SimpleString("testaddress");
-////
-////      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration("flow1",
-////                                                                        testAddress.toString(),
-////                                                                        "beatle='john'",
-////                                                                        false,
-////                                                                        1,
-////                                                                        -1,
-////                                                                        null,
-////                                                                        DEFAULT_RETRY_INTERVAL,
-////                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-////                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-////                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-////                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-////                                                                        connectorNames1);
-////      MessageFlowConfiguration ofconfig2 = new MessageFlowConfiguration("flow2",
-////                                                                        testAddress.toString(),
-////                                                                        "beatle='paul'",
-////                                                                        false,
-////                                                                        1,
-////                                                                        -1,
-////                                                                        null,
-////                                                                        DEFAULT_RETRY_INTERVAL,
-////                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-////                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-////                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-////                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-////                                                                        connectorNames2);
-////      MessageFlowConfiguration ofconfig3 = new MessageFlowConfiguration("flow3",
-////                                                                        testAddress.toString(),
-////                                                                        "beatle='george'",
-////                                                                        false,
-////                                                                        1,
-////                                                                        -1,
-////                                                                        null,
-////                                                                        DEFAULT_RETRY_INTERVAL,
-////                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-////                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-////                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-////                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-////                                                                        connectorNames3);
-////      MessageFlowConfiguration ofconfig4 = new MessageFlowConfiguration("flow4",
-////                                                                        testAddress.toString(),
-////                                                                        "beatle='ringo'",
-////                                                                        false,
-////                                                                        1,
-////                                                                        -1,
-////                                                                        null,
-////                                                                        DEFAULT_RETRY_INTERVAL,
-////                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-////                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-////                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-////                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-////                                                                        connectorNames4);
-////
-////      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-////      ofconfigs.add(ofconfig1);
-////      ofconfigs.add(ofconfig2);
-////      ofconfigs.add(ofconfig3);
-////      ofconfigs.add(ofconfig4);
-////      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-////
-////      service0.start();
-////
-////      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-////                                                                    service0Params);
-////
-////      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-////      ClientSession session0 = csf0.createSession(false, true, true);
-////
-////      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-////      ClientSession session1 = csf1.createSession(false, true, true);
-////
-////      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-////      ClientSession session2 = csf2.createSession(false, true, true);
-////
-////      ClientSessionFactory csf3 = new ClientSessionFactoryImpl(server3tc);
-////      ClientSession session3 = csf3.createSession(false, true, true);
-////
-////      ClientSessionFactory csf4 = new ClientSessionFactoryImpl(server4tc);
-////      ClientSession session4 = csf4.createSession(false, true, true);
-////
-////      session0.createQueue(testAddress, testAddress, null, false, false);
-////      session1.createQueue(testAddress, testAddress, null, false, false);
-////      session2.createQueue(testAddress, testAddress, null, false, false);
-////      session3.createQueue(testAddress, testAddress, null, false, false);
-////      session4.createQueue(testAddress, testAddress, null, false, false);
-////
-////      ClientProducer prod0 = session0.createProducer(testAddress);
-////
-////      ClientConsumer cons1 = session1.createConsumer(testAddress);
-////      ClientConsumer cons2 = session2.createConsumer(testAddress);
-////      ClientConsumer cons3 = session3.createConsumer(testAddress);
-////      ClientConsumer cons4 = session4.createConsumer(testAddress);
-////
-////      session1.start();
-////      session2.start();
-////      session3.start();
-////      session4.start();
-////
-////      SimpleString propKey = new SimpleString("beatle");
-////
-////      ClientMessage messageJohn = session0.createClientMessage(false);
-////      messageJohn.putStringProperty(propKey, new SimpleString("john"));
-////      messageJohn.getBody().flip();
-////
-////      ClientMessage messagePaul = session0.createClientMessage(false);
-////      messagePaul.putStringProperty(propKey, new SimpleString("paul"));
-////      messagePaul.getBody().flip();
-////
-////      ClientMessage messageGeorge = session0.createClientMessage(false);
-////      messageGeorge.putStringProperty(propKey, new SimpleString("george"));
-////      messageGeorge.getBody().flip();
-////
-////      ClientMessage messageRingo = session0.createClientMessage(false);
-////      messageRingo.putStringProperty(propKey, new SimpleString("ringo"));
-////      messageRingo.getBody().flip();
-////
-////      ClientMessage messageOsama = session0.createClientMessage(false);
-////      messageOsama.putStringProperty(propKey, new SimpleString("osama"));
-////      messageOsama.getBody().flip();
-////
-////      prod0.send(messageJohn);
-////      prod0.send(messagePaul);
-////      prod0.send(messageGeorge);
-////      prod0.send(messageRingo);
-////      prod0.send(messageOsama);
-////
-////      ClientMessage r1 = cons1.receive(1000);
-////      assertNotNull(r1);
-////      assertEquals(new SimpleString("john"), r1.getProperty(propKey));
-////      r1 = cons1.receiveImmediate();
-////      assertNull(r1);
-////
-////      ClientMessage r2 = cons2.receive(1000);
-////      assertNotNull(r2);
-////      assertEquals(new SimpleString("paul"), r2.getProperty(propKey));
-////      r2 = cons2.receiveImmediate();
-////      assertNull(r2);
-////
-////      ClientMessage r3 = cons3.receive(1000);
-////      assertNotNull(r3);
-////      assertEquals(new SimpleString("george"), r3.getProperty(propKey));
-////      r3 = cons3.receiveImmediate();
-////      assertNull(r3);
-////
-////      ClientMessage r4 = cons4.receive(1000);
-////      assertNotNull(r4);
-////      assertEquals(new SimpleString("ringo"), r4.getProperty(propKey));
-////      r4 = cons4.receiveImmediate();
-////      assertNull(r4);
-////
-////      session0.close();
-////      session1.close();
-////      session2.close();
-////      session3.close();
-////      session4.close();
-////
-////      service0.stop();
-////      service1.stop();
-////      service2.stop();
-////      service3.stop();
-////      service4.stop();
-////
-////      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service3.getServer().getRemotingService().getConnections().size());
-////      assertEquals(0, service4.getServer().getRemotingService().getConnections().size());
-////   }
-//   
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-      super.clearData();
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}
-
-

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTestBase.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTestBase.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,99 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.tests.integration.cluster.distribution;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
-
-/**
- * A MessageFlowTestBase
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 21 Nov 2008 10:32:23
- *
- *
- */
-public abstract class MessageFlowTestBase extends TestCase
-{
-   public void testFoo()
-   {      
-   }
-   
-   
-   protected MessagingService createMessagingServiceNIO(final int id, final Map<String, Object> params)
-   {
-      Configuration serviceConf = new ConfigurationImpl();
-      serviceConf.setClustered(true);
-      serviceConf.setSecurityEnabled(false); 
-      serviceConf.setJournalMinFiles(2);
-      serviceConf.setJournalFileSize(100 * 1024);
-      params.put(TransportConstants.SERVER_ID_PROP_NAME, id);
-      serviceConf.getAcceptorConfigurations()
-                  .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
-                                                  params));
-      MessagingService service = MessagingServiceImpl.newMessagingService(serviceConf);
-      return service;
-   }
-   
-   protected MessagingService createMessagingService(final int id, final Map<String, Object> params)
-   {
-      Configuration serviceConf = new ConfigurationImpl();
-      serviceConf.setClustered(true);
-      serviceConf.setSecurityEnabled(false);     
-      params.put(TransportConstants.SERVER_ID_PROP_NAME, id);
-      serviceConf.getAcceptorConfigurations()
-                  .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
-                                                  params));
-      MessagingService service = MessagingServiceImpl.newNullStorageMessagingService(serviceConf);
-      return service;
-   }
-   
-   protected MessagingService createMessagingService(final int id, final Map<String, Object> params, final boolean backup)
-   {
-      Configuration serviceConf = new ConfigurationImpl();
-      serviceConf.setClustered(true);
-      serviceConf.setSecurityEnabled(false);     
-      serviceConf.setBackup(backup);
-      params.put(TransportConstants.SERVER_ID_PROP_NAME, id);
-      serviceConf.getAcceptorConfigurations()
-                  .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
-                                                  params));
-      MessagingService service = MessagingServiceImpl.newNullStorageMessagingService(serviceConf);
-      return service;
-   }
-   
-   protected MessagingService createMessagingService(final int id)
-   {
-      return this.createMessagingService(id, new HashMap<String, Object>());
-   }
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTransformerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTransformerTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowTransformerTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,196 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A MessageFlowWildcardTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 15 Nov 2008 08:19:07
- *
- *
- */
-public class MessageFlowTransformerTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowTransformerTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-//   // Public --------------------------------------------------------
-   
-   public void testFoo()
-   {      
-   }
-   
-//
-//   public void testWithTransformer() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      final SimpleString address1 = new SimpleString("address1");
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       "address1",
-//                                                                       null,
-//                                                                       false,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       "org.jboss.messaging.tests.integration.cluster.distribution.SimpleTransformer",
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//
-//      session1.createQueue(address1, address1, null, false, false);
-//
-//      ClientProducer prod0 = session0.createProducer(address1);
-//
-//      ClientConsumer cons1 = session1.createConsumer(address1);
-//
-//      session1.start();
-//
-//      final int numMessages = 100;
-//
-//      final SimpleString propKey = new SimpleString("wibble");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putStringProperty(propKey, new SimpleString("bing"));
-//         message.getBody().putString("doo be doo be doo be doo");
-//         message.getBody().flip();
-//
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage = cons1.receive(1000);
-//
-//         assertNotNull(rmessage);
-//
-//         SimpleString val = (SimpleString)rmessage.getProperty(propKey);
-//         assertEquals(new SimpleString("bong"), val);
-//
-//         String sval = rmessage.getBody().getString();
-//         assertEquals("dee be dee be dee be dee", sval);
-//      }
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWildcardTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWildcardTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWildcardTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,306 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A MessageFlowWildcardTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 15 Nov 2008 08:19:07
- *
- *
- */
-public class MessageFlowWildcardTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowWildcardTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//
-//   public void testWithWildcard() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      final SimpleString address1 = new SimpleString("cheese.stilton");
-//
-//      final SimpleString address2 = new SimpleString("cheese.wensleydale");
-//
-//      final SimpleString address3 = new SimpleString("wine.shiraz");
-//
-//      final SimpleString address4 = new SimpleString("wine.cabernet");
-//
-//      final SimpleString match1 = new SimpleString("cheese.#");
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       match1.toString(),
-//                                                                       null,
-//                                                                       false,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//      session0.createQueue(address2, address2, null, false, false);
-//      session0.createQueue(address3, address3, null, false, false);
-//      session0.createQueue(address4, address4, null, false, false);
-//
-//      session1.createQueue(address1, address1, null, false, false);
-//      session1.createQueue(address2, address2, null, false, false);
-//      session1.createQueue(address3, address3, null, false, false);
-//      session1.createQueue(address4, address4, null, false, false);
-//
-//      ClientProducer prod0_1 = session0.createProducer(address1);
-//      ClientProducer prod0_2 = session0.createProducer(address2);
-//      ClientProducer prod0_3 = session0.createProducer(address3);
-//      ClientProducer prod0_4 = session0.createProducer(address4);
-//
-//      ClientConsumer cons0_1 = session0.createConsumer(address1);
-//      ClientConsumer cons0_2 = session0.createConsumer(address2);
-//      ClientConsumer cons0_3 = session0.createConsumer(address3);
-//      ClientConsumer cons0_4 = session0.createConsumer(address4);
-//
-//      ClientConsumer cons1_1 = session1.createConsumer(address1);
-//      ClientConsumer cons1_2 = session1.createConsumer(address2);
-//      ClientConsumer cons1_3 = session1.createConsumer(address3);
-//      ClientConsumer cons1_4 = session1.createConsumer(address4);
-//
-//      session0.start();
-//
-//      session1.start();
-//
-//      final int numMessages = 100;
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0_1.send(message);
-//      }
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0_2.send(message);
-//      }
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0_3.send(message);
-//      }
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0_4.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage1 = cons0_1.receive(1000);
-//
-//         assertNotNull(rmessage1);
-//
-//         assertEquals(i, rmessage1.getProperty(propKey));
-//
-//         ClientMessage rmessage2 = cons0_2.receive(1000);
-//
-//         assertNotNull(rmessage2);
-//
-//         assertEquals(i, rmessage2.getProperty(propKey));
-//
-//         ClientMessage rmessage3 = cons0_3.receive(1000);
-//
-//         assertNotNull(rmessage3);
-//
-//         assertEquals(i, rmessage3.getProperty(propKey));
-//
-//         ClientMessage rmessage4 = cons0_4.receive(1000);
-//
-//         assertNotNull(rmessage4);
-//
-//         assertEquals(i, rmessage4.getProperty(propKey));
-//      }
-//
-//      ClientMessage rmessage1 = cons0_1.receiveImmediate();
-//
-//      assertNull(rmessage1);
-//
-//      ClientMessage rmessage2 = cons0_2.receiveImmediate();
-//
-//      assertNull(rmessage2);
-//
-//      ClientMessage rmessage3 = cons0_3.receiveImmediate();
-//
-//      assertNull(rmessage3);
-//
-//      ClientMessage rmessage4 = cons0_4.receiveImmediate();
-//
-//      assertNull(rmessage4);
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         rmessage1 = cons1_1.receive(1000);
-//
-//         assertNotNull(rmessage1);
-//
-//         assertEquals(i, rmessage1.getProperty(propKey));
-//
-//         rmessage2 = cons1_2.receive(1000);
-//
-//         assertNotNull(rmessage2);
-//
-//         assertEquals(i, rmessage2.getProperty(propKey));
-//      }
-//
-//      rmessage1 = cons1_1.receiveImmediate();
-//
-//      assertNull(rmessage1);
-//
-//      rmessage2 = cons1_2.receiveImmediate();
-//
-//      assertNull(rmessage2);
-//
-//      rmessage3 = cons1_3.receiveImmediate();
-//
-//      assertNull(rmessage3);
-//
-//      rmessage4 = cons1_4.receiveImmediate();
-//
-//      assertNull(rmessage4);
-//
-//      session0.close();
-//
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWithFilterTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWithFilterTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/MessageFlowWithFilterTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,231 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A MessageFlowWithFilterTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 15 Nov 2008 08:58:49
- *
- *
- */
-public class MessageFlowWithFilterTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(MessageFlowWithFilterTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//
-//   public void testWithWildcard() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      final SimpleString address1 = new SimpleString("testaddress");
-//
-//      final String filter = "selectorkey='ORANGES'";
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       address1.toString(),
-//                                                                       filter,
-//                                                                       false,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      session0.createQueue(address1, address1, null, false, false);
-//
-//      session1.createQueue(address1, address1, null, false, false);
-//
-//      ClientProducer prod0_1 = session0.createProducer(address1);
-//
-//      ClientConsumer cons0_1 = session0.createConsumer(address1);
-//
-//      ClientConsumer cons1_1 = session1.createConsumer(address1);
-//
-//      session0.start();
-//
-//      session1.start();
-//
-//      final int numMessages = 100;
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      final SimpleString propKey2 = new SimpleString("selectorkey");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.putStringProperty(propKey2, new SimpleString("ORANGES"));
-//         message.getBody().flip();
-//
-//         prod0_1.send(message);
-//      }
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.putStringProperty(propKey2, new SimpleString("APPLES"));
-//         message.getBody().flip();
-//
-//         prod0_1.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage1 = cons0_1.receive(1000);
-//
-//         assertNotNull(rmessage1);
-//
-//         assertEquals(i, rmessage1.getProperty(propKey));
-//
-//         ClientMessage rmessage2 = cons1_1.receive(1000);
-//
-//         assertNotNull(rmessage2);
-//
-//         assertEquals(i, rmessage2.getProperty(propKey));
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage1 = cons0_1.receive(1000);
-//
-//         assertNotNull(rmessage1);
-//
-//         assertEquals(i, rmessage1.getProperty(propKey));
-//      }
-//
-//      ClientMessage rmessage1 = cons0_1.receiveImmediate();
-//
-//      assertNull(rmessage1);
-//
-//      ClientMessage rmessage2 = cons1_1.receiveImmediate();
-//
-//      assertNull(rmessage2);
-//
-//      session0.close();
-//
-//      session1.close();
-//
-//      service0.stop();
-//      service1.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/SimpleTransformer.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/SimpleTransformer.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/SimpleTransformer.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.tests.integration.cluster.distribution;
-
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
-import org.jboss.messaging.core.server.ServerMessage;
-import org.jboss.messaging.core.server.cluster.Transformer;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * A SimpleTransformer
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 21 Nov 2008 11:44:37
- *
- *
- */
-public class SimpleTransformer implements Transformer
-{
-   private static final Logger log = Logger.getLogger(SimpleTransformer.class);
-   
-   public ServerMessage transform(final ServerMessage message)
-   {
-      SimpleString oldProp = (SimpleString)message.getProperty(new SimpleString("wibble"));
-      
-      if (!oldProp.equals(new SimpleString("bing")))
-      {
-         throw new IllegalStateException("Wrong property value!!");
-      }
-      
-      //Change a property
-      message.putStringProperty(new SimpleString("wibble"), new SimpleString("bong"));
-      
-      //Change the body
-      MessagingBuffer buffer = message.getBody();
-      
-      String str = buffer.getString();
-      
-      if (!str.equals("doo be doo be doo be doo"))
-      {
-         throw new IllegalStateException("Wrong body!!");
-      }
-        
-      buffer.flip();
-      
-      buffer.putString("dee be dee be dee be dee");
-      
-      return message;
-   }
-
-}

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/StaticFlowTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/StaticFlowTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/distribution/StaticFlowTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -1,671 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2005-2008, Red Hat
- * Middleware LLC, and individual contributors 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.messaging.tests.integration.cluster.distribution;
-
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_AFTER_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_RETRIES_BEFORE_FAILOVER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MAX_HOPS;
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_USE_DUPLICATE_DETECTION;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.MessageFlowConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
-import org.jboss.messaging.core.server.MessagingService;
-import org.jboss.messaging.util.Pair;
-import org.jboss.messaging.util.SimpleString;
-
-/**
- * 
- * A StaticFlowTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * 
- * Created 24 Nov 2008 14:26:45
- *
- *
- */
-public class StaticFlowTest extends MessageFlowTestBase
-{
-   private static final Logger log = Logger.getLogger(StaticFlowTest.class);
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-//
-//   public void testStaticListOutflow() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params);
-//      service2.start();
-//
-//      Map<String, Object> service3Params = new HashMap<String, Object>();
-//      MessagingService service3 = createMessagingService(3, service3Params);
-//      service3.start();
-//
-//      Map<String, Object> service4Params = new HashMap<String, Object>();
-//      MessagingService service4 = createMessagingService(4, service4Params);
-//      service4.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params,
-//                                                                    "connector2");
-//      connectors.put(server2tc.getName(), server2tc);
-//
-//      TransportConfiguration server3tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service3Params,
-//                                                                    "connector3");
-//      connectors.put(server3tc.getName(), server3tc);
-//
-//      TransportConfiguration server4tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service4Params,
-//                                                                    "connector4");
-//      connectors.put(server4tc.getName(), server4tc);
-//
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//      connectorNames.add(new Pair<String, String>(server2tc.getName(), null));
-//      connectorNames.add(new Pair<String, String>(server3tc.getName(), null));
-//      connectorNames.add(new Pair<String, String>(server4tc.getName(), null));
-//
-//      final SimpleString testAddress = new SimpleString("testaddress");
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       testAddress.toString(),
-//                                                                       null,
-//                                                                       false,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-//      ClientSession session2 = csf2.createSession(false, true, true);
-//
-//      ClientSessionFactory csf3 = new ClientSessionFactoryImpl(server3tc);
-//      ClientSession session3 = csf3.createSession(false, true, true);
-//
-//      ClientSessionFactory csf4 = new ClientSessionFactoryImpl(server4tc);
-//      ClientSession session4 = csf4.createSession(false, true, true);
-//
-//      session0.createQueue(testAddress, testAddress, null, false, false);
-//      session1.createQueue(testAddress, testAddress, null, false, false);
-//      session2.createQueue(testAddress, testAddress, null, false, false);
-//      session3.createQueue(testAddress, testAddress, null, false, false);
-//      session4.createQueue(testAddress, testAddress, null, false, false);
-//
-//      ClientProducer prod0 = session0.createProducer(testAddress);
-//
-//      ClientConsumer cons0 = session0.createConsumer(testAddress);
-//      ClientConsumer cons1 = session1.createConsumer(testAddress);
-//      ClientConsumer cons2 = session2.createConsumer(testAddress);
-//      ClientConsumer cons3 = session3.createConsumer(testAddress);
-//      ClientConsumer cons4 = session4.createConsumer(testAddress);
-//
-//      session0.start();
-//
-//      session1.start();
-//      session2.start();
-//      session3.start();
-//      session4.start();
-//
-//      final int numMessages = 100;
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0.send(message);
-//      }
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage rmessage0 = cons0.receive(1000);
-//         assertNotNull(rmessage0);
-//         assertEquals(i, rmessage0.getProperty(propKey));
-//
-//         ClientMessage rmessage1 = cons1.receive(1000);
-//         assertNotNull(rmessage1);
-//         assertEquals(i, rmessage1.getProperty(propKey));
-//
-//         ClientMessage rmessage2 = cons2.receive(1000);
-//         assertNotNull(rmessage2);
-//         assertEquals(i, rmessage2.getProperty(propKey));
-//
-//         ClientMessage rmessage3 = cons3.receive(1000);
-//         assertNotNull(rmessage3);
-//         assertEquals(i, rmessage3.getProperty(propKey));
-//
-//         ClientMessage rmessage4 = cons4.receive(1000);
-//         assertNotNull(rmessage4);
-//         assertEquals(i, rmessage4.getProperty(propKey));
-//      }
-//
-//      session0.close();
-//      session1.close();
-//      session2.close();
-//      session3.close();
-//      session4.close();
-//
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//      service3.stop();
-//      service4.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service3.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service4.getServer().getRemotingService().getConnections().size());
-//   }
-//
-//   public void testStaticListRoundRobin() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params);
-//      service2.start();
-//
-//      Map<String, Object> service3Params = new HashMap<String, Object>();
-//      MessagingService service3 = createMessagingService(3, service3Params);
-//      service3.start();
-//
-//      Map<String, Object> service4Params = new HashMap<String, Object>();
-//      MessagingService service4 = createMessagingService(4, service4Params);
-//      service4.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params,
-//                                                                    "connector2");
-//      connectors.put(server2tc.getName(), server2tc);
-//
-//      TransportConfiguration server3tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service3Params,
-//                                                                    "connector3");
-//      connectors.put(server3tc.getName(), server3tc);
-//
-//      TransportConfiguration server4tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service4Params,
-//                                                                    "connector4");
-//      connectors.put(server4tc.getName(), server4tc);
-//
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-//      connectorNames.add(new Pair<String, String>(server1tc.getName(), null));
-//      connectorNames.add(new Pair<String, String>(server2tc.getName(), null));
-//      connectorNames.add(new Pair<String, String>(server3tc.getName(), null));
-//      connectorNames.add(new Pair<String, String>(server4tc.getName(), null));
-//
-//      final SimpleString testAddress = new SimpleString("testaddress");
-//
-//      MessageFlowConfiguration ofconfig = new MessageFlowConfiguration("outflow1",
-//                                                                       testAddress.toString(),
-//                                                                       null,
-//                                                                       true,
-//                                                                       1,
-//                                                                       -1,
-//                                                                       null,
-//                                                                       DEFAULT_RETRY_INTERVAL,
-//                                                                       DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                       DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                       DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                       DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                       DEFAULT_MAX_HOPS,
-//                                                                       connectorNames);
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-//      ClientSession session2 = csf2.createSession(false, true, true);
-//
-//      ClientSessionFactory csf3 = new ClientSessionFactoryImpl(server3tc);
-//      ClientSession session3 = csf3.createSession(false, true, true);
-//
-//      ClientSessionFactory csf4 = new ClientSessionFactoryImpl(server4tc);
-//      ClientSession session4 = csf4.createSession(false, true, true);
-//
-//      session0.createQueue(testAddress, testAddress, null, false, false);
-//      session1.createQueue(testAddress, testAddress, null, false, false);
-//      session2.createQueue(testAddress, testAddress, null, false, false);
-//      session3.createQueue(testAddress, testAddress, null, false, false);
-//      session4.createQueue(testAddress, testAddress, null, false, false);
-//
-//      ClientProducer prod0 = session0.createProducer(testAddress);
-//
-//      ClientConsumer cons0 = session0.createConsumer(testAddress);
-//      ClientConsumer cons1 = session1.createConsumer(testAddress);
-//      ClientConsumer cons2 = session2.createConsumer(testAddress);
-//      ClientConsumer cons3 = session3.createConsumer(testAddress);
-//      ClientConsumer cons4 = session4.createConsumer(testAddress);
-//
-//      session0.start();
-//
-//      session1.start();
-//      session2.start();
-//      session3.start();
-//      session4.start();
-//
-//      final int numMessages = 10;
-//
-//      final SimpleString propKey = new SimpleString("testkey");
-//
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientMessage message = session0.createClientMessage(false);
-//         message.putIntProperty(propKey, i);
-//         message.getBody().flip();
-//
-//         prod0.send(message);
-//      }
-//
-//      // Refs should be round-robin'd in the same order the connectors are specified in the outflow
-//      // With the local consumer being last since it was created last
-//
-//      ArrayList<ClientConsumer> consumers = new ArrayList<ClientConsumer>();
-//
-//      consumers.add(cons1);
-//      consumers.add(cons2);
-//      consumers.add(cons3);
-//      consumers.add(cons4);
-//      consumers.add(cons0);
-//
-//      int count = 0;
-//      for (int i = 0; i < numMessages; i++)
-//      {
-//         ClientConsumer consumer = consumers.get(count);
-//
-//         count++;
-//         if (count == consumers.size())
-//         {
-//            count = 0;
-//         }
-//
-//         ClientMessage msg = consumer.receive(1000);
-//
-//         assertNotNull(msg);
-//
-//         assertEquals(i, msg.getProperty(propKey));
-//
-//         msg.acknowledge();
-//      }
-//
-//      session0.close();
-//      session1.close();
-//      session2.close();
-//      session3.close();
-//      session4.close();
-//
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//      service3.stop();
-//      service4.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service3.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service4.getServer().getRemotingService().getConnections().size());
-//   }
-//
-//
-//   public void testMultipleFlows() throws Exception
-//   {
-//      Map<String, Object> service0Params = new HashMap<String, Object>();
-//      MessagingService service0 = createMessagingService(0, service0Params);
-//
-//      Map<String, Object> service1Params = new HashMap<String, Object>();
-//      MessagingService service1 = createMessagingService(1, service1Params);
-//      service1.start();
-//
-//      Map<String, Object> service2Params = new HashMap<String, Object>();
-//      MessagingService service2 = createMessagingService(2, service2Params);
-//      service2.start();
-//
-//      Map<String, Object> service3Params = new HashMap<String, Object>();
-//      MessagingService service3 = createMessagingService(3, service3Params);
-//      service3.start();
-//
-//      Map<String, Object> service4Params = new HashMap<String, Object>();
-//      MessagingService service4 = createMessagingService(4, service4Params);
-//      service4.start();
-//
-//      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-//
-//      TransportConfiguration server1tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service1Params,
-//                                                                    "connector1");
-//      connectors.put(server1tc.getName(), server1tc);
-//
-//      TransportConfiguration server2tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service2Params,
-//                                                                    "connector2");
-//      connectors.put(server2tc.getName(), server2tc);
-//
-//      TransportConfiguration server3tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service3Params,
-//                                                                    "connector3");
-//      connectors.put(server3tc.getName(), server3tc);
-//
-//      TransportConfiguration server4tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service4Params,
-//                                                                    "connector4");
-//      connectors.put(server4tc.getName(), server4tc);
-//
-//      service0.getServer().getConfiguration().setConnectorConfigurations(connectors);
-//
-//      List<Pair<String, String>> connectorNames1 = new ArrayList<Pair<String, String>>();
-//      connectorNames1.add(new Pair<String, String>(server1tc.getName(), null));
-//      
-//      List<Pair<String, String>> connectorNames2 = new ArrayList<Pair<String, String>>();
-//      connectorNames2.add(new Pair<String, String>(server2tc.getName(), null));
-//      
-//      List<Pair<String, String>> connectorNames3 = new ArrayList<Pair<String, String>>();
-//      connectorNames3.add(new Pair<String, String>(server3tc.getName(), null));
-//      
-//      List<Pair<String, String>> connectorNames4 = new ArrayList<Pair<String, String>>();
-//      connectorNames4.add(new Pair<String, String>(server4tc.getName(), null));
-//      
-//      final SimpleString testAddress = new SimpleString("testaddress");
-//
-//      MessageFlowConfiguration ofconfig1 = new MessageFlowConfiguration("flow1",
-//                                                                        testAddress.toString(),
-//                                                                        "beatle='john'",
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        DEFAULT_RETRY_INTERVAL,
-//                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames1);
-//      MessageFlowConfiguration ofconfig2 = new MessageFlowConfiguration("flow2",
-//                                                                        testAddress.toString(),
-//                                                                        "beatle='paul'",
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        DEFAULT_RETRY_INTERVAL,
-//                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames2);
-//      MessageFlowConfiguration ofconfig3 = new MessageFlowConfiguration("flow3",
-//                                                                        testAddress.toString(),
-//                                                                        "beatle='george'",
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        DEFAULT_RETRY_INTERVAL,
-//                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames3);
-//      MessageFlowConfiguration ofconfig4 = new MessageFlowConfiguration("flow4",
-//                                                                        testAddress.toString(),
-//                                                                        "beatle='ringo'",
-//                                                                        false,
-//                                                                        1,
-//                                                                        -1,
-//                                                                        null,
-//                                                                        DEFAULT_RETRY_INTERVAL,
-//                                                                        DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-//                                                                        DEFAULT_MAX_RETRIES_BEFORE_FAILOVER,
-//                                                                        DEFAULT_MAX_RETRIES_AFTER_FAILOVER,
-//                                                                        DEFAULT_USE_DUPLICATE_DETECTION,
-//                                                                        DEFAULT_MAX_HOPS,
-//                                                                        connectorNames4);
-//
-//      Set<MessageFlowConfiguration> ofconfigs = new HashSet<MessageFlowConfiguration>();
-//      ofconfigs.add(ofconfig1);
-//      ofconfigs.add(ofconfig2);
-//      ofconfigs.add(ofconfig3);
-//      ofconfigs.add(ofconfig4);
-//      service0.getServer().getConfiguration().setMessageFlowConfigurations(ofconfigs);
-//
-//      service0.start();
-//
-//      TransportConfiguration server0tc = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-//                                                                    service0Params);
-//
-//      ClientSessionFactory csf0 = new ClientSessionFactoryImpl(server0tc);
-//      ClientSession session0 = csf0.createSession(false, true, true);
-//
-//      ClientSessionFactory csf1 = new ClientSessionFactoryImpl(server1tc);
-//      ClientSession session1 = csf1.createSession(false, true, true);
-//
-//      ClientSessionFactory csf2 = new ClientSessionFactoryImpl(server2tc);
-//      ClientSession session2 = csf2.createSession(false, true, true);
-//
-//      ClientSessionFactory csf3 = new ClientSessionFactoryImpl(server3tc);
-//      ClientSession session3 = csf3.createSession(false, true, true);
-//
-//      ClientSessionFactory csf4 = new ClientSessionFactoryImpl(server4tc);
-//      ClientSession session4 = csf4.createSession(false, true, true);
-//
-//      session0.createQueue(testAddress, testAddress, null, false, false);
-//      session1.createQueue(testAddress, testAddress, null, false, false);
-//      session2.createQueue(testAddress, testAddress, null, false, false);
-//      session3.createQueue(testAddress, testAddress, null, false, false);
-//      session4.createQueue(testAddress, testAddress, null, false, false);
-//
-//      ClientProducer prod0 = session0.createProducer(testAddress);
-//
-//      ClientConsumer cons1 = session1.createConsumer(testAddress);
-//      ClientConsumer cons2 = session2.createConsumer(testAddress);
-//      ClientConsumer cons3 = session3.createConsumer(testAddress);
-//      ClientConsumer cons4 = session4.createConsumer(testAddress);
-//
-//      session1.start();
-//      session2.start();
-//      session3.start();
-//      session4.start();
-//
-//      SimpleString propKey = new SimpleString("beatle");
-//
-//      ClientMessage messageJohn = session0.createClientMessage(false);
-//      messageJohn.putStringProperty(propKey, new SimpleString("john"));
-//      messageJohn.getBody().flip();
-//
-//      ClientMessage messagePaul = session0.createClientMessage(false);
-//      messagePaul.putStringProperty(propKey, new SimpleString("paul"));
-//      messagePaul.getBody().flip();
-//
-//      ClientMessage messageGeorge = session0.createClientMessage(false);
-//      messageGeorge.putStringProperty(propKey, new SimpleString("george"));
-//      messageGeorge.getBody().flip();
-//
-//      ClientMessage messageRingo = session0.createClientMessage(false);
-//      messageRingo.putStringProperty(propKey, new SimpleString("ringo"));
-//      messageRingo.getBody().flip();
-//
-//      ClientMessage messageOsama = session0.createClientMessage(false);
-//      messageOsama.putStringProperty(propKey, new SimpleString("osama"));
-//      messageOsama.getBody().flip();
-//
-//      prod0.send(messageJohn);
-//      prod0.send(messagePaul);
-//      prod0.send(messageGeorge);
-//      prod0.send(messageRingo);
-//      prod0.send(messageOsama);
-//
-//      ClientMessage r1 = cons1.receive(1000);
-//      assertNotNull(r1);
-//      assertEquals(new SimpleString("john"), r1.getProperty(propKey));
-//      r1 = cons1.receiveImmediate();
-//      assertNull(r1);
-//
-//      ClientMessage r2 = cons2.receive(1000);
-//      assertNotNull(r2);
-//      assertEquals(new SimpleString("paul"), r2.getProperty(propKey));
-//      r2 = cons2.receiveImmediate();
-//      assertNull(r2);
-//
-//      ClientMessage r3 = cons3.receive(1000);
-//      assertNotNull(r3);
-//      assertEquals(new SimpleString("george"), r3.getProperty(propKey));
-//      r3 = cons3.receiveImmediate();
-//      assertNull(r3);
-//
-//      ClientMessage r4 = cons4.receive(1000);
-//      assertNotNull(r4);
-//      assertEquals(new SimpleString("ringo"), r4.getProperty(propKey));
-//      r4 = cons4.receiveImmediate();
-//      assertNull(r4);
-//
-//      session0.close();
-//      session1.close();
-//      session2.close();
-//      session3.close();
-//      session4.close();
-//
-//      service0.stop();
-//      service1.stop();
-//      service2.stop();
-//      service3.stop();
-//      service4.stop();
-//
-//      assertEquals(0, service0.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service1.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service2.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service3.getServer().getRemotingService().getConnections().size());
-//      assertEquals(0, service4.getServer().getRemotingService().getConnections().size());
-//   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      assertEquals(0, InVMRegistry.instance.size());
-   }
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}
-

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java	2009-01-20 18:08:57 UTC (rev 5670)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java	2009-01-20 22:13:24 UTC (rev 5671)
@@ -77,8 +77,7 @@
                                      randomDouble(),
                                      randomPositiveInt(),
                                      randomPositiveInt(),
-                                     randomBoolean(),
-                                     randomPositiveInt(),
+                                     randomBoolean(),                              
                                      connectorPair);
    }
 




More information about the jboss-cvs-commits mailing list