1 16 package org.jmanage.core.modules.jsr160; 17 18 import org.jmanage.core.management.ServerConnection; 19 import org.jmanage.core.management.ConnectionFailedException; 20 import org.jmanage.core.management.ServerConnectionFactory; 21 import org.jmanage.core.config.ApplicationConfig; 22 23 import javax.management.remote.JMXServiceURL ; 24 import javax.management.remote.JMXConnector ; 25 import javax.management.remote.JMXConnectorFactory ; 26 import javax.management.MBeanServerConnection ; 27 import java.util.HashMap ; 28 import java.util.Map ; 29 30 35 public class JSR160ServerConnectionFactory implements ServerConnectionFactory{ 36 37 41 public ServerConnection getServerConnection(ApplicationConfig config) 42 throws ConnectionFailedException { 43 44 try { 45 46 HashMap env = new HashMap (); 47 String [] credentials = new String [] {config.getUsername(), 48 config.getPassword()}; 49 env.put("jmx.remote.credentials", credentials); 50 51 Map params = config.getParamValues(); 52 final String jndiFactory = 53 (String )params.get(JSR160ApplicationConfig.JNDI_FACTORY); 54 final String jndiURL = 55 (String )params.get(JSR160ApplicationConfig.JNDI_URL); 56 57 if(jndiFactory != null) 58 env.put(JSR160ApplicationConfig.JNDI_FACTORY, jndiFactory); 59 if(jndiURL != null) 60 env.put(JSR160ApplicationConfig.JNDI_URL, jndiURL); 61 62 JMXServiceURL url = new JMXServiceURL (config.getURL()); 63 JMXConnector jmxc = JMXConnectorFactory.connect(url, env); 64 return new JSR160ServerConnection(jmxc, 65 jmxc.getMBeanServerConnection()); 66 } catch (Throwable e) { 67 throw new ConnectionFailedException(e); 68 } 69 } 70 } 71 | Popular Tags |