Search in sources :

Example 71 with Node

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

the class VersionHistoryTest method testGetAllFrozenNodes.

/**
     * Test that {@link VersionHistory#getAllFrozenNodes()} returns an iterator
     * containing the frozen nodes of all versions that have been created by
     * {@link VersionManager#checkpoint(String)}.
     *
     * @see javax.jcr.version.VersionHistory#getAllFrozenNodes()
     * @since JCR 2.0
     */
public void testGetAllFrozenNodes() throws RepositoryException {
    VersionManager vm = versionableNode.getSession().getWorkspace().getVersionManager();
    String path = versionableNode.getPath();
    int cnt = 2;
    for (int i = 0; i < cnt; i++) {
        vm.checkpoint(path);
    }
    Set<String> frozenIds = new HashSet<String>();
    for (VersionIterator it = vm.getVersionHistory(path).getAllVersions(); it.hasNext(); ) {
        Version v = it.nextVersion();
        frozenIds.add(v.getFrozenNode().getIdentifier());
    }
    Set<String> test = new HashSet<String>();
    for (NodeIterator it = vHistory.getAllFrozenNodes(); it.hasNext(); ) {
        Node n = it.nextNode();
        assertTrue("Node " + n.getPath() + " must be of type frozen node", n.isNodeType("nt:frozenNode"));
        test.add(n.getIdentifier());
    }
    assertEquals("getAllFrozenNodes must return the IDs of all frozen nodes", frozenIds, test);
}
Also used : NodeIterator(javax.jcr.NodeIterator) Version(javax.jcr.version.Version) Node(javax.jcr.Node) VersionIterator(javax.jcr.version.VersionIterator) VersionManager(javax.jcr.version.VersionManager) HashSet(java.util.HashSet)

Example 72 with Node

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

the class MergeSubNodeTest method disable_testMergeNodeBestEffortTrueJcr2.

/**
     * VersionManager.merge(): bestEffort is true &gt; (sub)node which could not be merged
     * are not affected.<br>
     */
public void disable_testMergeNodeBestEffortTrueJcr2() throws RepositoryException {
    // create 2 new nodes with two independent versions
    // so merge fails for this node
    Node originalNode = testRootNode.getNode(nodeName1);
    VersionManager originalVersionManager = originalNode.getSession().getWorkspace().getVersionManager();
    String originalPath = originalNode.getPath();
    originalVersionManager.checkout(originalPath);
    Node subNode = originalNode.getNode(nodeName2);
    // will be unchanged after merge
    originalVersionManager.checkout(subNode.getPath());
    subNode.setProperty(propertyName1, CHANGED_STRING);
    // will be updated
    originalNode.setProperty(propertyName1, CHANGED_STRING);
    superuser.save();
    originalVersionManager.checkin(subNode.getPath());
    originalVersionManager.checkin(originalPath);
    VersionManager versionManager = nodeToMerge.getSession().getWorkspace().getVersionManager();
    Node subNodeW2 = nodeToMerge.getNode(nodeName2);
    versionManager.checkout(subNodeW2.getPath());
    subNodeW2.setProperty(propertyName1, CHANGED_STRING);
    superuserW2.save();
    versionManager.checkin(subNodeW2.getPath());
    versionManager.checkout(nodeToMerge.getPath());
    // merge, besteffort set to true
    versionManager.merge(nodeToMerge.getPath(), workspace.getName(), true);
    // sub node should not be touched because merging failed
    assertTrue(subNodeW2.getProperty(propertyName1).getString().equals(""));
    // test root node should be touched because update
    assertFalse(nodeToMerge.getProperty(propertyName1).getString().equals(nodeToMerge.getName()));
}
Also used : Node(javax.jcr.Node) VersionManager(javax.jcr.version.VersionManager)

Example 73 with Node

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

the class MergeSubNodeTest method disable_testMergeNodeSubNodesMergeTest.

/**
     * Node.merge(): For each versionable node N in the subtree rooted at this
     * node,<br> a merge test is performed comparing N with its corresponding
     * node in workspace, N'.<br>
     */
@SuppressWarnings("deprecation")
public void disable_testMergeNodeSubNodesMergeTest() throws RepositoryException {
    //setCheckProperty(nodeToMerge);
    nodeToMerge.checkout();
    nodeToMerge.merge(workspace.getName(), true);
    // check subnodes if they were touched
    for (NodeIterator ni = nodeToMerge.getNodes(); ni.hasNext(); ) {
        Node n = ni.nextNode();
        if (n.getBaseVersion() != null) {
            assertTrue(n.getProperty(propertyName1).getString().equals(CHANGED_STRING));
        }
    }
}
Also used : NodeIterator(javax.jcr.NodeIterator) Node(javax.jcr.Node)

Example 74 with Node

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

the class OnParentVersionComputeTest method testRestorePropJcr2.

/**
     * Test the restore of a OnParentVersion-COMPUTE property
     *
     * @throws javax.jcr.RepositoryException
     */
public void testRestorePropJcr2() throws RepositoryException {
    Node propParent = p.getParent();
    VersionManager versionManager = propParent.getSession().getWorkspace().getVersionManager();
    String path = propParent.getPath();
    versionManager.checkout(path);
    Version v = versionManager.checkin(path);
    versionManager.checkout(path);
    p.setValue(newPropValue);
    p.getSession().save();
    versionManager.restore(v, false);
    assertEquals("On restore of a OnParentVersion-COMPUTE property P, the current P in the workspace will be left unchanged.", p.getString(), newPropValue);
}
Also used : Version(javax.jcr.version.Version) Node(javax.jcr.Node) VersionManager(javax.jcr.version.VersionManager)

Example 75 with Node

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

the class MergeSubNodeTest method initNodes.

/**
     * initialize a two-step-hierarchy on default and second workspace
     */
protected void initNodes() throws RepositoryException {
    // create a versionable parent node
    // nodeName1
    Node topVNode = testRootNode.addNode(nodeName1, versionableNodeType);
    topVNode.setProperty(propertyName1, topVNode.getName());
    // create a versionable sub node
    // nodeName1/nodeName2
    Node subNvNode = topVNode.addNode(nodeName2, versionableNodeType);
    subNvNode.setProperty(propertyName1, subNvNode.getName());
    // save default workspace
    testRootNode.getSession().save();
    log.println("test nodes created successfully on " + workspace.getName());
    // clone the newly created node from src workspace into second workspace
    workspaceW2.clone(workspace.getName(), topVNode.getPath(), topVNode.getPath(), true);
    log.println(topVNode.getPath() + " cloned on " + superuserW2.getWorkspace().getName() + " at " + topVNode.getPath());
    testRootNodeW2 = (Node) superuserW2.getItem(testRoot);
}
Also used : 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