[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