[jboss-cvs] JBoss Messaging SVN: r6119 - trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 19 20:30:55 EDT 2009


Author: clebert.suconic at jboss.com
Date: 2009-03-19 20:30:55 -0400 (Thu, 19 Mar 2009)
New Revision: 6119

Modified:
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java
Log:
Changing test to use FailoverTestBase

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java	2009-03-19 21:14:45 UTC (rev 6118)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/AutomaticFailoverWithDiscoveryTest.java	2009-03-20 00:30:55 UTC (rev 6119)
@@ -22,31 +22,17 @@
 
 package org.jboss.messaging.tests.integration.cluster.failover;
 
-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.impl.ClientSessionFactoryImpl;
 import org.jboss.messaging.core.client.impl.ClientSessionImpl;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.cluster.BroadcastGroupConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 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.InVMRegistry;
-import org.jboss.messaging.core.remoting.impl.invm.TransportConstants;
-import org.jboss.messaging.core.server.Messaging;
-import org.jboss.messaging.core.server.MessagingService;
 import org.jboss.messaging.jms.client.JBossTextMessage;
-import org.jboss.messaging.tests.util.UnitTestCase;
-import org.jboss.messaging.utils.Pair;
 import org.jboss.messaging.utils.SimpleString;
 
 /**
@@ -59,7 +45,7 @@
  *
  *
  */
-public class AutomaticFailoverWithDiscoveryTest extends UnitTestCase
+public class AutomaticFailoverWithDiscoveryTest extends FailoverTestBase
 {
    private static final Logger log = Logger.getLogger(AutomaticFailoverWithDiscoveryTest.class);
 
@@ -69,17 +55,10 @@
 
    private static final SimpleString ADDRESS = new SimpleString("FailoverTestAddress");
 
-   private MessagingService liveService;
-
-   private MessagingService backupService;
-
-   private final Map<String, Object> backupParams = new HashMap<String, Object>();
-   
    private final String groupAddress = "230.1.2.3";
 
    private final int groupPort = 8765;
 
-
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
@@ -91,7 +70,7 @@
       ClientSessionFactoryImpl sf = new ClientSessionFactoryImpl(groupAddress, groupPort);
 
       ClientSession session = sf.createSession(false, true, true);
-      
+
       log.info("Created session");
 
       session.createQueue(ADDRESS, ADDRESS, null, false, false);
@@ -121,13 +100,21 @@
 
       session.start();
 
+      boolean outOfOrder = false;
+
       for (int i = 0; i < numMessages / 2; i++)
       {
          ClientMessage message2 = consumer.receive();
 
          assertEquals("aardvarks", message2.getBody().readString());
 
-         assertEquals(i, message2.getProperty(new SimpleString("count")));
+         if (i != (Integer)message2.getProperty(new SimpleString("count")))
+         {
+            System.out.println("Messages received out of order, " + i +
+                               " != " +
+                               message2.getProperty(new SimpleString("count")));
+            outOfOrder = true;
+         }
 
          message2.acknowledge();
       }
@@ -146,16 +133,33 @@
 
          assertEquals("aardvarks", message2.getBody().readString());
 
-         assertEquals(i, message2.getProperty(new SimpleString("count")));
+         if (i != (Integer)message2.getProperty(new SimpleString("count")))
+         {
+            System.out.println("Messages received out of order, " + i +
+                               " != " +
+                               message2.getProperty(new SimpleString("count")));
+            outOfOrder = true;
+         }
 
          message2.acknowledge();
       }
 
       ClientMessage message3 = consumer.receive(250);
 
+      if (message3 != null)
+      {
+         do
+         {
+            System.out.println("Message " + message3.getProperty(new SimpleString("count")) + " was duplicated");
+            message3 = consumer.receive(1000);
+         }
+         while (message3 != null);
+         fail("Duplicated messages received on test");
+      }
+
       session.close();
 
-      assertNull(message3);
+      assertFalse("Messages received out of order, look at System.out for more details", outOfOrder);
 
       assertEquals(0, sf.numSessions());
 
