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
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
00111 logger.log(BasicLevel.ERROR, "Cannot find the MBeanServer" + ex);
00112 }
00113 }
00114
00115 }