1 5 package net.sf.panoptes.controller.digester; 6 7 import java.io.File ; 8 import java.net.URL ; 9 import java.net.URLClassLoader ; 10 import java.util.ArrayList ; 11 import java.util.StringTokenizer ; 12 13 import net.sf.panoptes.component.jmx.connector.MBeanServerConnector; 14 import net.sf.panoptes.registry.ConnectorRegistry; 15 16 import org.apache.commons.digester.Digester; 17 import org.apache.commons.digester.ObjectCreationFactory; 18 import org.xml.sax.Attributes ; 19 20 26 public class ConnectorFactory implements ObjectCreationFactory { 27 28 private Digester digester; 29 30 31 34 public Object createObject(Attributes attributes) throws Exception { 35 String name = attributes.getValue("name"); 36 String defaultJNDIName = attributes.getValue("defaultJNDIName"); 37 String defaultHost = attributes.getValue("defaultHost"); 38 String defaultPort = attributes.getValue("defaultPort"); 39 String connectorClass = attributes.getValue("connectorClass"); 40 String classPath = attributes.getValue("classPath"); 41 42 ArrayList cp = new ArrayList (); 43 StringTokenizer tok = new StringTokenizer (classPath, ";"); 44 while (tok.hasMoreTokens()) { 45 cp.add(new File (tok.nextToken()).toURL()); 46 } 47 48 URLClassLoader classLoader = new URLClassLoader ((URL []) cp.toArray(new URL [cp.size()]), Thread.currentThread().getContextClassLoader()); 49 Class clazz = classLoader.loadClass(connectorClass); 50 51 MBeanServerConnector connector = (MBeanServerConnector) clazz.newInstance(); 52 connector.setName(name); 53 connector.setDefaultJNDIName(defaultJNDIName); 54 connector.setDefaultPort(Integer.parseInt(defaultPort)); 55 connector.setDefaultHostname(defaultHost); 56 ConnectorRegistry.getInstance().addConnector(connector); 57 return null; 58 59 } 60 61 public Digester getDigester() { 62 return digester; 63 } 64 65 public void setDigester(Digester digester) { 66 this.digester = digester; 67 } 68 } 69 | Popular Tags |