X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=srcjar_unused%2Forg%2Fapache%2Flog4j%2Fjmx%2FAgent.java;fp=srcjar_unused%2Forg%2Fapache%2Flog4j%2Fjmx%2FAgent.java;h=9bf3c1a8984eab278cb702cf3480242babb9b016;hb=4f30214e8098748469c6a4269ac2ed6c5750e4b0;hp=0000000000000000000000000000000000000000;hpb=9dabc02511e3a334a5749a504f57f69d6c9017bd;p=jalview.git diff --git a/srcjar_unused/org/apache/log4j/jmx/Agent.java b/srcjar_unused/org/apache/log4j/jmx/Agent.java new file mode 100644 index 0000000..9bf3c1a --- /dev/null +++ b/srcjar_unused/org/apache/log4j/jmx/Agent.java @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.log4j.jmx; + +import org.apache.log4j.Logger; + +import javax.management.JMException; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; +import javax.management.ObjectName; +import java.lang.reflect.InvocationTargetException; +import java.io.InterruptedIOException; + + +/** + * Manages an instance of com.sun.jdmk.comm.HtmlAdapterServer which + * was provided for demonstration purposes in the + * Java Management Extensions Reference Implementation 1.2.1. + * This class is provided to maintain compatibility with earlier + * versions of log4j and use in new code is discouraged. + * + * @deprecated + */ +public class Agent { + + /** + * Diagnostic logger. + * @deprecated + */ + static Logger log = Logger.getLogger(Agent.class); + + /** + * Create new instance. + * @deprecated + */ + public Agent() { + } + + /** + * Creates a new instance of com.sun.jdmk.comm.HtmlAdapterServer + * using reflection. + * + * @since 1.2.16 + * @return new instance. + */ + private static Object createServer() { + Object newInstance = null; + try { + newInstance = Class.forName( + "com.sun.jdmk.comm.HtmlAdapterServer").newInstance(); + } catch (ClassNotFoundException ex) { + throw new RuntimeException(ex.toString()); + } catch (InstantiationException ex) { + throw new RuntimeException(ex.toString()); + } catch (IllegalAccessException ex) { + throw new RuntimeException(ex.toString()); + } + return newInstance; + } + + /** + * Invokes HtmlAdapterServer.start() using reflection. + * + * @since 1.2.16 + * @param server instance of com.sun.jdmk.comm.HtmlAdapterServer. + */ + private static void startServer(final Object server) { + try { + server.getClass().getMethod("start", new Class[0]). + invoke(server, new Object[0]); + } catch(InvocationTargetException ex) { + Throwable cause = ex.getTargetException(); + if (cause instanceof RuntimeException) { + throw (RuntimeException) cause; + } else if (cause != null) { + if (cause instanceof InterruptedException + || cause instanceof InterruptedIOException) { + Thread.currentThread().interrupt(); + } + throw new RuntimeException(cause.toString()); + } else { + throw new RuntimeException(); + } + } catch(NoSuchMethodException ex) { + throw new RuntimeException(ex.toString()); + } catch(IllegalAccessException ex) { + throw new RuntimeException(ex.toString()); + } + } + + + /** + * Starts instance of HtmlAdapterServer. + * @deprecated + */ + public void start() { + + MBeanServer server = MBeanServerFactory.createMBeanServer(); + Object html = createServer(); + + try { + log.info("Registering HtmlAdaptorServer instance."); + server.registerMBean(html, new ObjectName("Adaptor:name=html,port=8082")); + log.info("Registering HierarchyDynamicMBean instance."); + HierarchyDynamicMBean hdm = new HierarchyDynamicMBean(); + server.registerMBean(hdm, new ObjectName("log4j:hiearchy=default")); + } catch(JMException e) { + log.error("Problem while registering MBeans instances.", e); + return; + } catch(RuntimeException e) { + log.error("Problem while registering MBeans instances.", e); + return; + } + startServer(html); + } +}