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());
}
}
}