You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by da...@apache.org on 2023/09/11 05:27:03 UTC
[jackrabbit-oak] 27/29: OAK-10199 : made detailedGC non-configurable on RDBDocumentStore
This is an automated email from the ASF dual-hosted git repository.
daim pushed a commit to branch DetailedGC/OAK-10199
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 9e35815d7103879b5d6083f841d7184f51b411ee
Author: Rishabh Kumar <di...@adobe.com>
AuthorDate: Mon Aug 7 19:26:27 2023 +0530
OAK-10199 : made detailedGC non-configurable on RDBDocumentStore
---
.../document/rdb/RDBDocumentNodeStoreBuilder.java | 25 ++++++++++++++++++++++
.../rdb/RDBDocumentNodeStoreBuilderTest.java | 21 ++++++++++++++++++
.../oak/plugins/document/util/UtilsTest.java | 12 +++++++++++
3 files changed, 58 insertions(+)
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
index f997e4bf9a..92aa40af86 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
@@ -26,6 +26,8 @@ import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBuilder;
import org.apache.jackrabbit.oak.plugins.document.DocumentStore;
import org.apache.jackrabbit.oak.plugins.document.MissingLastRevSeeker;
import org.apache.jackrabbit.oak.plugins.document.VersionGCSupport;
+import org.apache.jackrabbit.oak.spi.toggle.Feature;
+import org.jetbrains.annotations.Nullable;
/**
* A builder for a {@link DocumentNodeStore} backed by a relational database.
@@ -113,4 +115,27 @@ public class RDBDocumentNodeStoreBuilder
return super.createMissingLastRevSeeker();
}
}
+
+ @Override
+ public boolean isDetailedGCEnabled() {
+ // detailedGC is non supported for RDB
+ return false;
+ }
+
+ @Override
+ public RDBDocumentNodeStoreBuilder setDetailedGCEnabled(boolean b) {
+ // detailedGC is non supported for RDB
+ return thisBuilder();
+ }
+
+ @Override
+ public RDBDocumentNodeStoreBuilder setDocStoreDetailedGCFeature(@Nullable Feature docStoreDetailedGC) {
+ return thisBuilder();
+ }
+
+ @Override
+ @Nullable
+ public Feature getDocStoreDetailedGCFeature() {
+ return null;
+ }
}
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
index e3a3939d19..d821b1f785 100755
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
@@ -16,13 +16,18 @@
*/
package org.apache.jackrabbit.oak.plugins.document.rdb;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.util.UUID;
import javax.sql.DataSource;
import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
+import org.apache.jackrabbit.oak.spi.toggle.Feature;
import org.junit.Test;
public class RDBDocumentNodeStoreBuilderTest {
@@ -54,4 +59,20 @@ public class RDBDocumentNodeStoreBuilderTest {
} catch (DocumentStoreException expected) {
}
}
+
+ @Test
+ public void detailedGCDisabled() {
+ RDBDocumentNodeStoreBuilder builder = new RDBDocumentNodeStoreBuilder();
+ builder.setDetailedGCEnabled(true);
+ assertFalse(builder.isDetailedGCEnabled());
+ }
+
+ @Test
+ public void detailedGCFeatureToggleDisabled() {
+ RDBDocumentNodeStoreBuilder builder = new RDBDocumentNodeStoreBuilder();
+ Feature docStoreDetailedGCFeature = mock(Feature.class);
+ when(docStoreDetailedGCFeature.isEnabled()).thenReturn(true);
+ builder.setDocStoreDetailedGCFeature(docStoreDetailedGCFeature);
+ assertNull(builder.getDocStoreDetailedGCFeature());
+ }
}
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/util/UtilsTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/util/UtilsTest.java
index 6041a41724..cddaf79a61 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/util/UtilsTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/util/UtilsTest.java
@@ -56,6 +56,7 @@ import org.mockito.Mockito;
import org.slf4j.event.Level;
import static org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBuilder.newDocumentNodeStoreBuilder;
+import static org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentNodeStoreBuilder.newRDBDocumentNodeStoreBuilder;
import static org.apache.jackrabbit.oak.plugins.document.util.Utils.isDetailedGCEnabled;
import static org.apache.jackrabbit.oak.plugins.document.util.Utils.isThrottlingEnabled;
import static org.hamcrest.CoreMatchers.containsString;
@@ -223,6 +224,17 @@ public class UtilsTest {
assertTrue("Detailed GC is enabled via Feature Toggle", detailedGCEnabled);
}
+ @Test
+ public void detailedGCDisabledForRDB() {
+ DocumentNodeStoreBuilder<?> builder = newRDBDocumentNodeStoreBuilder();
+ builder.setDetailedGCEnabled(true);
+ Feature docStoreDetailedGCFeature = mock(Feature.class);
+ when(docStoreDetailedGCFeature.isEnabled()).thenReturn(true);
+ builder.setDocStoreDetailedGCFeature(docStoreDetailedGCFeature);
+ boolean detailedGCEnabled = isDetailedGCEnabled(builder);
+ assertFalse("Detailed GC is disabled for RDB Document Store", detailedGCEnabled);
+ }
+
@Test
public void getDepthFromId() throws Exception{
assertEquals(1, Utils.getDepthFromId("1:/x"));