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 06:27:03 UTC
svn commit: r1750605 - in /jackrabbit/oak/trunk/oak-segment-tar/src:
main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
test/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreServiceTest.java
Author: chetanm
Date: Wed Jun 29 06:27:03 2016
New Revision: 1750605
URL: http://svn.apache.org/viewvc?rev=1750605&view=rev
Log:
OAK-4490 - Expose SegmentNodeStore as a secondary NodeStore
With secondary mode enabled customBlobStore is assumed to be true as in that mode segment store is only supposed to keep node data and not blob data. So it should alway depend on external BlobStore
Modified:
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
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=1750605&r1=1750604&r2=1750605&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 06:27:03 2016
@@ -271,7 +271,9 @@ public class SegmentNodeStoreService ext
@Activate
public void activate(ComponentContext context) throws IOException {
this.context = context;
- this.customBlobStore = Boolean.parseBoolean(property(CUSTOM_BLOB_STORE));
+
+ //In secondaryNodeStore mode customBlobStore is always enabled
+ this.customBlobStore = Boolean.parseBoolean(property(CUSTOM_BLOB_STORE)) || isSecondaryStoreMode();
if (blobStore == null && customBlobStore) {
log.info("BlobStore use enabled. SegmentNodeStore would be initialized when BlobStore would be available");
@@ -316,7 +318,7 @@ public class SegmentNodeStoreService ext
return;
}
- if (toBoolean(property(SECONDARY_STORE), false)){
+ if (isSecondaryStoreMode()){
registerSecondaryStore();
return;
}
@@ -330,6 +332,10 @@ public class SegmentNodeStoreService ext
}
}
+ private boolean isSecondaryStoreMode() {
+ return toBoolean(property(SECONDARY_STORE), false);
+ }
+
private void registerSecondaryStore() {
segmentNodeStore = SegmentNodeStoreBuilders.builder(store).build();
Dictionary<String, Object> props = new Hashtable<String, Object>();
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=1750605&r1=1750604&r2=1750605&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 06:27:03 2016
@@ -29,6 +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;
@@ -146,6 +147,7 @@ public class SegmentNodeStoreServiceTest
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));