[jboss-cvs] JBossAS SVN: r64880 - in trunk/testsuite: src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Aug 25 14:17:16 EDT 2007


Author: bstansberry at jboss.com
Date: 2007-08-25 14:17:15 -0400 (Sat, 25 Aug 2007)
New Revision: 64880

Added:
   trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java
Removed:
   trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/SessionCountUnitTestCase.java
Modified:
   trunk/testsuite/imports/config/tests-clustering.xml
Log:
Organize web clustering tests that should only be run once

Modified: trunk/testsuite/imports/config/tests-clustering.xml
===================================================================
--- trunk/testsuite/imports/config/tests-clustering.xml	2007-08-25 18:17:12 UTC (rev 64879)
+++ trunk/testsuite/imports/config/tests-clustering.xml	2007-08-25 18:17:15 UTC (rev 64880)
@@ -16,6 +16,10 @@
   <patternset id="cluster.defaultcfg.non.http.includes">
     <include name="org/jboss/test/cluster/defaultcfg/test/*TestCase.class"/>
     <include name="org/jboss/test/cluster/defaultcfg/ejb2/test/*TestCase.class"/>
+   
+    <!-- These are web tier tests that shouldn't be repeated with REPL_SYNC, etc -->
+    <include name="org/jboss/test/cluster/defaultcfg/simpleweb/test/*TestCase.class"/>
+    
     <include name="org/jboss/test/cluster/multicfg/test/*TestCase.class"/>
     <include name="org/jboss/test/cluster/multicfg/ejb2/test/*TestCase.class"/>
     <!-- Exclude invalid JBC integration tests

