Search in sources :

Example 76 with Node

use of javax.jcr.Node in project jackrabbit by apache.

the class RestoreTest method testRestoreOrder.

/**
     * Test the child ordering of restored nodes.
     * @throws RepositoryException
     */
@SuppressWarnings("deprecation")
public void testRestoreOrder() throws RepositoryException, NotExecutableException {
    // create a test-root that has orderable child nodes
    Node testRoot = versionableNode.addNode(nodeName4, "nt:unstructured");
    ensureMixinType(testRoot, mixVersionable);
    versionableNode.getSession().save();
    // create children of vNode and checkin
    Node child1 = testRoot.addNode(nodeName1);
    ensureMixinType(child1, mixVersionable);
    Node child2 = testRoot.addNode(nodeName2);
    ensureMixinType(child2, mixVersionable);
    testRoot.getSession().save();
    child1.checkin();
    child2.checkin();
    Version v1 = testRoot.checkin();
    // remove node 1
    testRoot.checkout();
    child1.remove();
    testRoot.getSession().save();
    testRoot.checkin();
    // restore version 1.0
    testRoot.restore(v1, true);
    // check order
    NodeIterator iter = testRoot.getNodes();
    assertTrue(testRoot.getName() + " should have 2 child nodes.", iter.hasNext());
    Node n1 = iter.nextNode();
    assertTrue(testRoot.getName() + " should have 2 child nodes.", iter.hasNext());
    Node n2 = iter.nextNode();
    String orderOk = nodeName1 + ", " + nodeName2;
    String order = n1.getName() + ", " + n2.getName();
    assertEquals("Invalid child node ordering", orderOk, order);
}
Also used : NodeIterator(javax.jcr.NodeIterator) Version(javax.jcr.version.Version) Node(javax.jcr.Node)

Example 77 with Node

use of javax.jcr.Node in project jackrabbit by apache.

the class RestoreTest method testRestoreRemoved.

@SuppressWarnings("deprecation")
public void testRestoreRemoved() throws RepositoryException {
    Node parent = versionableNode.getParent();
    String oldName = versionableNode.getName();
    Version v1 = versionableNode.checkin();
    versionableNode.remove();
    versionableNode = null;
    parent.getSession().save();
    parent.restore(v1, oldName, true);
    versionableNode = parent.getNode(oldName);
    String value = versionableNode.getProperty(propertyName1).getString();
    assertEquals("Restoring a node must set the correct property.", propertyValue2, value);
}
Also used : Version(javax.jcr.version.Version) Node(javax.jcr.Node)

Example 78 with Node

use of javax.jcr.Node in project jackrabbit by apache.

the class RestoreTest method testRestoreOrder2Jcr2.

/**
     * Test the child ordering of restored nodes.
     * @throws RepositoryException
     */
public void testRestoreOrder2Jcr2() throws RepositoryException, NotExecutableException {
    // create a test-root that has orderable child nodes
    Node testRoot = versionableNode.addNode(nodeName4, "nt:unstructured");
    ensureMixinType(testRoot, mixVersionable);
    versionableNode.getSession().save();
    // create children of vNode and checkin
    Node child1 = testRoot.addNode(nodeName1);
    ensureMixinType(child1, mixVersionable);
    Node child2 = testRoot.addNode(nodeName2);
    ensureMixinType(child2, mixVersionable);
    testRoot.getSession().save();
    versionManager.checkin(child1.getPath());
    versionManager.checkin(child2.getPath());
    Version v1 = versionManager.checkin(testRoot.getPath());
    // reoder nodes
    versionManager.checkout(testRoot.getPath());
    testRoot.orderBefore(nodeName2, nodeName1);
    testRoot.getSession().save();
    versionManager.checkin(testRoot.getPath());
    // restore version 1.0
    versionManager.restore(v1, true);
    // check order
    NodeIterator iter = testRoot.getNodes();
    assertTrue(testRoot.getName() + " should have 2 child nodes.", iter.hasNext());
    Node n1 = iter.nextNode();
    assertTrue(testRoot.getName() + " should have 2 child nodes.", iter.hasNext());
    Node n2 = iter.nextNode();
    String orderOk = nodeName1 + ", " + nodeName2;
    String order = n1.getName() + ", " + n2.getName();
    assertEquals("Invalid child node ordering", orderOk, order);
}
Also used : NodeIterator(javax.jcr.NodeIterator) Version(javax.jcr.version.Version) Node(javax.jcr.Node)

Example 79 with Node

use of javax.jcr.Node in project jackrabbit by apache.

the class RestoreTest method testRestoreOrderJcr2_3.

/**
     * Test the child ordering of restored nodes.
     * @throws RepositoryException
     */
