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

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

commit bcc628e0ba18bdfe234194fcd6511b38eb81ee67
Author: rishabhdaim <[email protected]>
AuthorDate: Mon Oct 13 13:32:56 2025 +0530

    OAK-11914 : removed usage of Guava's HashBasedTable
---
 .../nodestore/DocumentMemoryNodeStoreFixture.java  | 21 +++----
 .../nodestore/DocumentMongoNodeStoreFixture.java   | 20 +++---
 .../nodestore/SegmentMemoryNodeStoreFixture.java   | 30 ++++-----
 .../oak/jcr/random/RandomizedReadTest.java         | 71 ++++++++++++----------
 4 files changed, 73 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..27aa6900cc 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;
@@ -87,11 +86,11 @@ public class DocumentMemoryNodeStoreFixture extends 
NodeStoreFixture implements
 
             // track all main components
             if (dataStore != null) {
-                components.put(nodeStore, DataStore.class.getName(), 
dataStore);
-                components.put(nodeStore, DataStore.class.getName() + 
":folder", dataStoreFolder);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName(), dataStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName() + ":folder", dataStoreFolder);
             }
             if (blobStore != null) {
-                components.put(nodeStore, BlobStore.class.getName(), 
blobStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(BlobStore.class.getName(), blobStore);
             }
 
             return nodeStore;
@@ -107,15 +106,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 +126,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..f34b8d1503 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;
@@ -123,11 +123,11 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
 
             // track all main components
             if (dataStore != null) {
-                components.put(nodeStore, DataStore.class.getName(), 
dataStore);
-                components.put(nodeStore, DataStore.class.getName() + 
":folder", dataStoreFolder);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName(), dataStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName() + ":folder", dataStoreFolder);
             }
             if (blobStore != null) {
-                components.put(nodeStore, BlobStore.class.getName(), 
blobStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(BlobStore.class.getName(), blobStore);
             }
 
             return nodeStore;
@@ -143,11 +143,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 +155,7 @@ public class DocumentMongoNodeStoreFixture extends 
NodeStoreFixture implements C
                 connection.close();
             }
         } finally {
-            components.row(nodeStore).clear();
+            components.get(nodeStore).clear();
         }
     }
 
@@ -179,6 +179,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..fc99ed99ab 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;
@@ -99,14 +98,15 @@ public class SegmentMemoryNodeStoreFixture extends 
NodeStoreFixture implements C
 
             // track all main components
             if (dataStore != null) {
-                components.put(nodeStore, DataStore.class.getName(), 
dataStore);
-                components.put(nodeStore, DataStore.class.getName() + 
":folder", dataStoreFolder);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName(), dataStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName(), dataStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(DataStore.class.getName() + ":folder", dataStoreFolder);
             }
             if (blobStore != null) {
-                components.put(nodeStore, BlobStore.class.getName(), 
blobStore);
+                components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(BlobStore.class.getName(), blobStore);
             }
-            components.put(nodeStore, FileStore.class.getName(), fileStore);
-            components.put(nodeStore, FileStore.class.getName() + ":root", 
fileStoreRoot);
+            components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).put(FileStore.class.getName(), fileStore);
+            components.computeIfAbsent(nodeStore, k -> new 
LinkedHashMap<>()).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..ba5388ae12 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,21 @@ 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
+        tree.computeIfAbsent(0, k -> new LinkedHashMap<>()).put(0, "/");
+        tree.computeIfAbsent(0, k -> new LinkedHashMap<>()).put(0, "/");
+        tree.computeIfAbsent(1, k -> new LinkedHashMap<>()).put(0, "/n1");
+        tree.computeIfAbsent(1, k -> new LinkedHashMap<>()).put(1, "/n2");
+        tree.computeIfAbsent(2, k -> new LinkedHashMap<>()).put(0, "/n1/n3");
+        tree.computeIfAbsent(2, k -> new LinkedHashMap<>()).put(1, "/n1/n4");
+        tree.computeIfAbsent(2, k -> new LinkedHashMap<>()).put(2, "/n1/n5");
+        tree.computeIfAbsent(3, k -> new LinkedHashMap<>()).put(0, 
"/n1/n3/n6");
+        tree.computeIfAbsent(3, k -> new LinkedHashMap<>()).put(1, 
"/n1/n3/n7");
+        tree.computeIfAbsent(3, k -> new LinkedHashMap<>()).put(2, 
"/n1/n3/n8");
+        tree.computeIfAbsent(3, k -> new LinkedHashMap<>()).put(3, 
"/n1/n3/n9");
     }
 
     @Override
@@ -134,37 +137,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