This is an automated email from the ASF dual-hosted git repository. daim pushed a commit to branch OAK-11774 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit b9a23bf1c3a654aef07041307bee9d739bacc105 Author: rishabhdaim <[email protected]> AuthorDate: Thu Jul 10 10:42:47 2025 +0530 OAK-11774 : removed usage of guava splitter --- .../suites/ScalabilityNodeRelationshipSuite.java | 10 ++++++---- .../oak/scalability/suites/ScalabilityNodeSuite.java | 10 ++++++---- .../jackrabbit/oak/scalability/ScalabilityRunner.java | 8 +++++--- .../scalability/suites/ScalabilityAbstractSuite.java | 10 ++++++---- .../plugins/blob/datastore/SharedDataStoreUtils.java | 9 ++++++--- .../jackrabbit/oak/commons/FileIOUtilsTest.java | 7 +++++-- .../oak/commons/FileLineDifferenceIteratorTest.java | 4 ++-- .../oak/plugins/index/AsyncIndexUpdate.java | 11 ++++++----- .../jackrabbit/oak/query/SimpleExcerptProvider.java | 10 ++++++---- .../oak/query/ast/NotFullTextSearchImpl.java | 10 ++++++---- .../apache/jackrabbit/oak/run/osgi/ConfigTracker.java | 8 ++++++-- .../org/apache/jackrabbit/oak/fixture/OakFixture.java | 5 +++-- .../jackrabbit/oak/run/DataStoreCheckCommand.java | 17 +++++++++++++---- .../apache/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 | 11 +++++++++-- .../jackrabbit/oak/segment/file/JournalEntryTest.java | 5 +++-- .../plugins/document/memory/MemoryDocumentStore.java | 8 ++++++-- .../oak/plugins/document/ExternalChangesTest.java | 5 ++--- .../oak/plugins/document/MongoBlobGCTest.java | 6 ++++-- 22 files changed, 136 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/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-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-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..93403c5385 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 @@ -21,14 +21,15 @@ package org.apache.jackrabbit.oak.segment.file; import java.io.Closeable; import java.io.IOException; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; 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,13 @@ 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; + if (line.trim().isEmpty()) { + // special case handling for empty lines where we need to split by space + splits = Arrays.stream(line.split("")).map(String::trim).collect(Collectors.toList()); + } else { + splits = Arrays.stream(line.split(" ")).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()); } } }
