Information

2
Story Points

Technologies

Decompiled Java File
package org.dozer.jmx;

import java.lang.management.ManagementFactory;
import javax.management.InstanceAlreadyExistsException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
import org.dozer.jmx.JMXPlatform;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JMXPlatformImpl implements JMXPlatform {
   private static final Logger log = LoggerFactory.getLogger(JMXPlatformImpl.class);

   public boolean isAvailable() {
      try {
         Class.forName("java.lang.management.ManagementFactory");
         Class.forName("javax.management.ObjectName");
         Class.forName("javax.management.MBeanServer");
         return true;
      } catch (Throwable var2) {
         return false;
      }
   }

   public void registerMBean(String name, Object bean) throws MalformedObjectNameException, MBeanRegistrationException, NotCompliantMBeanException {
      ObjectName mbeanObjectName = new ObjectName(name);
      this.unregister(name, mbeanObjectName);
      this.register(name, bean, mbeanObjectName);
   }

   public void unregisterMBean(String name) throws MBeanRegistrationException, MalformedObjectNameException {
      ObjectName mbeanObjectName = new ObjectName(name);
      this.unregister(name, mbeanObjectName);
   }

   private void register(String name, Object bean, ObjectName mbeanObjectName) throws MBeanRegistrationException, NotCompliantMBeanException {
      MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

      try {
         mbs.registerMBean(bean, mbeanObjectName);
         log.info("Dozer JMX MBean [" + name + "] auto registered with the Platform MBean Server");
      } catch (InstanceAlreadyExistsException var6) {
         log.info("JMX MBean instance exists, unable to overwrite [{}].", name);
      }

   }

   private void unregister(String name, ObjectName mbeanObjectName) throws MBeanRegistrationException {
      MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
      boolean isMBeanRegistered = mbs.isRegistered(mbeanObjectName);
      if(isMBeanRegistered) {
         log.info("Unregistering existing Dozer JMX MBean [{}].", name);

         try {
            mbs.unregisterMBean(mbeanObjectName);
         } catch (InstanceNotFoundException var6) {
            log.info("JMX MBean not found to unregister [{}].", name);
         }
      }

   }
}
Page generated: Oct 19, 2017 2:35:00 PM