![]() |
![]() |
selenium-server-standalone-2.42.20)) { throw new IllegalArgumentException("Invalid SSL protocol"); } m_sslProtocol = protocol; } public ServerSocket createServerSocket(int port, int backlog, String host) throws IOException { if (m_keyStoreName == null) { throw new IOException("KeyStore file name cannot be null"); } if (m_keyStorePassword == null) { throw new IOException("KeyStore password cannot be null"); } Logger logger = getLogger(); if (logger.isEnabledFor(0)) { logger.trace("Creating SSLServerSocket"); logger.trace("\tKeyStore " + m_keyStoreName + ", type " + m_keyStoreType); logger.trace("\tKeyManager algorithm is " + m_keyManagerAlgorithm); logger.trace("\tTrustStore " + m_trustStoreName + ", type " + m_trustStoreType); logger.trace("\tTrustManager algorithm is " + m_trustManagerAlgorithm); logger.trace("\tSSL protocol version is " + m_sslProtocol); } try { KeyStore keystore = KeyStore.getInstance(m_keyStoreType); InputStream keyStoreStream = getClass().getClassLoader().getResourceAsStream(m_keyStoreName); if (keyStoreStream == null) { File fle = new File(m_keyStoreName); if (fle.exists()) { keyStoreStream = new FileInputStream(fle); } } if (keyStoreStream == null) { throw new IOException("Cannot find KeyStore " + m_keyStoreName); } keystore.load(keyStoreStream, m_keyStorePassword.toCharArray()); try { keyStoreStream.close(); } catch (IOException x) {} KeyManagerFactory keyFactory = KeyManagerFactory.getInstance(m_keyManagerAlgorithm); keyFactory.init(keystore, m_keyManagerPassword == null ? m_keyStorePassword.toCharArray() : m_keyManagerPassword.toCharArray()); TrustManagerFactory trustFactory = null; if (m_trustStoreName != null) { if (m_trustStorePassword == null) { throw new IOException("TrustStore password cannot be null"); } KeyStore trustStore = KeyStore.getInstance(m_trustStoreType); InputStream trustStoreStream = getClass().getClassLoader().getResourceAsStream(m_trustStoreName); if (trustStoreStream == null) { throw new IOException("Cannot find TrustStore " + m_trustStoreName); } trustStore.load(trustStoreStream, m_trustStorePassword.toCharArray()); trustFactory = TrustManagerFactory.getInstance(m_trustManagerAlgorithm); trustFactory.init(trustStore); } SSLContext context = SSLContext.getInstance(m_sslProtocol); context.init(keyFactory.getKeyManagers(), trustFactory == null ? null : trustFactory.getTrustManagers(), null); SSLServerSocketFactory ssf = context.getServerSocketFactory(); return (SSLServerSocket)ssf.createServerSocket(port, backlog, InetAddress.getByName(host)); } catch (IOException x) { logger.error("", x); throw x; } catch (UnrecoverableKeyException x) { logger.error("Probably a bad key password", x); throw new IOException("Probably a bad key password: " + x.toString()); } catch (Exception x) { logger.error("Unexpected exception", x); throw new IOException(x.toString()); } } private Logger getLogger() { return Log.getLogger(getClass().getName()); } } /* Location: * Qualified Name: mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactory * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.adaptor.ssl; import mx4j.tools.adaptor.AdaptorServerSocketFactory; public abstract interface SSLAdaptorServerSocketFactoryMBean extends AdaptorServerSocketFactory { public abstract void setKeyStoreType(String paramString); public abstract void setTrustStoreType(String paramString); public abstract void setKeyStoreName(String paramString); public abstract void setTrustStoreName(String paramString); public abstract void setKeyStorePassword(String paramString); public abstract void setTrustStorePassword(String paramString); public abstract void setKeyManagerAlgorithm(String paramString); public abstract void setTrustManagerAlgorithm(String paramString); public abstract void setKeyManagerPassword(String paramString); public abstract void setSSLProtocol(String paramString); } /* Location: * Qualified Name: mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBean * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.adaptor.ssl; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import mx4j.MBeanDescriptionAdapter; public class SSLAdaptorServerSocketFactoryMBeanDescription extends MBeanDescriptionAdapter { public String getMBeanDescription() { return "Factory for SSLServerSockets used by adaptors"; } public String getConstructorDescription(Constructor ctor) { return "Creates a new SSLServerSocket factory for adaptors"; } public String getAttributeDescription(String attribute) { if (attribute.equals("KeyStoreType")) { return "The type of the keystore, default is 'JKS'"; } if (attribute.equals("TrustStoreType")) { return "The type of the truststore, default is 'JKS'"; } if (attribute.equals("KeyStoreName")) { return "The keystore name"; } if (attribute.equals("TrustStoreName")) { return "The truststore name"; } if (attribute.equals("KeyStorePassword")) { return "The keystore password"; } if (attribute.equals("TrustStorePassword")) { return "The truststore password"; } if (attribute.equals("KeyManagerAlgorithm")) { return "The key algorithm, default is 'SunX509'"; } if (attribute.equals("TrustManagerAlgorithm")) { return "The trust algorithm, default is 'SunX509'"; } if (attribute.equals("KeyManagerPassword")) { return "The key password"; } if (attribute.equals("SSLProtocol")) { return "The SSL protocol version, default is 'TLS'"; } return super.getAttributeDescription(attribute); } public String getOperationDescription(Method operation) { String name = operation.getName(); if (name.equals("createServerSocket")) { return "Creates a new SSLServerSocket"; } return super.getOperationDescription(operation); } public String getOperationParameterName(Method method, int index) { String name = method.getName(); if (name.equals("createServerSocket")) { switch (index) { case 0: return "port"; case 1: return "backlog"; case 2: return "host"; } } return super.getOperationParameterName(method, index); } public String getOperationParameterDescription(Method method, int index) { String name = method.getName(); if (name.equals("createServerSocket")) { switch (index) { case 0: return "The port on which the SSLServerSocket listens for incoming connections"; case 1: return "The backlog for this SSLServerSocket"; case 2: return "The host name or IP address on which the SSLServerSocket is opened"; } } return super.getOperationParameterDescription(method, index); } } /* Location: * Qualified Name: mx4j.tools.adaptor.ssl.SSLAdaptorServerSocketFactoryMBeanDescription * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.util.List; import javax.management.MBeanServer; import org.w3c.dom.NamedNodeMap; public abstract interface ConfigurationBuilder$Node { public abstract void setAttributes(NamedNodeMap paramNamedNodeMap) throws ConfigurationException; public abstract void setText(String paramString); public abstract Object configure(MBeanServer paramMBeanServer) throws ConfigurationException; public abstract Node getParent(); public abstract void setParent(Node paramNode); public abstract List getChildren(); public abstract void addChild(Node paramNode); } /* Location: * Qualified Name: mx4j.tools.config.ConfigurationBuilder.Node * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; public abstract interface ConfigurationBuilder$ObjectsHolder { public abstract Object getObject(String paramString); public abstract Object putObject(String paramString, Object paramObject); public abstract boolean containsKey(String paramString); } /* Location: * Qualified Name: mx4j.tools.config.ConfigurationBuilder.ObjectsHolder * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.util.List; import javax.management.MBeanServer; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; public abstract interface ConfigurationBuilder { public abstract Node createConfigurationNode(Element paramElement) throws ConfigurationException; public static abstract interface ObjectsHolder { public abstract Object getObject(String paramString); public abstract Object putObject(String paramString, Object paramObject); public abstract boolean containsKey(String paramString); } public static abstract interface Node { public abstract void setAttributes(NamedNodeMap paramNamedNodeMap) throws ConfigurationException; public abstract void setText(String paramString); public abstract Object configure(MBeanServer paramMBeanServer) throws ConfigurationException; public abstract Node getParent(); public abstract void setParent(Node paramNode); public abstract List getChildren(); public abstract void addChild(Node paramNode); } } /* Location: * Qualified Name: mx4j.tools.config.ConfigurationBuilder * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.io.PrintStream; import java.io.PrintWriter; public class ConfigurationException extends Exception { private Throwable cause; public ConfigurationException() { this(null, null); } public ConfigurationException(String message) { this(message, null); } public ConfigurationException(Throwable cause) { this(null, cause); } public ConfigurationException(String message, Throwable cause) { super(message); this.cause = cause; } public Throwable getCause() { return cause; } public void printStackTrace() { if (cause == null) { super.printStackTrace(); } else { synchronized (System.err) { System.err.println(this); cause.printStackTrace(); } } } public void printStackTrace(PrintStream stream) { if (cause == null) { super.printStackTrace(stream); } else { synchronized (stream) { stream.println(this); cause.printStackTrace(stream); } } } public void printStackTrace(PrintWriter writer) { if (cause == null) { super.printStackTrace(writer); } else { synchronized (writer) { writer.println(this); cause.printStackTrace(writer); } } } } /* Location: * Qualified Name: mx4j.tools.config.ConfigurationException * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.io.Reader; import java.util.ArrayList; import java.util.List; import javax.management.MBeanRegistration; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class ConfigurationLoader implements ConfigurationLoaderMBean, MBeanRegistration { private MBeanServer server; private ConfigurationBuilder builder; private ConfigurationBuilder.Node root; public ConfigurationLoader() { this(null, new DefaultConfigurationBuilder()); } public ConfigurationLoader(ConfigurationBuilder builder) { this(null, builder); } public ConfigurationLoader(MBeanServer server) { this(server, new DefaultConfigurationBuilder()); } public ConfigurationLoader(MBeanServer server, ConfigurationBuilder builder) { this.server = server; if (builder == null) { throw new IllegalArgumentException("ConfigurationBuilder cannot be null"); } this.builder = builder; } public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception { this.server = server; return name; } public void postRegister(Boolean registered) {} public void preDeregister() throws Exception {} public void postDeregister() {} public void startup(Reader source) throws ConfigurationException { if (server == null) { throw new ConfigurationException("Cannot startup the configuration, MBeanServer is not specified"); } try { DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder(); InputSource src = new InputSource(source); Document document = documentBuilder.parse(src); Element xmlRoot = document.getDocumentElement(); root = builder.createConfigurationNode(xmlRoot); parse(xmlRoot, root); root.configure(server); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } public void shutdown() throws ConfigurationException { root.configure(null); } private void parse(Element xmlNode, ConfigurationBuilder.Node node) throws ConfigurationException { NamedNodeMap attributes = xmlNode.getAttributes(); if ((attributes != null) && (attributes.getLength() > 0)) { node.setAttributes(attributes); } List elements = getChildrenElements(xmlNode); if (elements != null) { for (int i = 0; i < elements.size(); i++) { Element xmlChild = (Element)elements.get(i); ConfigurationBuilder.Node child = builder.createConfigurationNode(xmlChild); node.addChild(child); parse(xmlChild, child); } } String value = getNodeValue(xmlNode); node.setText(value); } private List getChildrenElements(Element xmlNode) { NodeList xmlChildren = xmlNode.getChildNodes(); if (xmlChildren == null) { return null; } ArrayList children = new ArrayList(); for (int i = 0; i < xmlChildren.getLength(); i++) { Node xmlChild = xmlChildren.item(i); if (xmlChild.getNodeType() == 1) { children.add(xmlChild); } } return children; } private String getNodeValue(Element xmlNode) { NodeList xmlChildren = xmlNode.getChildNodes(); if (xmlChildren == null) { return null; } for (int i = 0; i < xmlChildren.getLength(); i++) { Node xmlChild = xmlChildren.item(i); if (xmlChild.getNodeType() == 3) { return xmlChild.getNodeValue(); } } return null; } } /* Location: * Qualified Name: mx4j.tools.config.ConfigurationLoader * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.io.Reader; public abstract interface ConfigurationLoaderMBean { public abstract void startup(Reader paramReader) throws ConfigurationException; public abstract void shutdown() throws ConfigurationException; } /* Location: * Qualified Name: mx4j.tools.config.ConfigurationLoaderMBean * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import mx4j.log.Logger; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; public abstract class DefaultConfigurationBuilder$AbstractNode implements ConfigurationBuilder.Node { private String text; private ConfigurationBuilder.Node parent; private List children; public void setText(String text) { this.text = text; } public void setParent(ConfigurationBuilder.Node parent) { this.parent = parent; } public void addChild(ConfigurationBuilder.Node child) { if (children == null) { children = new ArrayList(); } child.setParent(this); children.add(child); } protected String getText() { return text; } public ConfigurationBuilder.Node getParent() { return parent; } public List getChildren() { return children; } public void setAttributes(NamedNodeMap attributes) throws ConfigurationException { Logger logger = DefaultConfigurationBuilder.access$000(); for (int i = 0; i < attributes.getLength(); i++) { Node attribute = attributes.item(i); String name = attribute.getNodeName(); String value = attribute.getNodeValue(); String setterName = "set" + name.substring(0, 1).toUpperCase() + name.substring(1); try { if (logger.isEnabledFor(0)) { logger.trace("Calling " + setterName + " with " + value + " on " + this); } Method setter = getClass().getMethod(setterName, new Class[] { DefaultConfigurationBuilder.class$java$lang$String == null ? (DefaultConfigurationBuilder.class$java$lang$String = DefaultConfigurationBuilder.class$("java.lang.String")) : DefaultConfigurationBuilder.class$java$lang$String }); setter.invoke(this, new Object[] { value }); } catch (InvocationTargetException x) { throw new ConfigurationException(x.getTargetException()); } catch (Exception x) { throw new ConfigurationException(x); } } } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.AbstractNode * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.List; import javax.management.MBeanServer; public class DefaultConfigurationBuilder$Arg extends DefaultConfigurationBuilder.AbstractNode { private static final String OBJECT_TYPE = "object"; private static final String STRING_TYPE = "string"; private static final String BOOLEAN_TYPE = "boolean"; private static final String BYTE_TYPE = "byte"; private static final String CHAR_TYPE = "char"; private static final String DOUBLE_TYPE = "double"; private static final String FLOAT_TYPE = "float"; private static final String INT_TYPE = "int"; private static final String LONG_TYPE = "long"; private static final String SHORT_TYPE = "short"; private String type; private String refobjectid; public void setType(String type) { this.type = type; } public void setRefobjectid(String refobjectid) { this.refobjectid = refobjectid; } public Class getJavaType() throws ConfigurationException { if ("string".equalsIgnoreCase(type)) { return DefaultConfigurationBuilder.class$java$lang$String == null ? (DefaultConfigurationBuilder.class$java$lang$String = DefaultConfigurationBuilder.class$("java.lang.String")) : DefaultConfigurationBuilder.class$java$lang$String; } if ("object".equalsIgnoreCase(type)) { return DefaultConfigurationBuilder.class$java$lang$Object == null ? (DefaultConfigurationBuilder.class$java$lang$Object = DefaultConfigurationBuilder.class$("java.lang.Object")) : DefaultConfigurationBuilder.class$java$lang$Object; } if ("boolean".equalsIgnoreCase(type)) { return Boolean.TYPE; } if ("byte".equalsIgnoreCase(type)) { return Byte.TYPE; } if ("char".equalsIgnoreCase(type)) { return Character.TYPE; } if ("double".equalsIgnoreCase(type)) { return Double.TYPE; } if ("float".equalsIgnoreCase(type)) { return Float.TYPE; } if ("int".equalsIgnoreCase(type)) { return Integer.TYPE; } if ("long".equalsIgnoreCase(type)) { return Long.TYPE; } if ("short".equalsIgnoreCase(type)) { return Short.TYPE; } return DefaultConfigurationBuilder.access$200(type); } public Object configure(MBeanServer server) throws ConfigurationException { if (refobjectid != null) { return DefaultConfigurationBuilder.access$500(this, refobjectid); } List children = getChildren(); if ((children != null) && (children.size() > 0)) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(0); return child.configure(server); } String text = getText(); if ((text == null) || ("null".equals(text))) { return null; } if ("string".equalsIgnoreCase(type)) { return text; } if ("object".equalsIgnoreCase(type)) { return text; } if ("boolean".equalsIgnoreCase(type)) { return Boolean.valueOf(text); } if ("byte".equalsIgnoreCase(type)) { return Byte.valueOf(text); } if ("char".equalsIgnoreCase(type)) { return new Character(text.length() < 1 ? '\000' : text.charAt(0)); } if ("double".equalsIgnoreCase(type)) { return Double.valueOf(text); } if ("float".equalsIgnoreCase(type)) { return Float.valueOf(text); } if ("int".equalsIgnoreCase(type)) { return Integer.valueOf(text); } if ("long".equalsIgnoreCase(type)) { return Long.valueOf(text); } if ("short".equalsIgnoreCase(type)) { return Short.valueOf(text); } try { Constructor ctor = getJavaType().getConstructor(new Class[] { DefaultConfigurationBuilder.class$java$lang$String == null ? (DefaultConfigurationBuilder.class$java$lang$String = DefaultConfigurationBuilder.class$("java.lang.String")) : DefaultConfigurationBuilder.class$java$lang$String }); return ctor.newInstance(new Object[] { text }); } catch (InvocationTargetException x) { throw new ConfigurationException(x.getTargetException()); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Arg * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.List; import javax.management.Attribute; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; public class DefaultConfigurationBuilder$Call extends DefaultConfigurationBuilder.AbstractNode { private String classname; private ObjectName objectname; private String refobjectid; private String method; private String operation; private String attribute; public void setClassname(String classname) { this.classname = classname; } public void setObjectname(String name) throws MalformedObjectNameException { if ((name != null) && (!"null".equals(name))) { objectname = ObjectName.getInstance(name); } } public void setRefobjectid(String refid) { refobjectid = refid; } public void setMethod(String method) { this.method = method; } public void setOperation(String operation) { this.operation = operation; } public void setAttribute(String attribute) { this.attribute = attribute; } public Object configure(MBeanServer server) throws ConfigurationException { if (classname != null) { Class cls = DefaultConfigurationBuilder.access$200(classname); try { Method mthd = cls.getMethod(method, DefaultConfigurationBuilder.access$300(this)); return mthd.invoke(null, DefaultConfigurationBuilder.access$400(this, server)); } catch (InvocationTargetException x) { throw new ConfigurationException(x.getTargetException()); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } if (objectname != null) { if (operation != null) { try { return server.invoke(objectname, operation, DefaultConfigurationBuilder.access$400(this, server), DefaultConfigurationBuilder.access$600(this)); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } if (attribute != null) { try { List children = getChildren(); if ((children == null) || (children.size() < 1)) { return server.getAttribute(objectname, attribute); } Object arg = DefaultConfigurationBuilder.access$400(this, server)[0]; server.setAttribute(objectname, new Attribute(attribute, arg)); return null; } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } throw new ConfigurationException("Missing 'attribute' or 'operation' attribute in JMX call"); } Object target = null; if (refobjectid != null) { target = DefaultConfigurationBuilder.access$500(this, refobjectid); if (target == null) { throw new ConfigurationException("Could not find object with id " + refobjectid); } try { Method mthd = target.getClass().getMethod(method, DefaultConfigurationBuilder.access$300(this)); return mthd.invoke(target, DefaultConfigurationBuilder.access$400(this, server)); } catch (InvocationTargetException x) { throw new ConfigurationException(x.getTargetException()); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } throw new ConfigurationException("Missing 'refobjectid' attribute in call element"); } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Call * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.management.MBeanServer; import mx4j.log.Logger; public class DefaultConfigurationBuilder$Configuration extends DefaultConfigurationBuilder.AbstractNode implements ConfigurationBuilder.ObjectsHolder, Runnable { private Map objects; private int port = -1; private MBeanServer server; private Thread thread; public void setPort(String portString) { port = Integer.parseInt(portString); } public Object configure(MBeanServer server) throws ConfigurationException { if (server != null) { this.server = server; return startup(server); } return shutdown(this.server); } private Object startup(MBeanServer server) throws ConfigurationException { Logger logger = DefaultConfigurationBuilder.access$000(); List children = getChildren(); if (children != null) { for (int i = 0; i < children.size(); i++) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(i); if ((child instanceof DefaultConfigurationBuilder.Startup)) { child.configure(server); } } } if (port > 0) { thread = new Thread(this, "Configuration Shutdown"); if (logger.isEnabledFor(0)) { logger.trace("Starting " + thread.getName() + " Thread on port " + port); } thread.start(); } return null; } private Object shutdown(MBeanServer server) throws ConfigurationException { Logger logger = DefaultConfigurationBuilder.access$000(); List children = getChildren(); if (children != null) { for (int i = 0; i < children.size(); i++) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(i); if ((child instanceof DefaultConfigurationBuilder.Shutdown)) { child.configure(server); } } } if (port > 0) { if (logger.isEnabledFor(0)) { logger.trace("Stopping " + thread.getName() + " Thread on port " + port); } thread.interrupt(); } return null; } public void run() { Logger logger = DefaultConfigurationBuilder.access$000(); ServerSocket server = null; try { if (logger.isEnabledFor(0)) { logger.trace("Started " + thread.getName() + " Thread on port " + port); } server = new ServerSocket(port, 50, InetAddress.getByName(null)); server.setSoTimeout(1000); byte[] buffer = new byte[64]; StringBuffer command = new StringBuffer(); while (!thread.isInterrupted()) { Socket client = null; try { client = server.accept(); } catch (InterruptedIOException x) {} continue; if (logger.isEnabledFor(0)) { logger.trace("Client connected " + client); } InputStream is = new BufferedInputStream(client.getInputStream()); command.setLength(0); int read = -1; while ((read = is.read(buffer)) >= 0) { command.append(new String(buffer, 0, read)); } String cmd = command.toString(); if (logger.isEnabledFor(0)) { logger.trace("Got command '" + cmd + "'"); } if ("shutdown".equals(cmd)) { try { configure(null); } catch (ConfigurationException x) { if (logger.isEnabledFor(30)) { logger.warn("Bad configuration for shutdown", x); } } } } } catch (Exception x) { if (logger.isEnabledFor(20)) { logger.info("Caught Exception in " + thread.getName() + " Thread, exiting", x); } } finally { if (logger.isEnabledFor(0)) { logger.trace("Stopped " + thread.getName() + " Thread on port " + port); } try { if (server != null) { server.close(); } } catch (IOException x) {} } } public Object getObject(String key) { if (objects == null) { return null; } return objects.get(key); } public Object putObject(String key, Object value) { if (objects == null) { objects = new HashMap(); } return objects.put(key, value); } public boolean containsKey(String key) { if (objects == null) { return false; } return objects.containsKey(key); } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Configuration * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; public class DefaultConfigurationBuilder$Create extends DefaultConfigurationBuilder.AbstractNode { private String classname; private ObjectName objectname; private String loadername; public void setClassname(String classname) { this.classname = classname; } public void setObjectname(String name) throws MalformedObjectNameException { if ((name != null) && (!"null".equals(name))) { objectname = ObjectName.getInstance(name); } } public void setLoadername(String name) throws MalformedObjectNameException { loadername = name; } public Object configure(MBeanServer server) throws ConfigurationException { try { if (loadername != null) { ObjectName loader = null; if (!"null".equals(loadername)) { loader = ObjectName.getInstance(loadername); } return server.createMBean(classname, objectname, loader, DefaultConfigurationBuilder.access$400(this, server), DefaultConfigurationBuilder.access$600(this)); } return server.createMBean(classname, objectname, DefaultConfigurationBuilder.access$400(this, server), DefaultConfigurationBuilder.access$600(this)); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Create * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import javax.management.MBeanServer; public class DefaultConfigurationBuilder$New extends DefaultConfigurationBuilder.AbstractNode { private String classname; public void setClassname(String classname) { this.classname = classname; } public Object configure(MBeanServer server) throws ConfigurationException { try { Class cls = DefaultConfigurationBuilder.access$200(classname); Constructor ctor = cls.getConstructor(DefaultConfigurationBuilder.access$300(this)); return ctor.newInstance(DefaultConfigurationBuilder.access$400(this, server)); } catch (InvocationTargetException x) { throw new ConfigurationException(x.getTargetException()); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.New * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.util.List; import javax.management.MBeanServer; public class DefaultConfigurationBuilder$Object extends DefaultConfigurationBuilder.AbstractNode { private String id; public void setObjectid(String id) { this.id = id; } public String getObjectid() { return id; } public Object configure(MBeanServer server) throws ConfigurationException { List children = getChildren(); Object result = null; if ((children != null) && (children.size() > 0)) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(0); result = child.configure(server); } DefaultConfigurationBuilder.access$100(this, id, result); return result; } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Object * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.util.List; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; public class DefaultConfigurationBuilder$Register extends DefaultConfigurationBuilder.AbstractNode { private ObjectName objectname; public void setObjectname(String name) throws MalformedObjectNameException { if ((name != null) && (!"null".equals(name))) { objectname = ObjectName.getInstance(name); } } public Object configure(MBeanServer server) throws ConfigurationException { List children = getChildren(); if ((children != null) && (children.size() > 0)) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(0); try { return server.registerMBean(child.configure(server), objectname); } catch (ConfigurationException x) { throw x; } catch (Exception x) { throw new ConfigurationException(x); } } return null; } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Register * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.util.List; import javax.management.MBeanServer; public class DefaultConfigurationBuilder$Shutdown extends DefaultConfigurationBuilder.AbstractNode { public Object configure(MBeanServer server) throws ConfigurationException { List children = getChildren(); if (children != null) { for (int i = 0; i < children.size(); i++) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(i); child.configure(server); } } return null; } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Shutdown * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.util.List; import javax.management.MBeanServer; public class DefaultConfigurationBuilder$Startup extends DefaultConfigurationBuilder.AbstractNode { public Object configure(MBeanServer server) throws ConfigurationException { List children = getChildren(); if (children != null) { for (int i = 0; i < children.size(); i++) { ConfigurationBuilder.Node child = (ConfigurationBuilder.Node)children.get(i); child.configure(server); } } return null; } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Startup * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; public class DefaultConfigurationBuilder$Unregister extends DefaultConfigurationBuilder.AbstractNode { private ObjectName objectname; public void setObjectname(String name) throws MalformedObjectNameException { objectname = ObjectName.getInstance(name); } public Object configure(MBeanServer server) throws ConfigurationException { try { server.unregisterMBean(objectname); return null; } catch (Exception x) { throw new ConfigurationException(x); } } } /* Location: * Qualified Name: mx4j.tools.config.DefaultConfigurationBuilder.Unregister * Java Class Version: 1.2 (46.0) * JD-Core Version: 0.7.1 */ package mx4j.tools.config; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.management.Attribute; import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import mx4j.log.Log; import mx4j.log.Logger; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; public class DefaultConfigurationBuilder implements ConfigurationBuilder { public static final String SHUTDOWN_COMMAND = "shutdown"; public static final String RESTART_COMMAND = "restart"; private static final String NULL = "null"; public ConfigurationBuilder.Node crea Further reading...For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.New!JAR listings
|