This is an automated email from the ASF dual-hosted git repository.
daim pushed a commit to branch OAK-10199
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/OAK-10199 by this push:
new c9a1b608c6 OAK-10199 : made detailedGC non-configurable on
RDBDocumentStore
c9a1b608c6 is described below
commit c9a1b608c68baacf8aaa9b2f37597683fedd315a
Author: Rishabh Kumar <[email protected]>
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"));