Search in sources :

Example 96 with Node

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

the class AddMixinTest method testAddMultipleSeparately.

/**
     * Implementation specific test adding a new Node with a nodeType, that has
     * a mixin-supertype. The mixin must only take effect upon save.
     *
     * @throws NotExecutableException
     * @throws RepositoryException
     */
public void testAddMultipleSeparately() throws NotExecutableException, RepositoryException {
    Node node;
    try {
        node = testRootNode.addNode(nodeName1, testNodeType);
        node.addMixin(mixReferenceable);
        testRootNode.save();
        node.addMixin(mixLockable);
        testRootNode.save();
    } catch (RepositoryException e) {
        throw new NotExecutableException();
    }
    assertTrue("Adding 2 mixins at once -> both must be present.", node.isNodeType(mixReferenceable) && node.isNodeType(mixLockable));
    List<NodeType> mixins = Arrays.asList(node.getMixinNodeTypes());
    assertTrue("Adding 2 mixins at once -> both must be present.", mixins.contains(ntMgr.getNodeType(mixReferenceable)) && mixins.contains(ntMgr.getNodeType(mixLockable)));
}
Also used : NotExecutableException(org.apache.jackrabbit.test.NotExecutableException) Node(javax.jcr.Node) NodeType(javax.jcr.nodetype.NodeType) RepositoryException(javax.jcr.RepositoryException)

Example 97 with Node

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

the class AddMixinTest method testAddMultipleAtOnce.

/**
     * Implementation specific test adding a new Node with a nodeType, that has
     * a mixin-supertype. The mixin must only take effect upon save.
     *
     * @throws NotExecutableException
     * @throws RepositoryException
     */
public void testAddMultipleAtOnce() throws NotExecutableException, RepositoryException {
    Node node;
    try {
        node = testRootNode.addNode(nodeName1, testNodeType);
        node.addMixin(mixReferenceable);
        node.addMixin(mixLockable);
        testRootNode.save();
    } catch (RepositoryException e) {
        throw new NotExecutableException();
    }
    assertTrue("Adding 2 mixins at once -> both must be present.", node.isNodeType(mixReferenceable) && node.isNodeType(mixLockable));
}
Also used : NotExecutableException(org.apache.jackrabbit.test.NotExecutableException) Node(javax.jcr.Node) RepositoryException(javax.jcr.RepositoryException)

Example 98 with Node

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

the class AddMixinTest method testAddItemsDefinedByMixin3.

public void testAddItemsDefinedByMixin3() throws NotExecutableException, RepositoryException {
    // register mixin
    NodeTypeManager ntm = superuser.getWorkspace().getNodeTypeManager();
    NodeTypeTemplate ntd = ntm.createNodeTypeTemplate();
    ntd.setName("testMixin");
    ntd.setMixin(true);
    NodeDefinitionTemplate nodeDef = ntm.createNodeDefinitionTemplate();
    nodeDef.setName("child");
    nodeDef.setRequiredPrimaryTypeNames(new String[] { "nt:folder" });
    nodeDef.setDefaultPrimaryTypeName("nt:folder");
    ntd.getNodeDefinitionTemplates().add(nodeDef);
    ntm.registerNodeType(ntd, true);
    // create node and add mixin
    Node node = testRootNode.addNode(nodeName1, "nt:resource");
    node.setProperty("jcr:data", "abc");
    node.addMixin("testMixin");
    superuser.save();
    // create a child node defined by the mixin without specifying the
    // node type -> must succeed since default primary type is specified
    // in the child node def
    Node c = node.addNode("child");
    assertEquals("nt:folder", c.getPrimaryNodeType().getName());
    superuser.save();
}
Also used : NodeDefinitionTemplate(javax.jcr.nodetype.NodeDefinitionTemplate) NodeTypeManager(javax.jcr.nodetype.NodeTypeManager) NodeTypeTemplate(javax.jcr.nodetype.NodeTypeTemplate) Node(javax.jcr.Node)

Example 99 with Node

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

the class OpenScopedLockTest method testRefreshAfterTokenTransfer2.

public void testRefreshAfterTokenTransfer2() throws Exception {
    String lockToken = lock.getLockToken();
    Node n2 = (Node) otherSession.getItem(lockedNode.getPath());
    try {
        superuser.removeLockToken(lockToken);
        otherSession.addLockToken(lockToken);
        n2.getLock().refresh();
    } finally {
        // move lock token back in order to have lock removed properly
        otherSession.removeLockToken(lockToken);
        superuser.addLockToken(lockToken);
    }
}
Also used : Node(javax.jcr.Node)

Example 100 with Node

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

the class OpenScopedLockTest method testLogoutHasNoEffect.

public void testLogoutHasNoEffect() throws Exception {
    // create a second session session. since logout of the 'superuser'
    // will cause all inherited tear-down to fail
    Node testRoot2 = (Node) otherSession.getItem(testRootNode.getPath());
    Node lockedNode2 = testRoot2.addNode(nodeName2, testNodeType);
    lockedNode2.addMixin(mixLockable);
    testRoot2.save();
    Lock lock2 = lockedNode2.lock(false, isSessionScoped());
    // force reloading of the testroot in order to be aware of the
    // locked node added by another session
    testRootNode.refresh(false);
    Node n2 = (Node) superuser.getItem(lockedNode2.getPath());
    try {
        String lockToken = lock2.getLockToken();
        otherSession.removeLockToken(lockToken);
        superuser.addLockToken(lockToken);
        otherSession.logout();
        assertTrue("After logout a open-scoped node must still be locked.", lock2.isLive());
        assertTrue("After logout a open-scoped node must still be locked.", n2.isLocked());
    } finally {
        n2.unlock();
    }
}
Also used : Node(javax.jcr.Node) Lock(javax.jcr.lock.Lock)

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