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 c2244875b6 OAK-11914 : removed usage of Guava's HashBasedTable (#2573)
c2244875b6 is described below

commit c2244875b68284b72a0283b030049064e905c616
Author: Rishabh Kumar <[email protected]>
AuthorDate: Tue Oct 14 09:45:56 2025 +0530

    OAK-11914 : removed usage of Guava's HashBasedTable (#2573)
    
    * OAK-11914 : removed usage of Guava's HashBasedTable
    
    * OAK-11914 : removed un-necessary usage of computeIfAbsent method
---
 .../nodestore/DocumentMemoryNodeStoreFixture.java  | 22 +++----
 .../nodestore/DocumentMongoNodeStoreFixture.java   | 21 +++---
 .../nodestore/SegmentMemoryNodeStoreFixture.java   | 30 ++++-----
 .../oak/jcr/random/RandomizedReadTest.java         | 74 ++++++++++++----------
 4 files changed, 78 insertions(+), 69 deletions(-)

diff --git 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMemoryNodeStoreFixture.java
 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMemoryNodeStoreFixture.java
index 1328d33d5f..bfbb3f87a1 100644
--- 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMemoryNodeStoreFixture.java
+++ 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMemoryNodeStoreFixture.java
@@ -20,6 +20,8 @@ package 
org.apache.jackrabbit.oak.jcr.binary.fixtures.nodestore;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import javax.jcr.RepositoryException;
 
 import org.apache.commons.io.FileUtils;
