Search in sources :

Example 11 with NodeTypeTemplate

use of javax.jcr.nodetype.NodeTypeTemplate in project jackrabbit-oak by apache.

the class RepositoryUpgradeTest method createSourceContent.

@Override
@SuppressWarnings("unchecked")
protected void createSourceContent(Session session) throws Exception {
    JackrabbitWorkspace workspace = (JackrabbitWorkspace) session.getWorkspace();
    NamespaceRegistry registry = workspace.getNamespaceRegistry();
    registry.registerNamespace("test", "http://www.example.org/");
    NodeTypeManager nodeTypeManager = workspace.getNodeTypeManager();
    NodeTypeTemplate template = nodeTypeManager.createNodeTypeTemplate();
    template.setName("test:unstructured");
    template.setDeclaredSuperTypeNames(new String[] { "nt:unstructured" });
    PropertyDefinitionTemplate pDef1 = nodeTypeManager.createPropertyDefinitionTemplate();
    pDef1.setName("defaultString");
    pDef1.setRequiredType(PropertyType.STRING);
    Value stringValue = session.getValueFactory().createValue("stringValue");
    pDef1.setDefaultValues(new Value[] { stringValue });
    template.getPropertyDefinitionTemplates().add(pDef1);
    PropertyDefinitionTemplate pDef2 = nodeTypeManager.createPropertyDefinitionTemplate();
    pDef2.setName("defaultPath");
    pDef2.setRequiredType(PropertyType.PATH);
    Value pathValue = session.getValueFactory().createValue("/jcr:path/nt:value", PropertyType.PATH);
    pDef2.setDefaultValues(new Value[] { pathValue });
    template.getPropertyDefinitionTemplates().add(pDef2);
    nodeTypeManager.registerNodeType(template, false);
    template = nodeTypeManager.createNodeTypeTemplate();
    template.setName("test:referenceable");
    template.setDeclaredSuperTypeNames(new String[] { "nt:unstructured", "mix:referenceable" });
    nodeTypeManager.registerNodeType(template, false);
    Node root = session.getRootNode();
    Node referenceable = root.addNode("referenceable", "test:unstructured");
    referenceable.addMixin(NodeType.MIX_REFERENCEABLE);
    Node versionable = root.addNode("versionable", NT_UNSTRUCTURED);
    versionable.addMixin(MIX_VERSIONABLE);
    Node child = versionable.addNode("child", "test:referenceable");
    child.addNode("child2", NT_UNSTRUCTURED);
    session.save();
    Node sns = root.addNode("sns");
    sns.addNode("sibling");
    sns.addNode("sibling");
    sns.addNode("sibling");
    session.getWorkspace().getVersionManager().checkin("/versionable");
    Node properties = root.addNode("properties", "test:unstructured");
    properties.setProperty("boolean", true);
    Binary binary = session.getValueFactory().createBinary(new ByteArrayInputStream(BINARY));
    try {
        properties.setProperty("binary", binary);
    } finally {
        binary.dispose();
    }
    properties.setProperty("date", DATE);
    properties.setProperty("decimal", new BigDecimal(123));
    properties.setProperty("double", Math.PI);
    properties.setProperty("long", 9876543210L);
    properties.setProperty("reference", referenceable);
    properties.setProperty("weak_reference", session.getValueFactory().createValue(referenceable, true));
    properties.setProperty("mv_reference", new Value[] { session.getValueFactory().createValue(versionable, false) });
    properties.setProperty("mv_weak_reference", new Value[] { session.getValueFactory().createValue(versionable, true) });
    properties.setProperty("string", "test");
    properties.setProperty("multiple", "a,b,c".split(","));
    session.save();
    binary = properties.getProperty("binary").getBinary();
    try {
        InputStream stream = binary.getStream();
        try {
            for (byte aBINARY : BINARY) {
                assertEquals(aBINARY, (byte) stream.read());
            }
            assertEquals(-1, stream.read());
        } finally {
            stream.close();
        }
    } finally {
        binary.dispose();
    }
}
Also used : NodeTypeManager(javax.jcr.nodetype.NodeTypeManager) NamespaceRegistry(javax.jcr.NamespaceRegistry) NodeTypeTemplate(javax.jcr.nodetype.NodeTypeTemplate) PropertyDefinitionTemplate(javax.jcr.nodetype.PropertyDefinitionTemplate) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) Node(javax.jcr.Node) Value(javax.jcr.Value) JackrabbitWorkspace(org.apache.jackrabbit.api.JackrabbitWorkspace) Binary(javax.jcr.Binary) BigDecimal(java.math.BigDecimal)

