AbsJmxServiceImpl.java

00001 
00024 package org.objectweb.jonas.jmx;
00025 
00026 import javax.management.MBeanServer;
00027 import javax.management.MBeanServerFactory;
00028 import javax.management.remote.JMXServiceURL;
00029 import javax.naming.Context;
00030 
00031 import org.objectweb.jonas.common.Log;
00032 import org.objectweb.jonas.service.AbsServiceImpl;
00033 import org.objectweb.jonas.service.ServiceException;
00034 import org.objectweb.util.monolog.api.BasicLevel;
00035 import org.objectweb.util.monolog.api.Logger;
00036 
00046 public abstract class AbsJmxServiceImpl extends AbsServiceImpl implements JmxService {
00047 
00051     private static Logger logger = null;
00052 
00056     protected static Logger getLogger() {
00057         return logger;
00058     }
00059 
00063     private MBeanServer jmxServer = null;
00064 
00071     public void doInit(Context ctx) throws ServiceException {
00072         logger = Log.getLogger(Log.JONAS_JMX_PREFIX);
00073         super.initLogger(Log.getLogger(Log.JONAS_MANAGEMENT_PREFIX));
00074 
00075         // Create the MBeanServer
00076         // ----------------------
00077         jmxServer = MBeanServerFactory.createMBeanServer(getDomainName());
00078 
00079         logger.log(BasicLevel.DEBUG, "JMX Service initialized");
00080     }
00081 
00086     public abstract void doStart() throws ServiceException;
00087 
00092     public abstract void doStop() throws ServiceException;
00093 
00094     public abstract JMXServiceURL[] getConnectorServerURLs();
00095 
00099     public MBeanServer getJmxServer() {
00100         return this.jmxServer;
00101     }
00102 
00106     protected void releaseJmxServer() {
00107         try {
00108             MBeanServerFactory.releaseMBeanServer(jmxServer);
00109         } catch (java.lang.IllegalArgumentException ex) {
00110             // The mbeanServer is not found.
00111             logger.log(BasicLevel.ERROR, "Cannot find the MBeanServer" + ex);
00112         }
00113     }
00114 
00115 }

Generated on Tue Feb 15 15:05:16 2005 for JOnAS by  doxygen 1.3.9.1