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 re...@apache.org on 2012/05/04 17:19:10 UTC

svn commit: r1334027 - in /jackrabbit/oak/trunk: oak-it/jcr/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/

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