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 2013/05/01 19:43:02 UTC

svn commit: r1478112 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak: core/ plugins/name/ plugins/nodetype/ plugins/nodetype/write/ plugins/observation2/

Author: mduerig
Date: Wed May  1 17:43:01 2013
New Revision: 1478112

URL: http://svn.apache.org/r1478112
Log:
OAK-798: Review / refactor TreeImpl and related classes
reduce usage of deprecated methods: replace Root.getTreeOrNull with Root.getTree in oak-core

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/plugins/name/ReadWriteNamespaceRegistry.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.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=1478112&r1=1478111&r2=1478112&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 Wed May  1 17:43:01 2013
@@ -185,8 +185,8 @@ public class RootImpl implements Root {
         boolean success = branch.move(sourcePath, destPath);
         reset();
         if (success) {
-            getTreeOrNull(getParentPath(sourcePath)).updateChildOrder();
-            getTreeOrNull(getParentPath(destPath)).updateChildOrder();
+            getTree(getParentPath(sourcePath)).updateChildOrder();
+            getTree(getParentPath(destPath)).updateChildOrder();
             lastMove = lastMove.setMove(sourcePath, destParent, getName(destPath));
         }
         return success;
@@ -199,7 +199,7 @@ public class RootImpl implements Root {
         boolean success = branch.copy(sourcePath, destPath);
         reset();
         if (success) {
-            getTreeOrNull(getParentPath(destPath)).updateChildOrder();
+            getTree(getParentPath(destPath)).updateChildOrder();
         }
         return success;
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java?rev=1478112&r1=1478111&r2=1478112&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java Wed May  1 17:43:01 2013
@@ -16,6 +16,9 @@
  */
 package org.apache.jackrabbit.oak.plugins.name;
 
+import static org.apache.jackrabbit.oak.api.Type.NAME;
+import static org.apache.jackrabbit.oak.api.Type.STRING;
+
 import java.util.Map;
 
 import javax.jcr.AccessDeniedException;
@@ -28,9 +31,6 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 
-import static org.apache.jackrabbit.oak.api.Type.NAME;
-import static org.apache.jackrabbit.oak.api.Type.STRING;
-
 /**
  * Writable namespace registry. Mainly for use to implement the full JCR API.
  */
@@ -59,11 +59,11 @@ public abstract class ReadWriteNamespace
     }
 
     private static Tree getOrCreate(Root root, String... path) {
-        Tree tree = root.getTreeOrNull("/");
-        assert tree != null;
+        Tree tree = root.getTree("/");
+        assert tree.exists();
         for (String name : path) {
-            Tree child = tree.getChildOrNull(name);
-            if (child == null) {
+            Tree child = tree.getChild(name);
+            if (!child.exists()) {
                 child = tree.addChild(name);
             }
             tree = child;
@@ -115,8 +115,8 @@ public abstract class ReadWriteNamespace
     @Override
     public void unregisterNamespace(String prefix) throws RepositoryException {
         Root root = getWriteRoot();
-        Tree namespaces = root.getTreeOrNull(NAMESPACES_PATH);
-        if (namespaces == null || !namespaces.hasProperty(prefix)) {
+        Tree namespaces = root.getTree(NAMESPACES_PATH);
+        if (!namespaces.exists() || !namespaces.hasProperty(prefix)) {
             throw new NamespaceException(
                     "Namespace mapping from " + prefix + " to "
                     + getURI(prefix) + " can not be unregistered");

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=1478112&r1=1478111&r2=1478112&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 Wed May  1 17:43:01 2013
@@ -124,7 +124,7 @@ public abstract class ReadOnlyNodeTypeMa
         return new ReadOnlyNodeTypeManager() {
             @Override
             protected Tree getTypes() {
-                return root.getTreeOrNull(NODE_TYPES_PATH);
+                return root.getTree(NODE_TYPES_PATH);
             }
 
             @Nonnull
@@ -308,8 +308,8 @@ public abstract class ReadOnlyNodeTypeMa
             return true;
         }
 
-        Tree type = types.getChildOrNull(typeName);
-        if (type == null) {
+        Tree type = types.getChild(typeName);
+        if (!types.exists()) {
             return false;
         }
 
@@ -411,8 +411,8 @@ public abstract class ReadOnlyNodeTypeMa
     NodeTypeImpl internalGetNodeType(String oakName) throws NoSuchNodeTypeException {
         Tree types = getTypes();
         if (types != null) {
-            Tree type = types.getChildOrNull(oakName);
-            if (type != null) {
+            Tree type = types.getChild(oakName);
+            if (type.exists()) {
                 return new NodeTypeImpl(type, getNamePathMapper());
             }
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java?rev=1478112&r1=1478111&r2=1478112&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java Wed May  1 17:43:01 2013
@@ -16,10 +16,13 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.write;
 
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Map;
+
 import javax.annotation.Nonnull;
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.RepositoryException;
@@ -37,8 +40,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.name.ReadWriteNamespaceRegistry;
 import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
 
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
-
 /**
  * {@code BuiltInNodeTypes} is a utility class that registers the built-in
  * node types required for a JCR repository running on Oak.
@@ -55,7 +56,7 @@ class BuiltInNodeTypes {
         this.ntMgr =  new ReadWriteNodeTypeManager() {
             @Override
             protected Tree getTypes() {
-                return root.getTreeOrNull(NODE_TYPES_PATH);
+                return root.getTree(NODE_TYPES_PATH);
             }
 
             @Nonnull
@@ -68,7 +69,7 @@ class BuiltInNodeTypes {
         this.nsReg = new ReadWriteNamespaceRegistry() {
             @Override
             protected Tree getReadTree() {
-                return root.getTreeOrNull("/");
+                return root.getTree("/");
             }
             @Override
             protected Root getWriteRoot() {
@@ -80,7 +81,7 @@ class BuiltInNodeTypes {
                 new GlobalNameMapper() {
                     @Override
                     protected Map<String, String> getNamespaceMap() {
-                        return Namespaces.getNamespaceMap(root.getTreeOrNull("/"));
+                        return Namespaces.getNamespaceMap(root.getTree("/"));
                     }
                 }));
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java?rev=1478112&r1=1478111&r2=1478112&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java Wed May  1 17:43:01 2013
@@ -16,8 +16,13 @@
  */
 package org.apache.jackrabbit.oak.plugins.nodetype.write;
 
+import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
+import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
+
 import java.util.ArrayList;
 import java.util.List;
+
 import javax.annotation.Nonnull;
 import javax.jcr.AccessDeniedException;
 import javax.jcr.RepositoryException;
@@ -36,10 +41,6 @@ import org.apache.jackrabbit.oak.api.Roo
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
 
-import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_NODE_TYPES;
-import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
-
 /**
  * {@code ReadWriteNodeTypeManager} extends the {@link ReadOnlyNodeTypeManager}
  * with support for operations that modify node types.
@@ -164,11 +165,11 @@ public abstract class ReadWriteNodeTypeM
     }
 
     private static Tree getOrCreateNodeTypes(Root root) {
-        Tree types = root.getTreeOrNull(NODE_TYPES_PATH);
-        if (types == null) {
-            Tree system = root.getTreeOrNull('/' + JCR_SYSTEM);
-            if (system == null) {
-                system = root.getTreeOrNull("/").addChild(JCR_SYSTEM);
+        Tree types = root.getTree(NODE_TYPES_PATH);
+        if (!types.exists()) {
+            Tree system = root.getTree('/' + JCR_SYSTEM);
+            if (!system.exists()) {
+                system = root.getTree("/").addChild(JCR_SYSTEM);
             }
             types = system.addChild(JCR_NODE_TYPES);
         }
@@ -177,13 +178,9 @@ public abstract class ReadWriteNodeTypeM
 
     @Override
     public void unregisterNodeType(String name) throws RepositoryException {
-        Tree type = null;
         Root root = getWriteRoot();
-        Tree types = root.getTreeOrNull(NODE_TYPES_PATH);
-        if (types != null) {
-            type = types.getChildOrNull(getOakName(name));
-        }
-        if (type == null) {
+        Tree type = root.getTree(NODE_TYPES_PATH).getChild(getOakName(name));
+        if (!type.exists()) {
             throw new NoSuchNodeTypeException("Node type " + name + " can not be unregistered.");
         }
 
@@ -204,15 +201,15 @@ public abstract class ReadWriteNodeTypeM
     @Override
     public void unregisterNodeTypes(String[] names) throws RepositoryException {
         Root root = getWriteRoot();
-        Tree types = root.getTreeOrNull(NODE_TYPES_PATH);
-        if (types == null) {
+        Tree types = root.getTree(NODE_TYPES_PATH);
+        if (!types.exists()) {
             throw new NoSuchNodeTypeException("Node types can not be unregistered.");
         }
 
         try {
             for (String name : names) {
-                Tree type = types.getChildOrNull(getOakName(name));
-                if (type == null) {
+                Tree type = types.getChild(getOakName(name));
+                if (!type.exists()) {
                     throw new NoSuchNodeTypeException("Node type " + name + " can not be unregistered.");
                 }
                 type.remove();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java?rev=1478112&r1=1478111&r2=1478112&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java Wed May  1 17:43:01 2013
@@ -155,7 +155,7 @@ class EventCollector implements Runnable
 
     private Tree getOrCreateListenerSpec(Root root) {
         return getOrCreate(getOrCreate(getOrCreate(
-                root.getTreeOrNull('/' + JCR_SYSTEM), REP_OBSERVATION), LISTENERS), getId());
+                root.getTree('/' + JCR_SYSTEM), REP_OBSERVATION), LISTENERS), getId());
     }
 
     private Root getLatestRoot() {
@@ -180,8 +180,8 @@ class EventCollector implements Runnable
 
     private void clearFilterSpec() throws CommitFailedException {
         Root root = getLatestRoot();
-        Tree listenerSpec = root.getTreeOrNull(LISTENER_PATH + '/' + getId());
-        if  (listenerSpec != null) {
+        Tree listenerSpec = root.getTree(LISTENER_PATH + '/' + getId());
+        if  (listenerSpec.exists()) {
             listenerSpec.remove();
             root.commit();
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java?rev=1478112&r1=1478111&r2=1478112&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java Wed May  1 17:43:01 2013
@@ -73,22 +73,20 @@ public class EventQueueReader {
 
     private Iterator<Tree> getEvents(long next, final String id) {
         if (bundles == null) {
-            bundles = root.getTreeOrNull(EVENTS_PATH);
+            bundles = root.getTree(EVENTS_PATH);
         }
 
-        if (bundles != null) {
-            Tree bundle = bundles.getChildOrNull(String.valueOf(next));
-            if (bundle != null) {
-                nextBundleId++;
-                if (bundle.getChildrenCount() > 0) {
-                    return Iterators.filter(bundle.getChildren().iterator(),
-                            new Predicate<Tree>() {
-                        @Override
-                        public boolean apply(Tree tree) {
-                            return tree.hasChild(id);
-                        }
-                    });
-                }
+        Tree bundle = bundles.getChildOrNull(String.valueOf(next));
+        if (bundle != null) {
+            nextBundleId++;
+            if (bundle.getChildrenCount() > 0) {
+                return Iterators.filter(bundle.getChildren().iterator(),
+                        new Predicate<Tree>() {
+                    @Override
+                    public boolean apply(Tree tree) {
+                        return tree.hasChild(id);
+                    }
+                });
             }
         }
         return null;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java?rev=1478112&r1=1478111&r2=1478112&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java Wed May  1 17:43:01 2013
@@ -74,8 +74,8 @@ public class ObservationManagerImpl2 imp
         if (EventQueueWriterProvider.BUNDLE_ID.get() == 0) {
             try {
                 Root root = contentSession.getLatestRoot();
-                Tree events = root.getTreeOrNull(ObservationConstants.EVENTS_PATH);
-                if (events != null) {
+                Tree events = root.getTree(ObservationConstants.EVENTS_PATH);
+                if (events.exists()) {
                     events.remove();
                     root.commit();
                 }