Author: reschke
Date: Fri May 4 15:19:10 2012
New Revision: 1334027
URL: http://svn.apache.org/viewvc?rev=1334027&view=rev
Log:
OAK-66: add default values, update test exclusions (WIP)
Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1334027&r1=1334026&r2=1334027&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Fri May 4 15:19:10 2012
@@ -97,8 +97,6 @@ org.apache.jackrabbit.test.api.SessionRe
org.apache.jackrabbit.test.api.HasPermissionTest
org.apache.jackrabbit.test.api.WorkspaceTest
org.apache.jackrabbit.test.api.ShareableNodeTest
-org.apache.jackrabbit.test.api.nodetype.PredefinedNodeTypeTest#testSimpleVersionable
-org.apache.jackrabbit.test.api.nodetype.PredefinedNodeTypeTest#testChildNodeDef
org.apache.jackrabbit.test.api.nodetype.CanSetPropertyDateTest#testConversions
org.apache.jackrabbit.test.api.nodetype.CanSetPropertyMultipleTest#testReturnFalseBecauseIsProtected
org.apache.jackrabbit.test.api.nodetype.CanSetPropertyMultipleTest#testReturnFalseBecauseIsNotMultiple
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java?rev=1334027&r1=1334026&r2=1334027&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
Fri May 4 15:19:10 2012
@@ -60,7 +60,7 @@ public class WorkspaceImpl implements Ja
this.sessionDelegate = sessionDelegate;
this.nsRegistry = nsRegistry;
- this.nodeTypeManager = new
NodeTypeManagerImpl(sessionDelegate.getNamePathMapper());
+ this.nodeTypeManager = new
NodeTypeManagerImpl(sessionDelegate.getValueFactory(),
sessionDelegate.getNamePathMapper());
this.queryManager = new QueryManagerImpl(this, sessionDelegate);
}
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java?rev=1334027&r1=1334026&r2=1334027&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
Fri May 4 15:19:10 2012
@@ -46,6 +46,8 @@ import org.apache.jackrabbit.commons.cnd
import
org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory.AbstractPropertyDefinitionBuilder;
import org.apache.jackrabbit.commons.cnd.ParseException;
import org.apache.jackrabbit.commons.iterator.NodeTypeIteratorAdapter;
+import org.apache.jackrabbit.oak.api.CoreValue;
+import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
import org.apache.jackrabbit.oak.namepath.NameMapper;
public class NodeTypeManagerImpl implements NodeTypeManager {
@@ -55,14 +57,14 @@ public class NodeTypeManagerImpl impleme
private final Map<String, NodeType> typemap = new HashMap<String,
NodeType>();
- public NodeTypeManagerImpl(NameMapper mapper) throws RepositoryException {
+ public NodeTypeManagerImpl(ValueFactoryImpl vf, NameMapper mapper) throws
RepositoryException {
this.mapper = mapper;
try {
InputStream stream =
NodeTypeManagerImpl.class.getResourceAsStream("builtin_nodetypes.cnd");
Reader reader = new InputStreamReader(stream, "UTF-8");
try {
- DefinitionBuilderFactory<NodeType, Map<String, String>> dbf =
new DefinitionBuilderFactoryImpl(this, mapper);
+ DefinitionBuilderFactory<NodeType, Map<String, String>> dbf =
new DefinitionBuilderFactoryImpl(this, vf, mapper);
CompactNodeTypeDefReader<NodeType, Map<String, String>> cndr =
new CompactNodeTypeDefReader<NodeType, Map<String, String>>(
reader, null, dbf);
@@ -181,27 +183,29 @@ public class NodeTypeManagerImpl impleme
private Map<String, String> nsmap = new HashMap<String, String>();
private final NodeTypeManager ntm;
+ private final ValueFactoryImpl vf;
private final NameMapper mapper;
- public DefinitionBuilderFactoryImpl(NodeTypeManager ntm, NameMapper
mapper) {
+ public DefinitionBuilderFactoryImpl(NodeTypeManager ntm,
ValueFactoryImpl vf, NameMapper mapper) {
this.ntm = ntm;
+ this.vf = vf;
this.mapper = mapper;
}
@Override
public Map<String, String> getNamespaceMapping() {
- return this.nsmap;
+ return nsmap;
}
@Override
public
org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory.AbstractNodeTypeDefinitionBuilder<NodeType>
newNodeTypeDefinitionBuilder()
throws RepositoryException {
- return new NodeTypeDefinitionBuilderImpl(this.ntm, this.mapper);
+ return new NodeTypeDefinitionBuilderImpl(ntm, vf, mapper);
}
@Override
public void setNamespace(String prefix, String uri) throws
RepositoryException {
- this.nsmap.put(prefix, uri);
+ nsmap.put(prefix, uri);
}
@Override
@@ -216,13 +220,15 @@ public class NodeTypeManagerImpl impleme
private List<NodeDefinitionBuilderImpl> childNodeDefinitions = new
ArrayList<NodeDefinitionBuilderImpl>();
private final NodeTypeManager ntm;
+ private final ValueFactoryImpl vf;
private final NameMapper mapper;
private String primaryItemName;
private List<String> declaredSuperTypes = new ArrayList<String>();
- public NodeTypeDefinitionBuilderImpl(NodeTypeManager ntm, NameMapper
mapper) {
+ public NodeTypeDefinitionBuilderImpl(NodeTypeManager ntm,
ValueFactoryImpl vf, NameMapper mapper) {
this.ntm = ntm;
+ this.vf = vf;
this.mapper = mapper;
}
@@ -253,7 +259,7 @@ public class NodeTypeManagerImpl impleme
.size()]), primaryItemName, isMixin, isAbstract,
isOrderable);
for (PropertyDefinitionBuilderImpl pdb : propertyDefinitions) {
- result.addPropertyDefinition(pdb.getPropertyDefinition(result,
mapper));
+ result.addPropertyDefinition(pdb.getPropertyDefinition(result,
vf, mapper));
}
for (NodeDefinitionBuilderImpl ndb : childNodeDefinitions) {
@@ -322,9 +328,16 @@ public class NodeTypeManagerImpl impleme
this.ndtb = ntdb;
}
- public PropertyDefinition getPropertyDefinition(NodeType nt,
NameMapper mapper) {
- return new PropertyDefinitionImpl(nt, mapper, name, autocreate,
isMandatory, onParent, isProtected, requiredType,
- isMultiple);
+ public PropertyDefinition getPropertyDefinition(NodeType nt,
ValueFactoryImpl vf, NameMapper mapper) {
+
+ CoreValue[] defaultCoreValues = new
CoreValue[defaultValues.size()];
+
+ for (int i = 0; i < defaultCoreValues.length; i++) {
+ defaultCoreValues[i] =
vf.getCoreValueFactory().createValue(defaultValues.get(i), requiredType);
+ }
+
+ return new PropertyDefinitionImpl(nt, mapper, vf, name,
autocreate, isMandatory, onParent, isProtected, requiredType,
+ isMultiple, defaultCoreValues);
}
@Override
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java?rev=1334027&r1=1334026&r2=1334027&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
Fri May 4 15:19:10 2012
@@ -20,23 +20,29 @@ import javax.jcr.Value;
import javax.jcr.nodetype.NodeType;
import javax.jcr.nodetype.PropertyDefinition;
+import org.apache.jackrabbit.oak.api.CoreValue;
+import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
import org.apache.jackrabbit.oak.namepath.NameMapper;
class PropertyDefinitionImpl
extends ItemDefinitionImpl implements PropertyDefinition {
private final int requiredType;
-
private final boolean multiple;
+ private final CoreValue[] defaultCoreValues;
+ private final ValueFactoryImpl vfac;
+
public PropertyDefinitionImpl(
- NodeType type, NameMapper mapper, String name, boolean autoCreated,
+ NodeType type, NameMapper mapper, ValueFactoryImpl vfac, String
name, boolean autoCreated,
boolean mandatory, int onParentRevision, boolean isProtected,
- int requiredType, boolean multiple) {
+ int requiredType, boolean multiple, CoreValue[] defaultCoreValues)
{
super(type, mapper, name, autoCreated,
mandatory, onParentRevision, isProtected);
+ this.vfac = vfac;
this.requiredType = requiredType;
this.multiple = multiple;
+ this.defaultCoreValues = defaultCoreValues;
}
@Override
@@ -51,7 +57,11 @@ class PropertyDefinitionImpl
@Override
public Value[] getDefaultValues() {
- return new Value[0];
+ Value[] defaults = new Value[defaultCoreValues.length];
+ for (int i = 0; i < defaults.length; i++) {
+ defaults[i] = vfac.createValue(defaultCoreValues[i]);
+ }
+ return defaults;
}
@Override