[jbosscache-commits] JBoss Cache SVN: r7418 - core/trunk/src/test/java/org/jboss/cache/buddyreplication.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Jan 8 18:18:44 EST 2009


Author: mircea.markus
Date: 2009-01-08 18:18:44 -0500 (Thu, 08 Jan 2009)
New Revision: 7418

Modified:
   core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java
Log:
more strict replication control

Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java	2009-01-08 21:28:50 UTC (rev 7417)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java	2009-01-08 23:18:44 UTC (rev 7418)
@@ -30,11 +30,18 @@
    private String key = "key";
    private String value = "value";
 
+   ReplicationListener replicationListener0;
+   ReplicationListener replicationListener1;
+   ReplicationListener replicationListener2;
 
    @BeforeClass
    public void createCaches() throws Exception
    {
       caches = createCaches(3, false, true);
+      replicationListener0 = ReplicationListener.getReplicationListener(caches.get(0));
+      replicationListener1 = ReplicationListener.getReplicationListener(caches.get(1));
+      replicationListener2 = ReplicationListener.getReplicationListener(caches.get(2));
+
    }
 
    public void testDataGravitationDontKillOwner() throws Exception
@@ -46,12 +53,8 @@
 
       caches.get(0).put(fqn, key, value);
 
-      TestingUtil.dumpCacheContents(caches);
-
       assertEquals("Value should exist", value, caches.get(0).get(fqn, key));
 
-      TestingUtil.dumpCacheContents(caches);
-
       // use exists instead of get() to prevent going up the interceptor stack
       assertTrue("Should be false", !caches.get(1).exists(fqn));
       assertTrue("Should be false", !caches.get(2).exists(fqn));
@@ -60,15 +63,14 @@
       assertTrue("Value be true", caches.get(1).exists(backupFqn));
       assertFalse("Should be false", caches.get(2).exists(backupFqn));
 
-      ReplicationListener replListener = ReplicationListener.getReplicationListener(caches.get(1));
-      replListener.expect(DataGravitationCleanupCommand.class);
+      replicationListener0.expect(DataGravitationCleanupCommand.class);
+      replicationListener1.expect(DataGravitationCleanupCommand.class);
 
       // according to data gravitation, a call to *any* cache should retrieve the data, and move the data to the new cache.
       assertEquals("Value should have gravitated", value, caches.get(2).get(fqn, key));
-      replListener.waitForReplicationToOccur();
+      replicationListener0.waitForReplicationToOccur();
+      replicationListener1.waitForReplicationToOccur();
 
-      TestingUtil.dumpCacheContents(caches);
-
       // now lets test the eviction part of gravitation
       Fqn newBackupFqn = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn);
 
@@ -88,17 +90,12 @@
    }
 
 
-
    public void testTransactionsCommit() throws Exception
    {
-
-
       caches.get(0).put(fqn, key, value);
       Fqn oldBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(0).getLocalAddress()) + "/test");
       Fqn newBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(2).getLocalAddress()) + "/test");
 
-//      dumpCacheContents(caches);
-
       TransactionManager txman = caches.get(2).getTransactionManager();
 
 
@@ -113,12 +110,12 @@
       assertTrue(!caches.get(2).exists(newBackupFqn));
 
 
+      replicationListener0.expect(DataGravitationCleanupCommand.class);
+      replicationListener1.expect(DataGravitationCleanupCommand.class);
+
       txman.begin();
 
-//      dumpCacheContents(caches);
-      // will cause gravitation
       caches.get(2).get(fqn, key);
-//      dumpCacheContents(caches);
 
       assertTrue(caches.get(0).exists(fqn));
       assertTrue(!caches.get(1).exists(fqn));
@@ -131,10 +128,9 @@
       assertTrue(!caches.get(2).exists(newBackupFqn));
 
       txman.commit();
-      cleanupDelay(); // cleanup commands are async
 
-//      dumpCacheContents(caches);
-
+      replicationListener0.waitForReplicationToOccur();
+      replicationListener1.waitForReplicationToOccur();
       assertTrue(!caches.get(0).exists(fqn));
       assertTrue(!caches.get(1).exists(fqn));
       assertTrue(caches.get(2).exists(fqn));
@@ -145,16 +141,9 @@
       assertTrue(!caches.get(1).exists(newBackupFqn));
       assertTrue(!caches.get(2).exists(newBackupFqn));
 
-//      dumpCacheContents(caches);
-
       assertNoLocks(caches);
    }
 
-   private void cleanupDelay()
-   {
-      TestingUtil.sleepThread(250);
-   }
-
    public void testTransactionsRollback() throws Exception
    {
       TestingUtil.dumpCacheContents(caches.get(0));
@@ -165,8 +154,6 @@
       Fqn oldBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(0).getLocalAddress()) + "/test");
       Fqn newBackupFqn = Fqn.fromString("/" + BuddyManager.BUDDY_BACKUP_SUBTREE + "/" + fqnTransformer.getGroupNameFromAddress(caches.get(2).getLocalAddress()) + "/test");
 
-//      dumpCacheContents(caches);
-
       TransactionManager txman = caches.get(2).getTransactionManager();
 
 
@@ -183,9 +170,7 @@
 
       txman.begin();
 
-//      dumpCacheContents(caches);
       caches.get(2).get(fqn, key);
-//      dumpCacheContents(caches);
 
       assertTrue(caches.get(0).exists(fqn));
       assertTrue(!caches.get(1).exists(fqn));