@@ -170,54 +174,7 @@
    protected void setUp() throws Exception
    {
       super.setUp();
-      
-      Configuration backupConf = new ConfigurationImpl();
-      backupConf.setSecurityEnabled(false);
-      backupConf.setClustered(true);
-      backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
-      backupConf.getAcceptorConfigurations()
-                .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
-                                                backupParams));
-      backupConf.setBackup(true);
-      backupService = Messaging.newNullStorageMessagingService(backupConf);
-      backupService.start();
-
-      Configuration liveConf = new ConfigurationImpl();
-      liveConf.setSecurityEnabled(false);
-      TransportConfiguration liveTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory");
-      liveConf.getAcceptorConfigurations()
-              .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory"));
-      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
-      TransportConfiguration backupTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
-                                                                   backupParams);
-      connectors.put(backupTC.getName(), backupTC);
-      connectors.put(liveTC.getName(), liveTC);
-      liveConf.setConnectorConfigurations(connectors);
-      liveConf.setBackupConnectorName(backupTC.getName());
-      liveConf.setClustered(true);
-      
-      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-      connectorNames.add(new Pair<String, String>(liveTC.getName(), backupTC.getName()));
-      
-      final long broadcastPeriod = 250;
-
-      final String bcGroupName = "bc1";
-
-      final int localBindPort = 5432;
-      
-      BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
-                                                                              localBindPort,
-                                                                              groupAddress,
-                                                                              groupPort,
-                                                                              broadcastPeriod,
-                                                                              connectorNames);
-      
-      List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<BroadcastGroupConfiguration>();
-      bcConfigs1.add(bcConfig1);
-      liveConf.setBroadcastGroupConfigurations(bcConfigs1);
-      
-      liveService = Messaging.newNullStorageMessagingService(liveConf);
-      liveService.start();
+      setupGroupServers(true, "bc1", 5432, groupAddress, groupPort);
    }
 
    @Override
@@ -228,7 +185,7 @@
       liveService.stop();
 
       assertEquals(0, InVMRegistry.instance.size());
-      
+
       super.tearDown();
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java	2009-03-19 21:14:45 UTC (rev 6118)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/failover/FailoverTestBase.java	2009-03-20 00:30:55 UTC (rev 6119)
@@ -23,13 +23,16 @@
 package org.jboss.messaging.tests.integration.cluster.failover;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.cluster.BroadcastGroupConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.jboss.messaging.core.remoting.impl.invm.InVMRegistry;
@@ -39,6 +42,7 @@
 import org.jboss.messaging.core.server.MessagingService;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.tests.util.ServiceTestBase;
+import org.jboss.messaging.utils.Pair;
 
 /**
  * A FailoverTestBase
@@ -88,51 +92,58 @@
 
    protected void setUpFileBased(final long maxGlobalSize, final int pageSize) throws Exception
    {
+      setUpFailoverServers(true, maxGlobalSize, pageSize);
+   }
 
+   /*
+    * 
+
+    */
+
+   protected void setUpFailoverServers(boolean fileBased,
+                                       final long maxGlobalSize,
+                                       final int pageSize) throws Exception
+   {
       deleteDirectory(new File(getTestDir()));
 
       Configuration backupConf = new ConfigurationImpl();
-
-      backupConf.setJournalDirectory(getJournalDir(getTestDir() + "/backup"));
-      backupConf.setLargeMessagesDirectory(getLargeMessagesDir(getTestDir() + "/backup"));
-      backupConf.setBindingsDirectory(getBindingsDir(getTestDir() + "/backup"));
-      backupConf.setPagingDirectory(getPageDir(getTestDir() + "/backup"));
-      backupConf.setJournalFileSize(100 * 1024);
-      
-      backupConf.setJournalType(JournalType.NIO);
-
-      backupConf.setPagingMaxGlobalSizeBytes(maxGlobalSize);
-      backupConf.setPagingGlobalWatermarkSize(pageSize);
-
       backupConf.setSecurityEnabled(false);
+      backupConf.setClustered(true);
+      backupConf.setBackup(true);
       backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
-
       backupConf.getAcceptorConfigurations()
                 .add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName(), backupParams));
