You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/09/13 16:58:29 UTC
svn commit: r1384354 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/
oak-jcr/src/test/resources/org/ oak-jcr/src/test/resources/org/apache/
oak-jcr/src/test...
Author: mduerig
Date: Thu Sep 13 14:58:28 2012
New Revision: 1384354
URL: http://svn.apache.org/viewvc?rev=1384354&view=rev
Log:
OAK-6: Setup integration tests and TCK tests
import test node types from CND
Added:
jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/
jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/
jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/
jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/
jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/
jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd (with props)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeManagerImpl.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeManagerImpl.java?rev=1384354&r1=1384353&r2=1384354&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeManagerImpl.java Thu Sep 13 14:58:28 2012
@@ -34,6 +34,7 @@ import javax.jcr.nodetype.NodeType;
import javax.jcr.nodetype.NodeTypeDefinition;
import javax.jcr.nodetype.NodeTypeExistsException;
import javax.jcr.nodetype.NodeTypeIterator;
+import javax.jcr.nodetype.NodeTypeManager;
import javax.jcr.nodetype.NodeTypeTemplate;
import javax.jcr.nodetype.PropertyDefinition;
import javax.jcr.version.OnParentVersionAction;
@@ -42,6 +43,7 @@ import javax.security.auth.Subject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.jackrabbit.commons.cnd.CompactNodeTypeDefReader;
+import org.apache.jackrabbit.commons.cnd.ParseException;
import org.apache.jackrabbit.commons.iterator.NodeTypeIteratorAdapter;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.ContentSession;
@@ -121,40 +123,7 @@ public class NodeTypeManagerImpl extends
try {
InputStream stream = NodeTypeManagerImpl.class.getResourceAsStream("builtin_nodetypes.cnd");
try {
- CompactNodeTypeDefReader<NodeTypeTemplate, Map<String, String>> reader =
- new CompactNodeTypeDefReader<NodeTypeTemplate, Map<String, String>>(
- new InputStreamReader(stream, "UTF-8"), null, new DefBuilderFactory());
- Map<String, NodeTypeTemplate> templates = Maps.newHashMap();
- for (NodeTypeTemplate template : reader.getNodeTypeDefinitions()) {
- templates.put(template.getName(), template);
- }
- for (NodeTypeTemplate template : templates.values()) {
- if (!template.isMixin()
- && !NT_BASE.equals(template.getName())) {
- String[] supertypes =
- template.getDeclaredSupertypeNames();
- if (supertypes.length == 0) {
- template.setDeclaredSuperTypeNames(
- new String[] {NT_BASE});
- } else {
- // Check whether we need to add the implicit "nt:base" supertype
- boolean needsNtBase = true;
- for (String name : supertypes) {
- if (!templates.get(name).isMixin()) {
- needsNtBase = false;
- }
- }
- if (needsNtBase) {
- String[] withBase = new String[supertypes.length + 1];
- withBase[0] = NT_BASE;
- System.arraycopy(supertypes, 0, withBase, 1, supertypes.length);
- template.setDeclaredSuperTypeNames(withBase);
- }
- }
- }
- }
- registerNodeTypes(templates.values().toArray(
- new NodeTypeTemplate[templates.size()]), true);
+ registerNodeTypes(NodeTypeManagerImpl.this, new InputStreamReader(stream, "UTF-8"));
} finally {
stream.close();
}
@@ -168,6 +137,55 @@ public class NodeTypeManagerImpl extends
}
}
+ /**
+ * Utility method for registering node types from a CND format.
+ * @param nodeTypeManager mode type manager where the node types are registered.
+ * @param cnd reader for the CND
+ * @throws ParseException if parsing the CND fails
+ * @throws RepositoryException if registering the node types fails
+ */
+ public static void registerNodeTypes(NodeTypeManager nodeTypeManager, InputStreamReader cnd)
+ throws ParseException, RepositoryException {
+ CompactNodeTypeDefReader<NodeTypeTemplate, Map<String, String>> reader =
+ new CompactNodeTypeDefReader<NodeTypeTemplate, Map<String, String>>(
+ cnd, null, new DefBuilderFactory());
+ Map<String, NodeTypeTemplate> templates = Maps.newHashMap();
+ for (NodeTypeTemplate template : reader.getNodeTypeDefinitions()) {
+ templates.put(template.getName(), template);
+ }
+ for (NodeTypeTemplate template : templates.values()) {
+ if (!template.isMixin()
+ && !NT_BASE.equals(template.getName())) {
+ String[] supertypes =
+ template.getDeclaredSupertypeNames();
+ if (supertypes.length == 0) {
+ template.setDeclaredSuperTypeNames(
+ new String[] {NT_BASE});
+ } else {
+ // Check whether we need to add the implicit "nt:base" supertype
+ boolean needsNtBase = true;
+ for (String name : supertypes) {
+ NodeTypeDefinition st = templates.get(name);
+ if (st == null) {
+ st = nodeTypeManager.getNodeType(name);
+ }
+ if (st != null && !st.isMixin()) {
+ needsNtBase = false;
+ }
+ }
+ if (needsNtBase) {
+ String[] withBase = new String[supertypes.length + 1];
+ withBase[0] = NT_BASE;
+ System.arraycopy(supertypes, 0, withBase, 1, supertypes.length);
+ template.setDeclaredSuperTypeNames(withBase);
+ }
+ }
+ }
+ }
+ nodeTypeManager.registerNodeTypes(templates.values().toArray(
+ new NodeTypeTemplate[templates.size()]), true);
+ }
+
@Override
protected Tree getTypes() {
return session.getCurrentRoot().getTree(NODE_TYPES_PATH);
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java?rev=1384354&r1=1384353&r2=1384354&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/TestContentLoader.java Thu Sep 13 14:58:28 2012
@@ -18,6 +18,8 @@ package org.apache.jackrabbit.oak.jcr;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.util.Calendar;
import javax.jcr.Node;
@@ -25,14 +27,13 @@ import javax.jcr.PathNotFoundException;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.Value;
import javax.jcr.ValueFactory;
-import javax.jcr.nodetype.NodeDefinitionTemplate;
import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.nodetype.NodeTypeTemplate;
-import javax.jcr.nodetype.PropertyDefinitionTemplate;
-import javax.jcr.version.OnParentVersionAction;
import org.apache.jackrabbit.commons.JcrUtils;
+import org.apache.jackrabbit.commons.cnd.ParseException;
+import org.apache.jackrabbit.oak.plugins.type.NodeTypeManagerImpl;
import org.apache.jackrabbit.value.BinaryValue;
public class TestContentLoader {
@@ -42,106 +43,37 @@ public class TestContentLoader {
*/
private static final String ENCODING = "UTF-8";
- public void loadTestContent(Session session) throws RepositoryException, IOException {
+ public void loadTestContent(Session session) throws RepositoryException, IOException, ParseException {
session.getWorkspace().getNamespaceRegistry().registerNamespace(
"test", "http://www.apache.org/jackrabbit/test");
- NodeTypeManager ntm = session.getWorkspace().getNodeTypeManager();
-
- // TEST NODE TYPES (in Jackrabbit-core: imported from XML file using JackrabbitNodeTypeManager)
-
- // test:setProperty
- {
- NodeTypeTemplate nttmpl = ntm.createNodeTypeTemplate();
- nttmpl.setName("test:setProperty");
- nttmpl.setDeclaredSuperTypeNames(new String[] { "nt:base", "mix:referenceable" });
-
- NodeDefinitionTemplate ndtmpl = ntm.createNodeDefinitionTemplate();
- ndtmpl.setName("*");
- ndtmpl.setRequiredPrimaryTypeNames(new String[] { "test:setProperty" });
- ndtmpl.setOnParentVersion(OnParentVersionAction.COPY);
-
- nttmpl.getNodeDefinitionTemplates().add(ndtmpl);
-
- PropertyDefinitionTemplate pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("*");
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
-
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("*");
- pdtmpl.setMultiple(true);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
-
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- ntm.registerNodeType(nttmpl, true);
- }
-
- // test:canSetProperty
- // TODO: add all property definitions from jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/test-nodetypes.xml
- {
- NodeTypeTemplate nttmpl = ntm.createNodeTypeTemplate();
- nttmpl.setName("test:canSetProperty");
- nttmpl.setDeclaredSuperTypeNames(new String[] { "nt:base" });
-
- // add property definitions
-
- PropertyDefinitionTemplate pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("String");
- pdtmpl.setRequiredType(PropertyType.STRING);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("StringConstraints");
- pdtmpl.setRequiredType(PropertyType.STRING);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
- pdtmpl.setValueConstraints(new String[] { "abc", "def", "ghi" });
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("StringMultipleConstraints");
- pdtmpl.setMultiple(true);
- pdtmpl.setRequiredType(PropertyType.STRING);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("Binary");
- pdtmpl.setRequiredType(PropertyType.BINARY);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("BinaryConstraints");
- pdtmpl.setRequiredType(PropertyType.BINARY);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
- pdtmpl.setValueConstraints(new String[] { "(,100)" });
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- pdtmpl = ntm.createPropertyDefinitionTemplate();
- pdtmpl.setName("BinaryMultipleConstraints");
- pdtmpl.setMultiple(true);
- pdtmpl.setRequiredType(PropertyType.BINARY);
- pdtmpl.setOnParentVersion(OnParentVersionAction.COPY);
- pdtmpl.setValueConstraints(new String[] { "(,100)" });
- nttmpl.getPropertyDefinitionTemplates().add(pdtmpl);
-
- ntm.registerNodeType(nttmpl, true);
- }
+ registerTestNodeTypes(session.getWorkspace().getNodeTypeManager());
Node data = getOrAddNode(session.getRootNode(), "testdata");
addPropertyTestData(getOrAddNode(data, "property"));
addQueryTestData(getOrAddNode(data, "query"));
addNodeTestData(getOrAddNode(data, "node"));
+ // TODO add lifecycle test data
+ // addLifecycleTestData(getOrAddNode(data, "lifecycle"));
addExportTestData(getOrAddNode(data, "docViewTest"));
+ // TODO add retention test data
+ // Node conf = getOrAddNode(session.getRootNode(), "testconf");
+ // addRetentionTestData(getOrAddNode(conf, "retentionTest"));
+
session.save();
}
- private Node getOrAddNode(Node node, String name) throws RepositoryException {
+ private static void registerTestNodeTypes(NodeTypeManager ntm) throws RepositoryException, ParseException, IOException {
+ InputStream stream = TestContentLoader.class.getResourceAsStream("test_nodetypes.cnd");
+ try {
+ NodeTypeManagerImpl.registerNodeTypes(ntm, new InputStreamReader(stream, "UTF-8"));
+ } finally {
+ stream.close();
+ }
+ }
+
+ private static Node getOrAddNode(Node node, String name) throws RepositoryException {
try {
return node.getNode(name);
} catch (PathNotFoundException e) {
@@ -153,10 +85,10 @@ public class TestContentLoader {
* Creates a boolean, double, long, calendar and a path property at the
* given node.
*/
- private void addPropertyTestData(Node node) throws RepositoryException {
+ private static void addPropertyTestData(Node node) throws RepositoryException {
node.setProperty("boolean", true);
node.setProperty("double", Math.PI);
- node.setProperty("long", 90834953485278298l);
+ node.setProperty("long", 90834953485278298L);
Calendar c = Calendar.getInstance();
c.set(2005, 6, 18, 17, 30);
node.setProperty("calendar", c);
@@ -165,11 +97,20 @@ public class TestContentLoader {
node.setProperty("multi", new String[] { "one", "two", "three" });
}
+ // TODO add retention test data
+ /**
+ * Creates a node with a RetentionPolicy
+ */
+ // private void addRetentionTestData(Node node) throws RepositoryException {
+ // RetentionPolicy rp = RetentionPolicyImpl.createRetentionPolicy("testRetentionPolicy", node.getSession());
+ // node.getSession().getRetentionManager().setRetentionPolicy(node.getPath(), rp);
+ // }
+
/**
* Creates four nodes under the given node. Each node has a String property
* named "prop1" with some content set.
*/
- private void addQueryTestData(Node node) throws RepositoryException {
+ private static void addQueryTestData(Node node) throws RepositoryException {
while (node.hasNode("node1")) {
node.getNode("node1").remove();
}
@@ -183,7 +124,7 @@ public class TestContentLoader {
* Creates three nodes under the given node: one of type nt:resource and the
* other nodes referencing it.
*/
- private void addNodeTestData(Node node) throws RepositoryException, IOException {
+ private static void addNodeTestData(Node node) throws RepositoryException, IOException {
if (node.hasNode("multiReference")) {
node.getNode("multiReference").remove();
}
@@ -202,24 +143,39 @@ public class TestContentLoader {
resource.setProperty("jcr:data", new BinaryValue("Hello w\u00F6rld.".getBytes(ENCODING)));
resource.setProperty("jcr:lastModified", Calendar.getInstance());
- // TODO: re-add once we have referenceable nodes
- // Node resReference = getOrAddNode(node, "reference");
- // resReference.setProperty("ref", resource);
- // // make this node itself referenceable
- // resReference.addMixin("mix:referenceable");
- //
- // Node multiReference = node.addNode("multiReference");
- // ValueFactory factory = node.getSession().getValueFactory();
- // multiReference.setProperty("ref", new Value[] {
- // factory.createValue(resource),
- // factory.createValue(resReference)
- // });
+ Node resReference = getOrAddNode(node, "reference");
+ resReference.setProperty("ref", resource);
+ // make this node itself referenceable
+ resReference.addMixin("mix:referenceable");
+
+ Node multiReference = node.addNode("multiReference");
+ ValueFactory factory = node.getSession().getValueFactory();
+ multiReference.setProperty("ref", new Value[] {
+ factory.createValue(resource),
+ factory.createValue(resReference)
+ });
// NodeDefTest requires a test node with a mandatory child node
JcrUtils.putFile(node, "testFile", "text/plain", new ByteArrayInputStream("Hello, World!".getBytes("UTF-8")));
}
- private void addExportTestData(Node node) throws RepositoryException, IOException {
+ // TODO add lifecycle test data
+ /**
+ * Creates a lifecycle policy node and another node with a lifecycle
+ * referencing that policy.
+ */
+ // private void addLifecycleTestData(Node node) throws RepositoryException {
+ // Node policy = getOrAddNode(node, "policy");
+ // policy.addMixin(NodeType.MIX_REFERENCEABLE);
+ // Node transitions = getOrAddNode(policy, "transitions");
+ // Node transition = getOrAddNode(transitions, "identity");
+ // transition.setProperty("from", "identity");
+ // transition.setProperty("to", "identity");
+ // Node lifecycle = getOrAddNode(node, "node");
+ // ((NodeImpl) lifecycle).assignLifecyclePolicy(policy, "identity");
+ //}
+
+ private static void addExportTestData(Node node) throws RepositoryException, IOException {
getOrAddNode(node, "invalidXmlName").setProperty("propName", "some text");
// three nodes which should be serialized as xml text in docView export
@@ -245,7 +201,7 @@ public class TestContentLoader {
* create nodes with following properties binary & single binary & multival
* notbinary & single notbinary & multival
*/
- private void addExportValues(Node node, String name) throws RepositoryException, IOException {
+ private static void addExportValues(Node node, String name) throws RepositoryException, IOException {
String prefix = "valid";
if (name.indexOf('<') != -1) {
prefix = "invalid";
Added: jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd?rev=1384354&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd (added)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd Thu Sep 13 14:58:28 2012
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+<'test'='http://www.apache.org/jackrabbit/test'>
+
+[test:canAddChildNode]
+ + testChildWithDefaultType (nt:base) = nt:base
+ + testChildWithoutDefaultType (nt:base)
+
+[test:canSetProperty]
+ - BinaryMultipleConstraints (binary) multiple nofulltext noqueryorder < '(,100)'
+ - Boolean (boolean) nofulltext noqueryorder
+ - DateConstraints (date) nofulltext noqueryorder < '(1974-02-15T00:00:00.000Z,)'
+ - NameConstraints (name) nofulltext noqueryorder < 'abc'
+ - LongMultipleConstraints (long) multiple nofulltext noqueryorder < '(,100)'
+ - ReferenceMultipleConstraints (reference) multiple nofulltext noqueryorder < 'test:canSetProperty'
+ - StringMultiple (string) multiple nofulltext noqueryorder
+ - DoubleMultiple (double) multiple nofulltext noqueryorder
+ - DoubleConstraints (double) nofulltext noqueryorder < '(100,)'
+ - BinaryConstraints (binary) nofulltext noqueryorder < '(,100)'
+ - PathMultiple (path) multiple nofulltext noqueryorder
+ - Path (path) nofulltext noqueryorder
+ - StringMultipleConstraints (string) multiple nofulltext noqueryorder < 'abc', 'def', 'ghi'
+ - PathMultipleConstraints (path) multiple nofulltext noqueryorder < '/abc'
+ - DateMultiple (date) multiple nofulltext noqueryorder
+ - Binary (binary) nofulltext noqueryorder
+ - LongMultiple (long) multiple nofulltext noqueryorder
+ - LongConstraints (long) nofulltext noqueryorder < '(100,)'
+ - BooleanConstraints (boolean) nofulltext noqueryorder < 'true'
+ - BinaryMultiple (binary) multiple nofulltext noqueryorder
+ - Long (long) nofulltext noqueryorder
+ - StringConstraints (string) nofulltext noqueryorder < 'abc', 'def', 'ghi'
+ - Date (date) nofulltext noqueryorder
+ - ReferenceConstraints (reference) nofulltext noqueryorder < 'test:canSetProperty'
+ - Double (double) nofulltext noqueryorder
+ - NameMultipleConstraints (name) multiple nofulltext noqueryorder < 'abc'
+ - BooleanMultiple (boolean) multiple nofulltext noqueryorder
+ - Name (name) nofulltext noqueryorder
+ - PathConstraints (path) nofulltext noqueryorder < '/abc'
+ - String (string) nofulltext noqueryorder
+ - NameMultiple (name) multiple nofulltext noqueryorder
+ - BooleanMultipleConstraints (boolean) multiple nofulltext noqueryorder < 'true'
+ - DateMultipleConstraints (date) multiple nofulltext noqueryorder < '(,1974-02-15T00:00:00.000Z)'
+ - DoubleMultipleConstraints (double) multiple nofulltext noqueryorder < '(,100)'
+
+[test:refTargetNode] > mix:versionable
+ - * (undefined) nofulltext noqueryorder
+
+[test:sameNameSibsFalseChildNodeDefinition]
+ - * (undefined) nofulltext noqueryorder
+ + * (nt:base) = test:sameNameSibsFalseChildNodeDefinition compute
+
+[test:setProperty] > mix:referenceable
+ - test:multiProperty (undefined) multiple nofulltext noqueryorder
+ - * (undefined) nofulltext noqueryorder
+ + * (nt:base) = test:setProperty
+
+[test:setPropertyAssumingType]
+ - test:multiProperty (undefined) multiple nofulltext noqueryorder
+ - test:singleProperty (undefined) nofulltext noqueryorder
+ + * (nt:base) = test:setPropertyAssumingType
+
+[test:versionable] > mix:versionable
+ - test:initializeOnParentVersionProp (string) initialize nofulltext noqueryorder
+ - test:copyOnParentVersionProp (string) nofulltext noqueryorder
+ - test:abortOnParentVersionProp (string) abort nofulltext noqueryorder
+ - test:ignoreOnParentVersionProp (string) ignore nofulltext noqueryorder
+ - test:computeOnParentVersionProp (string) compute nofulltext noqueryorder
+ - test:versionOnParentVersionProp (string) version nofulltext noqueryorder
+ - * (undefined) nofulltext noqueryorder
+ + test:computeOnParentVersion (nt:base) = nt:unstructured compute
+ + test:initializeOnParentVersion (nt:base) = nt:unstructured initialize
+ + test:versionOnParentVersion (nt:base) = nt:unstructured version
+ + * (nt:base) = test:versionable
+ + test:ignoreOnParentVersion (nt:base) = nt:unstructured ignore
+ + test:abortOnParentVersion (nt:base) = nt:unstructured abort
+ + test:copyOnParentVersion (nt:base) = nt:unstructured
Propchange: jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd
------------------------------------------------------------------------------
svn:eol-style = native