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 2015/05/21 14:12:13 UTC

svn commit: r1680841 [5/6] - in /jackrabbit/branches/2.0: jackrabbit-api/src/main/java/org/apache/jackrabbit/api/ jackrabbit-api/src/main/java/org/apache/jackrabbit/api/management/ jackrabbit-api/src/main/java/org/apache/jackrabbit/api/observation/ jac...

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/WorkspaceImport.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/WorkspaceImport.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/WorkspaceImport.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/WorkspaceImport.java Thu May 21 12:12:11 2015
@@ -1,110 +1,110 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi.operation;
-
-import org.apache.jackrabbit.jcr2spi.state.NodeState;
-import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
-import org.apache.jackrabbit.spi.NodeId;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.AccessDeniedException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.UnsupportedRepositoryOperationException;
-import javax.jcr.ImportUUIDBehavior;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import java.io.InputStream;
-
-/**
- * <code>WorkspaceImport</code>...
- */
-public class WorkspaceImport extends AbstractOperation {
-
-    private final NodeState nodeState;
-    private final InputStream xmlStream;
-    private final int uuidBehaviour;
-
-    private WorkspaceImport(NodeState nodeState, InputStream xmlStream, int uuidBehaviour) {
-        if (nodeState == null || xmlStream == null) {
-            throw new IllegalArgumentException();
-        }
-        this.nodeState = nodeState;
-        this.xmlStream = xmlStream;
-        this.uuidBehaviour = uuidBehaviour;
-
-        // NOTE: affected-states only needed for transient modifications
-    }
-
-    //----------------------------------------------------------< Operation >---
-    /**
-     * @see Operation#accept(OperationVisitor)
-     */
-    public void accept(OperationVisitor visitor) throws RepositoryException, ConstraintViolationException, AccessDeniedException, ItemExistsException, NoSuchNodeTypeException, UnsupportedRepositoryOperationException, VersionException {
-        assert status == STATUS_PENDING;
-        visitor.visit(this);
-    }
-
-    /**
-     * Invalidates the <code>NodeState</code> that has been updated and all
-     * its decendants.
-     *
-     * @see Operation#persisted()
-     */
-    public void persisted() {
-        assert status == STATUS_PENDING;
-        status = STATUS_PERSISTED;
-        NodeEntry entry;
-        if (uuidBehaviour == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING ||
-                uuidBehaviour == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING) {
-            // invalidate the complete tree
-            entry = nodeState.getNodeEntry();
-            while (entry.getParent() != null) {
-                entry = entry.getParent();
-            }
-            entry.invalidate(true);
-        } else {
-            // import only added new items below the import target. therefore
-            // recursive invalidation is not required. // TODO correct?
-            nodeState.getNodeEntry().invalidate(false);
-        }
-    }
-
-    //----------------------------------------< Access Operation Parameters >---
-    public NodeId getNodeId() throws RepositoryException {
-        return nodeState.getNodeId();
-    }
-
-    public InputStream getXmlStream() {
-        return xmlStream;
-    }
-
-    public int getUuidBehaviour() {
-        return uuidBehaviour;
-    }
-
-    //------------------------------------------------------------< Factory >---
-    /**
-     *
-     * @param nodeState
-     * @param xmlStream
-     * @return
-     */
-    public static Operation create(NodeState nodeState, InputStream xmlStream, int uuidBehaviour) {
-        return new WorkspaceImport(nodeState, xmlStream, uuidBehaviour);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi.operation;
+
+import org.apache.jackrabbit.jcr2spi.state.NodeState;
+import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
+import org.apache.jackrabbit.spi.NodeId;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.AccessDeniedException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.ImportUUIDBehavior;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import java.io.InputStream;
+
+/**
+ * <code>WorkspaceImport</code>...
+ */
+public class WorkspaceImport extends AbstractOperation {
+
+    private final NodeState nodeState;
+    private final InputStream xmlStream;
+    private final int uuidBehaviour;
+
+    private WorkspaceImport(NodeState nodeState, InputStream xmlStream, int uuidBehaviour) {
+        if (nodeState == null || xmlStream == null) {
+            throw new IllegalArgumentException();
+        }
+        this.nodeState = nodeState;
+        this.xmlStream = xmlStream;
+        this.uuidBehaviour = uuidBehaviour;
+
+        // NOTE: affected-states only needed for transient modifications
+    }
+
+    //----------------------------------------------------------< Operation >---
+    /**
+     * @see Operation#accept(OperationVisitor)
+     */
+    public void accept(OperationVisitor visitor) throws RepositoryException, ConstraintViolationException, AccessDeniedException, ItemExistsException, NoSuchNodeTypeException, UnsupportedRepositoryOperationException, VersionException {
+        assert status == STATUS_PENDING;
+        visitor.visit(this);
+    }
+
+    /**
+     * Invalidates the <code>NodeState</code> that has been updated and all
+     * its decendants.
+     *
+     * @see Operation#persisted()
+     */
+    public void persisted() {
+        assert status == STATUS_PENDING;
+        status = STATUS_PERSISTED;
+        NodeEntry entry;
+        if (uuidBehaviour == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING ||
+                uuidBehaviour == ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING) {
+            // invalidate the complete tree
+            entry = nodeState.getNodeEntry();
+            while (entry.getParent() != null) {
+                entry = entry.getParent();
+            }
+            entry.invalidate(true);
+        } else {
+            // import only added new items below the import target. therefore
+            // recursive invalidation is not required. // TODO correct?
+            nodeState.getNodeEntry().invalidate(false);
+        }
+    }
+
+    //----------------------------------------< Access Operation Parameters >---
+    public NodeId getNodeId() throws RepositoryException {
+        return nodeState.getNodeId();
+    }
+
+    public InputStream getXmlStream() {
+        return xmlStream;
+    }
+
+    public int getUuidBehaviour() {
+        return uuidBehaviour;
+    }
+
+    //------------------------------------------------------------< Factory >---
+    /**
+     *
+     * @param nodeState
+     * @param xmlStream
+     * @return
+     */
+    public static Operation create(NodeState nodeState, InputStream xmlStream, int uuidBehaviour) {
+        return new WorkspaceImport(nodeState, xmlStream, uuidBehaviour);
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/WorkspaceImport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMixedTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMixedTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMixedTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMixedTest.java Thu May 21 12:12:11 2015
@@ -1,44 +1,44 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.lock.LockException;
-
-/**
- * <code>ReorderMixedTest</code>...
- */
-public class ReorderMixedTest extends ReorderTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderMixedTest.class);
-
-    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
-        child1 = testRootNode.addNode(nodeName2, testNodeType);
-        child2 = testRootNode.addNode(nodeName4, testNodeType);
-        child3 = testRootNode.addNode(nodeName2, testNodeType);
-        child4 = testRootNode.addNode(nodeName2, testNodeType);
-
-        testRootNode.save();
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.lock.LockException;
+
+/**
+ * <code>ReorderMixedTest</code>...
+ */
+public class ReorderMixedTest extends ReorderTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderMixedTest.class);
+
+    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
+        child1 = testRootNode.addNode(nodeName2, testNodeType);
+        child2 = testRootNode.addNode(nodeName4, testNodeType);
+        child3 = testRootNode.addNode(nodeName2, testNodeType);
+        child4 = testRootNode.addNode(nodeName2, testNodeType);
+
+        testRootNode.save();
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMixedTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMoveTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMoveTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMoveTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMoveTest.java Thu May 21 12:12:11 2015
@@ -1,257 +1,257 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.apache.jackrabbit.spi.Path;
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-import org.apache.jackrabbit.util.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.ItemNotFoundException;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.RepositoryException;
-
-/**
- * <code>ReorderMoveTest</code> testing various combinations of move/rename
- * and reorder with and without intermediate save, revert and other transient
- * modifications.
- */
-public class ReorderMoveTest extends AbstractJCRTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderMoveTest.class);
-
-    private Node destParent;
-    private Node srcParent;
-    private String destPath;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-        if (!testRootNode.getPrimaryNodeType().hasOrderableChildNodes()) {
-            throw new NotExecutableException("Test node does not have orderable children.");
-        }
-
-        // create move-destination
-        destParent = testRootNode.addNode(nodeName4, testNodeType);
-        srcParent = testRootNode.addNode(nodeName2, testNodeType);
-
-        destPath = destParent.getPath() + "/" + nodeName3;
-        testRootNode.save();
-    }
-
-    protected void tearDown() throws Exception {
-        destParent = null;
-        srcParent = null;
-        super.tearDown();
-    }
-
-   private Node[] createOrderableChildren(boolean sns) throws RepositoryException {
-        String[] childNames;
-        if (sns) {
-            childNames = new String[] {nodeName2, nodeName2, nodeName2, nodeName2};
-        } else {
-            childNames = new String[] {nodeName1, nodeName2, nodeName3, nodeName4};
-        }
-        Node[] children = new Node[4];
-        children[0] = srcParent.addNode(childNames[0], testNodeType);
-        children[1] = srcParent.addNode(childNames[1], testNodeType);
-        children[2] = srcParent.addNode(childNames[2], testNodeType);
-        children[3] = srcParent.addNode(childNames[3], testNodeType);
-
-        testRootNode.save();
-        return children;
-   }
-
-    private static String getRelPath(Node child) throws RepositoryException {
-        if (child == null) {
-            return null;
-        }
-        String path = child.getPath();
-        return path.substring(path.lastIndexOf('/')+1);
-    }
-
-    private static void testOrder(Node parent, Node[] children) throws RepositoryException {
-        NodeIterator it = parent.getNodes();
-        int i = 0;
-        while (it.hasNext()) {
-            Node child = it.nextNode();
-            // TODO: check for sameNess must be replaced by 'isSame' for generic JCR impl
-            // assertTrue(child.isSame(children[i]));
-            assertSame(child, children[i]);
-            i++;
-        }
-    }
-
-    /**
-     * Move a orderable child node and reorder the remaining nodes.
-     */
-    public void testMoveAndReorder() throws RepositoryException {
-        Node[] children = createOrderableChildren(false);
-        String oldName = children[2].getName();
-        // move
-        testRootNode.getSession().move(children[2].getPath(), destPath);
-        // reorder
-        srcParent.orderBefore(getRelPath(children[1]), null);
-        testOrder(srcParent, new Node[] {children[0], children[3], children[1]});
-
-        testRootNode.save();
-        testOrder(srcParent, new Node[] {children[0], children[3], children[1]});
-        assertFalse(srcParent.hasNode(oldName));
-    }
-
-    /**
-     * Move a orderable SNS-node and reorder the remaining nodes at source-parent.
-     */
-    public void testMoveAndReorderSNS() throws RepositoryException {
-        Node[] children = createOrderableChildren(true);
-        String snsName = children[0].getName();
-
-        // move
-        testRootNode.getSession().move(children[2].getPath(), destPath);
-        testRootNode.getSession().move(children[1].getPath(), destPath);
-
-        // reorder
-        srcParent.orderBefore(getRelPath(children[0]), null);
-        testOrder(srcParent, new Node[] {children[3], children[0]});
-        assertTrue(srcParent.hasNode(snsName+"[1]"));
-        assertTrue(srcParent.hasNode(snsName+"[2]"));
-        assertFalse(srcParent.hasNode(snsName+"[3]"));
-        assertFalse(srcParent.hasNode(snsName+"[4]"));
-        assertFalse(srcParent.hasNode(snsName+"[5]"));
-
-        testRootNode.save();
-        testOrder(srcParent, new Node[] {children[3], children[0]});
-        assertTrue(srcParent.hasNode(snsName+"[1]"));
-        assertTrue(srcParent.hasNode(snsName+"[2]"));
-        assertFalse(srcParent.hasNode(snsName+"[3]"));
-        assertFalse(srcParent.hasNode(snsName+"[4]"));
-        assertFalse(srcParent.hasNode(snsName+"[5]"));
-
-        // check if move have been successful
-        assertEquals(children[2].getPath(), destPath);
-        assertTrue(children[2].getIndex() == Path.INDEX_DEFAULT);
-        assertEquals(children[1].getPath(), destPath+"[2]");
-    }
-
-    /**
-     * Reorder nodes and move one of the reordered siblings
-     * away. Test the ordering of the remaining siblings.
-     */
-    public void testReorderAndMove() throws RepositoryException {
-        Node[] children = createOrderableChildren(false);
-
-        // reorder first
-        srcParent.orderBefore(getRelPath(children[0]), null);
-        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[1]));
-        // move
-        testRootNode.getSession().move(children[3].getPath(), destPath);
-
-        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
-
-        testRootNode.save();
-        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
-    }
-
-    /**
-     * Reorder same-name-sibling nodes and move one of the reordered siblings
-     * away. Test the ordering of the remaining siblings.
-     */
-    public void testReorderAndMoveSNS() throws RepositoryException {
-        Node[] children = createOrderableChildren(true);
-
-        // reorder first
-        srcParent.orderBefore(getRelPath(children[0]), null);
-        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[1]));
-        // move
-        testRootNode.getSession().move(children[3].getPath(), destPath);
-
-        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
-
-        testRootNode.save();
-        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
-    }
-
-    /**
-     * Any attempt reorder a moved node at its original position must fail.
-     */
-    public void testReorderMovedNode() throws RepositoryException {
-        Node[] children = createOrderableChildren(false);
-
-        String relPath = getRelPath(children[2]);
-        testRootNode.getSession().move(children[2].getPath(), destPath);
-
-        try {
-            srcParent.orderBefore(relPath, null);
-            fail("Reordering a child node that has been moved away must fail.");
-        } catch (ItemNotFoundException e) {
-            // ok
-        }
-    }
-
-    /**
-     * Move a SNS-node and reorder its original siblings afterwards.
-     * Test if reverting the changes results in the original ordering and
-     * hierarchy.
-     */
-    public void testRevertMoveAndReorderSNS() throws RepositoryException {
-        Node[] children = createOrderableChildren(true);
-        // move then reorder
-        testRootNode.getSession().move(children[2].getPath(), destPath);
-        srcParent.orderBefore(getRelPath(children[1]), null);
-        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[0]));
-
-        testRootNode.refresh(false);
-        testOrder(srcParent, new Node[] {children[0], children[1], children[2], children[3]});
-        assertFalse(destParent.hasNode(Text.getName(destPath)));
-    }
-
-    /**
-     * Move a SNS-node, that got its siblings reordered before.
-     * Test if reverting the changes results in the original ordering and
-     * hierarchy.
-     */
-    public void testRevertReorderAndMoveSNS() throws RepositoryException {
-        Node[] children = createOrderableChildren(true);
-        // reorder then move
-        srcParent.orderBefore(getRelPath(children[1]), null);
-        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[2]));
-        srcParent.getSession().move(children[2].getPath(), destPath);
-
-        testRootNode.refresh(false);
-        testOrder(srcParent, new Node[] {children[0], children[1], children[2], children[3]});
-        assertFalse(destParent.hasNode(Text.getName(destPath)));
-    }
-
-    /**
-     * Move a SNS-node, that has been reordered before.
-     * Test if reverting the changes results in the original ordering and
-     * hierarchy.
-     */
-    public void testRevertMoveReorderedSNS() throws RepositoryException {
-        Node[] children = createOrderableChildren(true);
-        // reorder then move
-        srcParent.orderBefore(getRelPath(children[1]), null);
-        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[2]));
-        srcParent.getSession().move(children[1].getPath(), destPath);
-
-        testRootNode.refresh(false);
-        testOrder(srcParent, new Node[] {children[0], children[1], children[2], children[3]});
-        assertFalse(destParent.hasNode(Text.getName(destPath)));
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+import org.apache.jackrabbit.util.Text;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.ItemNotFoundException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.RepositoryException;
+
+/**
+ * <code>ReorderMoveTest</code> testing various combinations of move/rename
+ * and reorder with and without intermediate save, revert and other transient
+ * modifications.
+ */
+public class ReorderMoveTest extends AbstractJCRTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderMoveTest.class);
+
+    private Node destParent;
+    private Node srcParent;
+    private String destPath;
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        if (!testRootNode.getPrimaryNodeType().hasOrderableChildNodes()) {
+            throw new NotExecutableException("Test node does not have orderable children.");
+        }
+
+        // create move-destination
+        destParent = testRootNode.addNode(nodeName4, testNodeType);
+        srcParent = testRootNode.addNode(nodeName2, testNodeType);
+
+        destPath = destParent.getPath() + "/" + nodeName3;
+        testRootNode.save();
+    }
+
+    protected void tearDown() throws Exception {
+        destParent = null;
+        srcParent = null;
+        super.tearDown();
+    }
+
+   private Node[] createOrderableChildren(boolean sns) throws RepositoryException {
+        String[] childNames;
+        if (sns) {
+            childNames = new String[] {nodeName2, nodeName2, nodeName2, nodeName2};
+        } else {
+            childNames = new String[] {nodeName1, nodeName2, nodeName3, nodeName4};
+        }
+        Node[] children = new Node[4];
+        children[0] = srcParent.addNode(childNames[0], testNodeType);
+        children[1] = srcParent.addNode(childNames[1], testNodeType);
+        children[2] = srcParent.addNode(childNames[2], testNodeType);
+        children[3] = srcParent.addNode(childNames[3], testNodeType);
+
+        testRootNode.save();
+        return children;
+   }
+
+    private static String getRelPath(Node child) throws RepositoryException {
+        if (child == null) {
+            return null;
+        }
+        String path = child.getPath();
+        return path.substring(path.lastIndexOf('/')+1);
+    }
+
+    private static void testOrder(Node parent, Node[] children) throws RepositoryException {
+        NodeIterator it = parent.getNodes();
+        int i = 0;
+        while (it.hasNext()) {
+            Node child = it.nextNode();
+            // TODO: check for sameNess must be replaced by 'isSame' for generic JCR impl
+            // assertTrue(child.isSame(children[i]));
+            assertSame(child, children[i]);
+            i++;
+        }
+    }
+
+    /**
+     * Move a orderable child node and reorder the remaining nodes.
+     */
+    public void testMoveAndReorder() throws RepositoryException {
+        Node[] children = createOrderableChildren(false);
+        String oldName = children[2].getName();
+        // move
+        testRootNode.getSession().move(children[2].getPath(), destPath);
+        // reorder
+        srcParent.orderBefore(getRelPath(children[1]), null);
+        testOrder(srcParent, new Node[] {children[0], children[3], children[1]});
+
+        testRootNode.save();
+        testOrder(srcParent, new Node[] {children[0], children[3], children[1]});
+        assertFalse(srcParent.hasNode(oldName));
+    }
+
+    /**
+     * Move a orderable SNS-node and reorder the remaining nodes at source-parent.
+     */
+    public void testMoveAndReorderSNS() throws RepositoryException {
+        Node[] children = createOrderableChildren(true);
+        String snsName = children[0].getName();
+
+        // move
+        testRootNode.getSession().move(children[2].getPath(), destPath);
+        testRootNode.getSession().move(children[1].getPath(), destPath);
+
+        // reorder
+        srcParent.orderBefore(getRelPath(children[0]), null);
+        testOrder(srcParent, new Node[] {children[3], children[0]});
+        assertTrue(srcParent.hasNode(snsName+"[1]"));
+        assertTrue(srcParent.hasNode(snsName+"[2]"));
+        assertFalse(srcParent.hasNode(snsName+"[3]"));
+        assertFalse(srcParent.hasNode(snsName+"[4]"));
+        assertFalse(srcParent.hasNode(snsName+"[5]"));
+
+        testRootNode.save();
+        testOrder(srcParent, new Node[] {children[3], children[0]});
+        assertTrue(srcParent.hasNode(snsName+"[1]"));
+        assertTrue(srcParent.hasNode(snsName+"[2]"));
+        assertFalse(srcParent.hasNode(snsName+"[3]"));
+        assertFalse(srcParent.hasNode(snsName+"[4]"));
+        assertFalse(srcParent.hasNode(snsName+"[5]"));
+
+        // check if move have been successful
+        assertEquals(children[2].getPath(), destPath);
+        assertTrue(children[2].getIndex() == Path.INDEX_DEFAULT);
+        assertEquals(children[1].getPath(), destPath+"[2]");
+    }
+
+    /**
+     * Reorder nodes and move one of the reordered siblings
+     * away. Test the ordering of the remaining siblings.
+     */
+    public void testReorderAndMove() throws RepositoryException {
+        Node[] children = createOrderableChildren(false);
+
+        // reorder first
+        srcParent.orderBefore(getRelPath(children[0]), null);
+        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[1]));
+        // move
+        testRootNode.getSession().move(children[3].getPath(), destPath);
+
+        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
+
+        testRootNode.save();
+        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
+    }
+
+    /**
+     * Reorder same-name-sibling nodes and move one of the reordered siblings
+     * away. Test the ordering of the remaining siblings.
+     */
+    public void testReorderAndMoveSNS() throws RepositoryException {
+        Node[] children = createOrderableChildren(true);
+
+        // reorder first
+        srcParent.orderBefore(getRelPath(children[0]), null);
+        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[1]));
+        // move
+        testRootNode.getSession().move(children[3].getPath(), destPath);
+
+        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
+
+        testRootNode.save();
+        testOrder(srcParent, new Node[] {children[1], children[2], children[0]});
+    }
+
+    /**
+     * Any attempt reorder a moved node at its original position must fail.
+     */
+    public void testReorderMovedNode() throws RepositoryException {
+        Node[] children = createOrderableChildren(false);
+
+        String relPath = getRelPath(children[2]);
+        testRootNode.getSession().move(children[2].getPath(), destPath);
+
+        try {
+            srcParent.orderBefore(relPath, null);
+            fail("Reordering a child node that has been moved away must fail.");
+        } catch (ItemNotFoundException e) {
+            // ok
+        }
+    }
+
+    /**
+     * Move a SNS-node and reorder its original siblings afterwards.
+     * Test if reverting the changes results in the original ordering and
+     * hierarchy.
+     */
+    public void testRevertMoveAndReorderSNS() throws RepositoryException {
+        Node[] children = createOrderableChildren(true);
+        // move then reorder
+        testRootNode.getSession().move(children[2].getPath(), destPath);
+        srcParent.orderBefore(getRelPath(children[1]), null);
+        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[0]));
+
+        testRootNode.refresh(false);
+        testOrder(srcParent, new Node[] {children[0], children[1], children[2], children[3]});
+        assertFalse(destParent.hasNode(Text.getName(destPath)));
+    }
+
+    /**
+     * Move a SNS-node, that got its siblings reordered before.
+     * Test if reverting the changes results in the original ordering and
+     * hierarchy.
+     */
+    public void testRevertReorderAndMoveSNS() throws RepositoryException {
+        Node[] children = createOrderableChildren(true);
+        // reorder then move
+        srcParent.orderBefore(getRelPath(children[1]), null);
+        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[2]));
+        srcParent.getSession().move(children[2].getPath(), destPath);
+
+        testRootNode.refresh(false);
+        testOrder(srcParent, new Node[] {children[0], children[1], children[2], children[3]});
+        assertFalse(destParent.hasNode(Text.getName(destPath)));
+    }
+
+    /**
+     * Move a SNS-node, that has been reordered before.
+     * Test if reverting the changes results in the original ordering and
+     * hierarchy.
+     */
+    public void testRevertMoveReorderedSNS() throws RepositoryException {
+        Node[] children = createOrderableChildren(true);
+        // reorder then move
+        srcParent.orderBefore(getRelPath(children[1]), null);
+        srcParent.orderBefore(getRelPath(children[3]), getRelPath(children[2]));
+        srcParent.getSession().move(children[1].getPath(), destPath);
+
+        testRootNode.refresh(false);
+        testOrder(srcParent, new Node[] {children[0], children[1], children[2], children[3]});
+        assertFalse(destParent.hasNode(Text.getName(destPath)));
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderMoveTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewAndSavedTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewAndSavedTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewAndSavedTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewAndSavedTest.java Thu May 21 12:12:11 2015
@@ -1,61 +1,61 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.Node;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.lock.LockException;
-
-/**
- * <code>ReorderNewAndSavedTest</code>...
- */
-public class ReorderNewAndSavedTest extends ReorderTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderNewAndSavedTest.class);
-
-    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
-        child1 = testRootNode.addNode(nodeName1, testNodeType);
-        child2 = testRootNode.addNode(nodeName2, testNodeType);
-        testRootNode.save();
-
-        child3 = testRootNode.addNode(nodeName3, testNodeType);
-        child4 = testRootNode.addNode(nodeName4, testNodeType);
-    }
-
-    public void testRevertReorder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
-        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
-
-        testRootNode.refresh(false);
-        testOrder(testRootNode, new Node[] { child1, child2 });
-    }
-
-    public void testRevertReorderToEnd() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child1), null);
-        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
-
-        testRootNode.refresh(false);
-        testOrder(testRootNode, new Node[] { child1, child2 });
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.Node;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.lock.LockException;
+
+/**
+ * <code>ReorderNewAndSavedTest</code>...
+ */
+public class ReorderNewAndSavedTest extends ReorderTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderNewAndSavedTest.class);
+
+    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
+        child1 = testRootNode.addNode(nodeName1, testNodeType);
+        child2 = testRootNode.addNode(nodeName2, testNodeType);
+        testRootNode.save();
+
+        child3 = testRootNode.addNode(nodeName3, testNodeType);
+        child4 = testRootNode.addNode(nodeName4, testNodeType);
+    }
+
+    public void testRevertReorder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
+        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
+
+        testRootNode.refresh(false);
+        testOrder(testRootNode, new Node[] { child1, child2 });
+    }
+
+    public void testRevertReorderToEnd() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child1), null);
+        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
+
+        testRootNode.refresh(false);
+        testOrder(testRootNode, new Node[] { child1, child2 });
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewAndSavedTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewSNSTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewSNSTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewSNSTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewSNSTest.java Thu May 21 12:12:11 2015
@@ -1,68 +1,68 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.lock.LockException;
-
-/**
- * <code>ReorderNewSNSTest</code>...
- */
-public class ReorderNewSNSTest extends ReorderTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderNewSNSTest.class);
-
-    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
-        child1 = testRootNode.addNode(nodeName2, testNodeType);
-        child2 = testRootNode.addNode(nodeName2, testNodeType);
-        child3 = testRootNode.addNode(nodeName2, testNodeType);
-        child4 = testRootNode.addNode(nodeName2, testNodeType);
-    }
-
-    public void testRevertReorder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
-        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
-
-        // NEW child nodes -> must be removed upon refresh
-        testRootNode.refresh(false);
-        NodeIterator it = testRootNode.getNodes(nodeName2);
-        if (it.hasNext()) {
-            fail("Reverting creation and reordering of new SNSs must remove the children again.");
-        }
-    }
-
-    public void testRevertReorderToEnd() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child1), null);
-        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
-
-        // NEW child nodes -> must be removed upon refresh
-        testRootNode.refresh(false);
-        NodeIterator it = testRootNode.getNodes(nodeName2);
-        if (it.hasNext()) {
-            fail("Reverting creation and reordering of new SNSs must remove the children again.");
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.lock.LockException;
+
+/**
+ * <code>ReorderNewSNSTest</code>...
+ */
+public class ReorderNewSNSTest extends ReorderTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderNewSNSTest.class);
+
+    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
+        child1 = testRootNode.addNode(nodeName2, testNodeType);
+        child2 = testRootNode.addNode(nodeName2, testNodeType);
+        child3 = testRootNode.addNode(nodeName2, testNodeType);
+        child4 = testRootNode.addNode(nodeName2, testNodeType);
+    }
+
+    public void testRevertReorder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
+        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
+
+        // NEW child nodes -> must be removed upon refresh
+        testRootNode.refresh(false);
+        NodeIterator it = testRootNode.getNodes(nodeName2);
+        if (it.hasNext()) {
+            fail("Reverting creation and reordering of new SNSs must remove the children again.");
+        }
+    }
+
+    public void testRevertReorderToEnd() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child1), null);
+        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
+
+        // NEW child nodes -> must be removed upon refresh
+        testRootNode.refresh(false);
+        NodeIterator it = testRootNode.getNodes(nodeName2);
+        if (it.hasNext()) {
+            fail("Reverting creation and reordering of new SNSs must remove the children again.");
+        }
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewSNSTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewTest.java Thu May 21 12:12:11 2015
@@ -1,68 +1,68 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.lock.LockException;
-
-/**
- * <code>ReorderNewTest</code>...
- */
-public class ReorderNewTest extends ReorderTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderNewTest.class);
-
-    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
-        child1 = testRootNode.addNode(nodeName1, testNodeType);
-        child2 = testRootNode.addNode(nodeName2, testNodeType);
-        child3 = testRootNode.addNode(nodeName3, testNodeType);
-        child4 = testRootNode.addNode(nodeName4, testNodeType);
-    }
-
-    public void testRevertReorder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
-        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
-
-        // NEW child nodes -> must be removed upon refresh
-        testRootNode.refresh(false);
-        NodeIterator it = testRootNode.getNodes();
-        if (it.hasNext()) {
-            fail("Reverting creation and reordering of new children must remove the children again.");
-        }
-    }
-
-    public void testRevertReorderToEnd() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child1), null);
-        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
-
-        // NEW child nodes -> must be removed upon refresh
-        testRootNode.refresh(false);
-        NodeIterator it = testRootNode.getNodes();
-        if (it.hasNext()) {
-            fail("Reverting creation and reordering of new children must remove the children again.");
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.lock.LockException;
+
+/**
+ * <code>ReorderNewTest</code>...
+ */
+public class ReorderNewTest extends ReorderTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderNewTest.class);
+
+    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
+        child1 = testRootNode.addNode(nodeName1, testNodeType);
+        child2 = testRootNode.addNode(nodeName2, testNodeType);
+        child3 = testRootNode.addNode(nodeName3, testNodeType);
+        child4 = testRootNode.addNode(nodeName4, testNodeType);
+    }
+
+    public void testRevertReorder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
+        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
+
+        // NEW child nodes -> must be removed upon refresh
+        testRootNode.refresh(false);
+        NodeIterator it = testRootNode.getNodes();
+        if (it.hasNext()) {
+            fail("Reverting creation and reordering of new children must remove the children again.");
+        }
+    }
+
+    public void testRevertReorderToEnd() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child1), null);
+        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
+
+        // NEW child nodes -> must be removed upon refresh
+        testRootNode.refresh(false);
+        NodeIterator it = testRootNode.getNodes();
+        if (it.hasNext()) {
+            fail("Reverting creation and reordering of new children must remove the children again.");
+        }
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderNewTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderReferenceableSNSTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderReferenceableSNSTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderReferenceableSNSTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderReferenceableSNSTest.java Thu May 21 12:12:11 2015
@@ -1,48 +1,48 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.test.NotExecutableException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Node;
-
-/**
- * <code>ReorderSNSTest</code>...
- */
-public class ReorderReferenceableSNSTest extends ReorderTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderReferenceableSNSTest.class);
-
-    protected void createOrderableChildren() throws RepositoryException, NotExecutableException {
-        child1 = testRootNode.addNode(nodeName2, testNodeType);
-        child2 = testRootNode.addNode(nodeName2, testNodeType);
-        child3 = testRootNode.addNode(nodeName2, testNodeType);
-        child4 = testRootNode.addNode(nodeName2, testNodeType);
-        Node[] children = new Node[] { child1, child2, child3, child4};
-        for (int i = 0; i < children.length; i++) {
-            if (children[i].canAddMixin(mixReferenceable)) {
-                children[i].addMixin(mixReferenceable);
-            } else {
-                throw new NotExecutableException();
-            }
-        }
-        testRootNode.save();
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.jackrabbit.test.NotExecutableException;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Node;
+
+/**
+ * <code>ReorderSNSTest</code>...
+ */
+public class ReorderReferenceableSNSTest extends ReorderTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderReferenceableSNSTest.class);
+
+    protected void createOrderableChildren() throws RepositoryException, NotExecutableException {
+        child1 = testRootNode.addNode(nodeName2, testNodeType);
+        child2 = testRootNode.addNode(nodeName2, testNodeType);
+        child3 = testRootNode.addNode(nodeName2, testNodeType);
+        child4 = testRootNode.addNode(nodeName2, testNodeType);
+        Node[] children = new Node[] { child1, child2, child3, child4};
+        for (int i = 0; i < children.length; i++) {
+            if (children[i].canAddMixin(mixReferenceable)) {
+                children[i].addMixin(mixReferenceable);
+            } else {
+                throw new NotExecutableException();
+            }
+        }
+        testRootNode.save();
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderReferenceableSNSTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderSNSTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderSNSTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderSNSTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderSNSTest.java Thu May 21 12:12:11 2015
@@ -1,72 +1,72 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.ItemExistsException;
-import javax.jcr.Item;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-import javax.jcr.lock.LockException;
-
-/**
- * <code>ReorderSNSTest</code>...
- */
-public class ReorderSNSTest extends ReorderTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderSNSTest.class);
-
-    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
-        child1 = testRootNode.addNode(nodeName2, testNodeType);
-        child2 = testRootNode.addNode(nodeName2, testNodeType);
-        child3 = testRootNode.addNode(nodeName2, testNodeType);
-        child4 = testRootNode.addNode(nodeName2, testNodeType);
-
-        testRootNode.save();
-    }
-
-    public void testIndexAfterReorder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child1), getRelPath(child3));
-        assertTrue(child1.getIndex() == 2);
-        assertTrue(child2.getIndex() == 1);
-        assertTrue(child3.getIndex() == 3);
-        assertTrue(child4.getIndex() == 4);
-
-        testRootNode.save();
-        assertTrue(child1.getIndex() == 2);
-        assertTrue(child2.getIndex() == 1);
-        assertTrue(child3.getIndex() == 3);
-        assertTrue(child4.getIndex() == 4);
-    }
-
-    public void testReorder3() throws RepositoryException {
-        String pathBefore = child3.getPath();
-
-        testRootNode.orderBefore(getRelPath(child3), getRelPath(child1));
-        testRootNode.save();
-
-        Item itemIndex3 = testRootNode.getSession().getItem(pathBefore);
-        assertTrue(itemIndex3.isSame(child2));
-
-        Item item3 = testRootNode.getSession().getItem(child3.getPath());
-        assertTrue(item3.isSame(child3));
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.Item;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.lock.LockException;
+
+/**
+ * <code>ReorderSNSTest</code>...
+ */
+public class ReorderSNSTest extends ReorderTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderSNSTest.class);
+
+    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException {
+        child1 = testRootNode.addNode(nodeName2, testNodeType);
+        child2 = testRootNode.addNode(nodeName2, testNodeType);
+        child3 = testRootNode.addNode(nodeName2, testNodeType);
+        child4 = testRootNode.addNode(nodeName2, testNodeType);
+
+        testRootNode.save();
+    }
+
+    public void testIndexAfterReorder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child1), getRelPath(child3));
+        assertTrue(child1.getIndex() == 2);
+        assertTrue(child2.getIndex() == 1);
+        assertTrue(child3.getIndex() == 3);
+        assertTrue(child4.getIndex() == 4);
+
+        testRootNode.save();
+        assertTrue(child1.getIndex() == 2);
+        assertTrue(child2.getIndex() == 1);
+        assertTrue(child3.getIndex() == 3);
+        assertTrue(child4.getIndex() == 4);
+    }
+
+    public void testReorder3() throws RepositoryException {
+        String pathBefore = child3.getPath();
+
+        testRootNode.orderBefore(getRelPath(child3), getRelPath(child1));
+        testRootNode.save();
+
+        Item itemIndex3 = testRootNode.getSession().getItem(pathBefore);
+        assertTrue(itemIndex3.isSame(child2));
+
+        Item item3 = testRootNode.getSession().getItem(child3.getPath());
+        assertTrue(item3.isSame(child3));
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderSNSTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderTest.java Thu May 21 12:12:11 2015
@@ -1,164 +1,164 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.UnsupportedRepositoryOperationException;
-import javax.jcr.Session;
-import javax.jcr.ItemExistsException;
-import javax.jcr.lock.LockException;
-import javax.jcr.version.VersionException;
-import javax.jcr.nodetype.ConstraintViolationException;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-
-/**
- * <code>ReorderTest</code>...
- */
-public class ReorderTest extends AbstractJCRTest {
-
-    private static Logger log = LoggerFactory.getLogger(ReorderTest.class);
-
-    protected Node child1;
-    protected Node child2;
-    protected Node child3;
-    protected Node child4;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-        if (!testRootNode.getPrimaryNodeType().hasOrderableChildNodes()) {
-            throw new NotExecutableException("Test node does not have orderable children.");
-        }
-        NodeIterator it = testRootNode.getNodes();
-        if (it.hasNext()) {
-            throw new NotExecutableException("Test node already contains child nodes");
-        }
-        createOrderableChildren();
-    }
-
-    protected void tearDown() throws Exception {
-        child1 = null;
-        child2 = null;
-        child3 = null;
-        child4 = null;
-        super.tearDown();
-    }
-
-    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException, NotExecutableException {
-        child1 = testRootNode.addNode(nodeName1, testNodeType);
-        child2 = testRootNode.addNode(nodeName2, testNodeType);
-        child3 = testRootNode.addNode(nodeName3, testNodeType);
-        child4 = testRootNode.addNode(nodeName4, testNodeType);
-
-        testRootNode.save();
-    }
-
-    protected static String getRelPath(Node child) throws RepositoryException {
-        if (child == null) {
-            return null;
-        }
-        String path = child.getPath();
-        return path.substring(path.lastIndexOf('/')+1);
-    }
-
-    protected static void testOrder(Node parent, Node[] children) throws RepositoryException {
-        NodeIterator it = parent.getNodes();
-        int i = 0;
-        while (it.hasNext()) {
-            Node child = it.nextNode();
-            if (i >= children.length) {
-                fail("Reorder added a child node.");
-            }
-            assertTrue("Wrong order of children: " + child + " is not the same as " + children[i], child.isSame(children[i]));
-            i++;
-        }
-
-        if (i < children.length-1) {
-            fail("Reorder removed a child node.");
-        }
-    }
-
-    public void testReorder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child1), getRelPath(child3));
-        testOrder(testRootNode, new Node[] { child2, child1, child3, child4});
-
-        testRootNode.save();
-        testOrder(testRootNode, new Node[] { child2, child1, child3, child4});
-    }
-
-    public void testReorderToEnd() throws RepositoryException, ConstraintViolationException, UnsupportedRepositoryOperationException, VersionException {
-        testRootNode.orderBefore(getRelPath(child2), null);
-        testOrder(testRootNode, new Node[] { child1, child3, child4, child2});
-
-        testRootNode.save();
-        testOrder(testRootNode, new Node[] { child1, child3, child4, child2});
-    }
-
-    public void testRevertReorder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
-        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
-
-        testRootNode.refresh(false);
-        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
-    }
-
-    public void testRevertReorderToEnd() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child1), null);
-        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
-
-        testRootNode.refresh(false);
-        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
-    }
-
-    public void testReorder2() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child3), getRelPath(child1));
-        testRootNode.save();
-
-        Session otherSession = getHelper().getReadOnlySession();
-        try {
-            testOrder((Node) otherSession.getItem(testRootNode.getPath()), new Node[] {child3, child1, child2, child4});
-        } finally {
-            otherSession.logout();
-        }
-    }
-
-    public void testReorderTwice() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child2), null);
-        testRootNode.orderBefore(getRelPath(child4), getRelPath(child1));
-
-        testOrder(testRootNode, new Node[] { child4, child1, child3, child2});
-        testRootNode.save();
-        testOrder(testRootNode, new Node[] { child4, child1, child3, child2});
-    }
-
-    public void testReorderFinallyOriginalOrder() throws RepositoryException {
-        testRootNode.orderBefore(getRelPath(child4), getRelPath(child1));
-        testRootNode.orderBefore(getRelPath(child3), getRelPath(child4));
-        testRootNode.orderBefore(getRelPath(child2), getRelPath(child3));
-        testRootNode.orderBefore(getRelPath(child1), getRelPath(child2));
-
-        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
-        testRootNode.save();
-        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.Session;
+import javax.jcr.ItemExistsException;
+import javax.jcr.lock.LockException;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+
+/**
+ * <code>ReorderTest</code>...
+ */
+public class ReorderTest extends AbstractJCRTest {
+
+    private static Logger log = LoggerFactory.getLogger(ReorderTest.class);
+
+    protected Node child1;
+    protected Node child2;
+    protected Node child3;
+    protected Node child4;
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        if (!testRootNode.getPrimaryNodeType().hasOrderableChildNodes()) {
+            throw new NotExecutableException("Test node does not have orderable children.");
+        }
+        NodeIterator it = testRootNode.getNodes();
+        if (it.hasNext()) {
+            throw new NotExecutableException("Test node already contains child nodes");
+        }
+        createOrderableChildren();
+    }
+
+    protected void tearDown() throws Exception {
+        child1 = null;
+        child2 = null;
+        child3 = null;
+        child4 = null;
+        super.tearDown();
+    }
+
+    protected void createOrderableChildren() throws RepositoryException, LockException, ConstraintViolationException, NoSuchNodeTypeException, ItemExistsException, VersionException, NotExecutableException {
+        child1 = testRootNode.addNode(nodeName1, testNodeType);
+        child2 = testRootNode.addNode(nodeName2, testNodeType);
+        child3 = testRootNode.addNode(nodeName3, testNodeType);
+        child4 = testRootNode.addNode(nodeName4, testNodeType);
+
+        testRootNode.save();
+    }
+
+    protected static String getRelPath(Node child) throws RepositoryException {
+        if (child == null) {
+            return null;
+        }
+        String path = child.getPath();
+        return path.substring(path.lastIndexOf('/')+1);
+    }
+
+    protected static void testOrder(Node parent, Node[] children) throws RepositoryException {
+        NodeIterator it = parent.getNodes();
+        int i = 0;
+        while (it.hasNext()) {
+            Node child = it.nextNode();
+            if (i >= children.length) {
+                fail("Reorder added a child node.");
+            }
+            assertTrue("Wrong order of children: " + child + " is not the same as " + children[i], child.isSame(children[i]));
+            i++;
+        }
+
+        if (i < children.length-1) {
+            fail("Reorder removed a child node.");
+        }
+    }
+
+    public void testReorder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child1), getRelPath(child3));
+        testOrder(testRootNode, new Node[] { child2, child1, child3, child4});
+
+        testRootNode.save();
+        testOrder(testRootNode, new Node[] { child2, child1, child3, child4});
+    }
+
+    public void testReorderToEnd() throws RepositoryException, ConstraintViolationException, UnsupportedRepositoryOperationException, VersionException {
+        testRootNode.orderBefore(getRelPath(child2), null);
+        testOrder(testRootNode, new Node[] { child1, child3, child4, child2});
+
+        testRootNode.save();
+        testOrder(testRootNode, new Node[] { child1, child3, child4, child2});
+    }
+
+    public void testRevertReorder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child4), getRelPath(child2));
+        testOrder(testRootNode, new Node[] { child1, child4, child2, child3});
+
+        testRootNode.refresh(false);
+        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
+    }
+
+    public void testRevertReorderToEnd() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child1), null);
+        testOrder(testRootNode, new Node[] { child2, child3, child4, child1});
+
+        testRootNode.refresh(false);
+        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
+    }
+
+    public void testReorder2() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child3), getRelPath(child1));
+        testRootNode.save();
+
+        Session otherSession = getHelper().getReadOnlySession();
+        try {
+            testOrder((Node) otherSession.getItem(testRootNode.getPath()), new Node[] {child3, child1, child2, child4});
+        } finally {
+            otherSession.logout();
+        }
+    }
+
+    public void testReorderTwice() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child2), null);
+        testRootNode.orderBefore(getRelPath(child4), getRelPath(child1));
+
+        testOrder(testRootNode, new Node[] { child4, child1, child3, child2});
+        testRootNode.save();
+        testOrder(testRootNode, new Node[] { child4, child1, child3, child2});
+    }
+
+    public void testReorderFinallyOriginalOrder() throws RepositoryException {
+        testRootNode.orderBefore(getRelPath(child4), getRelPath(child1));
+        testRootNode.orderBefore(getRelPath(child3), getRelPath(child4));
+        testRootNode.orderBefore(getRelPath(child2), getRelPath(child3));
+        testRootNode.orderBefore(getRelPath(child1), getRelPath(child2));
+
+        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
+        testRootNode.save();
+        testOrder(testRootNode, new Node[] { child1, child2, child3, child4});
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/ReorderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/version/LabelTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/version/LabelTest.java?rev=1680841&r1=1680840&r2=1680841&view=diff
==============================================================================
--- jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/version/LabelTest.java (original)
+++ jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/version/LabelTest.java Thu May 21 12:12:11 2015
@@ -1,76 +1,76 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.jcr2spi.version;
-
-import org.apache.jackrabbit.test.api.version.VersionLabelTest;
-
-import java.util.Arrays;
-import java.util.List;
-import javax.jcr.RepositoryException;
-import javax.jcr.version.Version;
-
-public class LabelTest extends VersionLabelTest {
-
-    public void testRemovedLabel2() throws RepositoryException {
-        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
-        vHistory.removeVersionLabel(versionLabel);
-
-        List labels = Arrays.asList(vHistory.getVersionLabels());
-        assertFalse("VersionHistory.getVersionLabels() must not return a removed label.",labels.contains(versionLabel));
-    }
-
-    public void testRemovedLabel3() throws RepositoryException {
-        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
-        vHistory.removeVersionLabel(versionLabel);
-
-        List labels = Arrays.asList(vHistory.getVersionLabels(rootVersion));
-        assertFalse("VersionHistory.getVersionLabels(Version) must not return a removed label.",labels.contains(versionLabel));
-    }
-
-    public void testMoveLabel2() throws RepositoryException {
-        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
-
-        versionableNode.checkout();
-        Version v = versionableNode.checkin();
-        vHistory.addVersionLabel(v.getName(), versionLabel, true);
-
-        List labels = Arrays.asList(vHistory.getVersionLabels(v));
-        assertTrue(labels.contains(versionLabel));
-    }
-
-    public void testMoveLabel3() throws RepositoryException {
-        versionableNode.checkout();
-        Version v = versionableNode.checkin();
-
-        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
-        vHistory.addVersionLabel(v.getName(), versionLabel, true);
-
-        List labels = Arrays.asList(vHistory.getVersionLabels(rootVersion));
-        assertFalse(labels.contains(versionLabel));
-    }
-
-    public void testMoveLabel4() throws RepositoryException {
-        versionableNode.checkout();
-        Version v = versionableNode.checkin();
-
-        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
-        vHistory.addVersionLabel(v.getName(), versionLabel, true);
-
-        Version v2 = vHistory.getVersionByLabel(versionLabel);
-        assertTrue(v2.isSame(v));
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.jcr2spi.version;
+
+import org.apache.jackrabbit.test.api.version.VersionLabelTest;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.jcr.RepositoryException;
+import javax.jcr.version.Version;
+
+public class LabelTest extends VersionLabelTest {
+
+    public void testRemovedLabel2() throws RepositoryException {
+        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
+        vHistory.removeVersionLabel(versionLabel);
+
+        List labels = Arrays.asList(vHistory.getVersionLabels());
+        assertFalse("VersionHistory.getVersionLabels() must not return a removed label.",labels.contains(versionLabel));
+    }
+
+    public void testRemovedLabel3() throws RepositoryException {
+        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
+        vHistory.removeVersionLabel(versionLabel);
+
+        List labels = Arrays.asList(vHistory.getVersionLabels(rootVersion));
+        assertFalse("VersionHistory.getVersionLabels(Version) must not return a removed label.",labels.contains(versionLabel));
+    }
+
+    public void testMoveLabel2() throws RepositoryException {
+        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
+
+        versionableNode.checkout();
+        Version v = versionableNode.checkin();
+        vHistory.addVersionLabel(v.getName(), versionLabel, true);
+
+        List labels = Arrays.asList(vHistory.getVersionLabels(v));
+        assertTrue(labels.contains(versionLabel));
+    }
+
+    public void testMoveLabel3() throws RepositoryException {
+        versionableNode.checkout();
+        Version v = versionableNode.checkin();
+
+        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
+        vHistory.addVersionLabel(v.getName(), versionLabel, true);
+
+        List labels = Arrays.asList(vHistory.getVersionLabels(rootVersion));
+        assertFalse(labels.contains(versionLabel));
+    }
+
+    public void testMoveLabel4() throws RepositoryException {
+        versionableNode.checkout();
+        Version v = versionableNode.checkin();
+
+        vHistory.addVersionLabel(rootVersion.getName(), versionLabel, false);
+        vHistory.addVersionLabel(v.getName(), versionLabel, true);
+
+        Version v2 = vHistory.getVersionByLabel(versionLabel);
+        assertTrue(v2.isSame(v));
+    }
+}

Propchange: jackrabbit/branches/2.0/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/version/LabelTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/branches/2.0/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/conversion/IdentifierResolver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/branches/2.0/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/name/HashCache.java
------------------------------------------------------------------------------
    svn:eol-style = native