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/05/31 18:08:53 UTC

svn commit: r1344793 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java

Author: mduerig
Date: Thu May 31 16:08:52 2012
New Revision: 1344793

URL: http://svn.apache.org/viewvc?rev=1344793&view=rev
Log:
OAK-124: Default to nt:unstructured for nodes where jcr:primaryType is not set
- default to nt:unstructured if jcr:primaryType is not set

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java?rev=1344793&r1=1344792&r2=1344793&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java Thu May 31 16:08:52 2012
@@ -246,13 +246,6 @@ public class RootImpl implements Root {
         store.compare(before, after, diffHandler);
     }
 
-    //------------------------------------------------------------< internal >---
-
-    // FIXME remove
-    NodeStore getNodeStore() {
-        return store;
-    }
-
     //------------------------------------------------------------< private >---
 
     // TODO better way to determine purge limit

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java?rev=1344793&r1=1344792&r2=1344793&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java Thu May 31 16:08:52 2012
@@ -32,7 +32,6 @@ import org.apache.jackrabbit.oak.util.It
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
-import javax.jcr.PropertyType;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -113,35 +112,7 @@ public class TreeImpl implements Tree, P
 
     @Override
     public PropertyState getProperty(String name) {
-        PropertyState propertyState = getNodeState().getProperty(name);
-        // FIXME find a better way to default jcr:primaryType
-        if (propertyState == null && "jcr:primaryType".equals(name)) {
-            propertyState = new PropertyState() {
-                @Override
-                public String getName() {
-                    return "jcr:primaryType";
-                }
-
-                @Override
-                public boolean isArray() {
-                    return false;
-                }
-
-                @Nonnull
-                @Override
-                public CoreValue getValue() {
-                    return root.getNodeStore().getValueFactory().createValue("nt:unstructured", PropertyType.NAME);
-                }
-
-                @Nonnull
-                @Override
-                public Iterable<CoreValue> getValues() {
-                    throw new IllegalStateException();
-                }
-            };
-        }
-
-        return propertyState;
+        return getNodeState().getProperty(name);
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1344793&r1=1344792&r2=1344793&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Thu May 31 16:08:52 2012
@@ -16,14 +16,22 @@
  */
 package org.apache.jackrabbit.oak.jcr;
 
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.UUID;
+import org.apache.jackrabbit.JcrConstants;
+import org.apache.jackrabbit.commons.ItemNameMatcher;
+import org.apache.jackrabbit.commons.iterator.NodeIteratorAdapter;
+import org.apache.jackrabbit.commons.iterator.PropertyIteratorAdapter;
+import org.apache.jackrabbit.oak.api.CoreValue;
+import org.apache.jackrabbit.oak.api.Tree.Status;
+import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.jcr.value.ValueConverter;
+import org.apache.jackrabbit.oak.namepath.NameMapper;
+import org.apache.jackrabbit.oak.util.Function1;
+import org.apache.jackrabbit.oak.util.Iterators;
+import org.apache.jackrabbit.oak.util.Predicate;
+import org.apache.jackrabbit.value.ValueHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import javax.annotation.Nonnull;
 import javax.jcr.Binary;
 import javax.jcr.InvalidItemStateException;
@@ -48,22 +56,14 @@ import javax.jcr.nodetype.NodeTypeManage
 import javax.jcr.version.OnParentVersionAction;
 import javax.jcr.version.Version;
 import javax.jcr.version.VersionHistory;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.jackrabbit.commons.ItemNameMatcher;
-import org.apache.jackrabbit.commons.iterator.NodeIteratorAdapter;
-import org.apache.jackrabbit.commons.iterator.PropertyIteratorAdapter;
-import org.apache.jackrabbit.oak.api.CoreValue;
-import org.apache.jackrabbit.oak.api.Tree.Status;
-import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.jcr.value.ValueConverter;
-import org.apache.jackrabbit.oak.namepath.NameMapper;
-import org.apache.jackrabbit.oak.util.Function1;
-import org.apache.jackrabbit.oak.util.Iterators;
-import org.apache.jackrabbit.oak.util.Predicate;
-import org.apache.jackrabbit.value.ValueHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
 
 import static org.apache.jackrabbit.oak.util.Iterators.filter;
 
@@ -661,7 +661,10 @@ public class NodeImpl extends ItemImpl i
 
         // TODO: check if transient changes to mixin-types are reflected here
         NodeTypeManager ntMgr = sessionDelegate.getNodeTypeManager();
-        String primaryNtName = getProperty(Property.JCR_PRIMARY_TYPE).getString();
+        String primaryNtName;
+        primaryNtName = hasProperty(Property.JCR_PRIMARY_TYPE)
+            ? getProperty(Property.JCR_PRIMARY_TYPE).getString()
+            : "nt:unstructured";
 
         return ntMgr.getNodeType(primaryNtName);
     }