-      backupConf.setBackup(true);
 
-      clearData(getTestDir() + "/backup");
+      if (fileBased)
+      {
+         clearData(getTestDir() + "/backup");
 
-      backupService = Messaging.newMessagingService(backupConf);
-      backupService.start();
+         backupConf.setJournalDirectory(getJournalDir(getTestDir() + "/backup"));
+         backupConf.setLargeMessagesDirectory(getLargeMessagesDir(getTestDir() + "/backup"));
+         backupConf.setBindingsDirectory(getBindingsDir(getTestDir() + "/backup"));
+         backupConf.setPagingDirectory(getPageDir(getTestDir() + "/backup"));
+         backupConf.setJournalFileSize(100 * 1024);
 
-      Configuration liveConf = new ConfigurationImpl();
+         backupConf.setJournalType(JournalType.NIO);
 
-      liveConf.setJournalDirectory(getJournalDir(getTestDir() + "/live"));
-      liveConf.setLargeMessagesDirectory(getLargeMessagesDir(getTestDir() + "/live"));
-      liveConf.setBindingsDirectory(getBindingsDir(getTestDir() + "/live"));
-      liveConf.setPagingDirectory(getPageDir(getTestDir() + "/live"));
+         backupConf.setPagingMaxGlobalSizeBytes(maxGlobalSize);
+         backupConf.setPagingGlobalWatermarkSize(pageSize);
+         backupService = Messaging.newMessagingService(backupConf);
+      }
+      else
+      {
+         backupService = Messaging.newNullStorageMessagingService(backupConf);
+      }
 
-      liveConf.setPagingMaxGlobalSizeBytes(maxGlobalSize);
-      liveConf.setPagingGlobalWatermarkSize(pageSize);
-      liveConf.setJournalFileSize(100 * 1024);
-      
-      liveConf.setJournalType(JournalType.NIO);
+      backupService.start();
 
+      Configuration liveConf = new ConfigurationImpl();
       liveConf.setSecurityEnabled(false);
-      liveConf.getAcceptorConfigurations()
-              .add(new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName()));
+      liveConf.setClustered(true);
 
+      TransportConfiguration liveTC = new TransportConfiguration(InVMAcceptorFactory.class.getCanonicalName());
+      liveConf.getAcceptorConfigurations().add(liveTC);
+
       Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
 
       TransportConfiguration backupTC = new TransportConfiguration(INVM_CONNECTOR_FACTORY,
@@ -141,18 +152,129 @@
       connectors.put(backupTC.getName(), backupTC);
       liveConf.setConnectorConfigurations(connectors);
       liveConf.setBackupConnectorName(backupTC.getName());
-      liveService = Messaging.newMessagingService(liveConf);
-      
+
+      if (fileBased)
+      {
+         liveConf.setJournalDirectory(getJournalDir(getTestDir() + "/live"));
+         liveConf.setLargeMessagesDirectory(getLargeMessagesDir(getTestDir() + "/live"));
+         liveConf.setBindingsDirectory(getBindingsDir(getTestDir() + "/live"));
+         liveConf.setPagingDirectory(getPageDir(getTestDir() + "/live"));
+
+         liveConf.setPagingMaxGlobalSizeBytes(maxGlobalSize);
+         liveConf.setPagingGlobalWatermarkSize(pageSize);
+         liveConf.setJournalFileSize(100 * 1024);
+
+         liveConf.setJournalType(JournalType.NIO);
+      }
+
+      if (fileBased)
+      {
+         liveService = Messaging.newMessagingService(liveConf);
+      }
+      else
+      {
+         liveService = Messaging.newNullStorageMessagingService(liveConf);
+      }
+
       AddressSettings settings = new AddressSettings();
       settings.setPageSizeBytes(pageSize);
-      
+
       liveService.getServer().getAddressSettingsRepository().addMatch("#", settings);
       backupService.getServer().getAddressSettingsRepository().addMatch("#", settings);
 
       clearData(getTestDir() + "/live");
+
+      liveService.start();
+   }
+   
+   protected void setupGroupServers(boolean fileBased, String bcGroupName, int localBindPort, String groupAddress, int groupPort) throws Exception
+   {
+      Configuration backupConf = new ConfigurationImpl();
+      backupConf.setSecurityEnabled(false);
+      backupConf.setClustered(true);
+      backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
+      backupConf.getAcceptorConfigurations()
+                .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory",
+                                                backupParams));
+      backupConf.setBackup(true);
       
