You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2017/03/03 12:49:34 UTC
svn commit: r1785285 -
/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java
Author: olli
Date: Fri Mar 3 12:49:34 2017
New Revision: 1785285
URL: http://svn.apache.org/viewvc?rev=1785285&view=rev
Log:
SLING-6599 Improve logging in HealthCheckMBeanCreator
Modified:
sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java
Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java?rev=1785285&r1=1785284&r2=1785285&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/jmx/impl/HealthCheckMBeanCreator.java Fri Mar 3 12:49:34 2017
@@ -106,7 +106,7 @@ public class HealthCheckMBeanCreator {
* @return The registered mbean or <code>null</code>
*/
private synchronized Object registerHCMBean(final BundleContext bundleContext, final ServiceReference reference) {
- final Registration reg = Registration.getRegistration(this.executor, reference);
+ final Registration reg = getRegistration(reference);
if ( reg != null ) {
this.registeredServices.put(reference, reg);
@@ -124,9 +124,9 @@ public class HealthCheckMBeanCreator {
if ( registered.size() > 1 ) {
final ServiceReference prevRef = registered.get(lastIndex - 1);
final Registration prevReg = this.registeredServices.get(prevRef);
- prevReg.unregister(this.logger);
+ prevReg.unregister();
}
- reg.register(this.logger, bundleContext);
+ reg.register(bundleContext);
}
}
return reg;
@@ -135,7 +135,7 @@ public class HealthCheckMBeanCreator {
private synchronized void unregisterHCMBean(final BundleContext bundleContext, final ServiceReference ref) {
final Registration reg = registeredServices.remove(ref);
if ( reg != null ) {
- final boolean registerFirst = reg.unregister(this.logger);
+ final boolean registerFirst = reg.unregister();
final List<ServiceReference> registered = this.sortedRegistrations.get(reg.name);
registered.remove(ref);
if ( registered.size() == 0 ) {
@@ -143,55 +143,51 @@ public class HealthCheckMBeanCreator {
} else if ( registerFirst ) {
final ServiceReference newRef = registered.get(0);
final Registration newReg = this.registeredServices.get(newRef);
- newReg.register(this.logger, bundleContext);
+ newReg.register(bundleContext);
}
bundleContext.ungetService(ref);
}
}
- private static final class Registration {
- public final String name;
- public final HealthCheckMBean mbean;
+ private final class Registration {
+ private final String name;
+ private final HealthCheckMBean mbean;
+
+ private final String objectName;
+
private ServiceRegistration registration;
- public Registration(final String name, final HealthCheckMBean mbean) {
+ Registration(final String name, final HealthCheckMBean mbean) {
this.name = name;
this.mbean = mbean;
+ objectName = String.format("%s:type=%s,name=%s", JMX_DOMAIN, JMX_TYPE_NAME, name);
}
- public static Registration getRegistration(final ExtendedHealthCheckExecutor executor, final ServiceReference ref) {
- final Object nameObj = ref.getProperty(HealthCheck.MBEAN_NAME);
- if ( nameObj != null ) {
- final HealthCheckMBean mbean = new HealthCheckMBean(ref, executor);
-
- return new Registration(nameObj.toString().replace(',', '.'), mbean);
- }
- return null;
- }
-
- public void register(final Logger logger, final BundleContext btx) {
- final StringBuilder sb = new StringBuilder(JMX_DOMAIN);
- sb.append(":type=");
- sb.append(JMX_TYPE_NAME);
- sb.append(",name=");
- sb.append(this.name);
- final String objectName = sb.toString();
-
+ void register(final BundleContext btx) {
+ logger.debug("Registering health check mbean {} with name {}", mbean, objectName);
final Dictionary<String, String> mbeanProps = new Hashtable<String, String>();
mbeanProps.put("jmx.objectname", objectName);
this.registration = btx.registerService(DynamicMBean.class.getName(), this.mbean, mbeanProps);
-
- logger.debug("Registered health check mbean {} as {}", this.mbean, objectName);
}
- public boolean unregister(final Logger logger) {
+ boolean unregister() {
if ( this.registration != null ) {
+ logger.debug("Unregistering health check mbean {} with name {}", mbean, objectName);
this.registration.unregister();
this.registration = null;
- logger.debug("Unregistered health check mbean {}", this.mbean);
return true;
}
return false;
}
}
+
+ private Registration getRegistration(final ServiceReference ref) {
+ final Object nameObj = ref.getProperty(HealthCheck.MBEAN_NAME);
+ if ( nameObj != null ) {
+ final HealthCheckMBean mbean = new HealthCheckMBean(ref, executor);
+ return new Registration(nameObj.toString().replace(',', '.'), mbean);
+ }
+ return null;
+ }
+
}