[hornetq-commits] JBoss hornetq SVN: r9767 - in branches/2_2_0_HA_Improvements: tests/src/org/hornetq/tests/integration/cluster/distribution and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Oct 11 08:34:44 EDT 2010


Author: ataylor
Date: 2010-10-11 08:34:44 -0400 (Mon, 11 Oct 2010)
New Revision: 9767

Modified:
   branches/2_2_0_HA_Improvements/build-hornetq.xml
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/jms/server/management/JMSUtil.java
   branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/remoting/ReconnectTest.java
Log:
test fixes

Modified: branches/2_2_0_HA_Improvements/build-hornetq.xml
===================================================================
--- branches/2_2_0_HA_Improvements/build-hornetq.xml	2010-10-11 01:08:38 UTC (rev 9766)
+++ branches/2_2_0_HA_Improvements/build-hornetq.xml	2010-10-11 12:34:44 UTC (rev 9767)
@@ -1385,7 +1385,8 @@
                 <exclude name="**/cluster/replication/**.class"/>
                 <exclude name="**/cluster/failover/*ReplicatedDistributionTest.class"/>
                 <exclude name="**/cluster/failover/*SharedStoreDistributionTest.class"/>
-                <exclude name="**/cluster/failover/*ReplicatedNettyAsynchronousFailoverTest.class"/>      
+                <exclude name="**/cluster/failover/*ReplicatedNettyAsynchronousFailoverTest.class"/>
+                <exclude name="**/cluster/failover/*ReplicatedJMSFailoverTest.class"/>  
                 <exclude name="**/cluster/failover/Remote*.class"/>
                <include name="${tests.param}"/>
             </fileset>

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-10-11 01:08:38 UTC (rev 9766)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-10-11 12:34:44 UTC (rev 9767)
@@ -1571,21 +1571,27 @@
       for (int node : nodes)
       {
          //wait for each server to start, it may be a backup and started in a separate thread
-         long timetowait =System.currentTimeMillis() + 5000;
-         while(!servers[node].isStarted())
+         waitForServer(servers[node]);
+      }
+   }
+
+   private void waitForServer(HornetQServer server)
+         throws InterruptedException
+   {
+      long timetowait =System.currentTimeMillis() + 5000;
+      while(!server.isStarted())
+      {
+         Thread.sleep(100);
+         if(server.isStarted())
          {
-            Thread.sleep(100);
-            if(servers[node].isStarted())
-            {
-               break;
-            }
-            else if(System.currentTimeMillis() > timetowait)
-            {
-               fail("server didnt start");
-            }
+            break;
          }
+         else if(System.currentTimeMillis() > timetowait)
+         {
+            fail("server didnt start");
+         }
       }
-   }                                                                    
+   }
 
    protected void stopClusterConnections(final int... nodes) throws Exception
    {

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/jms/server/management/JMSUtil.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/jms/server/management/JMSUtil.java	2010-10-11 01:08:38 UTC (rev 9766)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/jms/server/management/JMSUtil.java	2010-10-11 12:34:44 UTC (rev 9767)
@@ -26,12 +26,23 @@
 
 import junit.framework.Assert;
 
+import org.hornetq.api.core.HornetQException;
 import org.hornetq.api.core.TransportConfiguration;
+import org.hornetq.api.core.client.ClientSession;
+import org.hornetq.api.core.client.SessionFailureListener;
+import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.cluster.impl.ClusterManagerImpl;
 import org.hornetq.jms.client.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQJMSClient;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
+import org.hornetq.spi.core.protocol.RemotingConnection;
 import org.hornetq.tests.util.RandomUtil;
 
+import java.io.File;
+import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
 /**
  * A JMSUtil
  *
@@ -170,6 +181,67 @@
       }
    }
 
+    public static void waitForServer(HornetQServer server)
+         throws InterruptedException
+   {
+      long timetowait =System.currentTimeMillis() + 5000;
+      while(!server.isStarted())
+      {
+         Thread.sleep(100);
+         if(server.isStarted())
+         {
+            break;
+         }
+         else if(System.currentTimeMillis() > timetowait)
+         {
+            throw new IllegalStateException("server didnt start");
+         }
+      }
+   }
+
+    public static void crash(HornetQServer server, ClientSession... sessions) throws Exception
+   {
+      final CountDownLatch latch = new CountDownLatch(sessions.length);
+
+      class MyListener implements SessionFailureListener
+      {
+         public void connectionFailed(final HornetQException me, boolean failedOver)
+         {
+            latch.countDown();
+         }
+
+         public void beforeReconnect(HornetQException exception)
+         {
+            System.out.println("MyListener.beforeReconnect");
+         }
+      }
+      for (ClientSession session : sessions)
+      {
+         session.addFailureListener(new MyListener());
+      }
+      Set<RemotingConnection> connections = server.getRemotingService().getConnections();
+      for (RemotingConnection remotingConnection : connections)
+      {
+         remotingConnection.destroy();
+         server.getRemotingService().removeConnection(remotingConnection.getID());
+      }
+
+      ClusterManagerImpl clusterManager = (ClusterManagerImpl) server.getClusterManager();
+      clusterManager.clear();
+      server.stop();
+      // recreate the live.lock file (since it was deleted by the
+      // clean stop
+      File lockFile = new File(server.getConfiguration().getJournalDirectory(), "live.lock");
+      Assert.assertFalse(lockFile.exists());
+      lockFile.createNewFile();
+
+
+      // Wait to be informed of failure
+      boolean ok = latch.await(10000, TimeUnit.MILLISECONDS);
+
+      Assert.assertTrue(ok);
+   }
+
    // Constructors --------------------------------------------------
 
    // Public --------------------------------------------------------

Modified: branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/remoting/ReconnectTest.java
===================================================================
--- branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/remoting/ReconnectTest.java	2010-10-11 01:08:38 UTC (rev 9766)
+++ branches/2_2_0_HA_Improvements/tests/src/org/hornetq/tests/integration/remoting/ReconnectTest.java	2010-10-11 12:34:44 UTC (rev 9767)
@@ -73,13 +73,13 @@
       try
       {
          ServerLocator locator = createFactory(isNetty);
+         locator.setClientFailureCheckPeriod(pingPeriod);
+         locator.setRetryInterval(500);
+         locator.setRetryIntervalMultiplier(1d);
+         locator.setReconnectAttempts(-1);
+         locator.setConfirmationWindowSize(1024 * 1024);
          ClientSessionFactory factory = locator.createSessionFactory();
 
-         factory.getServerLocator().setClientFailureCheckPeriod(pingPeriod); // Using a smaller timeout
-         factory.getServerLocator().setRetryInterval(500);
-         factory.getServerLocator().setRetryIntervalMultiplier(1d);
-         factory.getServerLocator().setReconnectAttempts(-1);
-         factory.getServerLocator().setConfirmationWindowSize(1024 * 1024);
 
          session = (ClientSessionInternal)factory.createSession();
 



More information about the hornetq-commits mailing list