+      if (fileBased)
+      {
+         clearData(getTestDir() + "/backup");
+
+         backupConf.setJournalDirectory(getJournalDir(getTestDir() + "/backup"));
+         backupConf.setLargeMessagesDirectory(getLargeMessagesDir(getTestDir() + "/backup"));
+         backupConf.setBindingsDirectory(getBindingsDir(getTestDir() + "/backup"));
+         backupConf.setPagingDirectory(getPageDir(getTestDir() + "/backup"));
+         backupConf.setJournalFileSize(100 * 1024);
+
+         backupConf.setJournalType(JournalType.NIO);
+
+         backupConf.setPagingMaxGlobalSizeBytes(-1);
+         backupConf.setPagingGlobalWatermarkSize(-1);
+         backupService = Messaging.newMessagingService(backupConf);
+      }
+      else
+      {
+         backupService = Messaging.newNullStorageMessagingService(backupConf);
+      }
+      
+      backupService.start();
+
+      Configuration liveConf = new ConfigurationImpl();
+      liveConf.setSecurityEnabled(false);
+      TransportConfiguration liveTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory");
+      liveConf.getAcceptorConfigurations()
+              .add(new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory"));
+      Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>();
+      TransportConfiguration backupTC = new TransportConfiguration("org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory",
+                                                                   backupParams);
+      connectors.put(backupTC.getName(), backupTC);
+      connectors.put(liveTC.getName(), liveTC);
+      liveConf.setConnectorConfigurations(connectors);
+      liveConf.setBackupConnectorName(backupTC.getName());
+      liveConf.setClustered(true);
+
+      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
+      connectorNames.add(new Pair<String, String>(liveTC.getName(), backupTC.getName()));
+
+      final long broadcastPeriod = 250;
+
+      BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration(bcGroupName,
+                                                                              localBindPort,
+                                                                              groupAddress,
+                                                                              groupPort,
+                                                                              broadcastPeriod,
+                                                                              connectorNames);
+
+      List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<BroadcastGroupConfiguration>();
+      bcConfigs1.add(bcConfig1);
+      liveConf.setBroadcastGroupConfigurations(bcConfigs1);
+
+      if (fileBased)
+      {
+         liveConf.setJournalDirectory(getJournalDir(getTestDir() + "/live"));
+         liveConf.setLargeMessagesDirectory(getLargeMessagesDir(getTestDir() + "/live"));
+         liveConf.setBindingsDirectory(getBindingsDir(getTestDir() + "/live"));
+         liveConf.setPagingDirectory(getPageDir(getTestDir() + "/live"));
+
+         liveConf.setPagingMaxGlobalSizeBytes(-1);
+         liveConf.setPagingGlobalWatermarkSize(-1);
+         liveConf.setJournalFileSize(100 * 1024);
+
+         liveConf.setJournalType(JournalType.NIO);
+         liveService = Messaging.newMessagingService(liveConf);
+      }
+      else
+      {
+         liveService = Messaging.newNullStorageMessagingService(liveConf);
+      }
+
+      liveService = Messaging.newNullStorageMessagingService(liveConf);
       liveService.start();
+
    }
+   
 
    // Package protected ---------------------------------------------
 
@@ -161,25 +283,25 @@
    protected void tearDown() throws Exception
    {
       stopServers();
-      
+
       super.tearDown();
    }
-   
+
    protected void stopServers() throws Exception
    {
       if (backupService != null && backupService.isStarted())
       {
          backupService.stop();
-         
+
          backupService = null;
       }
-      
+
       if (liveService != null && liveService.isStarted())
       {
          liveService.stop();
-         
+
          liveService = null;
-   
+
       }
 
       assertEquals(0, InVMRegistry.instance.size());




More information about the jboss-cvs-commits mailing list