public void testRestoreOrderJcr2_3() throws RepositoryException, NotExecutableException {
    // create a test-root that has orderable child nodes
    Node testRoot = versionableNode.addNode(nodeName4, "nt:unstructured");
    ensureMixinType(testRoot, mixVersionable);
    versionableNode.getSession().save();
    // create children of vNode and checkin
    Node child1 = testRoot.addNode(nodeName1);
    ensureMixinType(child1, mixVersionable);
    Node child2 = testRoot.addNode(nodeName2);
    ensureMixinType(child2, mixVersionable);
    testRoot.getSession().save();
    versionManager.checkin(child1.getPath());
    versionManager.checkin(child2.getPath());
    Version v1 = versionManager.checkin(testRoot.getPath());
    // remove node 1
    versionManager.checkout(testRoot.getPath());
    child1.remove();
    testRoot.getSession().save();
    versionManager.checkout(testRoot.getPath());
    // restore version 1.0
    versionManager.restore(testRoot.getPath(), v1.getName(), true);
    // check order
    NodeIterator iter = testRoot.getNodes();
    assertTrue(testRoot.getName() + " should have 2 child nodes.", iter.hasNext());
    Node n1 = iter.nextNode();
    assertTrue(testRoot.getName() + " should have 2 child nodes.", iter.hasNext());
    Node n2 = iter.nextNode();
    String orderOk = nodeName1 + ", " + nodeName2;
    String order = n1.getName() + ", " + n2.getName();
    assertEquals("Invalid child node ordering", orderOk, order);
}
Also used : NodeIterator(javax.jcr.NodeIterator) Version(javax.jcr.version.Version) Node(javax.jcr.Node)

Example 80 with Node

use of javax.jcr.Node in project jackrabbit by apache.

the class RestoreTest method testRestoreNameJcr2.

/**
     * Test the restore of the OPV=Version child nodes.
     * @throws RepositoryException
     */
public void testRestoreNameJcr2() throws RepositoryException, NotExecutableException {
    // V1.0 of versionableNode has no child
    Node child1 = versionableNode.addNode(nodeName4);
    ensureMixinType(child1, mixVersionable);
    versionableNode.getSession().save();
    // create v1.0 of child
    Version v1Child = versionManager.checkin(child1.getPath());
    // V1 of versionable node has child1
    String v1 = versionManager.checkin(versionableNode.getPath()).getName();
    // create V1.1 of child
    versionManager.checkout(child1.getPath());
    versionManager.checkin(child1.getPath());
    // V2 of versionable node has child1
    versionManager.checkout(versionableNode.getPath());
    String v2 = versionManager.checkin(versionableNode.getPath()).getName();
    // restore 1.0 of versionable node --> no child
    versionManager.restore(version, true);
    assertFalse("restore must remove child node.", versionableNode.hasNode(nodeName4));
    // restore V1 via name. since child was checkin first, 1.0 should be restored
    versionManager.restore(versionableNode.getPath(), v1, true);
    assertTrue("restore must restore child node.", versionableNode.hasNode(nodeName4));
    child1 = versionableNode.getNode(nodeName4);
    assertEquals("restore must restore child node version 1.0.", v1Child.getName(), versionManager.getBaseVersion(child1.getPath()).getName());
    // JSR283 is more clear about restoring versionable OPV=VERSION nodes
    // and states that an existing one is not restored when the parent
    // is restored (see 15.7.5 Chained Versions on Restore)
    // New JSR283 version:
    // restore V2 via name. child should still be be 1.0
    versionManager.restore(versionableNode.getPath(), v2, true);
    child1 = versionableNode.getNode(nodeName4);
    assertEquals("Node.restore('foo') must not restore child node and keep version 1.0.", v1Child.getName(), versionManager.getBaseVersion(child1.getPath()).getName());
}
Also used : Version(javax.jcr.version.Version) Node(javax.jcr.Node)

Aggregations

Node (javax.jcr.Node)2620 Session (javax.jcr.Session)645 Test (org.junit.Test)643 RepositoryException (javax.jcr.RepositoryException)317 Property (javax.jcr.Property)251 NodeIterator (javax.jcr.NodeIterator)214 JackrabbitNode (org.apache.jackrabbit.api.JackrabbitNode)182 Value (javax.jcr.Value)158 Version (javax.jcr.version.Version)155 NotExecutableException (org.apache.jackrabbit.test.NotExecutableException)151 Query (javax.jcr.query.Query)122 QueryResult (javax.jcr.query.QueryResult)108 Event (javax.jcr.observation.Event)103 VersionManager (javax.jcr.version.VersionManager)97 Resource (org.apache.sling.api.resource.Resource)96 ArrayList (java.util.ArrayList)93 AccessDeniedException (javax.jcr.AccessDeniedException)89 InvalidItemStateException (javax.jcr.InvalidItemStateException)82 ConstraintViolationException (javax.jcr.nodetype.ConstraintViolationException)82 AbstractRepositoryTest (org.apache.jackrabbit.oak.jcr.AbstractRepositoryTest)81