Author: chetanm
Date: Fri Nov 11 14:22:25 2016
New Revision: 1769289

URL: http://svn.apache.org/viewvc?rev=1769289&view=rev
Log:
OAK-5074 - Configure Async Indexer via OSGi

Add the async name as a service property. This can be later used to better 
target AsyncIndexUpdate instance via dependency injection

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexMBeanRegistration.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java?rev=1769289&r1=1769288&r2=1769289&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
 Fri Nov 11 14:22:25 2016
@@ -79,7 +79,10 @@ import com.google.common.base.Stopwatch;
 import com.google.common.collect.ImmutableMap;
 
 public class AsyncIndexUpdate implements Runnable, Closeable {
-
+    /**
+     * Name of service property which determines the name of Async task
+     */
+    public static final String PROP_ASYNC_NAME = "oak.async";
     private static final Logger log = LoggerFactory
             .getLogger(AsyncIndexUpdate.class);
 

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexMBeanRegistration.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexMBeanRegistration.java?rev=1769289&r1=1769288&r2=1769289&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexMBeanRegistration.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexMBeanRegistration.java
 Fri Nov 11 14:22:25 2016
@@ -20,7 +20,9 @@ import static org.apache.jackrabbit.oak.
 import static 
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay;
 
 import java.util.List;
+import java.util.Map;
 
+import com.google.common.collect.ImmutableMap;
 import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
 import org.apache.jackrabbit.oak.spi.whiteboard.CompositeRegistration;
 import org.apache.jackrabbit.oak.spi.whiteboard.Registration;
@@ -39,7 +41,8 @@ public class IndexMBeanRegistration impl
 
     public void registerAsyncIndexer(AsyncIndexUpdate task, long 
delayInSeconds) {
         task.setIndexMBeanRegistration(this);
-        regs.add(scheduleWithFixedDelay(whiteboard, task, delayInSeconds, 
true, true));
+        Map<String, Object> config = ImmutableMap.<String, 
Object>of(AsyncIndexUpdate.PROP_ASYNC_NAME, task.getName());
+        regs.add(scheduleWithFixedDelay(whiteboard, task, config, 
delayInSeconds, true, true));
         regs.add(registerMBean(whiteboard, IndexStatsMBean.class,
                 task.getIndexStats(), IndexStatsMBean.TYPE, task.getName()));
         // Register AsyncIndexStats for execution stats update


Reply via email to