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 to...@apache.org on 2018/10/02 10:06:47 UTC

svn commit: r1842608 - in /jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment: SegmentNodeStoreFactory.java SegmentNodeStoreRegistrar.java SegmentNodeStoreService.java

Author: tomekr
Date: Tue Oct  2 10:06:47 2018
New Revision: 1842608

URL: http://svn.apache.org/viewvc?rev=1842608&view=rev
Log:
OAK-7794: Changes are not dispatched when the segment node store is used as the global store

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactory.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactory.java?rev=1842608&r1=1842607&r2=1842608&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactory.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreFactory.java Tue Oct  2 10:06:47 2018
@@ -292,6 +292,12 @@ public class SegmentNodeStoreFactory {
             description = "Should only be done for one factory instance"
         )
         boolean registerDescriptors() default false;
+
+        @AttributeDefinition(
+                name = "Dispatch changes",
+                description = "Enable support for observers on this factory instance"
+        )
+        boolean dispatchChanges() default false;
     }
 
     @Reference(
@@ -538,6 +544,11 @@ public class SegmentNodeStoreFactory {
             }
 
             @Override
+            public boolean dispatchChanges() {
+                return configuration.dispatchChanges();
+            }
+
+            @Override
             public String getRepositoryHome() {
                 String repositoryHome = OsgiUtil.lookupConfigurationThenFramework(context, "repository.home");
                 if (isNullOrEmpty(repositoryHome)) {

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java?rev=1842608&r1=1842607&r2=1842608&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java Tue Oct  2 10:06:47 2018
@@ -144,6 +144,8 @@ class SegmentNodeStoreRegistrar {
 
         boolean registerDescriptors();
 
+        boolean dispatchChanges();
+
         String getRepositoryHome();
 
         long getBlobSnapshotInterval();
@@ -360,9 +362,8 @@ class SegmentNodeStoreRegistrar {
         // register segment node store
 
         SegmentNodeStore.SegmentNodeStoreBuilder segmentNodeStoreBuilder = SegmentNodeStoreBuilders.builder(store).withStatisticsProvider(cfg.getStatisticsProvider());
-        if (cfg.isStandbyInstance() || !cfg.isPrimarySegmentStore()) {
-            segmentNodeStoreBuilder.dispatchChanges(false);
-        }
+        segmentNodeStoreBuilder.dispatchChanges(cfg.dispatchChanges());
+
         SegmentNodeStore segmentNodeStore = segmentNodeStoreBuilder.build();
 
         if (cfg.isPrimarySegmentStore()) {

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=1842608&r1=1842607&r2=1842608&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 Tue Oct  2 10:06:47 2018
@@ -494,6 +494,11 @@ public class SegmentNodeStoreService {
             }
 
             @Override
+            public boolean dispatchChanges() {
+                return !isStandbyInstance();
+            }
+
+            @Override
             public String getRepositoryHome() {
                 String repositoryHome = OsgiUtil.lookupConfigurationThenFramework(context, "repository.home");
                 if (isNullOrEmpty(repositoryHome)) {