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 ju...@apache.org on 2013/03/26 15:16:03 UTC

svn commit: r1461145 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/

Author: jukka
Date: Tue Mar 26 14:16:03 2013
New Revision: 1461145

URL: http://svn.apache.org/r1461145
Log:
OAK-702: Optimize access to node type information

Use Trees instead of Nodes when accessing node definitions

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/DefinitionProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.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/plugins/nodetype/DefinitionProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/DefinitionProvider.java?rev=1461145&r1=1461144&r2=1461145&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/DefinitionProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/DefinitionProvider.java Tue Mar 26 14:16:03 2013
@@ -63,7 +63,7 @@ public interface DefinitionProvider {
      * @throws RepositoryException If another error occurs.
      */
     @Nonnull
-    NodeDefinition getDefinition(Node parent, Node targetNode)
+    NodeDefinition getDefinition(Tree parent, Tree targetNode)
             throws ConstraintViolationException, RepositoryException;
 
     /**

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java?rev=1461145&r1=1461144&r2=1461145&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java Tue Mar 26 14:16:03 2013
@@ -394,7 +394,8 @@ public abstract class ReadOnlyNodeTypeMa
     }
 
     @Override
-    public NodeDefinition getDefinition(@Nonnull Node parent, @Nonnull Node targetNode)
+    public NodeDefinition getDefinition(
+            @Nonnull Tree parent, @Nonnull Tree targetNode)
             throws RepositoryException {
         checkNotNull(parent);
         checkNotNull(targetNode);

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=1461145&r1=1461144&r2=1461145&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 Tue Mar 26 14:16:03 2013
@@ -1099,16 +1099,18 @@ public class NodeImpl<T extends NodeDele
     }
 
     private EffectiveNodeType getEffectiveNodeType() throws RepositoryException {
-        return getEffectiveNodeTypeProvider().getEffectiveNodeType(this);
+        return getEffectiveNodeTypeProvider().getEffectiveNodeType(dlg.getTree());
     }
 
     @Override
     @Nonnull
     public NodeDefinition getDefinition() throws RepositoryException {
-        if (getDepth() == 0) {
+        NodeDelegate parent = dlg.getParent();
+        if (parent == null) {
             return getDefinitionProvider().getRootDefinition();
         } else {
-            return getDefinitionProvider().getDefinition(getParent(), this);
+            return getDefinitionProvider().getDefinition(
+                    parent.getTree(), dlg.getTree());
         }
     }
 
@@ -1485,7 +1487,7 @@ public class NodeImpl<T extends NodeDele
     }
 
     private void autoCreateItems() throws RepositoryException {
-        EffectiveNodeType effective = getEffectiveNodeTypeProvider().getEffectiveNodeType(this);
+        EffectiveNodeType effective = getEffectiveNodeTypeProvider().getEffectiveNodeType(dlg.getTree());
         for (PropertyDefinition pd : effective.getAutoCreatePropertyDefinitions()) {
             if (dlg.getProperty(pd.getName()) == null) {
                 if (pd.isMultiple()) {