Copied: trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java (from rev 64750, trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/SessionCountUnitTestCase.java)
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java	2007-08-25 18:17:15 UTC (rev 64880)
@@ -0,0 +1,988 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.test.cluster.defaultcfg.simpleweb.test;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.apache.catalina.Manager;
+import org.apache.catalina.Session;
+import org.jboss.cache.Cache;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.pojo.PojoCache;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.metadata.web.PassivationConfig;
+import org.jboss.test.cluster.testutil.SessionTestUtil;
+import org.jboss.web.tomcat.service.session.JBossCacheManager;
+
+/**
+ * Unit tests of session count management.
+ * 
+ * @author <a href="brian.stansberry at jboss.com">Brian Stansberry</a>
+ * @version $Revision$
+ */
+public class SessionCountUnitTestCase extends TestCase
+{
+   private static final Logger log = Logger.getLogger(SessionCountUnitTestCase.class);
+   private static final String UDP_PORT = "34567";
+   
+   private static long testCount = System.currentTimeMillis();
+   
+   private String bind_address;
+   private String udp_group;
+   private String udp_port;
+   private Set<PojoCache> caches = new HashSet<PojoCache>();
+   private String tempDir;
+   
+   /**
+    * Create a new SessionCountUnitTestCase.
+    * 
+    * @param name
+    */
+   public SessionCountUnitTestCase(String name)
+   {
+      super(name);
+   }  
+   
+   
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      
+      // Set system properties to properly bind JGroups channels
+      
+      // First, preserve any existing values
+      bind_address = System.getProperty("bind.address");
+      udp_group = System.getProperty("jboss.partition.udpGroup");
+      udp_port = System.getProperty("jboss.partition.udpPort");
+      
+      System.setProperty("bind.address", "127.0.0.1");
+      String grp = System.getProperty("jbosstest.udpGroup");
+      if (grp != null && grp.length() > 0)
+      {
+         System.setProperty("jboss.partition.udpGroup", grp);
+      }
+      System.setProperty("jboss.partition.udpPort", UDP_PORT);
+      
+      File tmpDir = new File(System.getProperty("java.io.tmpdir"));
+      File root = new File(tmpDir, getClass().getSimpleName());
+      tempDir = root.getAbsolutePath();
+    }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      super.tearDown();
+      
+      // Restore any system properties we set in setUp
+      if (bind_address == null)
+         System.clearProperty("bind.address");
+      else
+         System.setProperty("bind.address", bind_address);
+      if (udp_group == null)
+         System.clearProperty("jboss.partition.udpGroup");
+      else
+         System.setProperty("jboss.partition.udpGroup", udp_group);
+      
+      if (udp_port == null)
+         System.clearProperty("jboss.partition.udpPort");
+      else
+         System.setProperty("jboss.partition.udpPort", udp_port);
+      
+      for (PojoCache cache : caches)
+      { 
+         // Try to clean up so we avoid loading sessions 
+         // from storage in later tests
+         try
+         {
+            log.info("Removing /JSESSION from " + cache.getCache().getLocalAddress());
+            cache.getCache().removeNode(Fqn.fromString("/JSESSION"));
+         }
+         catch (Exception e)
+         {
+            log.error("Cache " + cache.getCache().getLocalAddress() + ": " + e.getMessage(), e);
+         }
+         
+         try
+         {
+            cache.stop();
+            cache.destroy();
+         }
+         catch (Exception e)
+         {
+            log.error("Cache " + cache.getCache().getLocalAddress() + ": " + e.getMessage(), e);
+         }
+      }
+      
+      caches.clear();
+      
+      if (tempDir != null)
+      {
+         File dir = new File(tempDir);
+         if (dir.exists())
+            dir.delete();
+         if (dir.exists())
+            dir.deleteOnExit();
+      }
+   }
+
+   public void testStandaloneMaxSessions() throws Exception
+   {
+      log.info("Enter testStandaloneMaxSessions");
+      
+      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 5, true, null, false, false);
+      caches.add(jbcm.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(2);
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertFalse("Passivation is disabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
+      
+      // Set up a session
+      Session sess1 = createAndUseSession(jbcm, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      
+      createAndUseSession(jbcm, "2", true, true);
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());
+      
+      // Should fail to create a 3rd
+      createAndUseSession(jbcm, "3", false, false);
+      
+      // Confirm a session timeout clears space
+      sess1.setMaxInactiveInterval(1);       
+      sleep(1100);      
+      
+      createAndUseSession(jbcm, "3", true, true);      
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
+   }
+   
+   public void testStandaloneMaxSessionsWithMaxIdle()
+         throws Exception
+   {
+      log.info("Enter testStandaloneMaxSessionsWithMaxIdle");
+      
+      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 5, true, tempDir, false, false);
+      caches.add(jbcm.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 1, -1);
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 1, jbcm.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", -1, jbcm.getPassivationMinIdleTime());
+
+      // Set up a session
+      Session sess1 = createAndUseSession(jbcm, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm, "2", false, false);
+      
+      // Confirm a session timeout clears space
+      sess1.setMaxInactiveInterval(1);       
+      sleep(1100);      
+      
+      createAndUseSession(jbcm, "2", true, true);      
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 2, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
+
+      //    Sleep past maxIdleTime
+      sleep(1100);        
+      
+      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
+      
+      createAndUseSession(jbcm, "3", true, true);      
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
+      
+   }
+   
+   public void testStandaloneMaxSessionsWithMinIdle() throws Exception
+   {
+      log.info("Enter testStandaloneMaxSessionsWithMinIdle");
+      
+      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 5, true, tempDir, false, false);
+      caches.add(jbcm.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());
+      
+      // Set up a session
+      Session sess1 = createAndUseSession(jbcm, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm, "2", false, false);
+      
+      // Confirm a session timeout clears space
+      sess1.setMaxInactiveInterval(1);       
+      sleep(1100);      
+      
+      createAndUseSession(jbcm, "2", true, false);      
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());     
+      assertEquals("Created session count correct", 2, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
+
+      //    Sleep past minIdleTime
+      sleep(1100);        
+      
+//      assertTrue("Session 2 still valid", sess2.isValid());
+      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
+      
+      createAndUseSession(jbcm, "3", true, true);      
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
+   }
+   
+   public void testReplicatedMaxSessions() throws Exception
+   {
+      log.info("Enter testReplicatedMaxSessions");
+      
+      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, null, false, false);
+      caches.add(jbcm0.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1);
+      jbcm0.init("test.war", webMetaData, false, true);
+      
+      jbcm0.start();
+      
+      assertFalse("Passivation is disabled", jbcm0.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
+      assertEquals("Correct max inactive interval", 1, jbcm0.getMaxInactiveInterval());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, null, false, false);
+      caches.add(jbcm1.getPojoCache());
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      assertFalse("Passivation is disabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max inactive interval", 1, jbcm1.getMaxInactiveInterval());
+      
+      // Set up a session
+      Session sess1 = createAndUseSession(jbcm0, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm1, "2", false, false);
+      
+      // Confirm a session timeout clears space
+      sess1.setMaxInactiveInterval(1);     
+      useSession(jbcm0, "1");
+      sleep(jbcm0.getMaxInactiveInterval() * 1000 + 100);      
+      
+      createAndUseSession(jbcm1, "2", true, true);      
+      
+      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());
+   }
+   
+   public void testReplicatedMaxSessionsWithMaxIdle() throws Exception
+   {
+      log.info("Enter testReplicatedMaxSessionsWithMaxIdle");
+      
+      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, false, false);
+      caches.add(jbcm0.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 1, -1);
+      jbcm0.init("test.war", webMetaData, false, true);
+      
+      jbcm0.start();
+      
+      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 1, jbcm0.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", -1, jbcm0.getPassivationMinIdleTime());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, false, false);
+      caches.add(jbcm1.getPojoCache());
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 1, jbcm1.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", -1, jbcm1.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm0, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm1, "2", false, false);      
+      
+      //    Sleep past maxIdleTime      
+      sleep(1100);        
+      
+      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
+       
+      createAndUseSession(jbcm1, "2", true, true);      
+       
+      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+       
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+   }
+   
+   public void testReplicatedMaxSessionsWithMinIdle() throws Exception
+   {
+      log.info("Enter testReplicatedMaxSessionsWithMinIdle");
+      
+      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, false, false);
+      caches.add(jbcm0.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
+      jbcm0.init("test.war", webMetaData, false, true);
+      
+      jbcm0.start();
+      
+      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, false, false);
+      caches.add(jbcm1.getPojoCache());
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm0, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm1, "2", false, false);      
+      
+      // Sleep past maxIdleTime      
+      sleep(1100);        
+      
+      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
+       
+      createAndUseSession(jbcm1, "2", true, true);      
+       
+      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+       
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+      
+   }
+   
+   public void testTotalReplication() throws Exception
+   {
+      log.info("Enter testTotalReplication");
+      
+      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, true, false);
+      caches.add(jbcm0.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
+      jbcm0.init("test.war", webMetaData, false, true);
+      
+      jbcm0.start();
+      
+      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, true, false);
+      caches.add(jbcm1.getPojoCache());
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm0, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm1, "2", false, false);      
+      
+      // Sleep past maxIdleTime      
+      sleep(1100);        
+      
+      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
+       
+      createAndUseSession(jbcm1, "2", true, true);      
+       
+      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+       
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+      
+   }
+   
+   public void testRegionBasedMarshalling() throws Exception
+   {
+      log.info("Enter testRegionBasedMarshalling");
+      
+      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, false, true);
+      caches.add(jbcm0.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
+      jbcm0.init("test.war", webMetaData, false, true);
+      
+      jbcm0.start();
+      
+      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, false, true);
+      caches.add(jbcm1.getPojoCache());
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm0, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm1, "2", false, false);      
+      
+      // Sleep past maxIdleTime      
+      sleep(1100);        
+      
+      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
+       
+      createAndUseSession(jbcm1, "2", true, true);      
+       
+      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+       
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+      
+   }
+   
+   public void testTotalReplicationWithMarshalling() throws Exception
+   {
+      log.info("Enter testTotalReplicationWithMarshalling");
+      
+      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, true, true);
+      caches.add(jbcm0.getPojoCache());
+      
+      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
+      jbcm0.init("test.war", webMetaData, false, true);
+      
+      jbcm0.start();
+      
+      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, true, true);
+      caches.add(jbcm1.getPojoCache());
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm0, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm1, "2", false, false);      
+      
+      // Sleep past maxIdleTime      
+      sleep(1100);        
+      
+      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
+       
+      createAndUseSession(jbcm1, "2", true, true);      
+       
+      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+       
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
+      
+   }
+   
+   public void testStandaloneRedeploy() throws Exception
+   {
+      log.info("Enter testStandaloneRedeploy");
+      
+      standaloneWarRedeployTest(false);
+   }
+   
+   public void testStandaloneRestart() throws Exception
+   {
+      log.info("Enter testStandaloneRedeploy");
+      
+      standaloneWarRedeployTest(true);
+   }
+   
+   private void standaloneWarRedeployTest(boolean restartCache)
+         throws Exception
+   {
+      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 300, true, tempDir, false, false);
+      PojoCache cache = jbcm.getPojoCache();
+      caches.add(cache);
+      
+      WebMetaData webMetaData = createWebMetaData(2, true, 3, 1);
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      
+      // Should fail to create a 2nd
+      createAndUseSession(jbcm, "2", true, true);     
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());     
+      assertEquals("Created session count correct", 2, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
+
+      //    Sleep past minIdleTime
+      sleep(1100);
+      
+      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
+      
+      createAndUseSession(jbcm, "3", true, true);      
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
+      
+      jbcm.stop();
+      
+      if (restartCache)
+      {
+         cache.stop();
+         cache.destroy();
+         caches.remove(cache);
+         
+         jbcm = SessionTestUtil.createManager("test" + testCount, 5, true, tempDir, false, false);
+         caches.add(jbcm.getPojoCache());
+      }
+      else
+      {
+         jbcm = SessionTestUtil.createManager("test" + testCount, 5, cache);
+      }
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());     
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 0, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
+      
+      // Sleep past minIdleTime
+      sleep(1100);
+      
+      createAndUseSession(jbcm, "4", true, true); 
+   }
+   
+   public void testReplicatedRedeploy() throws Exception
+   {
+      log.info("Enter testReplicatedRedeploy");
+      
+      replicatedWarRedeployTest(false, false, false, false);
+   }
+   
+   public void testReplicatedRestart() throws Exception
+   {
+      log.info("Enter testReplicatedRestart");
+      
+      replicatedWarRedeployTest(true, true, false, false);
+      
+   }
+   
+   private void replicatedWarRedeployTest(boolean restartCache, 
+                                          boolean fullRestart,
+                                          boolean totalReplication,
+                                          boolean marshalling)
+         throws Exception
+   {
+      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 300, false, tempDir, totalReplication, marshalling);
+      PojoCache cache = jbcm.getPojoCache();
+      caches.add(cache);
+      
+      WebMetaData webMetaData = createWebMetaData(2, true, 3, 1);
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());
+      
+      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 300, false, tempDir, totalReplication, marshalling);
+      PojoCache cache1 = jbcm1.getPojoCache();
+      caches.add(cache1);
+      
+      jbcm1.init("test.war", webMetaData, false, true);
+      
+      jbcm1.start();
+      
+      SessionTestUtil.blockUntilViewsReceived(new Cache[]{ cache.getCache(), cache1.getCache()}, 10000);
+      
+      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
+      assertEquals("Correct max active count", 2, jbcm1.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
+      
+      // Set up a session
+      createAndUseSession(jbcm, "1", true, true);
+      
+      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());    
+      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
+      
+      // Create a 2nd
+      createAndUseSession(jbcm1, "2", true, true);     
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());     
+      assertEquals("Created session count correct", 1, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
+      assertEquals("Session count correct", 2, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm1.getLocalActiveSessionCount());     
+      assertEquals("Created session count correct", 1, jbcm1.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm1.getExpiredSessionCount());
+
+      //    Sleep past minIdleTime
+      sleep(1100);
+      
+      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
+      
+      createAndUseSession(jbcm1, "3", true, true);      
+      
+      assertEquals("Session count correct", 3, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 1, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
+      assertEquals("Session count correct", 2, jbcm1.getActiveSessionCount());
+      assertEquals("Local session count correct", 1, jbcm1.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 2, jbcm1.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm1.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 1, jbcm1.getPassivatedSessionCount());
+      
+      if (fullRestart)
+      {
+        jbcm1.stop();
+        cache1.stop();
+        cache1.destroy();
+        caches.remove(cache1);
+      }
+      
+      jbcm.stop();
+      
+      if (restartCache)
+      {
+         cache.stop();
+         cache.destroy();
+         caches.remove(cache);
+         
+         jbcm = SessionTestUtil.createManager("test" + testCount, 300, false, tempDir, totalReplication, marshalling);
+         caches.add(jbcm.getPojoCache());
+      }
+      else
+      {
+         jbcm = SessionTestUtil.createManager("test" + testCount, 300, cache);
+      }
+      jbcm.init("test.war", webMetaData, false, true);
+      
+      jbcm.start();
+      
+      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
+      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
+      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
+      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());     
+      
+      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
+      assertEquals("Local session count correct", 0, jbcm.getLocalActiveSessionCount());
+      assertEquals("Created session count correct", 0, jbcm.getCreatedSessionCount());
+      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
+      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
+      
+      // Sleep past minIdleTime
+      sleep(1100);
+      
+      createAndUseSession(jbcm, "4", true, true); 
+   }
+   
+   public void testTotalReplicatedRedeploy() throws Exception
+   {
+      log.info("Enter testTotalReplicatedRedeploy");
+      
+      replicatedWarRedeployTest(false, false, true, false);
+      
+   }
+   
+   public void testTotalReplicatedRestart() throws Exception
+   {
+      log.info("Enter testTotalReplicatedRestart");
+      
+      replicatedWarRedeployTest(true, true, true, false);
+      
+   }
+   
+   public void testMarshalledRedeploy() throws Exception
+   {
+      log.info("Enter testStandaloneRedeploy");
+      
+      replicatedWarRedeployTest(false, false, false, true);
+      
+   }
+   
+   public void testMarshalledRestart() throws Exception
+   {
+      log.info("Enter testStandaloneRestart");
+      
+      replicatedWarRedeployTest(true, true, false, true);
+      
+   }
+   
+   private WebMetaData createWebMetaData(int maxSessions)
+   {
+      return createWebMetaData(maxSessions, false, -1, -1);
+   }
+   
+   private WebMetaData createWebMetaData(int maxSessions, boolean passivation,
+                                         int maxIdle, int minIdle)
+   {
+      WebMetaData webMetaData = new WebMetaData();
+      webMetaData.setDistributable(true);
+      webMetaData.setMaxActiveSessionsAllowed(maxSessions);
+      PassivationConfig pcfg = new PassivationConfig();
+      pcfg.setUseSessionPassivation(passivation ? "true" : "false");
+      pcfg.setPassivationMaxIdleTime(Integer.toString(maxIdle));
+      pcfg.setPassivationMinIdleTime(Integer.toString(minIdle));
+      webMetaData.setPassivationConfig(pcfg);
+      return webMetaData;
+   }
+   
+   private Session createAndUseSession(JBossCacheManager jbcm, String id, 
+                           boolean canCreate, boolean access)
+         throws Exception
+   {
+      //    Shift to Manager interface when we simulate Tomcat
+      Manager mgr = jbcm;
+      Session sess = mgr.findSession(id);
+      assertNull("session does not exist", sess);
+      try
+      {
+         sess = mgr.createSession(id);
+         if (!canCreate)
+            fail("Could not create session" + id);
+      }
+      catch (IllegalStateException ise)
+      {
+         if (canCreate)
+         {
+            log.error("Failed to create session " + id, ise);
+            fail("Could create session " + id);
+         }
+      }
+      
+      if (access)
+      {
+         sess.access();
+         sess.getSession().setAttribute("test", "test");
+         
+         jbcm.storeSession(sess);
+         
+         sess.endAccess();
+      }
+      
+      return sess;
+   }
+   
+   private void useSession(JBossCacheManager jbcm, String id)
+         throws Exception
+   {
+      //    Shift to Manager interface when we simulate Tomcat
+      Manager mgr = jbcm;
+      Session sess = mgr.findSession(id);
+      assertNotNull("session exists", sess);
+      
+      sess.access();
+      sess.getSession().setAttribute("test", "test");
+      
+      jbcm.storeSession(sess);
+      
+      sess.endAccess();
+   }
+
+   private void sleep(long time)
+   {
+      try
+      {
+         Thread.sleep(time);
+      }
+      catch (InterruptedException e) {}
+   }
+}

