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()) {