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)) {