You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2014/06/24 15:55:42 UTC

svn commit: r1605082 - in /lucene/dev/branches/branch_4x: ./ solr/ solr/core/ solr/core/src/java/org/apache/solr/core/ solr/core/src/java/org/apache/solr/handler/admin/ solr/core/src/test/org/apache/solr/handler/admin/

Author: noble
Date: Tue Jun 24 13:55:42 2014
New Revision: 1605082

URL: http://svn.apache.org/r1605082
Log:
SOLR-5902: Corecontainer level mbeans are not exposed 

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_4x/solr/core/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java

Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1605082&r1=1605081&r2=1605082&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Tue Jun 24 13:55:42 2014
@@ -41,6 +41,8 @@ Other Changes
 * SOLR-6178, LUCENE-5775: Deprecate JaspellLookupFactory. (Uwe Schindler,
   Mike McCandless)
 
+* SOLR-5902: Corecontainer level mbeans are not exposed (noble)
+
 ==================  4.9.0 ==================
 
 Versions of Major Components

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java?rev=1605082&r1=1605081&r2=1605082&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java Tue Jun 24 13:55:42 2014
@@ -816,4 +816,7 @@ public class SolrResourceLoader implemen
   public void close() throws IOException {
     IOUtils.close(classLoader);
   }
+  public List<SolrInfoMBean> getInfoMBeans(){
+    return Collections.unmodifiableList(infoMBeans);
+  }
 }

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java?rev=1605082&r1=1605081&r2=1605082&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java Tue Jun 24 13:55:42 2014
@@ -34,6 +34,7 @@ import java.io.StringReader;
 import java.net.URL;
 import java.text.NumberFormat;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -131,36 +132,39 @@ public class SolrInfoMBeanHandler extend
     
     Map<String, SolrInfoMBean> reg = req.getCore().getInfoRegistry();
     for (Map.Entry<String, SolrInfoMBean> entry : reg.entrySet()) {
-      String key = entry.getKey();
-      SolrInfoMBean m = entry.getValue();
+      addMBean(req, cats, requestedKeys, entry.getKey(),entry.getValue());
+    }
 
-      if ( ! ( requestedKeys.isEmpty() || requestedKeys.contains(key) ) ) continue;
+    for (SolrInfoMBean infoMBean : req.getCore().getCoreDescriptor().getCoreContainer().getResourceLoader().getInfoMBeans()) {
+      addMBean(req,cats,requestedKeys,infoMBean.getName(),infoMBean);
+    }
+    return cats;
+  }
 
-      NamedList<NamedList<Object>> catInfo = cats.get(m.getCategory().name());
-      if ( null == catInfo ) continue;
+  private void addMBean(SolrQueryRequest req, NamedList<NamedList<NamedList<Object>>> cats, Set<String> requestedKeys, String key, SolrInfoMBean m) {
+    if ( ! ( requestedKeys.isEmpty() || requestedKeys.contains(key) ) ) return;
+    NamedList<NamedList<Object>> catInfo = cats.get(m.getCategory().name());
+    if ( null == catInfo ) return;
+    NamedList<Object> mBeanInfo = new SimpleOrderedMap<>();
+    mBeanInfo.add("class", m.getName());
+    mBeanInfo.add("version", m.getVersion());
+    mBeanInfo.add("description", m.getDescription());
+    mBeanInfo.add("src", m.getSource());
 
-      NamedList<Object> mBeanInfo = new SimpleOrderedMap<>();
-      mBeanInfo.add("class", m.getName());
-      mBeanInfo.add("version", m.getVersion());
-      mBeanInfo.add("description", m.getDescription());
-      mBeanInfo.add("src", m.getSource());
-      
-      // Use an external form
-      URL[] urls = m.getDocs();
-      if(urls!=null) {
-        List<String> docs = new ArrayList<>(urls.length);
-        for(URL url : urls) {
-          docs.add(url.toExternalForm());
-        }
-        mBeanInfo.add("docs", docs);
+    // Use an external form
+    URL[] urls = m.getDocs();
+    if(urls!=null) {
+      List<String> docs = new ArrayList<>(urls.length);
+      for(URL url : urls) {
+        docs.add(url.toExternalForm());
       }
-      
-      if (req.getParams().getFieldBool(key, "stats", false))
-        mBeanInfo.add("stats", m.getStatistics());
-      
-      catInfo.add(key, mBeanInfo);
+      mBeanInfo.add("docs", docs);
     }
-    return cats;
+
+    if (req.getParams().getFieldBool(key, "stats", false))
+      mBeanInfo.add("stats", m.getStatistics());
+
+    catInfo.add(key, mBeanInfo);
   }
 
   protected NamedList<NamedList<NamedList<Object>>> getDiff(

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java?rev=1605082&r1=1605081&r2=1605082&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java Tue Jun 24 13:55:42 2014
@@ -61,5 +61,13 @@ public class MBeansHandlerTest extends S
     
     //System.out.println("stats:"+stats);
     assertEquals("Was: 1, Now: 2, Delta: 1", stats.get("requests"));
+
+    xml = h.query(req(
+        CommonParams.QT,"/admin/mbeans",
+        "stats","true",
+        "key","org.apache.solr.handler.admin.CollectionsHandler"
+    ));
+    NamedList<NamedList<NamedList<Object>>> nl = SolrInfoMBeanHandler.fromXML(xml);
+    assertNotNull( nl.get("QUERYHANDLER").get("org.apache.solr.handler.admin.CollectionsHandler"));
   }
 }