ManagementReprFactory.java

00001 
00025 package org.objectweb.jonas.jmx;
00026 
00027 // JOnAS Log
00028 import java.io.IOException;
00029 import java.net.MalformedURLException;
00030 
00031 import javax.management.MBeanServerConnection;
00032 import javax.management.remote.JMXConnector;
00033 import javax.management.remote.JMXConnectorFactory;
00034 import javax.management.remote.JMXServiceURL;
00035 
00036 import org.objectweb.jonas.common.Log;
00037 import org.objectweb.jonas.service.ServiceManager;
00038 import org.objectweb.util.monolog.api.BasicLevel;
00039 import org.objectweb.util.monolog.api.Logger;
00040 
00045 public class ManagementReprFactory {
00049     private ManagementReprFactory() {
00050     }
00054     private static Logger logger = Log.getLogger("org.objectweb.jonas.jmx");
00055 
00060     public static ManagementRepr getManagementRepr() {
00061         ManagementRepr representative = null;
00062         ClassLoader classLoader = ManagementReprFactory.class.getClassLoader();
00063         try {
00064             Class managemntRepClass = classLoader.loadClass("org.objectweb.jonas.jmx.ManagementReprImpl");
00065             logger.log(BasicLevel.DEBUG, "ManagementReprFactory , managemntRep class loaded");
00066             representative = (ManagementRepr) managemntRepClass.newInstance();
00067             logger.log(BasicLevel.DEBUG, "ManagementReprFactory , managemntRep created");
00068         } catch (Exception e) {
00069             logger.log(BasicLevel.DEBUG, "ManagementReprFactory exception : " + e.toString());
00070         }
00071         return representative;
00072     }
00073 
00079     public static ManagementRepr getManagementRepr(String serverName) {
00080         ManagementRepr representative = null;
00081         ClassLoader classLoader = ManagementReprFactory.class.getClassLoader();
00082         try {
00083             Class managemntRepClass = classLoader.loadClass("org.objectweb.jonas.jmx.ManagementReprImplJSR160");
00084             logger.log(BasicLevel.DEBUG, "ManagementReprFactory , managemntRep class loaded");
00085             representative = (ManagementRepr) managemntRepClass.newInstance();
00086             logger.log(BasicLevel.DEBUG, "ManagementReprFactory , managemntRep created");
00087             MBeanServerConnection connection = null;
00092             JmxService jmxService = (JmxService) ServiceManager.getInstance().getJmxService();
00093             /*
00094             String name = jmxService.getJonasServerName();
00095             JMXServiceURL[] urls = jmxService.getConnectorServerURLs();
00096             // create a connector client for the connector server at the given url
00097             JMXConnector connector = null;
00098             try {
00099                 connector = JMXConnectorFactory.newJMXConnector(urls[0], null);
00100                 connector.connect(null);
00101                 connection = connector.getMBeanServerConnection();
00102             } catch (MalformedURLException e) {
00103                 // there is no provider for the protocol in url
00104                 connection = null;
00105             } catch (IOException e) {
00106                 // connector client or connection cannot be made because of a communication problem.
00107                 connection = null;
00108             } catch (java.lang.SecurityException e) {
00109                 // connection cannot be made for security reasons
00110                 connection = null;
00111             }
00112             logger.log(BasicLevel.DEBUG, "ManagementReprFactory , connection created for current server");
00113             */
00114             connection = jmxService.getServerConnection(serverName);
00115             if (connection == null) {
00116                 logger.log(BasicLevel.WARN, "ManagementReprFactory could not get connection for server " + serverName);
00117             } else {
00118                 logger.log(BasicLevel.DEBUG, "ManagementReprFactory got connection for server " + serverName);
00119                 ((ManagementReprImplJSR160) representative).setMBeanServerConnection(connection);
00120             }
00121         } catch (Exception e) {
00122             logger.log(BasicLevel.DEBUG, "ManagementReprFactory exception : " + e.toString());
00123         }
00124         return representative;
00125     }
00126 }

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