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 2012/07/21 13:40:17 UTC

svn commit: r1364067 - in /jackrabbit/oak/trunk: oak-core/ oak-core/src/main/java/org/apache/jackrabbit/oak/core/ oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ oak-core/src/mai...

Author: jukka
Date: Sat Jul 21 11:40:16 2012
New Revision: 1364067

URL: http://svn.apache.org/viewvc?rev=1364067&view=rev
Log:
OAK-200: Replace Commons Collections with Guava

Removed:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/Function1.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/Iterators.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/Predicate.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/Predicates.java
Modified:
    jackrabbit/oak/trunk/oak-core/pom.xml
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java
    jackrabbit/oak/trunk/oak-it/osgi/src/test/java/org/apache/jackrabbit/oak/osgi/OSGiIT.java
    jackrabbit/oak/trunk/oak-it/osgi/test-bundles.xml
    jackrabbit/oak/trunk/oak-jcr/pom.xml
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/MembershipManager.java
    jackrabbit/oak/trunk/oak-parent/pom.xml

Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Sat Jul 21 11:40:16 2012
@@ -128,14 +128,9 @@
     </dependency>
 
     <dependency>
-        <groupId>commons-collections</groupId>
-        <artifactId>commons-collections</artifactId>
-        <version>3.2.1</version>
-    </dependency>
-    <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
-        <version>12.0.1</version>
+        <version>${guava.version}</version>
     </dependency>
 
     <!-- Optional dependencies for different persistence backends -->

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=1364067&r1=1364066&r2=1364067&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 Sat Jul 21 11:40:16 2012
@@ -28,7 +28,6 @@ import java.util.concurrent.locks.Reentr
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 
-import org.apache.commons.collections.map.ReferenceMap;
 import org.apache.jackrabbit.oak.api.CoreValue;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -37,8 +36,10 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
-import org.apache.jackrabbit.oak.util.Function1;
-import org.apache.jackrabbit.oak.util.Iterators;
+
+import com.google.common.base.Function;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.collect.Iterables;
 
 import static org.apache.jackrabbit.oak.plugins.memory.MemoryNodeState.EMPTY_NODE;
 
