jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tri...@apache.org
Subject svn commit: r801413 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/ jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ jackrabbi...
Date Wed, 05 Aug 2009 21:13:46 GMT
Author: tripod
Date: Wed Aug  5 21:13:45 2009
New Revision: 801413

URL: http://svn.apache.org/viewvc?rev=801413&view=rev
Log:
JCR-2085 test case (TCK) maintenance for JCR 2.0 (adding MergeActivityTest)
JCR-2058 JSR 283: VersionManager and new versioning methods (adapting to latest spec changes)

Added:
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeActivityTest.java
      - copied, changed from r801253, jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeShallowTest.java
Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplConfig.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplRestore.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ConfigurationsTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/TestAll.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java
    jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/simple/RestoreTest.java
    jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java Wed Aug  5 21:13:45 2009
@@ -3364,7 +3364,7 @@
     @Deprecated
     public void restore(Version version, boolean removeExisting)
             throws RepositoryException {
-        getVersionManagerImpl().restore(getPath(), version, removeExisting);
+        getVersionManagerImpl().restore(this, version, removeExisting);
     }
 
     /**
@@ -3373,8 +3373,12 @@
     @Deprecated
     public void restore(Version version, String relPath, boolean removeExisting)
             throws RepositoryException {
-        getVersionManagerImpl().restore(
+        if (hasNode(relPath)) {
+            getVersionManagerImpl().restore((NodeImpl) getNode(relPath), version, removeExisting);
+        } else {
+            getVersionManagerImpl().restore(
                 getPath() + "/" + relPath, version, removeExisting);
+        }
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/VersionManagerImpl.java Wed Aug  5 21:13:45 2009
@@ -41,13 +41,13 @@
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.UpdatableItemStateManager;
 import org.apache.jackrabbit.core.version.InternalActivity;
-import org.apache.jackrabbit.core.version.InternalBaseline;
 import org.apache.jackrabbit.core.version.InternalVersion;
 import org.apache.jackrabbit.core.version.InternalVersionHistory;
 import org.apache.jackrabbit.core.version.NodeStateEx;
 import org.apache.jackrabbit.core.version.VersionImpl;
 import org.apache.jackrabbit.core.version.VersionManagerImplConfig;
 import org.apache.jackrabbit.core.version.VersionSet;
+import org.apache.jackrabbit.core.version.InternalBaseline;
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.commons.name.NameConstants;
@@ -216,11 +216,11 @@
             throws RepositoryException {
         // first check if node exists
         if (session.nodeExists(absPath)) {
-            // normal restore
-            NodeStateEx state = getNodeState(absPath,
-                    ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK | ItemValidator.CHECK_HOLD,
-                    Permission.NONE);
-            restore(state, version, removeExisting);
+            String msg = "VersionManager.restore(String, Version, boolean) not " +
+                    "allowed on existing nodes. " +
+                    "use VersionManager.restore(Version, boolean) instead: " + absPath;
+            log.error(msg);
+            throw new VersionException(msg);
         } else {
             // parent has to exist
             Path path = session.getQPath(absPath);
@@ -231,11 +231,36 @@
             NodeStateEx state = getNodeState(parent,
                     ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK | ItemValidator.CHECK_HOLD,
                     Permission.NONE);
-            restore(state, name, version, removeExisting);
+
+            // check if given version is a baseline
+            InternalVersion v = getVersion(version);
+            if (v instanceof InternalBaseline) {
+                restore(state, name, (InternalBaseline) v);
+            } else {
+                restore(state, name, v, removeExisting);
+            }
         }
     }
 
     /**
+     * Same as {@link #restore(String, String, boolean)} but to ensure
+     * backward compatibility for Node.restore(Version, boolean).
+     *
+     * @param node the node to restore
+     * @param version the version to restore
+     * @param removeExisting the remove existing flag
+     * @throws RepositoryException if an error occurs
+     */
+    protected void restore(NodeImpl node, Version version, boolean removeExisting)
+            throws RepositoryException {
+        NodeStateEx state = getNodeState(node.getPath(),
+                ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK | ItemValidator.CHECK_HOLD,
+                Permission.NONE);
+        InternalVersion v = getVersion(version);
+        restore(state, v, removeExisting);
+    }
+
+    /**
      * {@inheritDoc}
      */
     public void restoreByLabel(String absPath, String versionLabel, boolean removeExisting)
