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 ch...@apache.org on 2016/06/29 08:37:34 UTC

svn commit: r1750611 - in /jackrabbit/oak/trunk: oak-segment-tar/ oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ oak-segment/src/main/java/org/apache/jackrabbit/oak/plug...

Author: chetanm
Date: Wed Jun 29 08:37:34 2016
New Revision: 1750611

URL: http://svn.apache.org/viewvc?rev=1750611&view=rev
Log:
OAK-4490 - Expose SegmentNodeStore as a secondary NodeStore

Reverting 1750601

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/pom.xml
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java
    jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java
    jackrabbit/oak/trunk/oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreServiceTest.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/pom.xml?rev=1750611&r1=1750610&r2=1750611&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/pom.xml Wed Jun 29 08:37:34 2016
@@ -34,7 +34,7 @@
     <name>Oak Segment Tar</name>
 
     <properties>
-        <oak.version>1.6-SNAPSHOT</oak.version>
+        <oak.version>1.5.3</oak.version>
     </properties>
 
     <scm>

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java?rev=1750611&r1=1750610&r2=1750611&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java Wed Jun 29 08:37:34 2016
@@ -81,7 +81,6 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.gc.GCMonitor;
 import org.apache.jackrabbit.oak.spi.gc.GCMonitorTracker;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStoreProvider;
 import org.apache.jackrabbit.oak.spi.state.ProxyNodeStore;
 import org.apache.jackrabbit.oak.spi.state.RevisionGC;
 import org.apache.jackrabbit.oak.spi.state.RevisionGCMBean;
@@ -197,13 +196,6 @@ public class SegmentNodeStoreService ext
     )
     public static final String STANDBY = "standby";
 
-    @Property(
-            boolValue = false,
-            label = "Secondary Store Mode",
-            description = "Flag indicating that this component will not register as a NodeStore but just as a SecondaryNodeStoreProvider"
-    )
-    public static final String SECONDARY_STORE = "secondary";
-
     @Property(boolValue = false,
             label = "Custom BlobStore",
             description = "Boolean value indicating that a custom BlobStore is to be used. " +
@@ -316,11 +308,6 @@ public class SegmentNodeStoreService ext
                 return;
             }
 
-            if (toBoolean(property(SECONDARY_STORE), false)){
-                registerSecondaryStore();
-                return;
-            }
-
             if (registerSegmentNodeStore()) {
                 Dictionary<String, Object> props = new Hashtable<String, Object>();
                 props.put(Constants.SERVICE_PID, SegmentNodeStore.class.getName());
@@ -330,20 +317,6 @@ public class SegmentNodeStoreService ext
         }
     }
 
