You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2017/09/28 07:42:03 UTC

svn commit: r1809958 - in /jackrabbit/branches/2.12: ./ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/lock/LockManagerTest.java

Author: reschke
Date: Thu Sep 28 07:42:02 2017
New Revision: 1809958

URL: http://svn.apache.org/viewvc?rev=1809958&view=rev
Log:
JCR-3901: TCK LockManagerTest does not allow new JCR 2.0 functionality for lock token transfers (ported to 2.12)

Introduce new TCK config property, defaulting to the previous behavior, allowing to configure tests to check that open scoped lock tokens can be shared.

Modified:
    jackrabbit/branches/2.12/   (props changed)
    jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java
    jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/lock/LockManagerTest.java

Propchange: jackrabbit/branches/2.12/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 28 07:42:02 2017
@@ -1,3 +1,3 @@
 /jackrabbit/branches/JCR-2272:1173165-1176545
 /jackrabbit/sandbox/JCR-2415-lucene-3.0:1060860-1064038
-/jackrabbit/trunk:1732436,1751279,1752165,1753226,1758600,1759607,1759782,1759865,1761679,1761909,1762422,1763558,1766398,1768684,1771078,1771741,1771939,1771999,1772049,1772299,1772343,1772444,1772457,1772530,1772544,1772597,1772822,1773579,1773591,1773745,1774021,1774443,1775123,1775132,1775315,1775384,1775414,1775419,1775437,1775444,1775463,1775472-1775473,1775481,1775485,1775496,1775509,1775514,1775613,1775617,1775621,1775624,1775629,1775631-1775632,1775634-1775635,1775637,1775657,1776410,1776414,1776416-1776417,1776421,1779166,1779460,1780208,1786325,1787043,1787381,1792193,1793315,1793323,1793327,1793332,1797209,1797917,1799429
+/jackrabbit/trunk:1732436,1751279,1752165,1753226,1758600,1759607,1759782,1759865,1761679,1761909,1762422,1763558,1766398,1768684,1771078,1771741,1771939,1771999,1772049,1772299,1772343,1772444,1772457,1772530,1772544,1772597,1772822,1773579,1773591,1773745,1774021,1774443,1775123,1775132,1775315,1775384,1775414,1775419,1775437,1775444,1775463,1775472-1775473,1775481,1775485,1775496,1775509,1775514,1775613,1775617,1775621,1775624,1775629,1775631-1775632,1775634-1775635,1775637,1775657,1776410,1776414,1776416-1776417,1776421,1779166,1779460,1780208,1786325,1787043,1787381,1792193,1793315,1793323,1793327,1793332,1796980,1797209,1797917,1799429

Modified: jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java?rev=1809958&r1=1809957&r2=1809958&view=diff
==============================================================================
--- jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java (original)
+++ jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/RepositoryStub.java Thu Sep 28 07:42:02 2017
@@ -115,6 +115,14 @@ public abstract class RepositoryStub {
     public static final String PROP_LOCK_OWNER = "lock.owner";
 
     /**
+     * Determines whether the repository implementation allows open scoped locks
+     * to be owned by multiple sessions (see JCR 2.0 Section 17.3).
+     * 
+     * @since JCR 2.0
+     */
+    public static final String PROP_OPEN_SCOPED_LOCK_MULTIPLE = "open.scoped.lock.multiple";
+
+    /**
      * @since JCR 2.0
      */
     public static final String PROP_HOLD_NAME = "holdname";

Modified: jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/lock/LockManagerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/lock/LockManagerTest.java?rev=1809958&r1=1809957&r2=1809958&view=diff
==============================================================================
--- jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/lock/LockManagerTest.java (original)
+++ jackrabbit/branches/2.12/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/lock/LockManagerTest.java Thu Sep 28 07:42:02 2017
@@ -30,6 +30,7 @@ import javax.jcr.lock.LockManager;
 
 import org.apache.jackrabbit.test.AbstractJCRTest;
 import org.apache.jackrabbit.test.NotExecutableException;
+import org.apache.jackrabbit.test.RepositoryStub;
 
 /** <code>LockManagerTest</code>... */
 public class LockManagerTest extends AbstractJCRTest {
@@ -38,6 +39,8 @@ public class LockManagerTest extends Abs
     protected Node testNode;
     protected String testPath;
 
+    protected boolean openScopedLockMultiple;
+
     protected void setUp() throws Exception {
         super.setUp();
 
@@ -45,10 +48,12 @@ public class LockManagerTest extends Abs
         if (Boolean.FALSE.toString().equals(superuser.getRepository().getDescriptor(Repository.OPTION_LOCKING_SUPPORTED))) {
             throw new NotExecutableException();
         }
-        
+
         testNode = testRootNode.addNode(nodeName1, testNodeType);
         testRootNode.getSession().save();
         testPath = testNode.getPath();
+        openScopedLockMultiple = Boolean.TRUE.toString()
+                .equals(getProperty(RepositoryStub.PROP_OPEN_SCOPED_LOCK_MULTIPLE, Boolean.FALSE.toString()));
 
         lockMgr = getLockManager(superuser);
     }
@@ -183,8 +188,6 @@ public class LockManagerTest extends Abs
 
     public void testAddLockTokenToAnotherSession() throws RepositoryException,
             NotExecutableException {
-        // TODO: for 283 add config option for simultaneous tokens....
-        
         assertLockable(testNode);
 
         boolean sessionScoped = false;
@@ -198,9 +201,15 @@ public class LockManagerTest extends Abs
 
             try {
                 otherLockMgr.addLockToken(ltoken);
-                fail("Adding token to another session must fail.");
+                if (!openScopedLockMultiple) {
+                    fail("Adding token to another session must fail (see config property "
+                            + RepositoryStub.PROP_OPEN_SCOPED_LOCK_MULTIPLE + ".");
+                }
             } catch (LockException e) {
-                // success
+                if (openScopedLockMultiple) {
+                    fail("Adding token to another session must not fail (see config property "
+                            + RepositoryStub.PROP_OPEN_SCOPED_LOCK_MULTIPLE + ".");
+                }
             }
         } finally {
             other.logout();
@@ -338,8 +347,6 @@ public class LockManagerTest extends Abs
     }
 
     public void testLockTransfer2() throws Exception {
-        // TODO: for 283 add config option for simultaneous tokens....
-
         assertLockable(testNode);
 
         boolean sessionScoped = false;
@@ -353,9 +360,15 @@ public class LockManagerTest extends Abs
             otherLockMgr.addLockToken(ltoken);
 
             lockMgr.addLockToken(ltoken);
-            fail("Adding the token to another session must fail.");
+            if (!openScopedLockMultiple) {
+                fail("Adding token to another session must fail (see config property "
+                        + RepositoryStub.PROP_OPEN_SCOPED_LOCK_MULTIPLE + ".");
+            }
         } catch (LockException e) {
-            // success
+            if (openScopedLockMultiple) {
+                fail("Adding token to another session must not fail (see config property "
+                        + RepositoryStub.PROP_OPEN_SCOPED_LOCK_MULTIPLE + ".");
+            }
         } finally {
             otherLockMgr.removeLockToken(ltoken);
             lockMgr.addLockToken(ltoken);