You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/08/20 08:06:00 UTC

svn commit: r1515710 - in /sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl: HealthCheckMBean.java HealthCheckMBeanCreator.java

Author: cziegeler
Date: Tue Aug 20 06:06:00 2013
New Revision: 1515710

URL: http://svn.apache.org/r1515710
Log:
SLING-3021 :  Use service properties for HC meta data and improve JMX registration - use service description and correct service ranking evaluation

Modified:
    sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBean.java
    sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java

Modified: sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBean.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBean.java?rev=1515710&r1=1515709&r2=1515710&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBean.java (original)
+++ sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBean.java Tue Aug 20 06:06:00 2013
@@ -45,6 +45,7 @@ import javax.management.openmbean.Tabula
 import org.apache.sling.hc.api.HealthCheck;
 import org.apache.sling.hc.api.Result;
 import org.apache.sling.hc.api.ResultLog;
+import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 
 /** A {@link DynamicMBean} used to execute a {@link HealthCheck} service */
@@ -180,8 +181,14 @@ public class HealthCheckMBean implements
 
         attrs.add(new OpenMBeanAttributeInfoSupport(HC_LOG_ATTRIBUTE_NAME, "The health check result log", LOG_TABLE_TYPE, true, false, false));
 
+        final String description;
+        if ( serviceReference.getProperty(Constants.SERVICE_DESCRIPTION) != null ) {
+            description = serviceReference.getProperty(Constants.SERVICE_DESCRIPTION).toString();
+        } else {
+            description = "Health check";
+        }
         return new MBeanInfo(this.getClass().getName(),
-                   "Health check",
+                   description,
                    attrs.toArray(new MBeanAttributeInfo[attrs.size()]), null, null, null);
     }
 

Modified: sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java?rev=1515710&r1=1515709&r2=1515710&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java (original)
+++ sling/trunk/contrib/extensions/healthcheck/jmx/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java Tue Aug 20 06:06:00 2013
@@ -108,10 +108,13 @@ public class HealthCheckMBeanCreator {
                 this.sortedRegistrations.put(reg.name, registered);
             }
             registered.add(reference);
+            // sort orders the references with lowest ranking first
+            // we want the highest!
             Collections.sort(registered);
-            if ( registered.get(0).equals(reference) ) {
+            final int lastIndex = registered.size() - 1;
+            if ( registered.get(lastIndex).equals(reference) ) {
                 if ( registered.size() > 1 ) {
-                    final ServiceReference prevRef = registered.get(1);
+                    final ServiceReference prevRef = registered.get(lastIndex - 1);
                     final Registration prevReg = this.registeredServices.get(prevRef);
                     prevReg.unregister(this.logger);
                 }