1 17 18 package org.sape.carbon.services.jmx.server.weblogic; 19 20 21 22 import javax.management.MBeanServer ; 23 import javax.naming.AuthenticationException ; 24 import javax.naming.CommunicationException ; 25 import javax.naming.Context ; 26 import javax.naming.NamingException ; 27 28 import org.sape.carbon.core.component.ComponentConfiguration; 29 import org.sape.carbon.core.component.lifecycle.Configurable; 30 import org.sape.carbon.core.exception.ExceptionUtility; 31 import org.sape.carbon.services.jmx.server.MBeanServerService; 32 33 import org.apache.commons.logging.Log; 34 import org.apache.commons.logging.LogFactory; 35 import weblogic.jndi.Environment; 36 import weblogic.management.MBeanHome; 37 38 45 public class WebLogicMBeanServerServiceImpl 46 implements MBeanServerService, Configurable { 47 48 49 52 private Log log = LogFactory.getLog(this.getClass()); 53 54 55 protected WebLogicMBeanServerServiceConfiguration config; 56 57 62 public MBeanServer getMBeanServer() { 63 MBeanServer mbeanServer = null; 64 MBeanHome home = null; 65 try { 66 Environment env = new Environment(); 67 if (config != null) { 68 if (config.getInitialContextFactory() != null) { 69 env.setInitialContextFactory( 70 config.getInitialContextFactory()); 71 } 72 73 if (config.getPrincipal() != null) { 74 env.setSecurityPrincipal(config.getPrincipal()); 75 } 76 77 if (config.getCredentials() != null) { 78 env.setSecurityCredentials(config.getCredentials()); 79 } 80 } 81 82 Context ctx = env.getInitialContext(); 83 home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME); 84 mbeanServer = home.getMBeanServer(); 85 86 if (mbeanServer != null) { 87 if (log.isTraceEnabled()) { 88 log.trace("Got back MBeanServer of type [" 89 + mbeanServer.getClass().getName() + "]"); 90 } 91 } 92 } catch (AuthenticationException e) { 93 if (log.isTraceEnabled()) { 94 log.trace("Caught exception: " + e 95 + ExceptionUtility.captureStackTrace(e)); 96 } 97 } catch (CommunicationException e) { 98 if (log.isTraceEnabled()) { 99 log.trace("Caught exception: " + e 100 + ExceptionUtility.captureStackTrace(e)); 101 } 102 } catch (NamingException e) { 103 if (log.isTraceEnabled()) { 104 log.trace("Caught exception: " + e 105 + ExceptionUtility.captureStackTrace(e)); 106 } 107 } 108 return mbeanServer; 109 } 110 111 117 public void configure(ComponentConfiguration configuration) { 118 try { 119 this.config = 120 (WebLogicMBeanServerServiceConfiguration) configuration; 121 122 if (log.isTraceEnabled()) { 123 log.trace( 124 "Specifed proper WebLogicMBeanServerServiceConfiguration." 125 + "Using values from configuration file."); 126 } 127 128 } catch (ClassCastException cce) { 129 this.config = null; 130 if (log.isTraceEnabled()) { 131 log.trace( 132 "Specifed WebLogicMBeanServerServiceConfiguration does not " 133 + "implement correct interface. Empty InitialContext " 134 + "settings will be used."); 135 } 136 } 137 } 138 } | Popular Tags |