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 c705535b22be32795d6be58ba6fd80ba33e1c863 Author: Rishabh Kumar <d...@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"));