@@ -199,8 +184,6 @@
 
       txman.rollback();
 
-//      dumpCacheContents(caches);
-
       assertTrue(caches.get(0).exists(fqn));
       assertTrue(!caches.get(1).exists(fqn));
       assertTrue(!caches.get(2).exists(fqn));
@@ -243,10 +226,11 @@
       assertNoLocks(caches);
 
       // gravitate to 2:
-      ReplicationListener replListener1 = ReplicationListener.getReplicationListener(caches.get(0));
-      replListener1.expect(DataGravitationCleanupCommand.class);
+      replicationListener0.expect(DataGravitationCleanupCommand.class);
+      replicationListener1.expect(DataGravitationCleanupCommand.class);
       caches.get(2).getNode(fqn);  // expectWithTx entire subtree to gravitate.
-      replListener1.waitForReplicationToOccur(); // cleanup commands are async
+      replicationListener0.waitForReplicationToOccur();
+      replicationListener1.waitForReplicationToOccur();
 
       Fqn newBackupFqn = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn);
       Fqn newBackupFqn2 = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn2);
@@ -265,8 +249,6 @@
       assertTrue(!caches.get(1).exists(newBackupFqn));
       assertTrue(!caches.get(1).exists(newBackupFqn2));
 
-      TestingUtil.dumpCacheContents(caches);
-
       for (CacheSPI<Object, Object> cache : caches)
       {
          assertTrue(!cache.exists(backupFqn));
@@ -276,41 +258,6 @@
       assertNoLocks(caches);
    }
 
-   private void testDataOwner(boolean optimistic) throws Exception
-   {
-      List<CacheSPI<Object, Object>> caches = createCaches(1, 2, false, true, optimistic);
-      cachesTL.set(caches);
-
-      // add some stuff on the primary
-      CacheSPI dataOwner = caches.get(0);
-      CacheSPI buddy = caches.get(1);
-
-      dataOwner.put(fqn, key, value);
-
-      assert dataOwner.peek(fqn, false) != null : "Should have data";
-      assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";
-      assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
-
-      assert buddy.peek(fqn, false) == null : "Should not have data";
-      assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
-      assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
-      assert buddy.peek(fqnTransformer.getBackupFqn(dataOwner.getLocalAddress(), fqn), false) != null : "Should have backup data";
-
-      // now do a gravitate call.
-      assert buddy.get(fqn, key).equals(value) : "Data should have gravitated!";
-      // gravitation cleanup calls are async.
-      cleanupDelay();
-
-      assert buddy.peek(fqn, false) != null : "Should have data";
-      assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
-      assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
-
-      assert dataOwner.peek(fqn, false) == null : "Should not have data";
-      assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
-      assert dataOwner.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";
-      assert dataOwner.peek(fqnTransformer.getBackupFqn(buddy.getLocalAddress(), fqn), false) != null : "Should have backup data";
-   }
-
    public void testStaleRegionOnDataOwner() throws Exception
    {
       // add some stuff on the primary
@@ -329,10 +276,11 @@
       assert second.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(first.getLocalAddress())), false) != null : "Should have backup node for second";
       assert second.peek(fqnTransformer.getBackupFqn(first.getLocalAddress(), fqn), false) != null : "Should have backup data";
 
+      replicationListener0.expect(DataGravitationCleanupCommand.class);
       // now do a gravitate call.
       assert second.get(fqn, key).equals(value) : "Data should have gravitated!";
       // gravitation cleanup calls are async.
-      cleanupDelay();
+      replicationListener0.waitForReplicationToOccur();
 
       assert second.peek(fqn, false) != null : "Should have data";
       assert second.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(first.getLocalAddress())), false) != null : "Should have backup node for second";
@@ -370,12 +318,13 @@
       assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
       assert buddy.peek(fqnTransformer.getBackupFqn(dataOwner.getLocalAddress(), fqn), false) != null : "Should have backup data";
 
+      replicationListener0.expect(DataGravitationCleanupCommand.class);
+      replicationListener1.expect(DataGravitationCleanupCommand.class);
       // now do a gravitate call.
       assert thirdInstance.get(fqn, key).equals(value) : "Data should have gravitated!";
-
-      // gravitation cleanup calls are async.
-      TestingUtil.sleepThread(250);
-
+      replicationListener0.waitForReplicationToOccur();
+      replicationListener1.waitForReplicationToOccur();
+      
       assert thirdInstance.peek(fqn, false) != null : "Should have data";
       assert thirdInstance.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";
       assert thirdInstance.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(thirdInstance.getLocalAddress())), false) == null : "Should NOT have backup node for self!";
@@ -454,8 +403,10 @@
          }
       }
    }
-   
-   @Test (enabled = true, dependsOnMethods = {"testConcurrency","testStaleRegionOnBuddy","testStaleRegionOnDataOwner", "testDataGravitationDontKillOwner", "testTransactionsCommit", "testTransactionsRollback", "testSubtreeRetrieval"})
+
+   @Test(enabled = true, dependsOnMethods = {"testConcurrency", "testStaleRegionOnBuddy", "testStaleRegionOnDataOwner",
+         "testDataGravitationDontKillOwner", "testTransactionsCommit", "testTransactionsRollback",
+         "testSubtreeRetrieval"})
    public void testCompleteStateSurvival() throws Exception
    {
       CacheBlockListener blockListener = new CacheBlockListener();




More information about the jbosscache-commits mailing list