@@ -36,9 +38,6 @@ import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.jackrabbit.guava.common.collect.HashBasedTable;
-import org.apache.jackrabbit.guava.common.collect.Table;
-
 /**
  * Creates a repository with
  * - DocumentNodeStore, storing data in-memory
@@ -50,7 +49,7 @@ public class DocumentMemoryNodeStoreFixture extends 
NodeStoreFixture implements
 
     private final DataStoreFixture dataStoreFixture;
 
-    private final Table<NodeStore, String, Object> components = 
HashBasedTable.create();
+    private final Map<NodeStore, Map<String, Object>> components = new 
LinkedHashMap<>();
 
     public DocumentMemoryNodeStoreFixture(@Nullable DataStoreFixture 
dataStoreFixture) {
         this.dataStoreFixture = dataStoreFixture;
@@ -84,14 +83,15 @@ public class DocumentMemoryNodeStoreFixture extends 
NodeStoreFixture implements
             }
 
             NodeStore nodeStore = documentNodeStoreBuilder.build();
+            components.put(nodeStore, new LinkedHashMap<>());
 
             // track all main components
             if (dataStore != null) {
-                components.put(nodeStore, DataStore.class.getName(), 
dataStore);
-                components.put(nodeStore, DataStore.class.getName() + 
":folder", dataStoreFolder);
+                components.get(nodeStore).put(DataStore.class.getName(), 
dataStore);
+                components.get(nodeStore).put(DataStore.class.getName() + 
":folder", dataStoreFolder);
             }
             if (blobStore != null) {
-                components.put(nodeStore, BlobStore.class.getName(), 
blobStore);
+                components.get(nodeStore).put(BlobStore.class.getName(), 
blobStore);
             }
 
             return nodeStore;
@@ -107,15 +107,15 @@ public class DocumentMemoryNodeStoreFixture extends 
NodeStoreFixture implements
                 ((DocumentNodeStore)nodeStore).dispose();
             }
 
-            DataStore dataStore = (DataStore) components.get(nodeStore, 
DataStore.class.getName());
+            DataStore dataStore = (DataStore) 
components.get(nodeStore).get(DataStore.class.getName());
             if (dataStore != null && dataStoreFixture != null) {
                 dataStoreFixture.dispose(dataStore);
 
-                File dataStoreFolder = (File) components.get(nodeStore, 
DataStore.class.getName() + ":folder");
+                File dataStoreFolder = (File) 
components.get(nodeStore).get(DataStore.class.getName() + ":folder");
                 FileUtils.deleteQuietly(dataStoreFolder);
             }
         } finally {
-            components.row(nodeStore).clear();
+            components.get(nodeStore).clear();
         }
     }
 
@@ -127,6 +127,6 @@ public class DocumentMemoryNodeStoreFixture extends 
NodeStoreFixture implements
 
     @Override
     public <T> T get(NodeStore nodeStore, String componentName) {
-        return (T) components.get(nodeStore, componentName);
+        return (T) components.get(nodeStore).get(componentName);
     }
 }
diff --git 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMongoNodeStoreFixture.java
 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMongoNodeStoreFixture.java
index 411a11a85f..1581c381e6 100644
--- 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMongoNodeStoreFixture.java
+++ 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/DocumentMongoNodeStoreFixture.java
@@ -20,13 +20,13 @@ package 
org.apache.jackrabbit.oak.jcr.binary.fixtures.nodestore;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import javax.jcr.RepositoryException;
 
-import org.apache.jackrabbit.guava.common.collect.HashBasedTable;
-import org.apache.jackrabbit.guava.common.collect.Table;
 import org.apache.commons.io.FileUtils;
 import org.apache.jackrabbit.core.data.DataStore;
 import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
@@ -61,7 +61,7 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     private final DataStoreFixture dataStoreFixture;
-    private final Table<NodeStore, String, Object> components = 
HashBasedTable.create();
+    private final Map<NodeStore, Map<String, Object>> components = new 
LinkedHashMap<>();
     private MongoConnection connection;
     private final Clock clock;
     public MongoConnectionFactory connFactory;
@@ -120,14 +120,15 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
             }
 
             NodeStore nodeStore = documentNodeStoreBuilder.build();
+            components.put(nodeStore, new LinkedHashMap<>());
 
             // track all main components
             if (dataStore != null) {
-                components.put(nodeStore, DataStore.class.getName(), 
dataStore);
-                components.put(nodeStore, DataStore.class.getName() + 
":folder", dataStoreFolder);
+                components.get(nodeStore).put(DataStore.class.getName(), 
dataStore);
+                components.get(nodeStore).put(DataStore.class.getName() + 
":folder", dataStoreFolder);
             }
             if (blobStore != null) {
-                components.put(nodeStore, BlobStore.class.getName(), 
blobStore);
+                components.get(nodeStore).put(BlobStore.class.getName(), 
blobStore);
             }
 
             return nodeStore;
@@ -143,11 +144,11 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
                 ((DocumentNodeStore)nodeStore).dispose();
             }
 
-            DataStore dataStore = (DataStore) components.get(nodeStore, 
DataStore.class.getName());
+            DataStore dataStore = (DataStore) 
components.get(nodeStore).get(DataStore.class.getName());
             if (dataStore != null && dataStoreFixture != null) {
                 dataStoreFixture.dispose(dataStore);
 
-                File dataStoreFolder = (File) components.get(nodeStore, 
DataStore.class.getName() + ":folder");
+                File dataStoreFolder = (File) 
components.get(nodeStore).get(DataStore.class.getName() + ":folder");
                 FileUtils.deleteQuietly(dataStoreFolder);
             }
             MongoUtils.dropDatabase(db);
@@ -155,7 +156,7 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
                 connection.close();
             }
         } finally {
-            components.row(nodeStore).clear();
+            components.get(nodeStore).clear();
         }
     }
 
@@ -179,6 +180,6 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
 
     @Override
     public <T> T get(NodeStore nodeStore, String componentName) {
-        return (T) components.get(nodeStore, componentName);
+        return (T) components.get(nodeStore).get(componentName);
     }
 }
diff --git 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/SegmentMemoryNodeStoreFixture.java
 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/SegmentMemoryNodeStoreFixture.java
index 366058f45e..919a036c6d 100644
--- 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/SegmentMemoryNodeStoreFixture.java
+++ 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/binary/fixtures/nodestore/SegmentMemoryNodeStoreFixture.java
@@ -20,6 +20,8 @@ package 
org.apache.jackrabbit.oak.jcr.binary.fixtures.nodestore;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import javax.jcr.RepositoryException;
 
 import org.apache.commons.io.FileUtils;
@@ -42,9 +44,6 @@ import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.jackrabbit.guava.common.collect.HashBasedTable;
-import org.apache.jackrabbit.guava.common.collect.Table;
-
 /**
  * Creates a repository with
  * - SegmentNodeStore, storing data in-memory
@@ -57,7 +56,7 @@ public class SegmentMemoryNodeStoreFixture extends 
NodeStoreFixture implements C
 
     private final DataStoreFixture dataStoreFixture;
 
-    private final Table<NodeStore, String, Object> components = 
HashBasedTable.create();
+    private final Map<NodeStore, Map<String, Object>> components = new 
LinkedHashMap<>();
 
     public SegmentMemoryNodeStoreFixture(@Nullable DataStoreFixture 
dataStoreFixture) {
         this.dataStoreFixture = dataStoreFixture;
@@ -96,17 +95,18 @@ public class SegmentMemoryNodeStoreFixture extends 
NodeStoreFixture implements C
 
             FileStore fileStore = fileStoreBuilder.build();
             NodeStore nodeStore = 
SegmentNodeStoreBuilders.builder(fileStore).build();
+            components.put(nodeStore, new LinkedHashMap<>());
 
             // track all main components
             if (dataStore != null) {
-                components.put(nodeStore, DataStore.class.getName(), 
dataStore);
-                components.put(nodeStore, DataStore.class.getName() + 
":folder", dataStoreFolder);
+                components.get(nodeStore).put(DataStore.class.getName(), 
dataStore);
+                components.get(nodeStore).put(DataStore.class.getName() + 
":folder", dataStoreFolder);
             }
             if (blobStore != null) {
-                components.put(nodeStore, BlobStore.class.getName(), 
blobStore);
+                components.get(nodeStore).put(BlobStore.class.getName(), 
blobStore);
             }
-            components.put(nodeStore, FileStore.class.getName(), fileStore);
-            components.put(nodeStore, FileStore.class.getName() + ":root", 
fileStoreRoot);
+            components.get(nodeStore).put(FileStore.class.getName(), 
fileStore);
+            components.get(nodeStore).put(FileStore.class.getName() + ":root", 
fileStoreRoot);
 
             return nodeStore;
 
@@ -118,22 +118,22 @@ public class SegmentMemoryNodeStoreFixture extends 
NodeStoreFixture implements C
     @Override
     public void dispose(NodeStore nodeStore) {
         try {
-            FileStore fileStore = (FileStore) components.get(nodeStore, 
FileStore.class.getName());
+            FileStore fileStore = (FileStore) 
components.get(nodeStore).get(FileStore.class.getName());
             if (fileStore != null) {
                 fileStore.close();
             }
-            File fileStoreRoot = (File) components.get(nodeStore, 
FileStore.class.getName() + ":root");
+            File fileStoreRoot = (File) 
components.get(nodeStore).get(FileStore.class.getName() + ":root");
             FileUtils.deleteQuietly(fileStoreRoot);
 
-            DataStore dataStore = (DataStore) components.get(nodeStore, 
DataStore.class.getName());
+            DataStore dataStore = (DataStore) 
components.get(nodeStore).get(DataStore.class.getName());
             if (dataStore != null && dataStoreFixture != null) {
                 dataStoreFixture.dispose(dataStore);
 
-                File dataStoreFolder = (File) components.get(nodeStore, 
DataStore.class.getName() + ":folder");
+                File dataStoreFolder = (File) 
components.get(nodeStore).get(DataStore.class.getName() + ":folder");
                 FileUtils.deleteQuietly(dataStoreFolder);
             }
         } finally {
-            components.row(nodeStore).clear();
+            components.get(nodeStore).clear();
         }
     }
 
@@ -158,6 +158,6 @@ public class SegmentMemoryNodeStoreFixture extends 
NodeStoreFixture implements C
 
     @Override
     public <T> T get(NodeStore nodeStore, String componentName) {
-        return (T) components.get(nodeStore, componentName);
+        return (T) components.get(nodeStore).get(componentName);
     }
 }
diff --git 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/random/RandomizedReadTest.java
 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/random/RandomizedReadTest.java
index 70e4934f4d..ddbe33bdb2 100644
--- 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/random/RandomizedReadTest.java
+++ 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/random/RandomizedReadTest.java
@@ -18,6 +18,8 @@ package org.apache.jackrabbit.oak.jcr.random;
 
 
 import java.security.Principal;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import java.util.Random;
 
 import javax.jcr.Node;
@@ -27,8 +29,6 @@ import javax.jcr.security.AccessControlEntry;
 import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
 
-import org.apache.jackrabbit.guava.common.collect.HashBasedTable;
-import org.apache.jackrabbit.guava.common.collect.Table;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import 
org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
@@ -39,18 +39,24 @@ import org.junit.Test;
 public class RandomizedReadTest extends AbstractRandomizedTest {
 
     private static final int depth = 4;
-    private static final Table<Integer, Integer, String> tree = 
HashBasedTable.create();
+    private static final Map<Integer, Map<Integer, String>> tree = new 
LinkedHashMap<>();
     static {
-        tree.put(0, 0, "/");
-        tree.put(1, 0, "/n1");
-        tree.put(1, 1, "/n2");
-        tree.put(2, 0, "/n1/n3");
-        tree.put(2, 1, "/n1/n4");
-        tree.put(2, 2, "/n1/n5");
-        tree.put(3, 0, "/n1/n3/n6");
-        tree.put(3, 1, "/n1/n3/n7");
-        tree.put(3, 2, "/n1/n3/n8");
-        tree.put(3, 3, "/n1/n3/n9");
+
+        // Java
+        for (int i = 0; i < depth; i++) {
+            tree.put(i, new LinkedHashMap<>());
+        }
+
+        tree.get(0).put(0, "/");
+        tree.get(1).put(0, "/n1");
+        tree.get(1).put(1, "/n2");
+        tree.get(2).put(0, "/n1/n3");
+        tree.get(2).put(1, "/n1/n4");
+        tree.get(2).put(2, "/n1/n5");
+        tree.get(3).put(0, "/n1/n3/n6");
+        tree.get(3).put(1, "/n1/n3/n7");
+        tree.get(3).put(2, "/n1/n3/n8");
+        tree.get(3).put(3, "/n1/n3/n9");
     }
 
     @Override
@@ -134,37 +140,39 @@ public class RandomizedReadTest extends 
AbstractRandomizedTest {
         if (depth == 0) {
             return "/";
         }
-        return tree.get(depth, index);
+        return tree.get(depth).get(index);
     }
 
     public void check() throws Exception {
         boolean mustThrow;
         try {
-            for (String path : tree.values()) {
-                mustThrow = false;
-
-                Session s1 = readSessions.get(0);
-                try {
-                    Node n = s1.getNode(path);
-                    if (!path.equals(n.getPath())) {
-                        Assert.fail("did not resolved the same node");
-                    }
-                } catch (PathNotFoundException pnf) {
-                    mustThrow = true;
-                }
+            for (Map<Integer, String> t : tree.values()) {
+                for (String path : t.values()) {
+                    mustThrow = false;
 
-                for (int i = 1; i < readSessions.size(); i++) {
+                    Session s1 = readSessions.get(0);
                     try {
-                        Node n = readSessions.get(i).getNode(path);
-                        if (mustThrow) {
-                            Assert.fail("did not throw for path " + path);
-                        }
+                        Node n = s1.getNode(path);
                         if (!path.equals(n.getPath())) {
                             Assert.fail("did not resolved the same node");
                         }
                     } catch (PathNotFoundException pnf) {
-                        if (!mustThrow) {
-                            Assert.fail("did throw for path " + path);
+                        mustThrow = true;
+                    }
+
+                    for (int i = 1; i < readSessions.size(); i++) {
+                        try {
+                            Node n = readSessions.get(i).getNode(path);
+                            if (mustThrow) {
+                                Assert.fail("did not throw for path " + path);
+                            }
+                            if (!path.equals(n.getPath())) {
+                                Assert.fail("did not resolved the same node");
+                            }
+                        } catch (PathNotFoundException pnf) {
+                            if (!mustThrow) {
+                                Assert.fail("did throw for path " + path);
+                            }
                         }
                     }
                 }

Reply via email to