[jbosscache-commits] JBoss Cache SVN: r4649 - in core/trunk/src: main/java/org/jboss/cache/optimistic and 3 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Fri Oct 19 12:31:52 EDT 2007


Author: manik.surtani at jboss.com
Date: 2007-10-19 12:31:51 -0400 (Fri, 19 Oct 2007)
New Revision: 4649

Modified:
   core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java
   core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java
   core/trunk/src/test/java/org/jboss/cache/api/NodeAPIOptimisticTest.java
   core/trunk/src/test/java/org/jboss/cache/api/NodeAPITest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationAsyncTest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationSyncTest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplAsyncTest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplSyncTest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticInvalidationAsyncTest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplAsyncTest.java
   core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplSyncTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorRemoveNodeTest.java
   core/trunk/src/test/java/org/jboss/cache/optimistic/ParentVersionTest.java
Log:
Updated Test annotation on a lot of tests, as well as fixed some subtle bugs introduced with JBCACHE-1121

Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -154,6 +154,22 @@
             if (debug) log.debug("Attempting to get child " + childName);
             NodeSPI currentNode = workspaceNode.getNode().getChildDirect(childName);
 
+            if (currentNode == null)
+            {
+               // first test that it exists in the workspace and has been created in thix tx!
+               WorkspaceNode peekInWorkspace = workspace.getNode(new Fqn(workspaceNode.getFqn(), childName));
+               if (peekInWorkspace != null && peekInWorkspace.isCreated())
+               {
+                  // exists in workspace and has just been created.
+                  currentNode = peekInWorkspace.getNode();
+                  if (peekInWorkspace.isDeleted())
+                  {
+                     peekInWorkspace.markAsDeleted(false);
+                     // add in parent again
+                     workspaceNode.addChild(peekInWorkspace);
+                  }
+               }
+            }
 
             if (currentNode == null)
             {

Modified: core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -146,7 +146,14 @@
       {
          initialiseChildMap();
       }
-      return new HashSet<Object>(optimisticChildNodeMap.keySet());
+
+      Set<Object> names = new HashSet<Object>(optimisticChildNodeMap.keySet());
+      
+      // process deltas
+      for (Fqn child : childrenAdded) names.add(child.getLastElement());
+      for (Fqn child : childrenRemoved) names.remove(child.getLastElement());
+      
+      return names;
    }
 
    @SuppressWarnings("unchecked")

Modified: core/trunk/src/test/java/org/jboss/cache/api/NodeAPIOptimisticTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/NodeAPIOptimisticTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/NodeAPIOptimisticTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,8 +1,11 @@
 package org.jboss.cache.api;
 
+import org.testng.annotations.Test;
+
 /**
  * An optimistic version of {@link org.jboss.cache.api.NodeAPITest}
  */
