This is an automated email from the ASF dual-hosted git repository.

daim pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 06b7ff2278 OAK-11774 : removed usage of guava splitter (#2380)
06b7ff2278 is described below

commit 06b7ff2278cdfe432c2ed7cfcdb17f195fca9722
Author: Rishabh Kumar <[email protected]>
AuthorDate: Thu Jul 17 20:44:37 2025 +0530

    OAK-11774 : removed usage of guava splitter (#2380)
    
    * OAK-11774 : removed usage of guava splitter
    
    * OAK-11774 : improved test coverage
    
    * OAK-11774 : mimic exact behaviour of Guava's Splitter via Stream's code 
using -1 limit in split method
---
 .../suites/ScalabilityNodeRelationshipSuite.java   |  10 +-
 .../scalability/suites/ScalabilityNodeSuite.java   |  10 +-
 .../ScalabilityNodeRelationshipSuiteTest.java      | 175 +++++++++++++++++++++
 .../oak/scalability/ScalabilityRunner.java         |   8 +-
 .../suites/ScalabilityAbstractSuite.java           |  10 +-
 .../suites/ScalabilityAbstractSuiteTest.java       | 159 +++++++++++++++++++
 .../blob/datastore/SharedDataStoreUtils.java       |   9 +-
 .../jackrabbit/oak/commons/FileIOUtilsTest.java    |   7 +-
 .../commons/FileLineDifferenceIteratorTest.java    |   4 +-
 .../oak/plugins/index/AsyncIndexUpdate.java        |  11 +-
 .../oak/query/SimpleExcerptProvider.java           |  10 +-
 .../oak/query/ast/NotFullTextSearchImpl.java       |  10 +-
 .../oak/query/SimpleExcerptProviderTest.java       |  45 ++++++
 .../jackrabbit/oak/run/osgi/ConfigTracker.java     |   8 +-
 .../apache/jackrabbit/oak/fixture/OakFixture.java  |   5 +-
 .../jackrabbit/oak/run/DataStoreCheckCommand.java  |  17 +-
 .../jackrabbit/oak/run/DataStoreCommand.java       |  19 ++-
 .../oak/run/MetricsExporterFixtureProvider.java    |  17 +-
 .../jackrabbit/oak/run/DataStoreCommandTest.java   |  14 +-
 .../authorization/permission/PermissionsTest.java  |   5 +-
 .../jackrabbit/oak/segment/file/JournalReader.java |   5 +-
 .../oak/segment/file/JournalEntryTest.java         |   5 +-
 .../document/memory/MemoryDocumentStore.java       |   8 +-
 .../oak/plugins/document/ExternalChangesTest.java  |   5 +-
 .../oak/plugins/document/MongoBlobGCTest.java      |   6 +-
 25 files changed, 509 insertions(+), 73 deletions(-)

diff --git 
a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuite.java
 
b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuite.java
index d431983013..e922b28798 100644
--- 
a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuite.java
+++ 
b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuite.java
@@ -19,12 +19,14 @@
 package org.apache.jackrabbit.oak.scalability.suites;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
@@ -49,8 +51,6 @@ import org.apache.jackrabbit.util.Text;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
-
 /**
  * The suite test will incrementally increase the load and execute searches.
  * Each test run thus adds nodes and executes different benchmarks. This way 
we measure time
@@ -99,8 +99,10 @@ public class ScalabilityNodeRelationshipSuite extends 
ScalabilityNodeSuite {
     public static final String OBJECT_ID = "objectId";
     public static final String TARGET = "target";
 
-    protected static final List<String> NODE_LEVELS = 
Splitter.on(",").trimResults()
-        .omitEmptyStrings().splitToList(System.getProperty("nodeLevels", 
"10,5,2,1"));
+    protected static final List<String> NODE_LEVELS = 
Arrays.stream(System.getProperty("nodeLevels", "10,5,2,1").split(","))
+            .map(String::trim)
+            .filter(s -> !s.isEmpty())
+            .collect(Collectors.toList());
 
     protected static final List<String> NODE_LEVELS_DEFAULT = 
List.of("10","5","2","1");
 
diff --git 
a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeSuite.java
 
b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeSuite.java
index 8ff981683c..c16808e770 100644
--- 
a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeSuite.java
+++ 
b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeSuite.java
@@ -19,6 +19,7 @@
 package org.apache.jackrabbit.oak.scalability.suites;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.List;
@@ -26,6 +27,7 @@ import java.util.Map;
 import java.util.Random;
 import java.util.TimeZone;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 import javax.jcr.Node;
 import javax.jcr.PropertyType;
@@ -34,8 +36,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.guava.common.base.Splitter;
-
 import 
org.apache.commons.math3.stat.descriptive.SynchronizedDescriptiveStatistics;
 import org.apache.jackrabbit.commons.JcrUtils;
 import org.apache.jackrabbit.oak.Oak;
@@ -108,8 +108,10 @@ public class ScalabilityNodeSuite extends 
ScalabilityAbstractSuite {
     /**
      * Controls the number of nodes at each level
      */
-    protected static final List<String> NODE_LEVELS = 
Splitter.on(",").trimResults()
-            .omitEmptyStrings().splitToList(System.getProperty("nodeLevels", 
"10,5,2"));
+    protected static final List<String> NODE_LEVELS = 
Arrays.stream(System.getProperty("nodeLevels", "10,5,2").split(","))
+            .map(String::trim)
+            .filter(s -> !s.isEmpty())
+            .collect(Collectors.toList());
 
     /**
      * Controls the number of concurrent tester threads
diff --git 
a/oak-benchmarks-lucene/src/test/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuiteTest.java
 
b/oak-benchmarks-lucene/src/test/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuiteTest.java
new file mode 100644
index 0000000000..14aa1ada6d
--- /dev/null
+++ 
b/oak-benchmarks-lucene/src/test/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityNodeRelationshipSuiteTest.java
@@ -0,0 +1,175 @@
+/*
+ * 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.scalability.suites;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test suite for ScalabilityNodeRelationshipSuite
+ */
+public class ScalabilityNodeRelationshipSuiteTest {
+
+    private String originalNodeLevelsProperty;
+
+    @Before
+    public void saveOriginalProperty() {
+        originalNodeLevelsProperty = System.getProperty("nodeLevels");
+    }
+
+    @After
+    public void restoreOriginalProperty() {
+        if (originalNodeLevelsProperty == null) {
+            System.clearProperty("nodeLevels");
+        } else {
+            System.setProperty("nodeLevels", originalNodeLevelsProperty);
+        }
+    }
+
+    @Test
+    public void testDefaultNodeLevels() throws Exception {
+        System.clearProperty("nodeLevels");
+
+        // Create a new instance to initialize static fields
+        new TestScalabilityNodeRelationshipSuite();
+
+        Field nodeLevelsField = 
ScalabilityNodeRelationshipSuite.class.getDeclaredField("NODE_LEVELS");
+        nodeLevelsField.setAccessible(true);
+        List<String> nodeLevels = (List<String>) nodeLevelsField.get(null);
+
+        // Clear and populate the list with new values
+        nodeLevels.clear();
+        nodeLevels.addAll(getNodeLevels(System.getProperty("nodeLevels", 
"10,5,2,1")));
+
+        assertEquals(4, nodeLevels.size());
+        assertEquals("10", nodeLevels.get(0));
+        assertEquals("5", nodeLevels.get(1));
+        assertEquals("2", nodeLevels.get(2));
+        assertEquals("1", nodeLevels.get(3));
+    }
+
+    @Test
+    public void testCustomNodeLevels() throws Exception {
+        System.setProperty("nodeLevels", "20,10,5,2");
+
+        // Create a new instance to initialize static fields
+        new TestScalabilityNodeRelationshipSuite();
+
+        Field nodeLevelsField = 
ScalabilityNodeRelationshipSuite.class.getDeclaredField("NODE_LEVELS");
+        nodeLevelsField.setAccessible(true);
+        List<String> nodeLevels = (List<String>) nodeLevelsField.get(null);
+
+        // Clear and populate the list with new values
+        nodeLevels.clear();
+        nodeLevels.addAll(getNodeLevels(System.getProperty("nodeLevels", 
"10,5,2,1")));
+
+        assertEquals(4, nodeLevels.size());
+        assertEquals("20", nodeLevels.get(0));
+        assertEquals("10", nodeLevels.get(1));
+        assertEquals("5", nodeLevels.get(2));
+        assertEquals("2", nodeLevels.get(3));
+    }
+
+    @Test
+    public void testWhitespaceTrimmingInNodeLevels() throws Exception {
+        System.setProperty("nodeLevels", " 15 , 8 , 4 , 2 ");
+
+        // Create a new instance to initialize static fields
+        new TestScalabilityNodeRelationshipSuite();
+
+        Field nodeLevelsField = 
ScalabilityNodeRelationshipSuite.class.getDeclaredField("NODE_LEVELS");
+        nodeLevelsField.setAccessible(true);
+        List<String> nodeLevels = (List<String>) nodeLevelsField.get(null);
+
+        // Clear and populate the list with new values
+        nodeLevels.clear();
+        nodeLevels.addAll(getNodeLevels(System.getProperty("nodeLevels", 
"10,5,2,1")));
+
+        assertEquals(4, nodeLevels.size());
+        assertEquals("15", nodeLevels.get(0));
+        assertEquals("8", nodeLevels.get(1));
+        assertEquals("4", nodeLevels.get(2));
+        assertEquals("2", nodeLevels.get(3));
+    }
+
+    @Test
+    public void testEmptyValuesFiltering() throws Exception {
+        System.setProperty("nodeLevels", "25,,10,,3");
+
+        // Create a new instance to initialize static fields
+        new TestScalabilityNodeRelationshipSuite();
+
+        Field nodeLevelsField = 
ScalabilityNodeRelationshipSuite.class.getDeclaredField("NODE_LEVELS");
+        nodeLevelsField.setAccessible(true);
+        List<String> nodeLevels = (List<String>) nodeLevelsField.get(null);
+
+        // Clear and populate the list with new values
+        nodeLevels.clear();
+        nodeLevels.addAll(getNodeLevels(System.getProperty("nodeLevels", 
"10,5,2,1")));
+
+        assertEquals(3, nodeLevels.size());
+        assertEquals("25", nodeLevels.get(0));
+        assertEquals("10", nodeLevels.get(1));
+        assertEquals("3", nodeLevels.get(2));
+    }
+
+    @Test
+    public void testDifferentNumberOfLevels() throws Exception {
+        System.setProperty("nodeLevels", "50,25,10");
+
+        // Create a new instance to initialize static fields
+        new TestScalabilityNodeRelationshipSuite();
+
+        Field nodeLevelsField = 
ScalabilityNodeRelationshipSuite.class.getDeclaredField("NODE_LEVELS");
+        nodeLevelsField.setAccessible(true);
+        List<String> nodeLevels = (List<String>) nodeLevelsField.get(null);
+
+        // Clear and populate the list with new values
+        nodeLevels.clear();
+        nodeLevels.addAll(getNodeLevels(System.getProperty("nodeLevels", 
"10,5,2,1")));
+
+        assertEquals(3, nodeLevels.size());
+        assertEquals("50", nodeLevels.get(0));
+        assertEquals("25", nodeLevels.get(1));
+        assertEquals("10", nodeLevels.get(2));
+    }
+
+    private List<String> getNodeLevels(String value) {
+        return Arrays.stream(System.getProperty("nodeLevels", 
"10,5,2,1").split(","))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList());
+    }
+
+    // Test subclass to access protected members
+    private static class TestScalabilityNodeRelationshipSuite extends 
ScalabilityNodeRelationshipSuite {
+        public TestScalabilityNodeRelationshipSuite() {
+            super(false);
+        }
+    }
+}
\ No newline at end of file
diff --git 
a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
 
b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
index 2b69733fd6..cc31f5bbd5 100644
--- 
a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
+++ 
b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
@@ -29,8 +29,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import joptsimple.OptionParser;
 import joptsimple.OptionSet;
 import org.apache.commons.io.FileUtils;
@@ -140,9 +140,11 @@ public class ScalabilityRunner {
         Map<String, List<String>> argmap = new HashMap<>();
         // Split the args to get suites and benchmarks (i.e. 
suite:benchmark1,benchmark2)
         for(String arg : argset) {
-            List<String> tokens = Splitter.on(":").limit(2).splitToList(arg);
+            List<String> tokens = Arrays.stream(arg.split(":", 
2)).collect(Collectors.toList());
             if (tokens.size() > 1) {
-                argmap.put(tokens.get(0), 
Splitter.on(",").trimResults().splitToList(tokens.get(1)));
+                argmap.put(tokens.get(0), 
Arrays.stream(tokens.get(1).split(","))
+                        .map(String::trim)
+                        .collect(Collectors.toList()));
             } else {
                 argmap.put(tokens.get(0), null);
             }
diff --git 
a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuite.java
 
b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuite.java
index 4b8bcfb98c..b65d26ef36 100644
--- 
a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuite.java
+++ 
b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuite.java
@@ -20,6 +20,7 @@ package org.apache.jackrabbit.oak.scalability.suites;
 
 import java.io.PrintStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -29,6 +30,7 @@ import java.util.Random;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.stream.Collectors;
 
 import javax.jcr.Credentials;
 import javax.jcr.Repository;
@@ -36,8 +38,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
-
 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
 import 
org.apache.commons.math3.stat.descriptive.SynchronizedDescriptiveStatistics;
 import org.apache.jackrabbit.oak.benchmark.CSVResultGenerator;
@@ -102,8 +102,10 @@ public abstract class ScalabilityAbstractSuite implements 
ScalabilitySuite, CSVR
     /**
      * Controls the incremental load for each iteration
      */
-    protected static final List<String> INCREMENTS = 
Splitter.on(",").trimResults()
-                    
.omitEmptyStrings().splitToList(System.getProperty("increments", "1,2,5"));
+    protected static final List<String> INCREMENTS = 
Arrays.stream(System.getProperty("increments", "1,2,5").split(","))
+            .map(String::trim)
+            .filter(s -> !s.isEmpty())
+            .collect(Collectors.toList());
 
     protected static final Credentials CREDENTIALS = new 
SimpleCredentials("admin", "admin"
             .toCharArray());
diff --git 
a/oak-benchmarks/src/test/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuiteTest.java
 
b/oak-benchmarks/src/test/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuiteTest.java
new file mode 100644
index 0000000000..dde4bc4c0c
--- /dev/null
+++ 
b/oak-benchmarks/src/test/java/org/apache/jackrabbit/oak/scalability/suites/ScalabilityAbstractSuiteTest.java
@@ -0,0 +1,159 @@
+/*
+ * 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.scalability.suites;
+
+import org.apache.jackrabbit.oak.scalability.ScalabilitySuite;
+import org.apache.jackrabbit.oak.scalability.benchmarks.ScalabilityBenchmark;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class ScalabilityAbstractSuiteTest {
+
+    private String originalIncrementsProperty;
+
+    @Before
+    public void saveOriginalProperty() {
+        originalIncrementsProperty = System.getProperty("increments");
+    }
+
+    @After
+    public void restoreOriginalProperty() throws Exception {
+        if (originalIncrementsProperty == null) {
+            System.clearProperty("increments");
+        } else {
+            System.setProperty("increments", originalIncrementsProperty);
+        }
+    }
+
+    private List<String> getIncrementsList(String value) {
+        return Arrays.stream(value.split(","))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(java.util.stream.Collectors.toList());
+    }
+
+    @Test
+    public void testDefaultIncrementsValue() throws Exception {
+        System.clearProperty("increments");
+
+        // Create a new instance to reinitialize static fields
+        new TestScalabilityAbstractSuite();
+
+        Field incrementsField = 
ScalabilityAbstractSuite.class.getDeclaredField("INCREMENTS");
+        incrementsField.setAccessible(true);
+        List<String> increments = (List<String>) incrementsField.get(null);
+
+        // Clear and populate the list with new values
+        increments.clear();
+        increments.addAll(getIncrementsList(System.getProperty("increments", 
"1,2,5")));
+
+
+        assertEquals(3, increments.size());
+        assertEquals("1", increments.get(0));
+        assertEquals("2", increments.get(1));
+        assertEquals("5", increments.get(2));
+    }
+
+    @Test
+    public void testCustomIncrementsValue() throws Exception {
+        System.setProperty("increments", "10,20,30,40");
+
+        // Create a new instance to reinitialize static fields
+        new TestScalabilityAbstractSuite();
+
+        Field incrementsField = 
ScalabilityAbstractSuite.class.getDeclaredField("INCREMENTS");
+        incrementsField.setAccessible(true);
+        List<String> increments = (List<String>) incrementsField.get(null);
+        // Clear and populate the list with new values
+        increments.clear();
+        increments.addAll(getIncrementsList(System.getProperty("increments", 
"1,2,5")));
+
+        assertEquals(4, increments.size());
+        assertEquals("10", increments.get(0));
+        assertEquals("20", increments.get(1));
+        assertEquals("30", increments.get(2));
+        assertEquals("40", increments.get(3));
+    }
+
+    @Test
+    public void testWhitespaceTrimmingInIncrements() throws Exception {
+        System.setProperty("increments", " 5 , 10 , 15 ");
+
+        // Create a new instance to reinitialize static fields
+        new TestScalabilityAbstractSuite();
+
+        Field incrementsField = 
ScalabilityAbstractSuite.class.getDeclaredField("INCREMENTS");
+        incrementsField.setAccessible(true);
+        List<String> increments = (List<String>) incrementsField.get(null);
+
+        // Clear and populate the list with new values
+        increments.clear();
+        increments.addAll(getIncrementsList(System.getProperty("increments", 
"1,2,5")));
+
+
+        assertEquals(3, increments.size());
+        assertEquals("5", increments.get(0));
+        assertEquals("10", increments.get(1));
+        assertEquals("15", increments.get(2));
+    }
+
+    @Test
+    public void testEmptyValuesFiltering() throws Exception {
+        System.setProperty("increments", "5,,10,,15");
+
+        // Create a new instance to reinitialize static fields
+        new TestScalabilityAbstractSuite();
+
+        Field incrementsField = 
ScalabilityAbstractSuite.class.getDeclaredField("INCREMENTS");
+        incrementsField.setAccessible(true);
+        List<String> increments = (List<String>) incrementsField.get(null);
+
+        // Clear and populate the list with new values
+        increments.clear();
+        increments.addAll(getIncrementsList(System.getProperty("increments", 
"1,2,5")));
+
+        assertEquals(3, increments.size());
+        assertEquals("5", increments.get(0));
+        assertEquals("10", increments.get(1));
+        assertEquals("15", increments.get(2));
+    }
+
+    // Test subclass to access protected members
+    private static class TestScalabilityAbstractSuite extends 
ScalabilityAbstractSuite {
+        @Override
+        protected void 
executeBenchmark(org.apache.jackrabbit.oak.scalability.benchmarks.ScalabilityBenchmark
 benchmark,
+                                        ExecutionContext context) throws 
Exception {
+            // No implementation needed for testing
+        }
+
+        @Override
+        public ScalabilitySuite addBenchmarks(ScalabilityBenchmark... 
benchmarks) {
+            return null;
+        }
+    }
+
+}
\ No newline at end of file
diff --git 
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java
 
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java
index 7a7b560c8e..184ed21696 100644
--- 
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java
+++ 
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java
@@ -16,13 +16,13 @@
  */
 package org.apache.jackrabbit.oak.plugins.blob.datastore;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.guava.common.collect.FluentIterable;
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
@@ -117,8 +117,11 @@ public class SharedDataStoreUtils {
         }
 
         public String getIdFromName(String name) {
-            return Splitter.on("_").limit(2).splitToList(
-                Splitter.on(DELIM).limit(2).splitToList(name).get(1)).get(0);
+            return Arrays.stream(name.split(DELIM, 2))
+                    .skip(1)
+                    .findFirst()
+                    .map(s -> s.split("_", 2)[0])
+                    .orElse(null);
         }
 
         public String getNameFromId(String id) {
diff --git 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java
 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java
index 3060ea5199..3dfda0e7a6 100644
--- 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java
+++ 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java
@@ -59,7 +59,6 @@ import java.util.Random;
 import java.util.Set;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.commons.sort.EscapeUtils;
 import org.jetbrains.annotations.Nullable;
@@ -96,7 +95,11 @@ public class FileIOUtilsTest {
         File f = folder.newFile();
         int count = writeStrings(added.iterator(), f, false, new 
java.util.function.Function<String, String>() {
             @Nullable @Override public String apply(@Nullable String input) {
-                return 
Splitter.on("-").trimResults().omitEmptyStrings().splitToList(input).get(0);
+                return Arrays.stream(input.split("-"))
+                        .map(String::trim)
+                        .filter(s -> !s.isEmpty())
+                        .findFirst()
+                        .orElse(null);
             }
         }, null, null);
         assertEquals(added.size(), count);
diff --git 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
index c09d39a6c2..c2a7761ab9 100644
--- 
a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
+++ 
b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileLineDifferenceIteratorTest.java
@@ -33,9 +33,9 @@ import java.util.List;
 import java.util.Random;
 import java.util.TreeSet;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 
 import org.apache.commons.io.LineIterator;
-import org.apache.jackrabbit.guava.common.base.Splitter;
 
 import org.apache.jackrabbit.oak.commons.collections.ListUtils;
 import org.apache.jackrabbit.oak.commons.io.FileLineDifferenceIterator;
@@ -172,7 +172,7 @@ public class FileLineDifferenceIteratorTest {
     }
 
     private static LineIterator lineItr(String seq) {
-        Iterable<String> seqItr = Splitter.on(',').trimResults().split(seq);
+        Iterable<String> seqItr = 
Arrays.stream(seq.split(",")).map(String::trim).collect(Collectors.toList());
         String lines = String.join(System.getProperty("line.separator"), 
seqItr);
         return new LineIterator(new StringReader(lines));
     }
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
index 4ef79bd8f1..f27f0c05d7 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
@@ -28,6 +28,7 @@ import static 
org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NO
 
 import java.io.Closeable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.HashSet;
@@ -39,6 +40,7 @@ import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.CompositeDataSupport;
@@ -56,7 +58,6 @@ import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
 import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean;
 import org.apache.jackrabbit.oak.commons.time.Stopwatch;
 import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandler;
@@ -99,8 +100,6 @@ import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
-
 public class AsyncIndexUpdate implements Runnable, Closeable {
     /**
      * Name of service property which determines the name of Async task
@@ -1448,8 +1447,10 @@ public class AsyncIndexUpdate implements Runnable, 
Closeable {
 
         @Override
         public void splitIndexingTask(String paths, String newIndexTaskName) {
-            splitIndexingTask(SetUtils.toSet(Splitter.on(",").trimResults()
-                    .omitEmptyStrings().split(paths)), newIndexTaskName);
+            splitIndexingTask(Arrays.stream(paths.split(","))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toSet()), newIndexTaskName);
         }
 
         private void splitIndexingTask(Set<String> paths,
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SimpleExcerptProvider.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SimpleExcerptProvider.java
index dec486e782..68f37cdd48 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SimpleExcerptProvider.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/SimpleExcerptProvider.java
@@ -16,13 +16,13 @@
  */
 package org.apache.jackrabbit.oak.query;
 
+import java.util.Arrays;
 import java.util.BitSet;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-
-import org.apache.jackrabbit.guava.common.base.Splitter;
+import java.util.stream.Collectors;
 
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.PropertyValue;
@@ -297,9 +297,11 @@ class SimpleExcerptProvider {
     }
 
     static PropertyValue getExcerpt(PropertyValue value) {
-        Splitter listSplitter = 
Splitter.on(',').trimResults().omitEmptyStrings();
         StringBuilder excerpt = new StringBuilder(EXCERPT_BEGIN);
-        for (String v : listSplitter.splitToList(value.toString())) {
+        for (String v : Arrays.stream(value.toString().split(","))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList())) {
             excerpt.append(v);
         }
         excerpt.append(EXCERPT_END);
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NotFullTextSearchImpl.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NotFullTextSearchImpl.java
index 6506fc5eef..79fdda47ee 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NotFullTextSearchImpl.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/NotFullTextSearchImpl.java
@@ -18,17 +18,16 @@ package org.apache.jackrabbit.oak.query.ast;
 
 import static java.util.Objects.requireNonNull;
 
+import java.util.Arrays;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.apache.jackrabbit.oak.api.PropertyValue;
 import org.apache.jackrabbit.oak.query.index.FilterImpl;
 import org.jetbrains.annotations.NotNull;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
-
 public class NotFullTextSearchImpl extends FullTextSearchImpl {
     private static final Set<String> KEYWORDS = Set.of("or");
-    private static final Splitter SPACE_SPLITTER = Splitter.on(' 
').omitEmptyStrings().trimResults();
 
     public NotFullTextSearchImpl(String selectorName, String propertyName,
                                  StaticOperandImpl fullTextSearchExpression) {
@@ -47,7 +46,10 @@ public class NotFullTextSearchImpl extends 
FullTextSearchImpl {
 
     @Override
     String getRawText(PropertyValue v) {
-        Iterable<String> terms = SPACE_SPLITTER.split(super.getRawText(v));
+        Iterable<String> terms = Arrays.stream(super.getRawText(v).split(" "))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList());
         StringBuilder raw = new StringBuilder();
         for (String term : terms) {
             if (isKeyword(term)) {
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SimpleExcerptProviderTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SimpleExcerptProviderTest.java
index 3329534282..82563b854d 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SimpleExcerptProviderTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/query/SimpleExcerptProviderTest.java
@@ -26,6 +26,9 @@ import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 
+import org.apache.jackrabbit.oak.api.PropertyValue;
+import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
 import org.junit.Test;
 
 public class SimpleExcerptProviderTest {
@@ -127,6 +130,48 @@ public class SimpleExcerptProviderTest {
         assertEquals(expected, highlight(sb(text), Set.of("quest*", "b*")));
     }
 
+    @Test
+    public void testGetExcerptSingleValue() {
+        PropertyValue value = PropertyValues.newString("test");
+        PropertyValue result = SimpleExcerptProvider.getExcerpt(value);
+        assertEquals("<div><span>test</span></div>", 
result.getValue(Type.STRING));
+    }
+
+    @Test
+    public void testGetExcerptMultipleValues() {
+        PropertyValue value = PropertyValues.newString("one,two,three");
+        PropertyValue result = SimpleExcerptProvider.getExcerpt(value);
+        assertEquals("<div><span>onetwothree</span></div>", 
result.getValue(Type.STRING));
+    }
+
+    @Test
+    public void testGetExcerptWithWhitespace() {
+        PropertyValue value = PropertyValues.newString("  one  ,  two  ,  
three  ");
+        PropertyValue result = SimpleExcerptProvider.getExcerpt(value);
+        assertEquals("<div><span>onetwothree</span></div>", 
result.getValue(Type.STRING));
+    }
+
+    @Test
+    public void testGetExcerptWithEmptyValues() {
+        PropertyValue value = PropertyValues.newString("one,,three");
+        PropertyValue result = SimpleExcerptProvider.getExcerpt(value);
+        assertEquals("<div><span>onethree</span></div>", 
result.getValue(Type.STRING));
+    }
+
+    @Test
+    public void testGetExcerptWithEmptyInput() {
+        PropertyValue value = PropertyValues.newString("");
+        PropertyValue result = SimpleExcerptProvider.getExcerpt(value);
+        assertEquals("<div><span></span></div>", result.getValue(Type.STRING));
+    }
+
+    @Test
+    public void testGetExcerptWithOnlyDelimiters() {
+        PropertyValue value = PropertyValues.newString(" , , ");
+        PropertyValue result = SimpleExcerptProvider.getExcerpt(value);
+        assertEquals("<div><span></span></div>", result.getValue(Type.STRING));
+    }
+
     private static String randomString(Random r, String set) {
         int len = r.nextInt(10);
         StringBuilder buff = new StringBuilder();
diff --git 
a/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
 
b/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
index 5999697f60..6ba8b5126a 100644
--- 
a/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
+++ 
b/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
@@ -22,12 +22,13 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.oak.commons.collections.SetUtils;
 import org.json.simple.JSONObject;
 import org.json.simple.JSONValue;
@@ -104,7 +105,10 @@ class ConfigTracker extends 
ServiceTracker<ConfigurationAdmin, ConfigurationAdmi
             return configs;
         }
 
-        List<String> files = 
Splitter.on(',').trimResults().omitEmptyStrings().splitToList(jsonFilePath);
+        List<String> files = Arrays.stream(jsonFilePath.split(","))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList());
         for (String filePath : files) {
             File jsonFile = new File(filePath);
             if (!jsonFile.exists()) {
diff --git 
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
 
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
index b733dbe874..9747655e5e 100644
--- 
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
+++ 
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
@@ -19,16 +19,17 @@ package org.apache.jackrabbit.oak.fixture;
 import java.io.File;
 import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import javax.sql.DataSource;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.blob.BlobAccessProvider;
 import org.apache.jackrabbit.oak.commons.StringUtils;
@@ -542,7 +543,7 @@ public abstract class OakFixture {
 
             Set<String> paths = new HashSet<>();
             if (persistentCacheIncludes != null) {
-                for (String p : 
Splitter.on(',').split(persistentCacheIncludes)) {
+                for (String p : 
Arrays.stream(persistentCacheIncludes.split(",")).collect(Collectors.toList())) 
{
                     p = p != null ? StringUtils.emptyToNull(p.trim()) : null;
                     if (p != null) {
                         paths.add(p);
diff --git 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
index bbc303292c..dcc6a0219e 100644
--- 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
+++ 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
@@ -42,8 +42,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import com.mongodb.MongoClient;
 import com.mongodb.MongoClientURI;
 import com.mongodb.MongoURI;
@@ -312,7 +312,10 @@ public class DataStoreCheckCommand implements Command {
     }
 
     static String encodeId(String id, String dsType) {
-        List<String> idLengthSepList = 
Splitter.on(HASH).trimResults().omitEmptyStrings().splitToList(id);
+        List<String> idLengthSepList = Arrays.stream(id.split(HASH))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList());
         String blobId = idLengthSepList.get(0);
 
         if (dsType.equals(FDS)) {
@@ -325,9 +328,15 @@ public class DataStoreCheckCommand implements Command {
     }
 
     private static String decodeId(String id) {
-        List<String> list = 
Splitter.on(System.getProperty("file.separator")).trimResults().omitEmptyStrings().splitToList(id);
+        List<String> list = 
Arrays.stream(id.split(System.getProperty("file.separator")))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList());
         String pathStrippedId = list.get(list.size() -1);
-        return String.join("", 
Splitter.on(DASH).omitEmptyStrings().trimResults().splitToList(pathStrippedId));
+        return Arrays.stream(pathStrippedId.split(DASH))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.joining(""));
     }
 
     static class FileRegister implements Closeable {
diff --git 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
index 947e7b7a4c..c9e84e29c7 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
@@ -39,7 +39,6 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import joptsimple.OptionParser;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.LineIterator;
@@ -538,8 +537,10 @@ public class DataStoreCommand implements Command {
 
         private void getInclusionListFromRegex(NodeState rootState, String 
rootPath, String inclusionRegex,
             Map<NodeState, String> inclusionNodeStates) {
-            Splitter delimSplitter = 
Splitter.on("/").trimResults().omitEmptyStrings();
-            List<String> pathElementList = 
delimSplitter.splitToList(inclusionRegex);
+            List<String> pathElementList = 
Arrays.stream(inclusionRegex.split("/"))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
 
             // Get the first pathElement from the regexPath
             String pathElement = pathElementList.get(0);
@@ -574,8 +575,6 @@ public class DataStoreCommand implements Command {
                 return s1.split(DELIM)[0].compareTo(s2.split(DELIM)[0]);
             }
         };
-        private final static Splitter delimSplitter = 
Splitter.on(DELIM).trimResults().omitEmptyStrings();
-
         private final BlobStoreOptions optionBean;
         private final BlobStoreOptions.Type blobStoreType;
         private final File outDir;
@@ -638,11 +637,17 @@ public class DataStoreCommand implements Command {
             // Line would be like 
b47b58169f121822cd4a0a0a153ba5910e581ad2bc450b6af7e51e6214c2b173#123311,/a/b/c
             // In case of dumping ids, there would not be any paths associated 
and there the line would simply be
             // 
b47b58169f121822cd4a0a0a153ba5910e581ad2bc450b6af7e51e6214c2b173#123311
-            List<String> list = delimSplitter.splitToList(line);
+            List<String> list = Arrays.stream(line.split(DELIM))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
 
             String id = list.get(0);
             // Split 
b47b58169f121822cd4a0a0a153ba5910e581ad2bc450b6af7e51e6214c2b173#123311 on # to 
get the id
-            List<String> idLengthSepList = 
Splitter.on(HASH).trimResults().omitEmptyStrings().splitToList(id);
+            List<String> idLengthSepList = Arrays.stream(id.split(HASH))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
             String blobId = idLengthSepList.get(0);
 
             if (dsType == FAKE || dsType == FDS) {
diff --git 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MetricsExporterFixtureProvider.java
 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MetricsExporterFixtureProvider.java
index bad7e9f54d..cc81364206 100644
--- 
a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MetricsExporterFixtureProvider.java
+++ 
b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/MetricsExporterFixtureProvider.java
@@ -19,11 +19,12 @@
 package org.apache.jackrabbit.oak.run;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import com.codahale.metrics.MetricRegistry;
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import io.prometheus.client.CollectorRegistry;
 import io.prometheus.client.dropwizard.DropwizardExports;
 import io.prometheus.client.exporter.PushGateway;
@@ -88,7 +89,10 @@ public class MetricsExporterFixtureProvider {
         private final Map<String, String> pushMap;
 
         ExportMetricsArgs(String args) {
-            List<String> split = 
Splitter.on(";").limit(3).omitEmptyStrings().trimResults().splitToList(args);
+            List<String> split = Arrays.stream(args.split(";", 3))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
             this.exporterType = ExporterType.valueOf(split.get(0));
 
             if (split.size() < 2) {
@@ -98,7 +102,14 @@ public class MetricsExporterFixtureProvider {
             this.pushUri = split.get(1);
 
             if (split.size() > 2) {
-                this.pushMap = 
Splitter.on(",").omitEmptyStrings().trimResults().withKeyValueSeparator("=").split(split.get(2));
+                this.pushMap = Arrays.stream(split.get(2).split(","))
+                        .map(String::trim)
+                        .filter(s -> !s.isEmpty())
+                        .map(s -> s.split("=", 2))
+                        .filter(arr -> arr.length == 2)
+                        .collect(Collectors.toMap(
+                                arr -> arr[0],
+                                arr -> arr[1]));
             } else {
                 this.pushMap = emptyMap();
             }
diff --git 
a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java 
b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
index af3c914993..d97d629e19 100644
--- 
a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
+++ 
b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
@@ -41,7 +41,6 @@ import java.util.stream.StreamSupport;
 
 import ch.qos.logback.classic.Level;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import joptsimple.OptionException;
 import org.apache.commons.io.FileUtils;
 import org.apache.felix.cm.file.ConfigurationHandler;
@@ -722,7 +721,7 @@ public class DataStoreCommandTest {
                 storeFixture.getConnectionString(), "--out-dir", 
dump.getAbsolutePath(), "--work-dir",
                 temporaryFolder.newFolder().getAbsolutePath()));
         if (!StringUtils.isEmpty(additionalParams)) {
-            argsList.addAll(Splitter.on(" ").splitToList(additionalParams));
+            argsList.addAll(Arrays.stream(additionalParams.split(" 
")).collect(Collectors.toList()));
         }
 
         if (verbose) {
@@ -763,7 +762,7 @@ public class DataStoreCommandTest {
                         storeFixture.getConnectionString(), "--out-dir", 
dump.getAbsolutePath(), "--work-dir",
                         temporaryFolder.newFolder().getAbsolutePath()));
         if (!StringUtils.isEmpty(additionalParams)) {
-            argsList.addAll(Splitter.on(" ").splitToList(additionalParams));
+            argsList.addAll(Arrays.stream(additionalParams.split(" 
")).collect(Collectors.toList()));
         }
 
         if (verbose) {
@@ -785,7 +784,7 @@ public class DataStoreCommandTest {
                         storeFixture.getConnectionString(), "--out-dir", 
dump.getAbsolutePath(), "--work-dir",
                         temporaryFolder.newFolder().getAbsolutePath()));
         if (!StringUtils.isEmpty(additionalParams)) {
-            argsList.addAll(Splitter.on(" ").splitToList(additionalParams));
+            argsList.addAll(Arrays.stream(additionalParams.split(" 
")).collect(Collectors.toList()));
         }
 
         if (verbose) {
@@ -807,7 +806,7 @@ public class DataStoreCommandTest {
                 storeFixture.getConnectionString(), "--out-dir", 
dump.getAbsolutePath(), "--work-dir",
                 temporaryFolder.newFolder().getAbsolutePath()));
         if (!StringUtils.isEmpty(additionalParams)) {
-            argsList.addAll(Splitter.on(" ").splitToList(additionalParams));
+            argsList.addAll(Arrays.stream(additionalParams.split(" 
")).collect(Collectors.toList()));
         }
 
         DataStoreCommand cmd = new DataStoreCommand();
@@ -930,7 +929,10 @@ public class DataStoreCommandTest {
 
 
     static String encodeId(String id, Type dsType) {
-        List<String> idLengthSepList = 
Splitter.on(HASH).trimResults().omitEmptyStrings().splitToList(id);
+        List<String> idLengthSepList = Arrays.stream(id.split(HASH))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toList());
         String blobId = idLengthSepList.get(0);
 
         if (dsType == Type.FDS) {
diff --git 
a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
 
b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
index fc45c47847..07be1c57e6 100644
--- 
a/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
+++ 
b/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/PermissionsTest.java
@@ -23,7 +23,6 @@ import java.util.Map;
 import java.util.Set;
 import javax.jcr.Session;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -179,7 +178,7 @@ public class PermissionsTest {
             for (long p : value) {
                 expected.add(Permissions.PERMISSION_NAMES.get(p));
             }
-            assertEquals(expected, 
SetUtils.toSet(Splitter.on(',').split(Permissions.getString(key))));
+            assertEquals(expected, 
SetUtils.toSet(Permissions.getString(key).split(",")));
         });
     }
 
@@ -201,7 +200,7 @@ public class PermissionsTest {
             for (long p : value) {
                 expected.add(Permissions.PERMISSION_NAMES.get(p));
             }
-            assertEquals(expected, 
SetUtils.toSet(Splitter.on(',').split(Permissions.getString(key))));
+            assertEquals(expected, 
SetUtils.toSet(Permissions.getString(key).split(",")));
         });
     }
 
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 75fe560f99..94aeaa68da 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
@@ -22,13 +22,14 @@ package org.apache.jackrabbit.oak.segment.file;
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFile;
 import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFileReader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
 
 /**
@@ -54,7 +55,7 @@ public final class JournalReader extends 
AbstractIterator<JournalEntry> implemen
             String line = null;
             while ((line = reader.readLine()) != null) {
                 if (line.indexOf(' ') != -1) {
-                    List<String> splits = Splitter.on(' ').splitToList(line);
+                    List<String> splits = Stream.of(line.split(" ", 
-1)).collect(Collectors.toList());
                     String revision = splits.get(0);
                     long timestamp = -1L;
                     
diff --git 
a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
 
b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
index a0597eeb6c..92f02ba36c 100644
--- 
a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
+++ 
b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/JournalEntryTest.java
@@ -25,9 +25,10 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.nio.file.Files;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
 import org.apache.jackrabbit.oak.segment.file.tar.LocalJournalFile;
@@ -86,7 +87,7 @@ public class JournalEntryTest {
     }
 
     private List<String> journalParts(String line){
-        return Splitter.on(' ').splitToList(line);
+        return Arrays.stream(line.split(" ")).collect(Collectors.toList());
     }
 
 }
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
index 6fe32fffe7..d28d169602 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
@@ -22,6 +22,7 @@ import static 
org.apache.jackrabbit.oak.plugins.document.UpdateUtils.assertUncon
 import static 
org.apache.jackrabbit.oak.plugins.document.UpdateUtils.checkConditions;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -30,8 +31,8 @@ import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
 import org.apache.jackrabbit.oak.plugins.document.Collection;
@@ -411,7 +412,10 @@ public class MemoryDocumentStore implements DocumentStore {
         }
         lastReadWriteMode = readWriteMode;
         try {
-            Map<String, String> map = Splitter.on(", 
").withKeyValueSeparator(":").split(readWriteMode);
+            Map<String, String> map = Arrays.stream(readWriteMode.split(", "))
+                    .map(s -> s.split(":", 2))
+                    .filter(arr -> arr.length == 2)
+                    .collect(Collectors.toMap(arr -> arr[0], arr -> arr[1]));
             String read = map.get("read");
             if (read != null) {
                 ReadPreference readPref = ReadPreference.valueOf(read);
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ExternalChangesTest.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ExternalChangesTest.java
index 1fb1f35e49..2299e711b5 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ExternalChangesTest.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ExternalChangesTest.java
@@ -19,13 +19,12 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.base.Splitter;
-
 import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
 import org.apache.jackrabbit.oak.plugins.document.spi.JournalProperty;
 import org.apache.jackrabbit.oak.plugins.document.spi.JournalPropertyBuilder;
@@ -305,7 +304,7 @@ public class ExternalChangesTest {
         @Override
         public void addSerializedProperty(@Nullable String s) {
             if (s != null){
-                Splitter.on(',').split(s).forEach(allProps.values::add);
+                allProps.values.addAll(Arrays.asList(s.split(",")));
             }
         }
 
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
index 6f8f894374..6000a95073 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
@@ -22,6 +22,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -34,7 +35,6 @@ import java.util.concurrent.TimeUnit;
 
 import ch.qos.logback.classic.Level;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.guava.common.base.Splitter;
 import com.mongodb.BasicDBObject;
 import com.mongodb.ReadPreference;
 import com.mongodb.client.MongoCollection;
@@ -407,7 +407,9 @@ public class MongoBlobGCTest extends 
AbstractMongoConnectionTest {
         try (InputStream is = new FileInputStream(getMarkedFile(rootFolder))) {
             Set<String> records = FileIOUtils.readStringsAsSet(is, true);
             for (String rec : records) {
-                assertEquals(expected, 
Splitter.on(",").omitEmptyStrings().splitToList(rec).size());
+                assertEquals(expected, Arrays.stream(rec.split(","))
+                        .filter(s -> !s.isEmpty())
+                        .count());
             }
         }
     }

Reply via email to