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();
         }
+
     }
 }