-    private void registerSecondaryStore() {
-        segmentNodeStore = SegmentNodeStoreBuilders.builder(store).build();
-        Dictionary<String, Object> props = new Hashtable<String, Object>();
-        props.put(NodeStoreProvider.ROLE, "secondary");
-        storeRegistration = context.getBundleContext().registerService(NodeStoreProvider.class.getName(), new NodeStoreProvider() {
-                    @Override
-                    public NodeStore getNodeStore() {
-                        return SegmentNodeStoreService.this;
-                    }
-                },
-                props);
-        log.info("Registered NodeStoreProvider backed by SegmentNodeStore");
-    }
-
     private boolean registerSegmentStore() throws IOException {
         if (context == null) {
             log.info("Component still not activated. Ignoring the initialization call");

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java?rev=1750611&r1=1750610&r2=1750611&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java Wed Jun 29 08:37:34 2016
@@ -30,7 +30,6 @@ import java.util.Map;
 
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStoreProvider;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
 import org.junit.Before;
@@ -141,17 +140,6 @@ public class SegmentNodeStoreServiceTest
         unregisterSegmentNodeStoreService();
     }
 
-    @Test
-    public void nodeStoreProvider() throws Exception{
-        Map<String, Object> properties = newHashMap();
-        properties.put(SegmentNodeStoreService.SECONDARY_STORE, true);
-        properties.put(SegmentNodeStoreService.DIRECTORY, folder.getRoot().getAbsolutePath());
-
-        segmentNodeStoreService = context.registerInjectActivateService(new SegmentNodeStoreService(), properties);
-        assertNull(context.getService(NodeStore.class));
-        assertNotNull(context.getService(NodeStoreProvider.class));
-    }
-
     private SegmentNodeStoreService segmentNodeStoreService;
 
     private void registerSegmentNodeStoreService(boolean customBlobStore) {

Modified: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java?rev=1750611&r1=1750610&r2=1750611&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java Wed Jun 29 08:37:34 2016
@@ -86,7 +86,6 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.gc.GCMonitor;
 import org.apache.jackrabbit.oak.spi.gc.GCMonitorTracker;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStoreProvider;
 import org.apache.jackrabbit.oak.spi.state.ProxyNodeStore;
 import org.apache.jackrabbit.oak.spi.state.RevisionGC;
 import org.apache.jackrabbit.oak.spi.state.RevisionGCMBean;
@@ -238,13 +237,6 @@ public class SegmentNodeStoreService ext
     )
     public static final String STANDBY = "standby";
 
-    @Property(
-            boolValue = false,
-            label = "Secondary Store Mode",
-            description = "Flag indicating that this component will not register as a NodeStore but just as a SecondaryNodeStoreProvider"
-    )
-    public static final String SECONDARY_STORE = "secondary";
-
     @Property(boolValue = false,
             label = "Custom BlobStore",
             description = "Boolean value indicating that a custom BlobStore is to be used. " +
@@ -314,8 +306,7 @@ public class SegmentNodeStoreService ext
     @Activate
     public void activate(ComponentContext context) throws IOException {
         this.context = context;
-        //In secondaryNodeStore mode customBlobStore is always enabled
-        this.customBlobStore = Boolean.parseBoolean(property(CUSTOM_BLOB_STORE)) || isSecondaryStoreMode();
+        this.customBlobStore = Boolean.parseBoolean(property(CUSTOM_BLOB_STORE));
 
         if (blobStore == null && customBlobStore) {
             log.info("BlobStore use enabled. SegmentNodeStore would be initialized when BlobStore would be available");
@@ -360,11 +351,6 @@ public class SegmentNodeStoreService ext
                 return;
             }
 
-            if (isSecondaryStoreMode()){
-                registerSecondaryStore();
-                return;
-            }
-
             if (registerSegmentNodeStore()) {
                 Dictionary<String, Object> props = new Hashtable<String, Object>();
                 props.put(Constants.SERVICE_PID, SegmentNodeStore.class.getName());
@@ -374,26 +360,6 @@ public class SegmentNodeStoreService ext
         }
     }
 
-    private boolean isSecondaryStoreMode() {
-        return toBoolean(property(SECONDARY_STORE), false);
-    }
-
-    private void registerSecondaryStore() {
-        SegmentNodeStore.SegmentNodeStoreBuilder nodeStoreBuilder = SegmentNodeStore.builder(store);
-        nodeStoreBuilder.withCompactionStrategy(compactionStrategy);
-        segmentNodeStore = nodeStoreBuilder.build();
-        Dictionary<String, Object> props = new Hashtable<String, Object>();
-        props.put(NodeStoreProvider.ROLE, "secondary");
-        storeRegistration = context.getBundleContext().registerService(NodeStoreProvider.class.getName(), new NodeStoreProvider() {
-                    @Override
-                    public NodeStore getNodeStore() {
-                        return SegmentNodeStoreService.this;
-                    }
-                },
-                props);
-        log.info("Registered NodeStoreProvider backed by SegmentNodeStore");
-    }
-
     private boolean registerSegmentStore() throws IOException {
         if (context == null) {
             log.info("Component still not activated. Ignoring the initialization call");

Modified: jackrabbit/oak/trunk/oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreServiceTest.java?rev=1750611&r1=1750610&r2=1750611&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreServiceTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreServiceTest.java Wed Jun 29 08:37:34 2016
@@ -29,9 +29,7 @@ import java.io.File;
 import java.util.Map;
 
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
-import org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStoreProvider;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
 import org.junit.Before;
@@ -142,18 +140,6 @@ public class SegmentNodeStoreServiceTest
         unregisterSegmentNodeStoreService();
     }
 
-    @Test
-    public void nodeStoreProvider() throws Exception{
-        Map<String, Object> properties = newHashMap();
-        properties.put(SegmentNodeStoreService.SECONDARY_STORE, true);
-        properties.put(SegmentNodeStoreService.DIRECTORY, folder.getRoot().getAbsolutePath());
-        context.registerService(BlobStore.class, new MemoryBlobStore());
-
-        segmentNodeStoreService = context.registerInjectActivateService(new SegmentNodeStoreService(), properties);
-        assertNull(context.getService(NodeStore.class));
-        assertNotNull(context.getService(NodeStoreProvider.class));
-    }
-
     private SegmentNodeStoreService segmentNodeStoreService;
 
     private void registerSegmentNodeStoreService(boolean customBlobStore) {