KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > controller > digester > ConnectorFactory


1 /*
2  * Created on 22.mar.2003
3  *
4  */

5 package net.sf.panoptes.controller.digester;
6
7 import java.io.File JavaDoc;
8 import java.net.URL JavaDoc;
9 import java.net.URLClassLoader JavaDoc;
10 import java.util.ArrayList JavaDoc;
11 import java.util.StringTokenizer JavaDoc;
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 JavaDoc;
19
20 /**
21  *
22  *
23  * @author Dag Liodden
24  * @version 0.1
25  */

26 public class ConnectorFactory implements ObjectCreationFactory {
27
28     private Digester digester;
29
30
31     /* (non-Javadoc)
32      * @see org.apache.commons.digester.ObjectCreationFactory#createObject(org.xml.sax.Attributes)
33      */

34     public Object JavaDoc createObject(Attributes JavaDoc attributes) throws Exception JavaDoc {
35         String JavaDoc name = attributes.getValue("name");
36         String JavaDoc defaultJNDIName = attributes.getValue("defaultJNDIName");
37         String JavaDoc defaultHost = attributes.getValue("defaultHost");
38         String JavaDoc defaultPort = attributes.getValue("defaultPort");
39         String JavaDoc connectorClass = attributes.getValue("connectorClass");
40         String JavaDoc classPath = attributes.getValue("classPath");
41         
42         ArrayList JavaDoc cp = new ArrayList JavaDoc();
43         StringTokenizer JavaDoc tok = new StringTokenizer JavaDoc(classPath, ";");
44         while (tok.hasMoreTokens()) {
45             cp.add(new File JavaDoc(tok.nextToken()).toURL());
46         }
47         
48         URLClassLoader JavaDoc classLoader = new URLClassLoader JavaDoc((URL JavaDoc[]) cp.toArray(new URL JavaDoc[cp.size()]), Thread.currentThread().getContextClassLoader());
49         Class JavaDoc 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