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 f9ab1acd92 OAK-11754 : removed usage of Guava HashMultimap (#2326)
f9ab1acd92 is described below

commit f9ab1acd920ea9002a36b69622784a2ed8b51968
Author: Rishabh Kumar <rishabhdaim1...@gmail.com>
AuthorDate: Fri Jun 13 11:20:53 2025 +0530

    OAK-11754 : removed usage of Guava HashMultimap (#2326)
    
    Co-authored-by: Rishabh Kumar <d...@adobe.com>
---
 .../oak/plugins/index/lucene/hybrid/IndexedPaths.java     |  6 +++---
 .../index/lucene/hybrid/LuceneJournalPropertyBuilder.java |  8 ++++----
 .../lucene/property/UniquenessConstraintValidator.java    |  6 +++---
 .../index/lucene/hybrid/ExternalIndexObserverTest.java    | 15 +++++++--------
 .../lucene/hybrid/LuceneJournalPropertyBuilderTest.java   | 12 ++++++------
 5 files changed, 23 insertions(+), 24 deletions(-)

diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java
index 3cc5fe88ad..a3bd83092a 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java
@@ -20,16 +20,16 @@ package 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid;
 
 import java.util.Iterator;
 
-import org.apache.jackrabbit.guava.common.collect.Multimap;
+import org.apache.commons.collections4.MultiValuedMap;
 import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
 import org.apache.jackrabbit.oak.plugins.document.spi.JournalProperty;
 
 import static java.util.Objects.requireNonNull;
 
 class IndexedPaths implements JournalProperty, Iterable<IndexedPathInfo> {
-    private final Multimap<String, String> indexedPaths;
+    private final MultiValuedMap<String, String> indexedPaths;
 
-    public IndexedPaths(Multimap<String, String> indexedPaths) {
+    public IndexedPaths(MultiValuedMap<String, String> indexedPaths) {
         this.indexedPaths = requireNonNull(indexedPaths);
     }
 
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java
index a5e27f1035..4330d92c6c 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilder.java
@@ -22,8 +22,8 @@ package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid;
 import java.util.Collection;
 import java.util.Map;
 
-import org.apache.jackrabbit.guava.common.collect.HashMultimap;
-import org.apache.jackrabbit.guava.common.collect.Multimap;
+import org.apache.commons.collections4.MultiValuedMap;
+import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
 import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
 import org.apache.jackrabbit.oak.commons.json.JsopReader;
 import org.apache.jackrabbit.oak.commons.json.JsopTokenizer;
@@ -36,8 +36,8 @@ import org.slf4j.LoggerFactory;
 
 class LuceneJournalPropertyBuilder implements 
JournalPropertyBuilder<LuceneDocumentHolder> {
     private final static Logger log = 
LoggerFactory.getLogger(LuceneJournalPropertyBuilder.class);
-    //Use HashMultimap to ensure that indexPath is not duplicated per node path
-    private final Multimap<String, String> indexedNodes = 
HashMultimap.create();
+    //Use HashSetValuedHashMap to ensure that indexPath is not duplicated per 
node path
+    private final MultiValuedMap<String, String> indexedNodes = new 
HashSetValuedHashMap<>();
     private boolean limitWarningLogged = false;
     private final int maxSize;
 
diff --git 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniquenessConstraintValidator.java
 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniquenessConstraintValidator.java
index 74bfa187ba..a26e8b2472 100644
--- 
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniquenessConstraintValidator.java
+++ 
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/property/UniquenessConstraintValidator.java
@@ -24,8 +24,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.jackrabbit.guava.common.collect.HashMultimap;
-import org.apache.jackrabbit.guava.common.collect.Multimap;
+import org.apache.commons.collections4.MultiValuedMap;
+import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
@@ -50,7 +50,7 @@ import static 
org.apache.jackrabbit.oak.api.CommitFailedException.CONSTRAINT;
 public class UniquenessConstraintValidator {
     private final NodeState rootState;
     private final String indexPath;
-    private final Multimap<String, String> uniqueKeys = HashMultimap.create();
+    private final MultiValuedMap<String, String> uniqueKeys = new 
HashSetValuedHashMap<>();
     private final PropertyQuery firstStore;
     private PropertyQuery secondStore = PropertyQuery.DEFAULT;
 
diff --git 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserverTest.java
 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserverTest.java
index e7ad6f79d5..348556785d 100644
--- 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserverTest.java
+++ 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/ExternalIndexObserverTest.java
@@ -18,9 +18,8 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid;
 
-import org.apache.jackrabbit.guava.common.collect.HashMultimap;
-
-import org.apache.jackrabbit.guava.common.collect.Multimap;
+import org.apache.commons.collections4.MultiValuedMap;
+import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
 import org.apache.jackrabbit.guava.common.util.concurrent.MoreExecutors;
 import org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker;
 import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexDefinition;
@@ -88,7 +87,7 @@ public class ExternalIndexObserverTest {
 
     @Test
     public void nonExistingIndexDefn() throws Exception {
-        Multimap<String, String> indexedPaths = HashMultimap.create();
+        MultiValuedMap<String, String> indexedPaths = new 
HashSetValuedHashMap<>();
         indexedPaths.put("/a", "/oak:index/foo");
 
         commitContext.set(LuceneDocumentHolder.NAME, new 
IndexedPaths(indexedPaths));
@@ -101,7 +100,7 @@ public class ExternalIndexObserverTest {
 
     @Test
     public void nonExistingPath() throws Exception {
-        Multimap<String, String> indexedPaths = HashMultimap.create();
+        MultiValuedMap<String, String> indexedPaths = new 
HashSetValuedHashMap<>();
         indexedPaths.put("/a", "/oak:index/foo");
 
         commitContext.set(LuceneDocumentHolder.NAME, new 
IndexedPaths(indexedPaths));
@@ -114,7 +113,7 @@ public class ExternalIndexObserverTest {
 
     @Test
     public void nonApplicableRule() throws Exception {
-        Multimap<String, String> indexedPaths = HashMultimap.create();
+        MultiValuedMap<String, String> indexedPaths = new 
HashSetValuedHashMap<>();
         indexedPaths.put("/a", "/oak:index/foo");
 
         commitContext.set(LuceneDocumentHolder.NAME, new 
IndexedPaths(indexedPaths));
@@ -132,7 +131,7 @@ public class ExternalIndexObserverTest {
 
     @Test
     public void ruleNotResultingInDoc() throws Exception {
-        Multimap<String, String> indexedPaths = HashMultimap.create();
+        MultiValuedMap<String, String> indexedPaths = new 
HashSetValuedHashMap<>();
         indexedPaths.put("/a", "/oak:index/foo");
 
         commitContext.set(LuceneDocumentHolder.NAME, new 
IndexedPaths(indexedPaths));
@@ -154,7 +153,7 @@ public class ExternalIndexObserverTest {
     }
 
     private void assertIndexing(Observer observer){
-        Multimap<String, String> indexedPaths = HashMultimap.create();
+        MultiValuedMap<String, String> indexedPaths = new 
HashSetValuedHashMap<>();
         indexedPaths.put("/a", "/oak:index/foo");
 
         commitContext.set(LuceneDocumentHolder.NAME, new 
IndexedPaths(indexedPaths));
diff --git 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilderTest.java
 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilderTest.java
index 6913c4aa04..65a4ab4735 100644
--- 
a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilderTest.java
+++ 
b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneJournalPropertyBuilderTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid;
 
-import org.apache.jackrabbit.guava.common.collect.HashMultimap;
-import org.apache.jackrabbit.guava.common.collect.Multimap;
+import org.apache.commons.collections4.MultiValuedMap;
+import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
 import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
 import org.junit.Test;
 
@@ -84,7 +84,7 @@ public class LuceneJournalPropertyBuilderTest {
         builder.addProperty(h2);
 
         IndexedPaths indexedPaths = (IndexedPaths) builder.build();
-        Multimap<String, String> map = createdIndexPathMap(indexedPaths);
+        MultiValuedMap<String, String> map = createdIndexPathMap(indexedPaths);
         assertThat(map.keySet(), containsInAnyOrder("/oak:index/foo", 
"/oak:index/bar"));
         assertThat(map.get("/oak:index/foo"), containsInAnyOrder("/a", "/b"));
     }
@@ -105,7 +105,7 @@ public class LuceneJournalPropertyBuilderTest {
         builder2.addSerializedProperty(json);
 
         IndexedPaths indexedPaths = (IndexedPaths) builder2.build();
-        Multimap<String, String> map = createdIndexPathMap(indexedPaths);
+        MultiValuedMap<String, String> map = createdIndexPathMap(indexedPaths);
         assertThat(map.keySet(), containsInAnyOrder("/oak:index/foo", 
"/oak:index/bar"));
         assertThat(map.get("/oak:index/foo"), containsInAnyOrder("/a", "/b"));
     }
@@ -124,8 +124,8 @@ public class LuceneJournalPropertyBuilderTest {
         assertEquals(maxSize, IterableUtils.size(indexedPaths));
     }
 
-    private Multimap<String, String> 
createdIndexPathMap(Iterable<IndexedPathInfo> itr){
-        Multimap<String, String> map = HashMultimap.create();
+    private MultiValuedMap<String, String> 
createdIndexPathMap(Iterable<IndexedPathInfo> itr){
+        MultiValuedMap<String, String> map = new HashSetValuedHashMap<>();
         for (IndexedPathInfo i : itr){
             for (String indexPath : i.getIndexPaths()){
                 map.put(indexPath, i.getPath());

Reply via email to