@@ -359,13 +384,17 @@
      */
     public Node createConfiguration(String absPath, Version baseline)
             throws RepositoryException {
+        if (baseline != null) {
+            throw new UnsupportedRepositoryOperationException("createConfiguration(String, Version) with baseline is no longer supported.");
+        }
+        return createConfiguration(absPath);
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public Node createConfiguration(String absPath) throws RepositoryException {
         if (session.nodeExists(absPath)) {
-            // refuse to create a configuration if a baseline is specified.
-            if (baseline != null) {
-                String msg = "Create configuration to existing nodes only allowed without specifying a basline: " + absPath;
-                log.error(msg);
-                throw new UnsupportedRepositoryOperationException(msg);
-            }
             NodeStateEx state = getNodeState(absPath,
                     ItemValidator.CHECK_LOCK | ItemValidator.CHECK_PENDING_CHANGES_ON_NODE | ItemValidator.CHECK_HOLD,
                     Permission.VERSION_MNGMT);
@@ -382,31 +411,9 @@
             NodeId configId = createConfiguration(state);
             return session.getNodeById(configId);
         } else {
-            // check if supplied baseline is valid
-            if (baseline == null) {
-                String msg = "CreateConfiguration on non-existing path must supply a baseline: " + absPath;
-                log.error(msg);
-                throw new UnsupportedRepositoryOperationException(msg);
-            }
-            VersionImpl v = (VersionImpl) baseline;
-            InternalBaseline bl = vMgr.getBaseline(v.getNodeId());
-            if (bl == null) {
-                String msg = "Supplied version is not a baseline: " + v.safeGetJCRPath();
-                log.error(msg);
-                throw new UnsupportedRepositoryOperationException(msg);
-            }
-
-            // parent has to exist
-            Path path = session.getQPath(absPath);
-            Path parentPath = path.getAncestor(1);
-            Name name = path.getNameElement().getName();
-            NodeImpl parent = session.getItemManager().getNode(parentPath);
-
-            NodeStateEx state = getNodeState(parent,
-                    ItemValidator.CHECK_PENDING_CHANGES | ItemValidator.CHECK_LOCK | ItemValidator.CHECK_HOLD,
-                    Permission.NONE);
-            NodeId configId = restore(state, name, bl);
-            return session.getNodeById(configId);
+            String msg = "Create configuration node must exist: " + absPath;
+            log.error(msg);
+            throw new UnsupportedRepositoryOperationException(msg);
         }
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java Wed Aug  5 21:13:45 2009
@@ -377,14 +377,17 @@
             // the checkout.
 
             // we're currently leverage the fact, that only references to "real"
-            // workspaces are recorded.
+            // workspaces are recorded. so check all references if their sources
+            // exist in 'this' workspace
             if (stateMgr.hasNodeReferences(activityId)) {
                 try {
                     NodeReferences refs = stateMgr.getNodeReferences(activityId);
-                    if (refs.hasReferences()) {
-                        throw new ActivityViolationException("Unable to checkout. " +
-                                "Activity is already used for the same node in " +
-                                "another workspace.");
+                    for (PropertyId id: refs.getReferences()) {
+                        if (!state.hasNode(id.getParentId())) {
+                            throw new ActivityViolationException("Unable to checkout. " +
+                                    "Activity is already used for the same node in " +
+                                    "another workspace.");
+                        }
                     }
                 } catch (ItemStateException e) {
                     throw new RepositoryException("Error during checkout.", e);

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/NodeStateEx.java Wed Aug  5 21:13:45 2009
@@ -481,6 +481,15 @@
     }
 
     /**
+     * Checks if the given property state exists
+     * @param id property id
+     * @return <code>true</code> if the property state exists
+     */
+    public boolean hasProperty(PropertyId id) {
+        return stateMgr.hasItemState(id);
+    }
+
+    /**
      * Adds a new child node with the given name
      *
      * @param nodeName name of the new node

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplConfig.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplConfig.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplConfig.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplConfig.java Wed Aug  5 21:13:45 2009
@@ -72,7 +72,8 @@
      * @return the node id of the configuration
      * @throws RepositoryException if an error occurs
      */
-    protected NodeId restore(NodeStateEx parent, Name name, InternalBaseline baseline)
+    protected NodeId restore(NodeStateEx parent, Name name,
+                             InternalBaseline baseline)
             throws RepositoryException {
         // check if nt:configuration exists
         NodeId configId = baseline.getConfigurationId();

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplRestore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplRestore.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplRestore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImplRestore.java Wed Aug  5 21:13:45 2009
@@ -77,16 +77,16 @@
 
     /**
      * @param state the state to restore
-     * @param version the version to restore
+     * @param v the version to restore
      * @param removeExisting remove existing flag
      * @throws RepositoryException if an error occurs
      *
      * @see javax.jcr.version.VersionManager#restore(String, Version, boolean)
      */
-    protected void restore(NodeStateEx state, Version version, boolean removeExisting)
+    protected void restore(NodeStateEx state, InternalVersion v, boolean removeExisting)
             throws RepositoryException {
         checkVersionable(state);
-        InternalVersion v = getVersion(version);
+
         // check if 'own' version
         if (!v.getVersionHistory().equals(getVersionHistory(state))) {
             String msg = "Unable to restore version. Not same version history.";
@@ -95,7 +95,7 @@
         }
         WriteOperation ops = startWriteOperation();
         try {
-            internalRestore(state, v, new DateVersionSelector(version.getCreated()), removeExisting);
+            internalRestore(state, v, new DateVersionSelector(v.getCreated()), removeExisting);
             ops.save();
         } catch (ItemStateException e) {
             throw new RepositoryException(e);
@@ -162,19 +162,19 @@
      *
      * @param parent parent node
      * @param name desired name
-     * @param version version to restore
+     * @param v version to restore
      * @param removeExisting remove exiting flag
      * @throws RepositoryException if an error occurs
      */
-    protected void restore(NodeStateEx parent, Name name, Version version, boolean removeExisting)
+    protected void restore(NodeStateEx parent, Name name, InternalVersion v,
+                           boolean removeExisting)
             throws RepositoryException {
         // check if versionable node exists
-        InternalFrozenNode fn = ((VersionImpl) version).getInternalFrozenNode();
+        InternalFrozenNode fn = v.getFrozenNode();
         if (stateMgr.hasItemState(fn.getFrozenId())) {
             if (removeExisting) {
                 NodeStateEx existing = parent.getNode(fn.getFrozenId());
                 checkVersionable(existing);
-                InternalVersion v = getVersion(version);
 
                 // move versionable node below this one using the given "name"
                 WriteOperation ops = startWriteOperation();
@@ -200,7 +200,7 @@
             // create new node below parent
             NodeStateEx state = parent.addNode(name, fn.getFrozenPrimaryType(), fn.getFrozenId());
             state.setMixins(fn.getFrozenMixinTypes());
-            restore(state, version, removeExisting);
+            restore(state, v, removeExisting);
         }
     }
 
@@ -373,8 +373,12 @@
         Set<Name> propNames = new HashSet<Name>();
         PropertyState[] props = freeze.getFrozenProperties();
         for (PropertyState prop : props) {
-            state.copyFrom(prop);
-            propNames.add(prop.getName());
+            // don't restore jcr:activity
+            Name name = prop.getName();
+            if (!name.equals(NameConstants.JCR_ACTIVITY)) {
+                state.copyFrom(prop);
+                propNames.add(name);
+            }
         }
 
         // For each property P present on N but not on F:

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ActivitiesTest.java Wed Aug  5 21:13:45 2009
@@ -92,7 +92,7 @@
         }
     }
 
-    public void testActivitiesPath() throws Exception {
+    public void ignore_testActivitiesPath() throws Exception {
         
         Node an = null;
         
@@ -147,6 +147,6 @@
             }
         }
     }
-    
+
 }
 

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ConfigurationsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ConfigurationsTest.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ConfigurationsTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/ConfigurationsTest.java Wed Aug  5 21:13:45 2009
@@ -118,27 +118,6 @@
                 config.getPath(), config.getPath().startsWith(PREFIX));
     }
 
-    public void testCreateConfigExistingPathWithBaselineFails() throws Exception {
-        Node config = vm.createConfiguration(versionableNode.getPath(), null);
-        Version baseline = vm.getBaseVersion(config.getPath());
-        try {
-            vm.createConfiguration(versionableNode2.getPath(), baseline);
-            fail("Create configuration must fail if baseline is specified and path exists");
-        } catch (UnsupportedRepositoryOperationException e) {
-            // ignore
-        }
-    }
-
-    public void testCreateConfigWithNoBaselineVersionFails() throws Exception {
-        try {
-            Version noBaseline = vm.getBaseVersion(versionableNode.getPath());
-            vm.createConfiguration(testRoot + "/nonExistingNode", noBaseline);
-            fail("Create configuration must fail if baseline is not a baseline");
-        } catch (UnsupportedRepositoryOperationException e) {
-            // ignore
-        }
-    }
-
     public void testCheckinConfigFailsWithUnversionedChild() throws Exception {
         Node config = vm.createConfiguration(versionableNode.getPath(), null);
         try {
@@ -170,16 +149,18 @@
         testRootNode.getSession().save();
 
         // and try to restore it
-        config = vm.createConfiguration(path, baseline);
+        vm.restore(path, baseline, true);
+
+        versionableNode = testRootNode.getSession().getNode(path);
+        Version baseVersion2 = vm.getBaseVersion(versionableNode.getPath());
+        assertTrue("restored node must have former base version.", baseVersion.isSame(baseVersion2));
+
+        config = versionableNode.getProperty("jcr:configuration").getNode();
 
         // base version of config must be baseline
         assertTrue("Baseversion of restored config must be given baseline.",
                 vm.getBaseVersion(config.getPath()).isSame(baseline));
 
-        versionableNode = testRootNode.getSession().getNode(path);
-        Version baseVersion2 = vm.getBaseVersion(versionableNode.getPath());
-
-        assertTrue("restored node must have former base version.", baseVersion.isSame(baseVersion2));
     }
 
     public void testCreateConfigWithNonExistentParentFails() throws Exception {
@@ -197,7 +178,7 @@
         testRootNode.getSession().save();
 
         try {
-            vm.createConfiguration("/non/existent/parent", baseline);
+            vm.restore("/non/existent/parent", baseline, true);
             fail("Create configuration must fail if parent does not exist.");
         } catch (RepositoryException e) {
             // ignore
@@ -213,7 +194,7 @@
         Version baseline = vm.checkin(config.getPath());
 
         try {
-            vm.createConfiguration(testRoot + "/nonExisting", baseline);
+            vm.restore(testRoot + "/nonExisting", baseline, true);
             fail("Create configuration must fail if config recorded in baseline already exists.");
         } catch (RepositoryException e) {
             // ignore

Copied: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeActivityTest.java (from r801253, jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeShallowTest.java)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeActivityTest.java?p2=jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeActivityTest.java&p1=jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeShallowTest.java&r1=801253&r2=801413&rev=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeShallowTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/MergeActivityTest.java Wed Aug  5 21:13:45 2009
@@ -22,63 +22,40 @@
 import javax.jcr.version.VersionManager;
 
 /**
- * <code>MergeShallowTest</code> contains tests dealing with general shallow
- * merge calls.
+ * <code>MergeActivityTest</code> contains tests dealing with merging activities
  *
  * @test
- * @sources MergeShallowTest.java
- * @executeClass org.apache.jackrabbit.test.api.version.MergeShallowTest
+ * @sources MergeActivityTest.java
+ * @executeClass org.apache.jackrabbit.test.api.version.MergeActivityTest
  * @keywords versioning
  */
 
-public class MergeShallowTest extends AbstractMergeTest {
-
-    /**
-     * node to merge
-     */
-    Node nodeToMerge;
+public class MergeActivityTest extends AbstractMergeTest {
 
     String newValue;
 
+    Node activityNode;
+
     protected void setUp() throws Exception {
         super.setUp();
-
-        nodeToMerge = testRootNodeW2.getNode(nodeName1);
-
     }
 
     protected void tearDown() throws Exception {
-        nodeToMerge = null;
-        super.tearDown();
-    }
-
-    public void testMergeRecursive() throws RepositoryException {
-        VersionManager vm2 = testRootNodeW2.getSession().getWorkspace().getVersionManager();
-        NodeIterator iter = vm2.merge(nodeToMerge.getPath(),
-                superuser.getWorkspace().getName(), true, false);
-        if (iter.hasNext()) {
-            StringBuffer failed = new StringBuffer();
-            while (iter.hasNext()) {
-                failed.append(iter.nextNode().getPath());
-                failed.append(", ");
-            }
-            fail("Merge must not fail. failed nodes: " + failed);
-            return;
+        if (activityNode != null) {
+            superuser.getWorkspace().getVersionManager().removeActivity(activityNode);
+            activityNode = null;
         }
-
-        String p1 = nodeToMerge.getProperty(propertyName1).getString();
-        String p2 = nodeToMerge.getProperty(nodeName2 + "/" + propertyName1).getString();
-        assertEquals("Recurisve merge did not restore property on level 1.", newValue, p1);
-        assertEquals("Recurisve merge did not restore property on level 2.", newValue, p2);
-
+        super.tearDown();
     }
 
-    public void testMergeShallow() throws RepositoryException {
-        String oldP2 = nodeToMerge.getProperty(nodeName2 + "/" + propertyName1).getString();
+    public void testMergeActivity() throws RepositoryException {
+        String p1 = testRootNodeW2.getProperty(nodeName1 + "/" + propertyName1).getString();
+        String p2 = testRootNodeW2.getProperty(nodeName2 + "/" + propertyName1).getString();
+        assertEquals("Cloned node has wrong property on node 1.", nodeName1, p1);
+        assertEquals("Cloned node has wrong property on node 2.", nodeName2, p2);
 
         VersionManager vm2 = testRootNodeW2.getSession().getWorkspace().getVersionManager();
-        NodeIterator iter = vm2.merge(nodeToMerge.getPath(),
-                superuser.getWorkspace().getName(), true, true);
+        NodeIterator iter = vm2.merge(activityNode);
         if (iter.hasNext()) {
             StringBuffer failed = new StringBuffer();
             while (iter.hasNext()) {
@@ -89,11 +66,10 @@
             return;
         }
 
-        String p1 = nodeToMerge.getProperty(propertyName1).getString();
-        String p2 = nodeToMerge.getProperty(nodeName2 + "/" + propertyName1).getString();
-        assertEquals("Shallow merge did not restore property on level 1.", newValue, p1);
-        assertEquals("Shallow merge did restore property on level 2.", oldP2, p2);
-
+        p1 = testRootNodeW2.getProperty(nodeName1 + "/" + propertyName1).getString();
+        p2 = testRootNodeW2.getProperty(nodeName2 + "/" + propertyName1).getString();
+        assertEquals("Activity merge did not restore property on node 1.", newValue, p1);
+        assertEquals("Activity merge did not restore property on node 2.", newValue, p2);
     }
 
     /**
@@ -103,21 +79,17 @@
 
         VersionManager versionManager = testRootNode.getSession().getWorkspace().getVersionManager();
 
-        // create a versionable node
-        // nodeName1
-        Node topVNode = testRootNode.addNode(nodeName1, versionableNodeType);
-        topVNode.setProperty(propertyName1, topVNode.getName());
-        String path = topVNode.getPath();
-
-        // create a versionable sub node
-        // nodeName1/nodeName2
-        Node subNvNode = topVNode.addNode(nodeName2, versionableNodeType);
-        subNvNode.setProperty(propertyName1, subNvNode.getName());
-        String path2 = subNvNode.getPath();
+        // create 2 a versionable nodes
+        Node node1 = testRootNode.addNode(nodeName1, versionableNodeType);
+        node1.setProperty(propertyName1, nodeName1);
+        String path1 = node1.getPath();
+        Node node2 = testRootNode.addNode(nodeName2, versionableNodeType);
+        node2.setProperty(propertyName1, nodeName2);
+        String path2 = node2.getPath();
 
         // save default workspace
         testRootNode.getSession().save();
-        versionManager.checkin(path);
+        versionManager.checkin(path1);
         versionManager.checkin(path2);
 
         log.println("test nodes created successfully on " + workspace.getName());
@@ -125,25 +97,25 @@
         // clone the newly created node from src workspace into second workspace
         // todo clone on testRootNode does not seem to work.
         // workspaceW2.clone(workspace.getName(), testRootNode.getPath(), testRootNode.getPath(), true);
-        workspaceW2.clone(workspace.getName(), topVNode.getPath(), topVNode.getPath(), true);
-        log.println(topVNode.getPath() + " cloned on " + superuserW2.getWorkspace().getName() + " at " + topVNode.getPath());
+        workspaceW2.clone(workspace.getName(), path1, path1, true);
+        workspaceW2.clone(workspace.getName(), path2, path2, true);
 
         testRootNodeW2 = (Node) superuserW2.getItem(testRoot);
 
-        versionManager.checkout(path);
-        versionManager.checkout(path2);
+        activityNode = versionManager.createActivity("foobar");
+        versionManager.setActivity(activityNode);
 
         // update properties on source nodes
-        newValue = String.valueOf(System.currentTimeMillis());
 
-        Node n1 = testRootNode.getNode(nodeName1);
-        n1.setProperty(propertyName1, newValue);
-        Node n2 = n1.getNode(nodeName2);
-        n2.setProperty(propertyName1, newValue);
+        versionManager.checkout(path1);
+        versionManager.checkout(path2);
+
+        newValue = String.valueOf(System.currentTimeMillis());
+        node1.setProperty(propertyName1, newValue);
+        node2.setProperty(propertyName1, newValue);
         testRootNode.getSession().save();
 
-        VersionManager vm1 = testRootNode.getSession().getWorkspace().getVersionManager();
-        vm1.checkpoint(n2.getPath());
-        vm1.checkpoint(n1.getPath());
+        versionManager.checkin(path1);
+        versionManager.checkin(path2);
     }
 }
\ No newline at end of file

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/RestoreTest.java Wed Aug  5 21:13:45 2009
@@ -150,7 +150,7 @@
      */
     public void testRestoreOnCheckedInNodeJcr2_2() throws RepositoryException {
         versionManager.checkin(versionableNode.getPath());
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
     }
 
     /**
@@ -197,7 +197,7 @@
      * @throws RepositoryException
      */
     public void testRestoreOnCheckedOutNodeJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
     }
 
     /**
@@ -244,7 +244,7 @@
      * @throws RepositoryException
      */
     public void testRestoreSetsIsCheckedOutToFalseJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
         assertFalse("Restoring a node sets the jcr:isCheckedOut property to false", versionManager.isCheckedOut(versionableNode.getPath()));
     }
 
@@ -296,7 +296,7 @@
      * @throws RepositoryException
      */
     public void testRestoreCorrectPropertyJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
         String value = versionableNode.getProperty(propertyName1).getString();
         assertEquals("Restoring a node must set the correct property.", propertyValue1, value);
     }
@@ -351,7 +351,7 @@
      * @throws javax.jcr.RepositoryException
      */
     public void testRestoreSetsBaseVersionJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
         Version baseV = versionManager.getBaseVersion(versionableNode.getPath());
         assertTrue("Restoring a node must set node's base version in order to point to the restored version.", version.isSame(baseV));
     }
@@ -421,7 +421,7 @@
         // modify node without calling save()
         try {
             versionableNode.setProperty(propertyName1, propertyValue);
-            versionManager.restore(versionableNode.getPath(), version, true);
+            versionManager.restore(version, true);
 
             fail("InvalidItemStateException must be thrown on attempt to restore a node having any unsaved changes pending.");
         } catch (InvalidItemStateException e) {
@@ -570,21 +570,6 @@
      * @throws RepositoryException
      * @see Node#restore(String, boolean)
      */
-    public void testRestoreNonVersionableNodeJcr2() throws RepositoryException {
-        try {
-            versionManager.restore(nonVersionableNode.getPath(), version, true);
-            fail("trying to restore on a non versionable node must throw UnsupportedRepositoryOperationException");
-        } catch (UnsupportedRepositoryOperationException e) {
-            //success
-        }
-    }
-
-    /**
-     * Test restoring on a non-versionable node.
-     *
-     * @throws RepositoryException
-     * @see Node#restore(String, boolean)
-     */
     public void testRestoreNonVersionableNodeJcr2_2() throws RepositoryException {
         try {
             versionManager.restore(nonVersionableNode.getPath(), "foo", true);
@@ -632,21 +617,6 @@
      * @throws RepositoryException
      * @see Node#restore(Version, boolean)
      */
-    public void testRestoreNonVersionableNode3Jcr2() throws RepositoryException {
-        try {
-            versionManager.restore(nonVersionableNode.getPath(), version, true);
-            fail("Node.restore(Version, boolean) on a non versionable node must throw UnsupportedRepositoryOperationException");
-        } catch (UnsupportedRepositoryOperationException e) {
-            //success
-        }
-    }
-
-    /**
-     * Test restoring on a non-versionable node.
-     *
-     * @throws RepositoryException
-     * @see Node#restore(Version, boolean)
-     */
     public void testRestoreNonVersionableNode3Jcr2_2() throws RepositoryException {
         try {
             versionManager.restore(nonVersionableNode.getPath(), version.getName(), true);
@@ -753,7 +723,7 @@
             versionManager.checkout(versionableNode.getPath());
             superuser.move(naa.getPath(), versionableNode2.getPath() + "/" + naa.getName());
             superuser.save();
-            versionManager.restore(versionableNode.getPath(), v, false);
+            versionManager.restore(v, false);
 
             fail("Node.restore( Version, boolean ): An ItemExistsException must be thrown if the node to be restored already exsits and removeExisting was set to false.");
         } catch (ItemExistsException e) {
@@ -858,14 +828,14 @@
         versionManager.checkout(versionableNode.getPath());
         Version v2 = versionManager.checkin(versionableNode.getPath());
 
-        versionManager.restore(versionableNode.getPath(), v1, true);
+        versionManager.restore(v1, true);
         assertTrue("Node.restore('1.2') must not remove child node.", versionableNode.hasNode("child1"));
 
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
         assertFalse("Node.restore('1.0') must remove child node.", versionableNode.hasNode("child1"));
 
         try {
-            versionManager.restore(versionableNode.getPath(), v2, true);
+            versionManager.restore(v2, true);
         } catch (RepositoryException e) {
             fail("Node.restore('1.3') must fail.");
         }
@@ -1140,7 +1110,7 @@
         versionManager.checkout(testRoot.getPath());
 
         // restore version 1.0
-        versionManager.restore(testRoot.getPath(), v1, true);
+        versionManager.restore(v1, true);
 
         // check order
         NodeIterator iter = testRoot.getNodes();
@@ -1345,7 +1315,7 @@
         versionManager.checkin(testRoot.getPath());
 
         // restore version 1.0
-        versionManager.restore(testRoot.getPath(), v1, true);
+        versionManager.restore(v1, true);
 
         // check order
         NodeIterator iter = testRoot.getNodes();
@@ -1386,7 +1356,7 @@
         versionManager.checkin(testRoot.getPath());
 
         // restore version 1.0
-        versionManager.restore(testRoot.getPath(), v1, true);
+        versionManager.restore(v1, true);
 
         // check order
         NodeIterator iter = testRoot.getNodes();

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/TestAll.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/TestAll.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/TestAll.java Wed Aug  5 21:13:45 2009
@@ -65,6 +65,7 @@
         suite.addTestSuite(MergeNodeIteratorTest.class);
         suite.addTestSuite(MergeNodeTest.class);
         suite.addTestSuite(MergeShallowTest.class);
+        suite.addTestSuite(MergeActivityTest.class);
         suite.addTestSuite(MergeNonVersionableSubNodeTest.class);
         suite.addTestSuite(MergeSubNodeTest.class);
         

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionHistoryTest.java Wed Aug  5 21:13:45 2009
@@ -999,11 +999,6 @@
             fail("VersionHistory.restore(String,boolean) did not throw an UnsupportedRepositoryOperationException");
         } catch (UnsupportedRepositoryOperationException success) {
         }
-        try {
-            versionManager.restore(vHistory.getPath(), version, true);
-            fail("VersionHistory.restore(Version,boolean) did not throw an UnsupportedRepositoryOperationException");
-        } catch (UnsupportedRepositoryOperationException success) {
-        }
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/VersionTest.java Wed Aug  5 21:13:45 2009
@@ -747,11 +747,6 @@
             fail("Version.restore(String,boolean) did not throw an UnsupportedRepositoryOperationException");
         } catch (UnsupportedRepositoryOperationException success) {
         }
-        try {
-            versionManager.restore(version.getPath(), version2, true);
-            fail("Version.restore(Version,boolean) did not throw an UnsupportedRepositoryOperationException");
-        } catch (UnsupportedRepositoryOperationException success) {
-        }
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/simple/RestoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/simple/RestoreTest.java?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/simple/RestoreTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/version/simple/RestoreTest.java Wed Aug  5 21:13:45 2009
@@ -150,7 +150,13 @@
      */
     public void testRestoreOnCheckedInNodeJcr2_2() throws RepositoryException {
         versionManager.checkin(versionableNode.getPath());
-        versionManager.restore(versionableNode.getPath(), version, true);
+        try {
+            versionManager.restore(versionableNode.getPath(), version, true);
+            fail("VersionManager.restore(String, Version, boolean) must fail on existing nodes.");
+        } catch (RepositoryException e) {
+            // ok
+        }
+        versionManager.restore(version, true);
     }
 
     /**
@@ -197,7 +203,13 @@
      * @throws RepositoryException
      */
     public void testRestoreOnCheckedOutNodeJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        try {
+            versionManager.restore(versionableNode.getPath(), version, true);
+            fail("VersionManager.restore(String, Version, boolean) must fail on existing nodes.");
+        } catch (RepositoryException e) {
+            // ok
+        }
+        versionManager.restore(version, true);
     }
 
     /**
@@ -244,7 +256,13 @@
      * @throws RepositoryException
      */
     public void testRestoreSetsIsCheckedOutToFalseJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        try {
+            versionManager.restore(versionableNode.getPath(), version, true);
+            fail("VersionManager.restore(String, Version, boolean) must fail on existing nodes.");
+        } catch (RepositoryException e) {
+            // ok
+        }
+        versionManager.restore(version, true);
         assertFalse("Restoring a node sets the jcr:isCheckedOut property to false", versionManager.isCheckedOut(versionableNode.getPath()));
     }
 
@@ -296,7 +314,13 @@
      * @throws RepositoryException
      */
     public void testRestoreCorrectPropertyJcr2_2() throws RepositoryException {
-        versionManager.restore(versionableNode.getPath(), version, true);
+        try {
+            versionManager.restore(versionableNode.getPath(), version, true);
+            fail("VersionManager.restore(String, Version, boolean) must fail on existing nodes.");
+        } catch (RepositoryException e) {
+            // ok
+        }
+        versionManager.restore(version, true);
         String value = versionableNode.getProperty(propertyName1).getString();
         assertEquals("Restoring a node must set the correct property.", propertyValue1, value);
     }
@@ -366,7 +390,7 @@
         // modify node without calling save()
         try {
             versionableNode.setProperty(propertyName1, propertyValue);
-            versionManager.restore(versionableNode.getPath(), version, true);
+            versionManager.restore(version, true);
 
             fail("InvalidItemStateException must be thrown on attempt to restore a node having any unsaved changes pending.");
         } catch (InvalidItemStateException e) {
@@ -515,21 +539,6 @@
      * @throws RepositoryException
      * @see Node#restore(String, boolean)
      */
-    public void testRestoreNonVersionableNodeJcr2() throws RepositoryException {
-        try {
-            versionManager.restore(nonVersionableNode.getPath(), version, true);
-            fail("trying to restore on a non versionable node must throw UnsupportedRepositoryOperationException");
-        } catch (UnsupportedRepositoryOperationException e) {
-            //success
-        }
-    }
-
-    /**
-     * Test restoring on a non-versionable node.
-     *
-     * @throws RepositoryException
-     * @see Node#restore(String, boolean)
-     */
     public void testRestoreNonVersionableNodeJcr2_2() throws RepositoryException {
         try {
             versionManager.restore(nonVersionableNode.getPath(), "foo", true);
@@ -577,21 +586,6 @@
      * @throws RepositoryException
      * @see Node#restore(Version, boolean)
      */
-    public void testRestoreNonVersionableNode3Jcr2() throws RepositoryException {
-        try {
-            versionManager.restore(nonVersionableNode.getPath(), version, true);
-            fail("Node.restore(Version, boolean) on a non versionable node must throw UnsupportedRepositoryOperationException");
-        } catch (UnsupportedRepositoryOperationException e) {
-            //success
-        }
-    }
-
-    /**
-     * Test restoring on a non-versionable node.
-     *
-     * @throws RepositoryException
-     * @see Node#restore(Version, boolean)
-     */
     public void testRestoreNonVersionableNode3Jcr2_2() throws RepositoryException {
         try {
             versionManager.restore(nonVersionableNode.getPath(), version.getName(), true);
@@ -698,7 +692,7 @@
             versionManager.checkout(versionableNode.getPath());
             superuser.move(naa.getPath(), versionableNode2.getPath() + "/" + naa.getName());
             superuser.save();
-            versionManager.restore(versionableNode.getPath(), v, false);
+            versionManager.restore(v, false);
 
             fail("Node.restore( Version, boolean ): An ItemExistsException must be thrown if the node to be restored already exsits and removeExisting was set to false.");
         } catch (ItemExistsException e) {
@@ -803,14 +797,14 @@
         versionManager.checkout(versionableNode.getPath());
         Version v2 = versionManager.checkin(versionableNode.getPath());
 
-        versionManager.restore(versionableNode.getPath(), v1, true);
+        versionManager.restore(v1, true);
         assertTrue("Node.restore('1.2') must not remove child node.", versionableNode.hasNode("child1"));
 
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
         assertFalse("Node.restore('1.0') must remove child node.", versionableNode.hasNode("child1"));
 
         try {
-            versionManager.restore(versionableNode.getPath(), v2, true);
+            versionManager.restore(v2, true);
         } catch (RepositoryException e) {
             fail("Node.restore('1.3') must fail.");
         }
@@ -1074,7 +1068,7 @@
         versionManager.checkout(testRoot.getPath());
 
         // restore version 1.0
-        versionManager.restore(testRoot.getPath(), v1, true);
+        versionManager.restore(v1, true);
 
         // check order
         NodeIterator iter = testRoot.getNodes();
@@ -1279,7 +1273,7 @@
         versionManager.checkin(testRoot.getPath());
 
         // restore version 1.0
-        versionManager.restore(testRoot.getPath(), v1, true);
+        versionManager.restore(v1, true);
 
         // check order
         NodeIterator iter = testRoot.getNodes();
@@ -1320,7 +1314,7 @@
         versionManager.checkin(testRoot.getPath());
 
         // restore version 1.0
-        versionManager.restore(testRoot.getPath(), v1, true);
+        versionManager.restore(v1, true);
 
         // check order
         NodeIterator iter = testRoot.getNodes();
@@ -1438,7 +1432,7 @@
             expected.append(iter.nextVersion().getName()).append(",");
         }
         // restore version
-        versionManager.restore(versionableNode.getPath(), version, true);
+        versionManager.restore(version, true);
         // append new base version
         expected.append(versionManager.getBaseVersion(versionableNode.getPath()).getName()).append(",");
 

Modified: jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml?rev=801413&r1=801412&r2=801413&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml (original)
+++ jackrabbit/trunk/jackrabbit-spi2jcr/pom.xml Wed Aug  5 21:13:45 2009
@@ -72,6 +72,7 @@
                 org.apache.jackrabbit.test.api.ShareableNodeTest
                 org.apache.jackrabbit.test.api.version.simple
                 org.apache.jackrabbit.test.api.version.ActivitiesTest
+                org.apache.jackrabbit.test.api.version.MergeActivityTest
                 org.apache.jackrabbit.test.api.version.ConfigurationsTest
                 org.apache.jackrabbit.test.api.LifecycleTest
                 org.apache.jackrabbit.test.api.RepositoryDescriptorTest#testRequiredDescriptors



Mime
View raw message