Deleted: trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/SessionCountUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/SessionCountUnitTestCase.java	2007-08-25 18:17:12 UTC (rev 64879)
+++ trunk/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/SessionCountUnitTestCase.java	2007-08-25 18:17:15 UTC (rev 64880)
@@ -1,988 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.test.cluster.defaultcfg.test;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.apache.catalina.Manager;
-import org.apache.catalina.Session;
-import org.jboss.cache.Cache;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.pojo.PojoCache;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.WebMetaData;
-import org.jboss.metadata.web.PassivationConfig;
-import org.jboss.test.cluster.testutil.SessionTestUtil;
-import org.jboss.web.tomcat.service.session.JBossCacheManager;
-
-/**
- * Unit tests of session count management.
- * 
- * @author <a href="brian.stansberry at jboss.com">Brian Stansberry</a>
- * @version $Revision$
- */
-public class SessionCountUnitTestCase extends TestCase
-{
-   private static final Logger log = Logger.getLogger(SessionCountUnitTestCase.class);
-   private static final String UDP_PORT = "34567";
-   
-   private static long testCount = System.currentTimeMillis();
-   
-   private String bind_address;
-   private String udp_group;
-   private String udp_port;
-   private Set<PojoCache> caches = new HashSet<PojoCache>();
-   private String tempDir;
-   
-   /**
-    * Create a new SessionCountUnitTestCase.
-    * 
-    * @param name
-    */
-   public SessionCountUnitTestCase(String name)
-   {
-      super(name);
-   }  
-   
-   
-   @Override
-   protected void setUp() throws Exception
-   {
-      super.setUp();
-      
-      // Set system properties to properly bind JGroups channels
-      
-      // First, preserve any existing values
-      bind_address = System.getProperty("bind.address");
-      udp_group = System.getProperty("jboss.partition.udpGroup");
-      udp_port = System.getProperty("jboss.partition.udpPort");
-      
-      System.setProperty("bind.address", "127.0.0.1");
-      String grp = System.getProperty("jbosstest.udpGroup");
-      if (grp != null && grp.length() > 0)
-      {
-         System.setProperty("jboss.partition.udpGroup", grp);
-      }
-      System.setProperty("jboss.partition.udpPort", UDP_PORT);
-      
-      File tmpDir = new File(System.getProperty("java.io.tmpdir"));
-      File root = new File(tmpDir, getClass().getSimpleName());
-      tempDir = root.getAbsolutePath();
-    }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-      
-      // Restore any system properties we set in setUp
-      if (bind_address == null)
-         System.clearProperty("bind.address");
-      else
-         System.setProperty("bind.address", bind_address);
-      if (udp_group == null)
-         System.clearProperty("jboss.partition.udpGroup");
-      else
-         System.setProperty("jboss.partition.udpGroup", udp_group);
-      
-      if (udp_port == null)
-         System.clearProperty("jboss.partition.udpPort");
-      else
-         System.setProperty("jboss.partition.udpPort", udp_port);
-      
-      for (PojoCache cache : caches)
-      { 
-         // Try to clean up so we avoid loading sessions 
-         // from storage in later tests
-         try
-         {
-            log.info("Removing /JSESSION from " + cache.getCache().getLocalAddress());
-            cache.getCache().removeNode(Fqn.fromString("/JSESSION"));
-         }
-         catch (Exception e)
-         {
-            log.error("Cache " + cache.getCache().getLocalAddress() + ": " + e.getMessage(), e);
-         }
-         
-         try
-         {
-            cache.stop();
-            cache.destroy();
-         }
-         catch (Exception e)
-         {
-            log.error("Cache " + cache.getCache().getLocalAddress() + ": " + e.getMessage(), e);
-         }
-      }
-      
-      caches.clear();
-      
-      if (tempDir != null)
-      {
-         File dir = new File(tempDir);
-         if (dir.exists())
-            dir.delete();
-         if (dir.exists())
-            dir.deleteOnExit();
-      }
-   }
-
-   public void testStandaloneMaxSessions() throws Exception
-   {
-      log.info("Enter testStandaloneMaxSessions");
-      
-      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 5, true, null, false, false);
-      caches.add(jbcm.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(2);
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertFalse("Passivation is disabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
-      
-      // Set up a session
-      Session sess1 = createAndUseSession(jbcm, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      
-      createAndUseSession(jbcm, "2", true, true);
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());
-      
-      // Should fail to create a 3rd
-      createAndUseSession(jbcm, "3", false, false);
-      
-      // Confirm a session timeout clears space
-      sess1.setMaxInactiveInterval(1);       
-      sleep(1100);      
-      
-      createAndUseSession(jbcm, "3", true, true);      
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
-   }
-   
-   public void testStandaloneMaxSessionsWithMaxIdle()
-         throws Exception
-   {
-      log.info("Enter testStandaloneMaxSessionsWithMaxIdle");
-      
-      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 5, true, tempDir, false, false);
-      caches.add(jbcm.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 1, -1);
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 1, jbcm.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", -1, jbcm.getPassivationMinIdleTime());
-
-      // Set up a session
-      Session sess1 = createAndUseSession(jbcm, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm, "2", false, false);
-      
-      // Confirm a session timeout clears space
-      sess1.setMaxInactiveInterval(1);       
-      sleep(1100);      
-      
-      createAndUseSession(jbcm, "2", true, true);      
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 2, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
-
-      //    Sleep past maxIdleTime
-      sleep(1100);        
-      
-      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
-      
-      createAndUseSession(jbcm, "3", true, true);      
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
-      
-   }
-   
-   public void testStandaloneMaxSessionsWithMinIdle() throws Exception
-   {
-      log.info("Enter testStandaloneMaxSessionsWithMinIdle");
-      
-      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 5, true, tempDir, false, false);
-      caches.add(jbcm.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());
-      
-      // Set up a session
-      Session sess1 = createAndUseSession(jbcm, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm, "2", false, false);
-      
-      // Confirm a session timeout clears space
-      sess1.setMaxInactiveInterval(1);       
-      sleep(1100);      
-      
-      createAndUseSession(jbcm, "2", true, false);      
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());     
-      assertEquals("Created session count correct", 2, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
-
-      //    Sleep past minIdleTime
-      sleep(1100);        
-      
-//      assertTrue("Session 2 still valid", sess2.isValid());
-      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
-      
-      createAndUseSession(jbcm, "3", true, true);      
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 1, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
-   }
-   
-   public void testReplicatedMaxSessions() throws Exception
-   {
-      log.info("Enter testReplicatedMaxSessions");
-      
-      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, null, false, false);
-      caches.add(jbcm0.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1);
-      jbcm0.init("test.war", webMetaData, false, true);
-      
-      jbcm0.start();
-      
-      assertFalse("Passivation is disabled", jbcm0.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
-      assertEquals("Correct max inactive interval", 1, jbcm0.getMaxInactiveInterval());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, null, false, false);
-      caches.add(jbcm1.getPojoCache());
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      assertFalse("Passivation is disabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max inactive interval", 1, jbcm1.getMaxInactiveInterval());
-      
-      // Set up a session
-      Session sess1 = createAndUseSession(jbcm0, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm1, "2", false, false);
-      
-      // Confirm a session timeout clears space
-      sess1.setMaxInactiveInterval(1);     
-      useSession(jbcm0, "1");
-      sleep(jbcm0.getMaxInactiveInterval() * 1000 + 100);      
-      
-      createAndUseSession(jbcm1, "2", true, true);      
-      
-      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());
-   }
-   
-   public void testReplicatedMaxSessionsWithMaxIdle() throws Exception
-   {
-      log.info("Enter testReplicatedMaxSessionsWithMaxIdle");
-      
-      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, false, false);
-      caches.add(jbcm0.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 1, -1);
-      jbcm0.init("test.war", webMetaData, false, true);
-      
-      jbcm0.start();
-      
-      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 1, jbcm0.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", -1, jbcm0.getPassivationMinIdleTime());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, false, false);
-      caches.add(jbcm1.getPojoCache());
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 1, jbcm1.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", -1, jbcm1.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm0, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm1, "2", false, false);      
-      
-      //    Sleep past maxIdleTime      
-      sleep(1100);        
-      
-      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
-       
-      createAndUseSession(jbcm1, "2", true, true);      
-       
-      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-       
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-   }
-   
-   public void testReplicatedMaxSessionsWithMinIdle() throws Exception
-   {
-      log.info("Enter testReplicatedMaxSessionsWithMinIdle");
-      
-      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, false, false);
-      caches.add(jbcm0.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
-      jbcm0.init("test.war", webMetaData, false, true);
-      
-      jbcm0.start();
-      
-      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, false, false);
-      caches.add(jbcm1.getPojoCache());
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm0, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm1, "2", false, false);      
-      
-      // Sleep past maxIdleTime      
-      sleep(1100);        
-      
-      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
-       
-      createAndUseSession(jbcm1, "2", true, true);      
-       
-      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-       
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-      
-   }
-   
-   public void testTotalReplication() throws Exception
-   {
-      log.info("Enter testTotalReplication");
-      
-      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, true, false);
-      caches.add(jbcm0.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
-      jbcm0.init("test.war", webMetaData, false, true);
-      
-      jbcm0.start();
-      
-      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, true, false);
-      caches.add(jbcm1.getPojoCache());
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm0, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm1, "2", false, false);      
-      
-      // Sleep past maxIdleTime      
-      sleep(1100);        
-      
-      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
-       
-      createAndUseSession(jbcm1, "2", true, true);      
-       
-      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-       
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-      
-   }
-   
-   public void testRegionBasedMarshalling() throws Exception
-   {
-      log.info("Enter testRegionBasedMarshalling");
-      
-      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, false, true);
-      caches.add(jbcm0.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
-      jbcm0.init("test.war", webMetaData, false, true);
-      
-      jbcm0.start();
-      
-      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, false, true);
-      caches.add(jbcm1.getPojoCache());
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm0, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm1, "2", false, false);      
-      
-      // Sleep past maxIdleTime      
-      sleep(1100);        
-      
-      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
-       
-      createAndUseSession(jbcm1, "2", true, true);      
-       
-      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-       
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-      
-   }
-   
-   public void testTotalReplicationWithMarshalling() throws Exception
-   {
-      log.info("Enter testTotalReplicationWithMarshalling");
-      
-      JBossCacheManager jbcm0 = SessionTestUtil.createManager("test" + ++testCount, 1, false, tempDir, true, true);
-      caches.add(jbcm0.getPojoCache());
-      
-      WebMetaData webMetaData = createWebMetaData(1, true, 3, 1);
-      jbcm0.init("test.war", webMetaData, false, true);
-      
-      jbcm0.start();
-      
-      assertTrue("Passivation is enabled", jbcm0.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm0.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm0.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm0.getPassivationMinIdleTime());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 1, false, tempDir, true, true);
-      caches.add(jbcm1.getPojoCache());
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 1, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm0, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());      
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm1, "2", false, false);      
-      
-      // Sleep past maxIdleTime      
-      sleep(1100);        
-      
-      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
-       
-      createAndUseSession(jbcm1, "2", true, true);      
-       
-      assertEquals("Session count correct", 2, jbcm0.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-       
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm0.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm0.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm0.getExpiredSessionCount());      
-      
-   }
-   
-   public void testStandaloneRedeploy() throws Exception
-   {
-      log.info("Enter testStandaloneRedeploy");
-      
-      standaloneWarRedeployTest(false);
-   }
-   
-   public void testStandaloneRestart() throws Exception
-   {
-      log.info("Enter testStandaloneRedeploy");
-      
-      standaloneWarRedeployTest(true);
-   }
-   
-   private void standaloneWarRedeployTest(boolean restartCache)
-         throws Exception
-   {
-      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 300, true, tempDir, false, false);
-      PojoCache cache = jbcm.getPojoCache();
-      caches.add(cache);
-      
-      WebMetaData webMetaData = createWebMetaData(2, true, 3, 1);
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      
-      // Should fail to create a 2nd
-      createAndUseSession(jbcm, "2", true, true);     
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());     
-      assertEquals("Created session count correct", 2, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
-
-      //    Sleep past minIdleTime
-      sleep(1100);
-      
-      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
-      
-      createAndUseSession(jbcm, "3", true, true);      
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 2, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 3, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
-      
-      jbcm.stop();
-      
-      if (restartCache)
-      {
-         cache.stop();
-         cache.destroy();
-         caches.remove(cache);
-         
-         jbcm = SessionTestUtil.createManager("test" + testCount, 5, true, tempDir, false, false);
-         caches.add(jbcm.getPojoCache());
-      }
-      else
-      {
-         jbcm = SessionTestUtil.createManager("test" + testCount, 5, cache);
-      }
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());     
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 0, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
-      
-      // Sleep past minIdleTime
-      sleep(1100);
-      
-      createAndUseSession(jbcm, "4", true, true); 
-   }
-   
-   public void testReplicatedRedeploy() throws Exception
-   {
-      log.info("Enter testReplicatedRedeploy");
-      
-      replicatedWarRedeployTest(false, false, false, false);
-   }
-   
-   public void testReplicatedRestart() throws Exception
-   {
-      log.info("Enter testReplicatedRestart");
-      
-      replicatedWarRedeployTest(true, true, false, false);
-      
-   }
-   
-   private void replicatedWarRedeployTest(boolean restartCache, 
-                                          boolean fullRestart,
-                                          boolean totalReplication,
-                                          boolean marshalling)
-         throws Exception
-   {
-      JBossCacheManager jbcm = SessionTestUtil.createManager("test" + ++testCount, 300, false, tempDir, totalReplication, marshalling);
-      PojoCache cache = jbcm.getPojoCache();
-      caches.add(cache);
-      
-      WebMetaData webMetaData = createWebMetaData(2, true, 3, 1);
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());
-      
-      JBossCacheManager jbcm1 = SessionTestUtil.createManager("test" + testCount, 300, false, tempDir, totalReplication, marshalling);
-      PojoCache cache1 = jbcm1.getPojoCache();
-      caches.add(cache1);
-      
-      jbcm1.init("test.war", webMetaData, false, true);
-      
-      jbcm1.start();
-      
-      SessionTestUtil.blockUntilViewsReceived(new Cache[]{ cache.getCache(), cache1.getCache()}, 10000);
-      
-      assertTrue("Passivation is enabled", jbcm1.isPassivationEnabled());
-      assertEquals("Correct max active count", 2, jbcm1.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm1.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm1.getPassivationMinIdleTime());
-      
-      // Set up a session
-      createAndUseSession(jbcm, "1", true, true);
-      
-      assertEquals("Session count correct", 1, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());    
-      assertEquals("Session count correct", 1, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm1.getLocalActiveSessionCount());
-      
-      // Create a 2nd
-      createAndUseSession(jbcm1, "2", true, true);     
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());     
-      assertEquals("Created session count correct", 1, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
-      assertEquals("Session count correct", 2, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm1.getLocalActiveSessionCount());     
-      assertEquals("Created session count correct", 1, jbcm1.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm1.getExpiredSessionCount());
-
-      //    Sleep past minIdleTime
-      sleep(1100);
-      
-      assertEquals("Passivated session count correct", 0, jbcm1.getPassivatedSessionCount());
-      
-      createAndUseSession(jbcm1, "3", true, true);      
-      
-      assertEquals("Session count correct", 3, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 1, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 0, jbcm.getPassivatedSessionCount());
-      assertEquals("Session count correct", 2, jbcm1.getActiveSessionCount());
-      assertEquals("Local session count correct", 1, jbcm1.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 2, jbcm1.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm1.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 1, jbcm1.getPassivatedSessionCount());
-      
-      if (fullRestart)
-      {
-        jbcm1.stop();
-        cache1.stop();
-        cache1.destroy();
-        caches.remove(cache1);
-      }
-      
-      jbcm.stop();
-      
-      if (restartCache)
-      {
-         cache.stop();
-         cache.destroy();
-         caches.remove(cache);
-         
-         jbcm = SessionTestUtil.createManager("test" + testCount, 300, false, tempDir, totalReplication, marshalling);
-         caches.add(jbcm.getPojoCache());
-      }
-      else
-      {
-         jbcm = SessionTestUtil.createManager("test" + testCount, 300, cache);
-      }
-      jbcm.init("test.war", webMetaData, false, true);
-      
-      jbcm.start();
-      
-      assertTrue("Passivation is enabled", jbcm.isPassivationEnabled());
-      assertEquals("Correct max active count", 2, jbcm.getMaxActiveAllowed());
-      assertEquals("Correct max idle time", 3, jbcm.getPassivationMaxIdleTime());
-      assertEquals("Correct min idle time", 1, jbcm.getPassivationMinIdleTime());     
-      
-      assertEquals("Session count correct", 2, jbcm.getActiveSessionCount());
-      assertEquals("Local session count correct", 0, jbcm.getLocalActiveSessionCount());
-      assertEquals("Created session count correct", 0, jbcm.getCreatedSessionCount());
-      assertEquals("Expired session count correct", 0, jbcm.getExpiredSessionCount());
-      assertEquals("Passivated session count correct", 1, jbcm.getPassivatedSessionCount());
-      
-      // Sleep past minIdleTime
-      sleep(1100);
-      
-      createAndUseSession(jbcm, "4", true, true); 
-   }
-   
-   public void testTotalReplicatedRedeploy() throws Exception
-   {
-      log.info("Enter testTotalReplicatedRedeploy");
-      
-      replicatedWarRedeployTest(false, false, true, false);
-      
-   }
-   
-   public void testTotalReplicatedRestart() throws Exception
-   {
-      log.info("Enter testTotalReplicatedRestart");
-      
-      replicatedWarRedeployTest(true, true, true, false);
-      
-   }
-   
-   public void testMarshalledRedeploy() throws Exception
-   {
-      log.info("Enter testStandaloneRedeploy");
-      
-      replicatedWarRedeployTest(false, false, false, true);
-      
-   }
-   
-   public void testMarshalledRestart() throws Exception
-   {
-      log.info("Enter testStandaloneRestart");
-      
-      replicatedWarRedeployTest(true, true, false, true);
-      
-   }
-   
-   private WebMetaData createWebMetaData(int maxSessions)
-   {
-      return createWebMetaData(maxSessions, false, -1, -1);
-   }
-   
-   private WebMetaData createWebMetaData(int maxSessions, boolean passivation,
-                                         int maxIdle, int minIdle)
-   {
-      WebMetaData webMetaData = new WebMetaData();
-      webMetaData.setDistributable(true);
-      webMetaData.setMaxActiveSessionsAllowed(maxSessions);
-      PassivationConfig pcfg = new PassivationConfig();
-      pcfg.setUseSessionPassivation(passivation ? "true" : "false");
-      pcfg.setPassivationMaxIdleTime(Integer.toString(maxIdle));
-      pcfg.setPassivationMinIdleTime(Integer.toString(minIdle));
-      webMetaData.setPassivationConfig(pcfg);
-      return webMetaData;
-   }
-   
-   private Session createAndUseSession(JBossCacheManager jbcm, String id, 
-                           boolean canCreate, boolean access)
-         throws Exception
-   {
-      //    Shift to Manager interface when we simulate Tomcat
-      Manager mgr = jbcm;
-      Session sess = mgr.findSession(id);
-      assertNull("session does not exist", sess);
-      try
-      {
-         sess = mgr.createSession(id);
-         if (!canCreate)
-            fail("Could not create session" + id);
-      }
-      catch (IllegalStateException ise)
-      {
-         if (canCreate)
-         {
-            log.error("Failed to create session " + id, ise);
-            fail("Could create session " + id);
-         }
-      }
-      
-      if (access)
-      {
-         sess.access();
-         sess.getSession().setAttribute("test", "test");
-         
-         jbcm.storeSession(sess);
-         
-         sess.endAccess();
-      }
-      
-      return sess;
-   }
-   
-   private void useSession(JBossCacheManager jbcm, String id)
-         throws Exception
-   {
-      //    Shift to Manager interface when we simulate Tomcat
-      Manager mgr = jbcm;
-      Session sess = mgr.findSession(id);
-      assertNotNull("session exists", sess);
-      
-      sess.access();
-      sess.getSession().setAttribute("test", "test");
-      
-      jbcm.storeSession(sess);
-      
-      sess.endAccess();
-   }
-
-   private void sleep(long time)
-   {
-      try
-      {
-         Thread.sleep(time);
-      }
-      catch (InterruptedException e) {}
-   }
-}




More information about the jboss-cvs-commits mailing list