@@ -223,18 +224,12 @@ public class TreeImpl implements Tree, P
 
     @Override
     public Iterable<Tree> getChildren() {
-        return new Iterable<Tree>() {
-            @Override
-            public Iterator<Tree> iterator() {
-                final NodeState nodeState = getNodeState();
-
-                Iterator<? extends ChildNodeEntry> childEntries =
-                    nodeState.getChildNodeEntries().iterator();
-
-                return Iterators.map(childEntries, new Function1<ChildNodeEntry, Tree>() {
+        return Iterables.transform(
+                getNodeState().getChildNodeEntries(),
+                new Function<ChildNodeEntry, Tree>() {
                     @Override
-                    public Tree apply(ChildNodeEntry entry) {
-                        String childName = entry.getName();
+                    public Tree apply(ChildNodeEntry input) {
+                        String childName = input.getName();
                         TreeImpl child = children.get(childName);
                         if (child == null) {
                             child = new TreeImpl(root, TreeImpl.this, childName);
@@ -243,8 +238,6 @@ public class TreeImpl implements Tree, P
                         return  child;
                     }
                 });
-            }
-        };
     }
 
     @Override
@@ -399,8 +392,10 @@ public class TreeImpl implements Tree, P
     }
 
     private static class Children implements Iterable<TreeImpl> {
-        @SuppressWarnings("unchecked")
-        private final Map<String, TreeImpl> children = new ReferenceMap();
+
+        private final Map<String, TreeImpl> children =
+                CacheBuilder.newBuilder().weakValues().<String, TreeImpl>build().asMap();
+
         private final Lock readLock;
         private final Lock writeLock;
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeState.java Sat Jul 21 11:40:16 2012
@@ -42,9 +42,10 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
-import org.apache.jackrabbit.oak.util.Iterators;
 import org.apache.jackrabbit.oak.util.PagedIterator;
 
+import com.google.common.collect.Iterators;
+
 /**
  * Basic {@link NodeState} implementation based on the {@link MicroKernel}
  * interface. This class makes an attempt to load data lazily.
@@ -170,7 +171,7 @@ final class KernelNodeState extends Abst
         return new Iterable<ChildNodeEntry>() {
             @Override
             public Iterator<ChildNodeEntry> iterator() {
-                return Iterators.flatten(
+                return  Iterators.concat(
                     new PagedIterator<ChildNodeEntry>(MAX_CHILD_NODE_NAMES) {
                         @Override
                         protected Iterator<? extends ChildNodeEntry> getPage(long pos, int size) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java Sat Jul 21 11:40:16 2012
@@ -21,8 +21,9 @@ package org.apache.jackrabbit.oak.plugin
 import org.apache.jackrabbit.oak.spi.state.AbstractChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.util.Function1;
-import org.apache.jackrabbit.oak.util.Iterators;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Iterators;
 
 import java.util.Iterator;
 import java.util.Map;
@@ -37,14 +38,14 @@ public class MemoryChildNodeEntry extend
 
     public static Iterator<ChildNodeEntry> iterator(
             final Iterator<Entry<String, NodeState>> iterator) {
-
-        return Iterators.map(iterator,
-                new Function1<Entry<String, NodeState>, ChildNodeEntry>() {
-            @Override
-            public ChildNodeEntry apply(Entry<String, NodeState> entry) {
-                return new MemoryChildNodeEntry(entry);
-            }
-        });
+        return Iterators.transform(
+                iterator,
+                new Function<Entry<String, NodeState>, ChildNodeEntry>() {
+                    @Override
+                    public ChildNodeEntry apply(Entry<String, NodeState> input) {
+                        return new MemoryChildNodeEntry(input);
+                    }
+                });
     }
 
     /**

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java Sat Jul 21 11:40:16 2012
@@ -21,9 +21,10 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
-import org.apache.jackrabbit.oak.util.Iterators;
-import org.apache.jackrabbit.oak.util.Predicate;
-import org.apache.jackrabbit.oak.util.Predicates;
+
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.collect.Iterators;
 
 import java.util.Iterator;
 import java.util.Map;
@@ -85,13 +86,13 @@ public class ModifiedNodeState extends A
         return new Iterable<PropertyState>() {
             @Override
             public Iterator<PropertyState> iterator() {
-                Iterator<PropertyState> a = Iterators.filter(
+                Iterator<? extends PropertyState> a = Iterators.filter(
                         unmodified.iterator(), new UnmodifiedPropertyPredicate());
 
-                Iterator<PropertyState> b = Iterators.filter(
-                        modified.iterator(), Predicates.nonNull());
+                Iterator<? extends PropertyState> b = Iterators.filter(
+                        modified.iterator(), Predicates.notNull());
 
-                return Iterators.chain(a, b);
+                return Iterators.concat(a, b);
             }
         };
     }
@@ -133,13 +134,13 @@ public class ModifiedNodeState extends A
         return new Iterable<ChildNodeEntry>() {
             @Override
             public Iterator<ChildNodeEntry> iterator() {
-                Iterator<ChildNodeEntry> a = Iterators.filter(
+                Iterator<? extends ChildNodeEntry> a = Iterators.filter(
                         unmodified.iterator(), new UnmodifiedChildNodePredicate());
 
                 Iterator<Entry<String, NodeState>> b = Iterators.filter(
                         modified, new UndeletedChildNodePredicate());
 
-                return Iterators.chain(a, MemoryChildNodeEntry.iterator(b));
+                return Iterators.concat(a, MemoryChildNodeEntry.iterator(b));
             }
         };
     }
@@ -229,21 +230,21 @@ public class ModifiedNodeState extends A
 
     private class UnmodifiedPropertyPredicate implements Predicate<PropertyState> {
         @Override
-        public boolean evaluate(PropertyState property) {
+        public boolean apply(PropertyState property) {
             return !properties.containsKey(property.getName());
         }
     }
 
     private class UnmodifiedChildNodePredicate implements Predicate<ChildNodeEntry> {
         @Override
-        public boolean evaluate(ChildNodeEntry entry) {
+        public boolean apply(ChildNodeEntry entry) {
             return !nodes.containsKey(entry.getName());
         }
     }
 
     private static class UndeletedChildNodePredicate implements Predicate<Entry<?, ?>> {
         @Override
-        public boolean evaluate(Entry<?, ?> entry) {
+        public boolean apply(Entry<?, ?> entry) {
             return entry.getValue() != null;
         }
     }

Modified: jackrabbit/oak/trunk/oak-it/osgi/src/test/java/org/apache/jackrabbit/oak/osgi/OSGiIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/osgi/src/test/java/org/apache/jackrabbit/oak/osgi/OSGiIT.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/osgi/src/test/java/org/apache/jackrabbit/oak/osgi/OSGiIT.java (original)
+++ jackrabbit/oak/trunk/oak-it/osgi/src/test/java/org/apache/jackrabbit/oak/osgi/OSGiIT.java Sat Jul 21 11:40:16 2012
@@ -49,7 +49,6 @@ public class OSGiIT {
                 mavenBundle("org.apache.felix", "org.apache.felix.scr", "1.6.0"),
                 bundle(new File(base, "jcr.jar").toURI().toURL().toString()),
                 bundle(new File(base, "commons-io.jar").toURI().toURL().toString()),
-                bundle(new File(base, "commons-collections.jar").toURI().toURL().toString()),
                 bundle(new File(base, "guava.jar").toURI().toURL().toString()),
                 bundle(new File(base, "jackrabbit-api.jar").toURI().toURL().toString()),
                 bundle(new File(base, "jackrabbit-jcr-commons.jar").toURI().toURL().toString()),

Modified: jackrabbit/oak/trunk/oak-it/osgi/test-bundles.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/osgi/test-bundles.xml?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/osgi/test-bundles.xml (original)
+++ jackrabbit/oak/trunk/oak-it/osgi/test-bundles.xml Sat Jul 21 11:40:16 2012
@@ -30,7 +30,6 @@
       <includes>
         <include>javax.jcr:jcr</include>
         <include>commons-io:commons-io</include>
-        <include>commons-collections:commons-collections</include>
         <include>com.google.guava:guava</include>
         <include>org.apache.jackrabbit:jackrabbit-api</include>
         <include>org.apache.jackrabbit:jackrabbit-jcr-commons</include>

Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Sat Jul 21 11:40:16 2012
@@ -184,9 +184,9 @@ org.apache.jackrabbit.test.api.observati
     </dependency>
 
     <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <version>3.2.1</version>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>${guava.version}</version>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java Sat Jul 21 11:40:16 2012
@@ -36,9 +36,10 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Tree.Status;
 import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.util.Function1;
-import org.apache.jackrabbit.oak.util.Iterators;
-import org.apache.jackrabbit.oak.util.Predicate;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
 
 /**
  * {@code NodeDelegate} serve as internal representations of {@code Node}s.
@@ -227,11 +228,11 @@ public class NodeDelegate extends ItemDe
                             tree.getChildren().iterator(),
                             new Predicate<Tree>() {
                                 @Override
-                                public boolean evaluate(Tree tree) {
+                                public boolean apply(Tree tree) {
                                     return !ordered.containsKey(tree.getName());
                                 }
                             });
-                    return Iterators.chain(
+                    return Iterators.concat(
                             ordered.values().iterator(),
                             nodeDelegateIterator(remaining));
                 }
@@ -351,14 +352,14 @@ public class NodeDelegate extends ItemDe
 
     private Iterator<NodeDelegate> nodeDelegateIterator(
             Iterator<Tree> childNodeStates) {
-        return Iterators.map(
+        return Iterators.transform(
                 Iterators.filter(childNodeStates, new Predicate<Tree>() {
                     @Override
-                    public boolean evaluate(Tree tree) {
+                    public boolean apply(Tree tree) {
                         return !tree.getName().startsWith(":");
                     }
                 }),
-                new Function1<Tree, NodeDelegate>() {
+                new Function<Tree, NodeDelegate>() {
                     @Override
                     public NodeDelegate apply(Tree state) {
                         return new NodeDelegate(sessionDelegate, state);
@@ -368,14 +369,14 @@ public class NodeDelegate extends ItemDe
 
     private Iterator<PropertyDelegate> propertyDelegateIterator(
             Iterator<? extends PropertyState> properties) {
-        return Iterators.map(
+        return Iterators.transform(
                 Iterators.filter(properties, new Predicate<PropertyState>() {
                     @Override
-                    public boolean evaluate(PropertyState property) {
+                    public boolean apply(PropertyState property) {
                         return !property.getName().startsWith(":");
                     }
                 }),
-                new Function1<PropertyState, PropertyDelegate>() {
+                new Function<PropertyState, PropertyDelegate>() {
                     @Override
                     public PropertyDelegate apply(PropertyState propertyState) {
                         return new PropertyDelegate(sessionDelegate, tree,

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=1364067&r1=1364066&r2=1364067&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 Sat Jul 21 11:40:16 2012
@@ -68,16 +68,16 @@ import org.apache.jackrabbit.oak.commons
 import org.apache.jackrabbit.oak.core.DefaultConflictHandler;
 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 com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
+
 import static javax.jcr.Property.JCR_LOCK_IS_DEEP;
 import static javax.jcr.Property.JCR_LOCK_OWNER;
-import static org.apache.jackrabbit.oak.util.Iterators.filter;
 
 /**
  * {@code NodeImpl}...
@@ -465,10 +465,11 @@ public class NodeImpl extends ItemImpl<N
             throws RepositoryException {
         checkStatus();
 
-        Iterator<NodeDelegate> children = filter(dlg.getChildren(),
+        Iterator<NodeDelegate> children = Iterators.filter(
+                dlg.getChildren(),
                 new Predicate<NodeDelegate>() {
                     @Override
-                    public boolean evaluate(NodeDelegate state) {
+                    public boolean apply(NodeDelegate state) {
                         try {
                             return ItemNameMatcher.matches(toJcrPath(state.getName()), namePattern);
                         } catch (InvalidItemStateException e) {
@@ -485,10 +486,11 @@ public class NodeImpl extends ItemImpl<N
     public NodeIterator getNodes(final String[] nameGlobs) throws RepositoryException {
         checkStatus();
 
-        Iterator<NodeDelegate> children = filter(dlg.getChildren(),
+        Iterator<NodeDelegate> children = Iterators.filter(
+                dlg.getChildren(),
                 new Predicate<NodeDelegate>() {
                     @Override
-                    public boolean evaluate(NodeDelegate state) {
+                    public boolean apply(NodeDelegate state) {
                         try {
                             return ItemNameMatcher.matches(toJcrPath(state.getName()), nameGlobs);
                         } catch (InvalidItemStateException e) {
@@ -529,10 +531,11 @@ public class NodeImpl extends ItemImpl<N
     public PropertyIterator getProperties(final String namePattern) throws RepositoryException {
         checkStatus();
 
-        Iterator<PropertyDelegate> properties = filter(dlg.getProperties(),
+        Iterator<PropertyDelegate> properties = Iterators.filter(
+                dlg.getProperties(),
                 new Predicate<PropertyDelegate>() {
                     @Override
-                    public boolean evaluate(PropertyDelegate entry) {
+                    public boolean apply(PropertyDelegate entry) {
                         try {
                             return ItemNameMatcher.matches(toJcrPath(entry.getName()), namePattern);
                         } catch (InvalidItemStateException e) {
@@ -549,10 +552,11 @@ public class NodeImpl extends ItemImpl<N
     public PropertyIterator getProperties(final String[] nameGlobs) throws RepositoryException {
         checkStatus();
 
-        Iterator<PropertyDelegate> propertyNames = filter(dlg.getProperties(),
+        Iterator<PropertyDelegate> propertyNames = Iterators.filter(
+                dlg.getProperties(),
                 new Predicate<PropertyDelegate>() {
                     @Override
-                    public boolean evaluate(PropertyDelegate entry) {
+                    public boolean apply(PropertyDelegate entry) {
                         try {
                             return ItemNameMatcher.matches(toJcrPath(entry.getName()), nameGlobs);
                         } catch (InvalidItemStateException e) {
@@ -1180,17 +1184,20 @@ public class NodeImpl extends ItemImpl<N
     //------------------------------------------------------------< private >---
 
     private static Iterator<Node> nodeIterator(Iterator<NodeDelegate> childNodes) {
-        return Iterators.map(childNodes, new Function1<NodeDelegate, Node>() {
-            @Override
-            public Node apply(NodeDelegate nodeDelegate) {
-                return new NodeImpl(nodeDelegate);
-            }
-        });
+        return Iterators.transform(
+                childNodes,
+                new Function<NodeDelegate, Node>() {
+                    @Override
+                    public Node apply(NodeDelegate nodeDelegate) {
+                        return new NodeImpl(nodeDelegate);
+                    }
+                });
     }
 
     private static Iterator<Property> propertyIterator(Iterator<PropertyDelegate> properties) {
-        return Iterators.map(properties,
-                new Function1<PropertyDelegate, Property>() {
+        return Iterators.transform(
+                properties,
+                new Function<PropertyDelegate, Property>() {
                     @Override
                     public Property apply(PropertyDelegate propertyDelegate) {
                         return new PropertyImpl(propertyDelegate);

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java Sat Jul 21 11:40:16 2012
@@ -33,11 +33,9 @@ import org.apache.jackrabbit.oak.namepat
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
-import org.apache.jackrabbit.oak.util.Function1;
-import org.apache.jackrabbit.oak.util.Iterators;
 
-import static org.apache.jackrabbit.commons.iterator.LazyIteratorChain.chain;
-import static org.apache.jackrabbit.oak.util.Iterators.singleton;
+import com.google.common.base.Function;
+import com.google.common.collect.Iterators;
 
 class ChangeProcessor extends TimerTask {
     private final NamePathMapper namePathMapper;
@@ -93,7 +91,7 @@ class ChangeProcessor extends TimerTask 
         }
 
         public void sendEvents() {
-            Iterator<Event> eventIt = Iterators.flatten(events.iterator());
+            Iterator<Event> eventIt = Iterators.concat(events.iterator());
             if (eventIt.hasNext()) {
                 listener.onEvent(new EventIteratorAdapter(eventIt));
                 events = new ArrayList<Iterator<Event>>(PURGE_LIMIT);
@@ -108,7 +106,7 @@ class ChangeProcessor extends TimerTask 
         public void propertyAdded(PropertyState after) {
             if (!stopped && filterRef.get().include(Event.PROPERTY_ADDED, jcrPath(), associatedParentNode)) {
                 Event event = generatePropertyEvent(Event.PROPERTY_ADDED, path, after);
-                events.add(Iterators.singleton(event));
+                events.add(Iterators.singletonIterator(event));
             }
         }
 
@@ -116,7 +114,7 @@ class ChangeProcessor extends TimerTask 
         public void propertyChanged(PropertyState before, PropertyState after) {
             if (!stopped && filterRef.get().include(Event.PROPERTY_CHANGED, jcrPath(), associatedParentNode)) {
                 Event event = generatePropertyEvent(Event.PROPERTY_CHANGED, path, after);
-                events.add(Iterators.singleton(event));
+                events.add(Iterators.singletonIterator(event));
             }
         }
 
@@ -124,7 +122,7 @@ class ChangeProcessor extends TimerTask 
         public void propertyDeleted(PropertyState before) {
             if (!stopped && filterRef.get().include(Event.PROPERTY_REMOVED, jcrPath(), associatedParentNode)) {
                 Event event = generatePropertyEvent(Event.PROPERTY_REMOVED, path, before);
-                events.add(Iterators.singleton(event));
+                events.add(Iterators.singletonIterator(event));
             }
         }
 
@@ -176,10 +174,9 @@ class ChangeProcessor extends TimerTask 
             if (filter.include(eventType, jcrParentPath, associatedParentNode)) {
                 // TODO support userId, identifier, info, date
                 Event event = new EventImpl(eventType, jcrPath, null, null, null, 0);
-                nodeEvent = singleton(event);
-            }
-            else {
-                nodeEvent = Iterators.empty();
+                nodeEvent = Iterators.singletonIterator(event);
+            } else {
+                nodeEvent = Iterators.emptyIterator();
             }
 
             final int propertyEventType = eventType == Event.NODE_ADDED
@@ -188,33 +185,34 @@ class ChangeProcessor extends TimerTask 
 
             Iterator<Event> propertyEvents;
             if (filter.include(propertyEventType, jcrPath, associatedParentNode)) {
-                propertyEvents = Iterators.map(node.getProperties().iterator(),
-                    new Function1<PropertyState, Event>() {
-                        @Override
-                        public Event apply(PropertyState property) {
-                            return generatePropertyEvent(propertyEventType, path, property);
-                        }
-                    });
-            }
-            else {
-                propertyEvents = Iterators.empty();
+                propertyEvents = Iterators.transform(
+                        node.getProperties().iterator(),
+                        new Function<PropertyState, Event>() {
+                            @Override
+                            public Event apply(PropertyState property) {
+                                return generatePropertyEvent(propertyEventType, path, property);
+                            }
+                        });
+            } else {
+                propertyEvents = Iterators.emptyIterator();
             }
 
             Iterator<Event> childNodeEvents = !stopped && filter.includeChildren(jcrPath)
-                    ? chain(generateChildEvents(eventType, path, node))
-                    : Iterators.<Event>empty();
+                    ? Iterators.concat(generateChildEvents(eventType, path, node))
+                    : Iterators.<Event>emptyIterator();
 
-            return chain(nodeEvent, propertyEvents, childNodeEvents);
+            return Iterators.concat(nodeEvent, propertyEvents, childNodeEvents);
         }
 
         private Iterator<Iterator<Event>> generateChildEvents(final int eventType, final String parentPath, NodeState node) {
-            return Iterators.map(node.getChildNodeEntries().iterator(),
-                new Function1<ChildNodeEntry, Iterator<Event>>() {
-                    @Override
-                    public Iterator<Event> apply(ChildNodeEntry entry) {
-                        return generateNodeEvents(eventType, parentPath, entry.getName(), entry.getNodeState());
-                    }
-                });
+            return Iterators.transform(
+                    node.getChildNodeEntries().iterator(),
+                    new Function<ChildNodeEntry, Iterator<Event>>() {
+                        @Override
+                        public Iterator<Event> apply(ChildNodeEntry entry) {
+                            return generateNodeEvents(eventType, parentPath, entry.getName(), entry.getNodeState());
+                        }
+                    });
         }
 
     }

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/MembershipManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/MembershipManager.java?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/MembershipManager.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/security/user/MembershipManager.java Sat Jul 21 11:40:16 2012
@@ -16,9 +16,6 @@
  */
 package org.apache.jackrabbit.oak.jcr.security.user;
 
-import org.apache.commons.collections.iterators.EmptyIterator;
-import org.apache.commons.collections.iterators.IteratorChain;
-import org.apache.commons.collections.iterators.SingletonIterator;
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.UserManager;
@@ -32,6 +29,8 @@ import org.apache.jackrabbit.oak.jcr.Ses
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.collect.Iterators;
+
 import javax.jcr.Node;
 import javax.jcr.Property;
 import javax.jcr.PropertyIterator;
@@ -238,7 +237,8 @@ class MembershipManager {
             @Override
             public Iterator<Authorizable> next() {
                 Authorizable next = authorizables.next();
-                return new IteratorChain(new SingletonIterator(next), inherited(next));
+                return Iterators.concat(
+                        Iterators.singletonIterator(next), inherited(next));
             }
 
             @Override
@@ -254,7 +254,7 @@ class MembershipManager {
                         log.warn("Could not determine members of " + authorizable, e);
                     }
                 }
-                return EmptyIterator.INSTANCE;
+                return Iterators.emptyIterator();
             }
         };
 
@@ -271,7 +271,9 @@ class MembershipManager {
             @Override
             public Iterator<Group> next() {
                 Group next = (Group) membership.next();
-                return new IteratorChain(new SingletonIterator(next), inherited((AuthorizableImpl) next));
+                return Iterators.concat(
+                        Iterators.singletonIterator(next),
+                        inherited((AuthorizableImpl) next));
             }
 
             @Override
@@ -287,7 +289,7 @@ class MembershipManager {
                         log.warn("Could not determine members of " + authorizable, e);
                     }
                 }
-                return EmptyIterator.INSTANCE;
+                return Iterators.emptyIterator();
             }
         };
 

Modified: jackrabbit/oak/trunk/oak-parent/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-parent/pom.xml?rev=1364067&r1=1364066&r2=1364067&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-parent/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-parent/pom.xml Sat Jul 21 11:40:16 2012
@@ -41,6 +41,7 @@
       ${project.build.sourceEncoding}
     </project.reporting.outputEncoding>
     <jackrabbit.version>2.6-SNAPSHOT</jackrabbit.version>
+    <guava.version>12.0.1</guava.version>
   </properties>
 
   <issueManagement>