+ at Test(groups={"functional"})
 public class NodeAPIOptimisticTest extends NodeAPITest
 {
    public NodeAPIOptimisticTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/NodeAPITest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/NodeAPITest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/NodeAPITest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,27 +1,24 @@
 package org.jboss.cache.api;
 
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertFalse;
-import static org.testng.AssertJUnit.assertNull;
-import static org.testng.AssertJUnit.assertTrue;
-import static org.testng.AssertJUnit.fail;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.transaction.TransactionManager;
-
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.DefaultCacheFactory;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.Node;
 import org.jboss.cache.config.Configuration;
+import org.jboss.cache.optimistic.TransactionWorkspace;
+import org.jboss.cache.transaction.OptimisticTransactionEntry;
+import static org.testng.AssertJUnit.*;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import javax.transaction.TransactionManager;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 /**
  * Tests {@link org.jboss.cache.Node}-centric operations
  *
@@ -58,6 +55,17 @@
    {
       if (cache != null)
       {
+         if (cache.getTransactionManager() != null)
+         {
+            try
+            {
+               cache.getTransactionManager().rollback();
+            }
+            catch (Exception e)
+            {
+               // don't care
+            }
+         }
          cache.stop();
       }
       if (rootNode != null)
@@ -193,19 +201,49 @@
 
    public void testGetChildrenUnderTx() throws Exception
    {
+      Fqn<String> A_B = new Fqn<String>(A, B);
+      Fqn<String> A_C = new Fqn<String>(A, C);
       tm.begin();
-      cache.put(new Fqn<String>(A, B), "1", "1");
-      cache.put(new Fqn<String>(A, C), "2", "2");
+      cache.put(A_B, "1", "1");
+      cache.put(A_C, "2", "2");
 
       if (!optimistic)
       {
          assertEquals(3, cache.getNumberOfNodes());
          assertEquals(4, cache.getNumberOfLocksHeld());
       }
+      else
+      {
+         TransactionWorkspace<Object, Object> w = getTransactionWorkspace();
+         assert w.getNodes().size() == 4 : "Should be 4 nodes in the workspace.";
+         // test deltas
+         List<Set<Fqn>> deltas = w.getNodes().get(Fqn.ROOT).getMergedChildren();
+         assert deltas.get(0).size() == 1 : "/ should have 1 child added";
+         assert deltas.get(1).size() == 0 : "/ should have 0 children removed";
+
+         deltas = w.getNodes().get(A).getMergedChildren();
+         assert deltas.get(0).size() == 2 : "/ should have 2 children added";
+         assert deltas.get(1).size() == 0 : "/ should have 0 children removed";
+
+         deltas = w.getNodes().get(A_B).getMergedChildren();
+         assert deltas.get(0).size() == 0 : "/a/b should have 0 children added";
+         assert deltas.get(1).size() == 0 : "/a/b should have 0 children removed";
+
+         deltas = w.getNodes().get(A_C).getMergedChildren();
+         assert deltas.get(0).size() == 0 : "/a/c should have 0 children added";
+         assert deltas.get(1).size() == 0 : "/a/c should have 0 children removed";
+      }
+
       assertEquals("Number of child", 2, cache.getRoot().getChild(A).getChildren().size());
       tm.commit();
    }
 
+   @SuppressWarnings("unchecked")
+   private TransactionWorkspace<Object, Object> getTransactionWorkspace() throws Exception
+   {
+      return ((OptimisticTransactionEntry) cache.getTransactionTable().get(cache.getTransactionTable().get(tm.getTransaction()))).getTransactionWorkSpace();
+   }
+
    public void testGetChildAPI()
    {
       // creates a Node<Object, Object> with fqn /a/b/c

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationAsyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationAsyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationAsyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -7,6 +7,7 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
 /**
  * Test putForExternalRead with optimistic locking and INVALIDATION_ASYNC.
@@ -14,6 +15,7 @@
  * @author Brian Stansberry
  * @version $Revision$
  */
+ at Test (groups = {"functional"})
 public class PFEROptimisticInvalidationAsyncTest extends PutForExternalReadTestBase
 {
    public PFEROptimisticInvalidationAsyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationSyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationSyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticInvalidationSyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -7,6 +7,7 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
 /**
  * Test putForExternalRead with optimistic locking and INVALIDATION_SYNC.
@@ -14,6 +15,7 @@
  * @author Brian Stansberry
  * @version $Revision$
  */
+ at Test(groups = {"functional"})
 public class PFEROptimisticInvalidationSyncTest extends PutForExternalReadTestBase
 {
    public PFEROptimisticInvalidationSyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplAsyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplAsyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplAsyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,7 +1,9 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
+ at Test(groups = {"functional"})
 public class PFEROptimisticReplAsyncTest extends PutForExternalReadTestBase
 {
    public PFEROptimisticReplAsyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplSyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplSyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFEROptimisticReplSyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,7 +1,9 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
+ at Test(groups = {"functional"})
 public class PFEROptimisticReplSyncTest extends PutForExternalReadTestBase
 {
    public PFEROptimisticReplSyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticInvalidationAsyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticInvalidationAsyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticInvalidationAsyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -7,6 +7,7 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
 /**
  * Test putForExternalRead with pessimistic locking and INVALIDATION_SYNC.
@@ -14,6 +15,7 @@
  * @author Brian Stansberry
  * @version $Revision$
  */
+ at Test(groups = {"functional"})
 public class PFERPessimisticInvalidationAsyncTest extends PutForExternalReadTestBase
 {
    public PFERPessimisticInvalidationAsyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplAsyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplAsyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplAsyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,7 +1,9 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
+ at Test(groups = {"functional"})
 public class PFERPessimisticReplAsyncTest extends PutForExternalReadTestBase
 {
    public PFERPessimisticReplAsyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplSyncTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplSyncTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/api/pfer/PFERPessimisticReplSyncTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,7 +1,9 @@
 package org.jboss.cache.api.pfer;
 
 import org.jboss.cache.config.Configuration;
+import org.testng.annotations.Test;
 
+ at Test(groups = {"functional"})
 public class PFERPessimisticReplSyncTest extends PutForExternalReadTestBase
 {
    public PFERPessimisticReplSyncTest()

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorRemoveNodeTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorRemoveNodeTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/NodeInterceptorRemoveNodeTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -276,9 +276,9 @@
       WorkspaceNode oneAfter = workspace.getNode(Fqn.fromString("/one"));
       WorkspaceNode twoAfter = workspace.getNode(Fqn.fromString("/one/two"));
 
-      assertNotSame(one, oneAfter);
+      assertSame(one, oneAfter);
       assertEquals(false, oneAfter.isDeleted());
-      assertNotSame(two, twoAfter);
+      assertSame(two, twoAfter);
       assertEquals(false, twoAfter.isDeleted());
 
       assertEquals(null, dummy.getCalled());
@@ -292,7 +292,7 @@
 
       assertEquals(3, entry.getModifications().size());
       assertEquals(null, dummy.getCalled());
-      assertEquals(4, listener.getNodesAdded());
+      assertEquals(2, listener.getNodesAdded());
    }
 
 
@@ -336,7 +336,7 @@
       WorkspaceNode oneAfter = workspace.getNode(Fqn.fromString("/one"));
       WorkspaceNode twoAfter = workspace.getNode(Fqn.fromString("/one/two"));
 
-      assertNotSame(one, oneAfter);
+      assertSame(one, oneAfter);
       assertEquals(false, oneAfter.isDeleted());
       assertEquals(two, twoAfter);
       assertEquals(true, twoAfter.isDeleted());
@@ -353,7 +353,7 @@
       assertEquals(3, entry.getModifications().size());
       assertTrue(!cache.exists("/one/two"));
       assertEquals(null, dummy.getCalled());
-      assertEquals(3, listener.getNodesAdded());
+      assertEquals(2, listener.getNodesAdded());
    }
 
    public void testTransactionRemoveSubNodeMethod() throws Exception

Modified: core/trunk/src/test/java/org/jboss/cache/optimistic/ParentVersionTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/optimistic/ParentVersionTest.java	2007-10-19 02:25:56 UTC (rev 4648)
+++ core/trunk/src/test/java/org/jboss/cache/optimistic/ParentVersionTest.java	2007-10-19 16:31:51 UTC (rev 4649)
@@ -1,24 +1,23 @@
 package org.jboss.cache.optimistic;
 
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertFalse;
-import static org.testng.AssertJUnit.assertTrue;
-
-import javax.transaction.TransactionManager;
-
 import org.jboss.cache.Cache;
 import org.jboss.cache.CacheImpl;
 import org.jboss.cache.CacheSPI;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.Node;
 import org.jboss.cache.VersionedNode;
+import static org.testng.AssertJUnit.*;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
 
+import javax.transaction.TransactionManager;
+
 /**
  * @author <a href="mailto:manik at jboss.org">Manik Surtani</a>
  * @since 2.0.0
  */
+ at Test (groups={"functional"})
 public class ParentVersionTest extends AbstractOptimisticTestCase
 {
    private Cache<Object, Object> cache;




More information about the jbosscache-commits mailing list