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 da...@apache.org on 2025/08/18 13:46:28 UTC
(jackrabbit-oak) branch OAK-11836 created (now f4d7dd45b0)
This is an automated email from the ASF dual-hosted git repository.
daim pushed a change to branch OAK-11836
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
at f4d7dd45b0 OAK-11836 : removed Guava's AbstractIterator
This branch includes the following new commits:
new f4d7dd45b0 OAK-11836 : removed Guava's AbstractIterator
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(jackrabbit-oak) 01/01: OAK-11836 : removed Guava's AbstractIterator
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
daim pushed a commit to branch OAK-11836
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit f4d7dd45b0e2c2eb3c2803f45867a46d6aa34c1b
Author: rishabhdaim <ri...@gmail.com>
AuthorDate: Mon Aug 18 19:16:09 2025 +0530
OAK-11836 : removed Guava's AbstractIterator
---
.../azure/blobstorage/AzureBlobStoreBackend.java | 2 +-
.../jackrabbit/oak/blob/cloud/s3/S3Backend.java | 2 +-
.../blob/migration/DepthFirstNodeIterator.java | 2 +-
.../jackrabbit/oak/spi/blob/MemoryBlobStore.java | 2 +-
.../oak/commons/collections/AbstractIterator.java | 95 ++++++++++++++++++++++
.../oak/commons/io/BurnOnCloseFileIterator.java | 2 +-
.../oak/commons/io/FileLineDifferenceIterator.java | 2 +-
.../commons/collections/AbstractIteratorTest.java | 69 ++++++++++++++++
.../org/apache/jackrabbit/oak/query/QueryImpl.java | 2 +-
.../jackrabbit/oak/query/UnionQueryImpl.java | 2 +-
.../oak/plugins/index/lucene/LuceneIndex.java | 2 +-
.../plugins/index/lucene/LucenePropertyIndex.java | 2 +-
.../StatisticalSortedSetDocValuesFacetCounts.java | 2 +-
.../plugins/index/lucene/util/TapeSampling.java | 2 +-
.../index/lucene/util/TapeSamplingTest.java | 2 +-
.../jackrabbit/oak/run/osgi/SpringBootSupport.java | 2 +-
.../document/flatfile/ChildNodeStateProvider.java | 2 +-
.../indexer/document/flatfile/FlatFileStore.java | 2 +-
.../document/flatfile/FlatFileStoreIterator.java | 2 +-
.../plugins/index/search/util/TapeSampling.java | 2 +-
.../index/search/util/TapeSamplingTest.java | 2 +-
.../oak/segment/ImmutableRecordNumbers.java | 2 +-
.../oak/segment/MutableRecordNumbers.java | 2 +-
.../jackrabbit/oak/segment/SegmentReferences.java | 2 +-
.../jackrabbit/oak/segment/file/JournalReader.java | 2 +-
.../plugins/document/BlobReferenceIterator.java | 2 +-
.../oak/plugins/document/JournalEntry.java | 2 +-
.../oak/plugins/document/NodeDocument.java | 2 +-
.../oak/plugins/document/PropertyHistory.java | 2 +-
.../oak/plugins/document/RevisionVector.java | 2 +-
.../oak/plugins/document/mongo/MongoBlobStore.java | 2 +-
.../oak/plugins/document/rdb/RDBBlobStore.java | 2 +-
.../plugins/document/rdb/RDBVersionGCSupport.java | 2 +-
.../oak/plugins/document/util/Utils.java | 2 +-
.../document/VersionGarbageCollectorIT.java | 2 +-
35 files changed, 197 insertions(+), 33 deletions(-)
diff --git a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
index c60ad2e868..5beb537614 100644
--- a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
+++ b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
@@ -52,7 +52,7 @@ import java.util.function.Function;
import org.apache.commons.lang3.StringUtils;
import org.apache.jackrabbit.guava.common.cache.Cache;
import org.apache.jackrabbit.guava.common.cache.CacheBuilder;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import com.microsoft.azure.storage.AccessCondition;
import com.microsoft.azure.storage.LocationMode;
import com.microsoft.azure.storage.ResultContinuation;
diff --git a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
index b678b2a110..1e50f018e0 100644
--- a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
+++ b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
@@ -98,7 +98,7 @@ import com.amazonaws.services.s3.transfer.Upload;
import org.apache.jackrabbit.guava.common.cache.Cache;
import org.apache.jackrabbit.guava.common.cache.CacheBuilder;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import static org.apache.jackrabbit.oak.commons.conditions.Validate.checkArgument;
import static java.lang.Thread.currentThread;
diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/DepthFirstNodeIterator.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/DepthFirstNodeIterator.java
index a032b8253d..c032870d65 100644
--- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/DepthFirstNodeIterator.java
+++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/migration/DepthFirstNodeIterator.java
@@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java b/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java
index 38461f2f09..ad33fa8a48 100644
--- a/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java
+++ b/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java
@@ -21,7 +21,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.StringUtils;
diff --git a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/AbstractIterator.java b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/AbstractIterator.java
new file mode 100644
index 0000000000..e06c225eab
--- /dev/null
+++ b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/collections/AbstractIterator.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.jackrabbit.oak.commons.collections;
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * An abstract base class for implementing iterators with custom logic.
+ * Subclasses should implement {@link #computeNext()} to provide elements and
+ * must call {@link #endOfData()} to signal no more element.
+ * <p>
+ * The iteration ends when {@link #endOfData()} is called from {@code computeNext()}.
+ *
+ * @param <T> the type of elements returned by this iterator
+ */
+public abstract class AbstractIterator<T> implements Iterator<T> {
+
+ protected AbstractIterator() {}
+
+ private enum State { READY, NOT_READY, DONE, FAILED }
+ private State state = State.NOT_READY;
+ private T next;
+
+
+ /**
+ * Computes the next element in the iteration.
+ * Subclasses must implement this method and call {@link #endOfData()} when no more elements are available.
+ *
+ * @return the next element, or {@link #endOfData()} if iteration is over
+ */
+ protected abstract T computeNext();
+
+ /**
+ * Signals that the iteration has no more elements.
+ * Should be called from {@link #computeNext()} to end iteration.
+ *
+ * @return null, indicating end of data
+ */
+ protected final T endOfData() {
+ state = State.DONE;
+ return null;
+ }
+
+ @Override
+ public boolean hasNext() {
+ switch (state) {
+ case READY:
+ return true;
+ case DONE:
+ return false;
+ case NOT_READY:
+ return tryToComputeNext();
+ default:
+ throw new IllegalStateException("Iterator in failed state");
+ }
+ }
+
+ @Override
+ public T next() {
+ if (!hasNext()) throw new NoSuchElementException();
+ state = State.NOT_READY;
+ T result = next;
+ next = null; // Release reference for GC
+ return result;
+ }
+
+ private boolean tryToComputeNext() {
+ state = State.FAILED;
+ next = computeNext();
+ if (state == State.DONE) {
+ return false;
+ } else {
+ state = State.READY;
+ return true;
+ }
+ }
+}
diff --git a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/BurnOnCloseFileIterator.java b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/BurnOnCloseFileIterator.java
index f38c154a3c..18766263b4 100644
--- a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/BurnOnCloseFileIterator.java
+++ b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/BurnOnCloseFileIterator.java
@@ -30,7 +30,7 @@ import java.util.Iterator;
import java.util.function.Function;
import org.apache.commons.io.LineIterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.FileIOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/FileLineDifferenceIterator.java b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/FileLineDifferenceIterator.java
index 402bd96520..f0bb70c583 100644
--- a/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/FileLineDifferenceIterator.java
+++ b/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/io/FileLineDifferenceIterator.java
@@ -33,7 +33,7 @@ import org.apache.commons.io.LineIterator;
import org.apache.jackrabbit.oak.commons.FileIOUtils;
import org.jetbrains.annotations.Nullable;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
/**
* FileLineDifferenceIterator class which iterates over the difference of 2 files line by line.
diff --git a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/AbstractIteratorTest.java b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/AbstractIteratorTest.java
new file mode 100644
index 0000000000..753d8d8655
--- /dev/null
+++ b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/collections/AbstractIteratorTest.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.jackrabbit.oak.commons.collections;
+
+import org.junit.Assert;
+import org.junit.Test;
+import java.util.NoSuchElementException;
+
+public class AbstractIteratorTest {
+
+ @Test
+ public void testIteration() {
+ AbstractIterator<Integer> it = new RangeIterator(0, 3);
+ Assert.assertTrue(it.hasNext());
+ Assert.assertEquals(Integer.valueOf(0), it.next());
+ Assert.assertTrue(it.hasNext());
+ Assert.assertEquals(Integer.valueOf(1), it.next());
+ Assert.assertTrue(it.hasNext());
+ Assert.assertEquals(Integer.valueOf(2), it.next());
+ Assert.assertFalse(it.hasNext());
+ }
+
+ @Test
+ public void testNoSuchElementException() {
+ AbstractIterator<Integer> it = new RangeIterator(0, 1);
+ it.next(); // 0
+ Assert.assertThrows(NoSuchElementException.class, it::next); // should throw
+ }
+
+ @Test
+ public void testHasNextDoesNotAdvance() {
+ AbstractIterator<Integer> it = new RangeIterator(0, 2);
+ Assert.assertTrue(it.hasNext());
+ Assert.assertTrue(it.hasNext());
+ Assert.assertEquals(Integer.valueOf(0), it.next());
+ Assert.assertTrue(it.hasNext());
+ Assert.assertEquals(Integer.valueOf(1), it.next());
+ Assert.assertFalse(it.hasNext());
+ }
+
+ // Simple concrete implementation for testing
+ private static class RangeIterator extends AbstractIterator<Integer> {
+ private int current;
+ private final int end;
+ public RangeIterator(int start, int end) { this.current = start; this.end = end; }
+
+ @Override
+ protected Integer computeNext() {
+ if (current < end) return current++;
+ return endOfData();
+ }
+ }
+}
\ No newline at end of file
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
index 776629dd85..3f08b4fae4 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
@@ -105,7 +105,7 @@ import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
/**
* Represents a parsed query.
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
index 6ccda740be..894fb6d9e7 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
@@ -41,7 +41,7 @@ import org.apache.jackrabbit.oak.spi.query.QueryConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
/**
* Represents a union query.
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
index cd80307721..b2c4b4ce66 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndex.java
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.PropertyValue;
import org.apache.jackrabbit.oak.api.Result.SizePrecision;
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
index 68f5e69e93..84ba4fc5cf 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
@@ -39,7 +39,7 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Predicate;
import org.apache.commons.collections4.FluentIterable;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.api.PropertyValue;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/StatisticalSortedSetDocValuesFacetCounts.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/StatisticalSortedSetDocValuesFacetCounts.java
index 6c4be4a070..2c3d410336 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/StatisticalSortedSetDocValuesFacetCounts.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/StatisticalSortedSetDocValuesFacetCounts.java
@@ -19,7 +19,7 @@
package org.apache.jackrabbit.oak.plugins.index.lucene.util;
import org.apache.jackrabbit.oak.commons.time.Stopwatch;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.plugins.index.search.FieldNames;
import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition.SecureFacetConfiguration;
import org.apache.jackrabbit.oak.spi.query.Filter;
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSampling.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSampling.java
index 234340501f..61c9a28c5a 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSampling.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSampling.java
@@ -18,7 +18,7 @@
*/
package org.apache.jackrabbit.oak.plugins.index.lucene.util;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.conditions.Validate;
import java.util.Iterator;
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSamplingTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSamplingTest.java
index f98aa477d7..de6239cdea 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSamplingTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/TapeSamplingTest.java
@@ -18,7 +18,7 @@
*/
package org.apache.jackrabbit.oak.plugins.index.lucene.util;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.collections.ListUtils;
import org.junit.Test;
diff --git a/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/SpringBootSupport.java b/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/SpringBootSupport.java
index 1f8e795399..0a5cc69db9 100644
--- a/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/SpringBootSupport.java
+++ b/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/SpringBootSupport.java
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.felix.connect.Revision;
import org.apache.felix.connect.launch.BundleDescriptor;
import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProvider.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProvider.java
index 76ada1c033..68b83aefe1 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProvider.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/ChildNodeStateProvider.java
@@ -24,7 +24,7 @@ import java.util.Set;
import java.util.stream.StreamSupport;
import org.apache.commons.collections4.iterators.PeekingIterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.conditions.Validate;
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStore.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStore.java
index 7519514cb0..bf1c7707c8 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStore.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStore.java
@@ -20,7 +20,7 @@
package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
import org.apache.commons.io.LineIterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.Compression;
import org.apache.jackrabbit.oak.commons.pio.Closer;
import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
index 40c593fbdf..8330ba30a5 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
@@ -19,7 +19,7 @@
package org.apache.jackrabbit.oak.index.indexer.document.flatfile;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.IOUtils;
import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSampling.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSampling.java
index 315bbb4f66..c19e5722e4 100644
--- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSampling.java
+++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSampling.java
@@ -18,7 +18,7 @@
*/
package org.apache.jackrabbit.oak.plugins.index.search.util;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.conditions.Validate;
import java.util.Iterator;
diff --git a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSamplingTest.java b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSamplingTest.java
index efb7786749..b1725dac83 100644
--- a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSamplingTest.java
+++ b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/util/TapeSamplingTest.java
@@ -18,7 +18,7 @@
*/
package org.apache.jackrabbit.oak.plugins.index.search.util;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.collections.ListUtils;
import org.junit.Test;
diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ImmutableRecordNumbers.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ImmutableRecordNumbers.java
index e82b9e1a0b..85a0aa9af2 100644
--- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ImmutableRecordNumbers.java
+++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ImmutableRecordNumbers.java
@@ -19,7 +19,7 @@ package org.apache.jackrabbit.oak.segment;
import java.util.Iterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.jetbrains.annotations.NotNull;
diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java
index ed7013db6e..1411ef880e 100644
--- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java
+++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java
@@ -22,7 +22,7 @@ import static java.util.Arrays.fill;
import java.util.Iterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.jetbrains.annotations.NotNull;
diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReferences.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReferences.java
index e539c1d2bd..a940b4cd1f 100644
--- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReferences.java
+++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReferences.java
@@ -17,7 +17,7 @@
package org.apache.jackrabbit.oak.segment;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.conditions.Validate;
import org.apache.jackrabbit.oak.segment.data.SegmentData;
import org.jetbrains.annotations.NotNull;
diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/JournalReader.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/JournalReader.java
index 94aeaa68da..8eddf1a642 100644
--- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/JournalReader.java
+++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/JournalReader.java
@@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFileReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
/**
* Iterator over the revisions in the journal in reverse order
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIterator.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIterator.java
index 35f5283e36..aa611cce88 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIterator.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/BlobReferenceIterator.java
@@ -24,7 +24,7 @@ import java.util.Queue;
import org.apache.jackrabbit.oak.plugins.blob.ReferencedBlob;
import org.apache.jackrabbit.oak.plugins.document.util.Utils;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
/**
* An iterator over all referenced binaries.
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
index 98ea741efe..4a9473c670 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalEntry.java
@@ -28,7 +28,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
index bee38bbc58..d21d932806 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
@@ -50,7 +50,7 @@ import java.util.function.Function;
import java.util.function.Predicate;
import org.apache.jackrabbit.guava.common.cache.Cache;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.collections.DequeUtils;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
index 623b3dafa9..c3049d404a 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java
@@ -24,7 +24,7 @@ import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.collections4.iterators.PeekingIterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
import org.apache.jackrabbit.oak.plugins.document.util.Utils;
import org.jetbrains.annotations.NotNull;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionVector.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionVector.java
index 1a0ee26981..8c3e4254a9 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionVector.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionVector.java
@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.collections4.iterators.PeekingIterator;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.cache.CacheValue;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
import org.apache.jackrabbit.oak.commons.collections.SetUtils;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java
index 4b0b5e304f..f838f9c3ba 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java
@@ -37,7 +37,7 @@ import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoException;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
index ce46681d49..7c19c44eda 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
@@ -56,7 +56,7 @@ import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
public class RDBBlobStore extends CachingBlobStore implements Closeable {
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
index 5de461ae8b..919a212113 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
@@ -43,7 +43,7 @@ import org.apache.jackrabbit.oak.stats.Clock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
/**
* RDB specific version of {@link VersionGCSupport} which uses an extended query
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
index 4a99c7a0d3..49a1488c22 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java
@@ -40,7 +40,7 @@ import java.util.function.Predicate;
import java.util.stream.Collectors;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.oak.commons.OakVersion;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.StringUtils;
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
index 8d4d82acd2..29e8209445 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
@@ -101,7 +101,7 @@ import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue;
import org.apache.jackrabbit.guava.common.cache.Cache;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
import org.apache.jackrabbit.guava.common.collect.Queues;
import com.mongodb.ReadPreference;