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 ch...@apache.org on 2014/08/28 08:56:55 UTC

svn commit: r1621063 - in /jackrabbit/oak/branches/1.0: ./ oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/ oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/jmx/ oak-doc/ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plu...

Author: chetanm
Date: Thu Aug 28 06:56:54 2014
New Revision: 1621063

URL: http://svn.apache.org/r1621063
Log:
OAK-1893 - MBean to dump Lucene Index content and related stats
OAK-1906 - Adding information to a Standard MBean interface using annotations

Merging 1605030,1605036,1602853,1605038,1605831,1605852. OAK-1906 required as OAK-1893 depends on that

Added:
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/
      - copied from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java
      - copied, changed from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/Description.java
      - copied unchanged from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/Description.java
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/Impact.java
      - copied unchanged from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/Impact.java
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/ImpactOption.java
      - copied unchanged from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/ImpactOption.java
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/Name.java
      - copied unchanged from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/Name.java
    jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/package-info.java
      - copied unchanged from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/package-info.java
    jackrabbit/oak/branches/1.0/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/jmx/
      - copied from r1605030, jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/jmx/
    jackrabbit/oak/branches/1.0/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBeanTest.java
      - copied unchanged from r1605030, jackrabbit/oak/trunk/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBeanTest.java
Modified:
    jackrabbit/oak/branches/1.0/   (props changed)
    jackrabbit/oak/branches/1.0/oak-doc/   (props changed)
    jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTracker.java
    jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java
    jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java

Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1602853,1605030,1605036,1605038,1605831,1605852

Copied: jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java (from r1605030, jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java?p2=jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java&p1=jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java&r1=1605030&r2=1621063&rev=1621063&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java (original)
+++ jackrabbit/oak/branches/1.0/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/jmx/AnnotatedStandardMBean.java Thu Aug 28 06:56:54 2014
@@ -72,7 +72,7 @@ public class AnnotatedStandardMBean exte
 
     @Override
     protected int getImpact(MBeanOperationInfo info) {
-        String opt = (String)info.getDescriptor().getFieldValue(Impact.NAME);
+        String opt = getValue(info, Impact.NAME);
         return opt == null ? super.getImpact(info) : ImpactOption.valueOf(opt).value();
     }
 

Propchange: jackrabbit/oak/branches/1.0/oak-doc/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk/oak-doc:r1602853,1605030,1605036,1605038,1605831,1605852

Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTracker.java?rev=1621063&r1=1621062&r2=1621063&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTracker.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexTracker.java Thu Aug 28 06:56:54 2014
@@ -34,6 +34,7 @@ import static org.apache.jackrabbit.oak.
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.spi.commit.CompositeEditor;
@@ -128,6 +129,10 @@ class IndexTracker {
         }
     }
 
+    Set<String> getIndexNodePaths(){
+        return indices.keySet();
+    }
+
     private synchronized IndexNode findIndexNode(String path) {
         // Retry the lookup from acquireIndexNode now that we're
         // synchronized. The acquire() call is guaranteed to succeed

Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java?rev=1621063&r1=1621062&r2=1621063&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProvider.java Thu Aug 28 06:56:54 2014
@@ -91,4 +91,8 @@ public class LuceneIndexProvider impleme
         this.setAggregator(analyzer);
         return this;
     }
+
+    IndexTracker getTracker() {
+        return tracker;
+    }
 }

Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java?rev=1621063&r1=1621062&r2=1621063&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java Thu Aug 28 06:56:54 2014
@@ -22,6 +22,8 @@ package org.apache.jackrabbit.oak.plugin
 import java.util.List;
 import java.util.Map;
 
+import javax.management.NotCompliantMBeanException;
+
 import com.google.common.collect.Lists;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
@@ -30,16 +32,20 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.ReferencePolicy;
 import org.apache.felix.scr.annotations.ReferencePolicyOption;
+import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
 import org.apache.jackrabbit.oak.plugins.index.aggregate.AggregateIndexProvider;
 import org.apache.jackrabbit.oak.plugins.index.aggregate.NodeAggregator;
 import org.apache.jackrabbit.oak.spi.commit.Observer;
 import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider;
+import org.apache.jackrabbit.oak.spi.whiteboard.Registration;
 import org.apache.lucene.analysis.Analyzer;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
+
 @SuppressWarnings("UnusedDeclaration")
 @Component(immediate = true)
 public class LuceneIndexProviderService {
@@ -64,8 +70,11 @@ public class LuceneIndexProviderService 
     )
     protected Analyzer analyzer;
 
+    private Registration mbeanReg;
+
     @Activate
-    private void activate(BundleContext bundleContext, Map<String, ?> config) {
+    private void activate(BundleContext bundleContext, Map<String, ?> config)
+            throws NotCompliantMBeanException {
         indexProvider = new LuceneIndexProvider();
         initialize();
 
@@ -73,6 +82,12 @@ public class LuceneIndexProviderService 
 
         regs.add(bundleContext.registerService(QueryIndexProvider.class.getName(), aggregate, null));
         regs.add(bundleContext.registerService(Observer.class.getName(), indexProvider, null));
+
+        mbeanReg = registerMBean(new OsgiWhiteboard(bundleContext),
+                LuceneIndexMBean.class,
+                new LuceneIndexMBeanImpl(indexProvider.getTracker()),
+                LuceneIndexMBean.TYPE,
+                "Lucene Index statistics");
     }
 
     @Deactivate
@@ -81,6 +96,10 @@ public class LuceneIndexProviderService 
             reg.unregister();
         }
 
+        if(mbeanReg != null){
+            mbeanReg.unregister();
+        }
+
         if (indexProvider != null) {
             indexProvider.close();
             indexProvider = null;