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 2015/04/08 10:45:42 UTC
svn commit: r1672032 -
/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/NodeStateSolrServersObserverService.java
Author: tommaso
Date: Wed Apr 8 08:45:41 2015
New Revision: 1672032
URL: http://svn.apache.org/r1672032
Log:
OAK-2718 - NodeStateSolrServersObserverService registers the BackgroundObserver only if config property enabled == true
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/NodeStateSolrServersObserverService.java
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/NodeStateSolrServersObserverService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/NodeStateSolrServersObserverService.java?rev=1672032&r1=1672031&r2=1672032&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/NodeStateSolrServersObserverService.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/NodeStateSolrServersObserverService.java Wed Apr 8 08:45:41 2015
@@ -22,6 +22,8 @@ import java.util.List;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.jackrabbit.oak.commons.PropertiesUtil;
import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.nodestate.NodeStateSolrServersObserver;
import org.apache.jackrabbit.oak.spi.commit.BackgroundObserver;
@@ -32,9 +34,13 @@ import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
/**
- * An OSGi service for {@link org.apache.jackrabbit.oak.plugins.index.solr.configuration.nodestate.NodeStateSolrServersObserver}
+ * An OSGi service for {@link org.apache.jackrabbit.oak.plugins.index.solr.configuration.nodestate.NodeStateSolrServersObserver}.
+ * This allows correct cleanup of any persisted Solr server configurations once they get changed or deleted.
*/
-@Component(immediate = true)
+@Component(metatype = true,
+ immediate = true,
+ label = "Apache Jackrabbit Oak Solr persisted configuration observer"
+)
public class NodeStateSolrServersObserverService {
private final NodeStateSolrServersObserver nodeStateSolrServersObserver = new NodeStateSolrServersObserver();
@@ -45,19 +51,27 @@ public class NodeStateSolrServersObserve
private List<ServiceRegistration> regs = new ArrayList<ServiceRegistration>();
+ @Property(boolValue = false, label = "enabled", description = "enable persisted configuration observer")
+ private static final String ENABLED = "enabled";
+
@Activate
protected void activate(BundleContext bundleContext) throws Exception {
- Whiteboard whiteboard = new OsgiWhiteboard(bundleContext);
- executor = new WhiteboardExecutor();
- executor.start(whiteboard);
+ boolean enabled = PropertiesUtil.toBoolean(ENABLED, false);
+
+ if (enabled) {
+ Whiteboard whiteboard = new OsgiWhiteboard(bundleContext);
+ executor = new WhiteboardExecutor();
+ executor.start(whiteboard);
- backgroundObserver = new BackgroundObserver(nodeStateSolrServersObserver, executor, 5);
- regs.add(bundleContext.registerService(Observer.class.getName(), backgroundObserver, null));
+ backgroundObserver = new BackgroundObserver(nodeStateSolrServersObserver, executor, 5);
+ regs.add(bundleContext.registerService(Observer.class.getName(), backgroundObserver, null));
+ }
}
@Deactivate
protected void deactivate() throws Exception {
+
for (ServiceRegistration reg : regs) {
reg.unregister();
}
@@ -69,5 +83,6 @@ public class NodeStateSolrServersObserve
if (executor != null) {
executor.stop();
}
+
}
}