Author: carnold Date: Tue Aug 5 12:16:07 2008 New Revision: 682879 URL: http://svn.apache.org/viewvc?rev=682879&view=rev Log: Bug 45485: Agent.java is sole dependency on jmxtools.jar with Java 5+
Modified: logging/log4j/trunk/build.properties.sample logging/log4j/trunk/build.xml logging/log4j/trunk/pom.xml logging/log4j/trunk/src/changes/changes.xml logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java Modified: logging/log4j/trunk/build.properties.sample URL: http://svn.apache.org/viewvc/logging/log4j/trunk/build.properties.sample?rev=682879&r1=682878&r2=682879&view=diff ============================================================================== --- logging/log4j/trunk/build.properties.sample (original) +++ logging/log4j/trunk/build.properties.sample Tue Aug 5 12:16:07 2008 @@ -49,7 +49,6 @@ # Required to build the org.apache.log4j.jmx package. jmx.home.dir=${lib.home.dir}/jmx-1_2_1-bin jmx.jar=${jmx.home.dir}/lib/jmxri.jar -jmx-extra.jar=${jmx.home.dir}/lib/jmxtools.jar jndi.jar=${lib.home.dir}/jndi-1_2_1/lib/jndi.jar # Required to run Checkstyle. Available from http://checkstyle.sf.net Modified: logging/log4j/trunk/build.xml URL: http://svn.apache.org/viewvc/logging/log4j/trunk/build.xml?rev=682879&r1=682878&r2=682879&view=diff ============================================================================== --- logging/log4j/trunk/build.xml (original) +++ logging/log4j/trunk/build.xml Tue Aug 5 12:16:07 2008 @@ -32,7 +32,6 @@ <property name="javamail.jar" location="${m2_repo}/javax/mail/mail/1.4/mail-1.4.jar"/> <property name="jms.jar" location="${m2_repo}/javax/jms/jms/1.1/jms-1.1.jar"/> <property name="jmx.jar" location="${m2_repo}/com/sun/jmx/jmxri/1.2.1/jmxri-1.2.1.jar"/> - <property name="jmx-extra.jar" location="${m2_repo}/com/sun/jdmk/jmxtools/1.2.1/jmxtools-1.2.1.jar"/> <!-- Read the system environment variables and stores them in properties, --> @@ -120,7 +119,6 @@ <pathelement location="${jaxp.jaxp.jar}"/> <pathelement location="${jms.jar}"/> <pathelement location="${jmx.jar}"/> - <pathelement location="${jmx-extra.jar}"/> <pathelement location="${jndi.jar}"/> <pathelement location="${javaee-api.jar}"/> </path> @@ -169,7 +167,6 @@ <available classname="com.sun.jdmk.comm.HtmlAdaptorServer"> <classpath> <pathelement location="${jmx.jar}"/> - <pathelement location="${jmx-extra.jar}"/> <pathelement location="${javaee-api.jar}"/> </classpath> </available> Modified: logging/log4j/trunk/pom.xml URL: http://svn.apache.org/viewvc/logging/log4j/trunk/pom.xml?rev=682879&r1=682878&r2=682879&view=diff ============================================================================== --- logging/log4j/trunk/pom.xml (original) +++ logging/log4j/trunk/pom.xml Tue Aug 5 12:16:07 2008 @@ -407,12 +407,6 @@ <optional>true</optional> </dependency> <dependency> - <groupId>com.sun.jdmk</groupId> - <artifactId>jmxtools</artifactId> - <version>1.2.1</version> - <optional>true</optional> - </dependency> - <dependency> <groupId>com.sun.jmx</groupId> <artifactId>jmxri</artifactId> <version>1.2.1</version> Modified: logging/log4j/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=682879&r1=682878&r2=682879&view=diff ============================================================================== --- logging/log4j/trunk/src/changes/changes.xml (original) +++ logging/log4j/trunk/src/changes/changes.xml Tue Aug 5 12:16:07 2008 @@ -37,8 +37,10 @@ <action action="fix" issue="43304">Make javamail, jmx, jms dependencies optional in pom.xml.</action> <action action="add" issue="43874">SocketHubAppender should expose actual port in use to extending classes.</action> <action action="add" issue="44551">SocketHubAppender in the 1.2.16 does not support a scroll back buffer or application property</action> - <action action="add" issue="41156">Give log4j threads reasonable names/<action> + <action action="add" issue="41156">Give log4j threads reasonable names.</action> <action action="fix" issue="44888">LocationInfo can report wrong caller when other class names contain logger class name as substring.</action> + <action action="fix" issue="45426">ErrorHandlerTestCase is not run and does not pass.</action> + <action action="fix" issue="45485">Agent.java is sole dependency on jmxtools.jar with Java 5+.</action> </release> <release version="1.2.15" date="2007-08-24" description="SyslogAppender enhancements, NTEventLogAppender and Maven build."> Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java?rev=682879&r1=682878&r2=682879&view=diff ============================================================================== --- logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java (original) +++ logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/Agent.java Tue Aug 5 12:16:07 2008 @@ -20,24 +20,84 @@ import javax.management.ObjectName; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; -import com.sun.jdmk.comm.HtmlAdaptorServer; import org.apache.log4j.Logger; +import java.lang.reflect.InvocationTargetException; + +/** + * 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. + */ 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 NoClassDefFoundError(ex.toString()); + } catch (IllegalAccessException ex) { + throw new IllegalAccessError(ex.toString()); + } catch (InstantiationException ex) { + throw new InstantiationError(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(NoSuchMethodException ex) { + throw new NoSuchMethodError(ex.toString()); + } catch(IllegalAccessException ex) { + throw new IllegalAccessError(ex.toString()); + } catch(InvocationTargetException ex) { + throw (RuntimeException) ex.getTargetException(); + } + } + - public - void start() { + /** + * Starts instance of HtmlAdapterServer. + */ + public void start() { MBeanServer server = MBeanServerFactory.createMBeanServer(); - HtmlAdaptorServer html = new HtmlAdaptorServer(); + Object html = createServer(); try { log.info("Registering HtmlAdaptorServer instance."); @@ -47,9 +107,9 @@ server.registerMBean(hdm, new ObjectName("log4j:hiearchy=default")); } catch(Exception e) { - log.error("Problem while regitering MBeans instances.", e); + log.error("Problem while registering MBeans instances.", e); return; } - html.start(); + startServer(html); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]