Example 12 with NodeTypeTemplate

use of javax.jcr.nodetype.NodeTypeTemplate in project jackrabbit-oak by apache.

the class NodeTypeDefinitionManagementTest method testRegisterNodeType.

@Test
public void testRegisterNodeType() throws Exception {
    Workspace testWsp = testSession.getWorkspace();
    NodeTypeManager ntm = testWsp.getNodeTypeManager();
    NodeTypeTemplate ntd = ntm.createNodeTypeTemplate();
    ntd.setName("testRegisterNodeType");
    ntd.setMixin(true);
    try {
        ntm.registerNodeType(ntd, true);
        fail("Node type registration should be denied.");
    } catch (AccessDeniedException e) {
    // success
    }
    try {
        ntm.registerNodeType(ntd, false);
        fail("Node type registration should be denied.");
    } catch (AccessDeniedException e) {
    // success
    }
    NodeTypeTemplate[] ntds = new NodeTypeTemplate[2];
    ntds[0] = ntd;
    ntds[1] = ntm.createNodeTypeTemplate();
    ntds[1].setName("anotherRegisterNodeType");
    ntds[1].setDeclaredSuperTypeNames(new String[] { "nt:file" });
    try {
        ntm.registerNodeTypes(ntds, true);
        fail("Node type registration should be denied.");
    } catch (AccessDeniedException e) {
    // success
    }
    try {
        ntm.registerNodeTypes(ntds, false);
        fail("Node type registration should be denied.");
    } catch (AccessDeniedException e) {
    // success
    }
}
Also used : NodeTypeManager(javax.jcr.nodetype.NodeTypeManager) AccessDeniedException(javax.jcr.AccessDeniedException) NodeTypeTemplate(javax.jcr.nodetype.NodeTypeTemplate) Workspace(javax.jcr.Workspace) Test(org.junit.Test)

Example 13 with NodeTypeTemplate

use of javax.jcr.nodetype.NodeTypeTemplate in project jackrabbit-oak by apache.

the class NodeTypeDefinitionManagementTest method testRegisterNodeTypeWithPrivilege.

@Test
public void testRegisterNodeTypeWithPrivilege() throws Exception {
    modify(null, JCR_NODE_TYPE_DEFINITION_MANAGEMENT.toString(), true);
    try {
        Workspace testWsp = testSession.getWorkspace();
        NodeTypeManager ntm = testWsp.getNodeTypeManager();
        NodeTypeTemplate ntd = ntm.createNodeTypeTemplate();
        ntd.setName("testRegisterNodeTypeWithPrivilege");
        ntd.setMixin(true);
        ntm.registerNodeType(ntd, true);
        NodeTypeTemplate[] ntds = new NodeTypeTemplate[2];
        ntds[0] = ntd;
        ntds[1] = ntm.createNodeTypeTemplate();
        ntds[1].setName("anotherRegisterNodeTypeWithPrivilege");
        ntds[1].setDeclaredSuperTypeNames(new String[] { "nt:file" });
        ntm.registerNodeTypes(ntds, true);
    } finally {
        modify(null, JCR_NODE_TYPE_DEFINITION_MANAGEMENT.toString(), false);
    }
}
Also used : NodeTypeManager(javax.jcr.nodetype.NodeTypeManager) NodeTypeTemplate(javax.jcr.nodetype.NodeTypeTemplate) Workspace(javax.jcr.Workspace) Test(org.junit.Test)

Example 14 with NodeTypeTemplate

use of javax.jcr.nodetype.NodeTypeTemplate in project jackrabbit-oak by apache.

the class NodeTypeDefinitionManagementTest method testUnRegisterNodeType.

@Test
public void testUnRegisterNodeType() throws Exception {
    NodeTypeManager ntm = superuser.getWorkspace().getNodeTypeManager();
    NodeTypeTemplate ntd = ntm.createNodeTypeTemplate();
    ntd.setName("testUnregisterNodeType");
    ntd.setMixin(true);
    ntm.registerNodeType(ntd, true);
    Workspace testWsp = testSession.getWorkspace();
    try {
        try {
            NodeTypeManager testNtm = testWsp.getNodeTypeManager();
            testNtm.unregisterNodeType(ntd.getName());
            fail("Node type unregistration should be denied.");
        } catch (AccessDeniedException e) {
        // success
        }
        try {
            NodeTypeManager testNtm = testWsp.getNodeTypeManager();
            testNtm.unregisterNodeTypes(new String[] { ntd.getName() });
            fail("Node type unregistration should be denied.");
        } catch (AccessDeniedException e) {
        // success
        }
    } finally {
        // NOTE: diff to jr-core where unregisterNt was not supported
        ntm.unregisterNodeType(ntd.getName());
    }
}
Also used : NodeTypeManager(javax.jcr.nodetype.NodeTypeManager) AccessDeniedException(javax.jcr.AccessDeniedException) NodeTypeTemplate(javax.jcr.nodetype.NodeTypeTemplate) Workspace(javax.jcr.Workspace) Test(org.junit.Test)

Example 15 with NodeTypeTemplate

use of javax.jcr.nodetype.NodeTypeTemplate in project jackrabbit-oak by apache.

the class OpvIgnoreTest method createNodeTypeWithIgnoreOPVProperty.

private NodeTypeTemplate createNodeTypeWithIgnoreOPVProperty(String propertyName) throws RepositoryException {
    NodeTypeManager manager = superuser.getWorkspace().getNodeTypeManager();
    NodeTypeTemplate nt = manager.createNodeTypeTemplate();
    nt.setName("testType");
    nt.setMixin(true);
    PropertyDefinitionTemplate opt = manager.createPropertyDefinitionTemplate();
    opt.setMandatory(false);
    opt.setName(propertyName);
    opt.setRequiredType(PropertyType.STRING);
    opt.setOnParentVersion(OnParentVersionAction.IGNORE);
    List pdt = nt.getPropertyDefinitionTemplates();
    pdt.add(opt);
    manager.registerNodeType(nt, true);
    return nt;
}
Also used : NodeTypeManager(javax.jcr.nodetype.NodeTypeManager) NodeTypeTemplate(javax.jcr.nodetype.NodeTypeTemplate) PropertyDefinitionTemplate(javax.jcr.nodetype.PropertyDefinitionTemplate) JackrabbitAccessControlList(org.apache.jackrabbit.api.security.JackrabbitAccessControlList) List(java.util.List)

Aggregations

NodeTypeTemplate (javax.jcr.nodetype.NodeTypeTemplate)46 NodeTypeManager (javax.jcr.nodetype.NodeTypeManager)29 Node (javax.jcr.Node)17 PropertyDefinitionTemplate (javax.jcr.nodetype.PropertyDefinitionTemplate)13 Test (org.junit.Test)12 Session (javax.jcr.Session)11 NodeDefinitionTemplate (javax.jcr.nodetype.NodeDefinitionTemplate)11 List (java.util.List)7 Workspace (javax.jcr.Workspace)7 NamespaceRegistry (javax.jcr.NamespaceRegistry)6 ByteArrayInputStream (java.io.ByteArrayInputStream)5 ConstraintViolationException (javax.jcr.nodetype.ConstraintViolationException)5 NodeTypeDefinition (javax.jcr.nodetype.NodeTypeDefinition)5 JackrabbitWorkspace (org.apache.jackrabbit.api.JackrabbitWorkspace)5 InputStream (java.io.InputStream)4 ArrayList (java.util.ArrayList)4 AccessDeniedException (javax.jcr.AccessDeniedException)4 RepositoryException (javax.jcr.RepositoryException)4 JackrabbitNode (org.apache.jackrabbit.api.JackrabbitNode)4 BigDecimal (java.math.BigDecimal)3