ASF Bugzilla – Attachment 22389 Details for
Bug 45485
Agent.java is sole dependency on jmxtools.jar with Java 5+
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Alternative patch that preserves existing log4j behavior
bug45485.patch (text/plain), 6.61 KB, created by
Curt Arnold
on 2008-08-05 12:15:22 UTC
(
hide
)
Description:
Alternative patch that preserves existing log4j behavior
Filename:
MIME Type:
Creator:
Curt Arnold
Created:
2008-08-05 12:15:22 UTC
Size:
6.61 KB
patch
obsolete
>Index: src/main/java/org/apache/log4j/jmx/Agent.java >=================================================================== >--- src/main/java/org/apache/log4j/jmx/Agent.java (revision 682874) >+++ src/main/java/org/apache/log4j/jmx/Agent.java (working copy) >@@ -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; >+ } > >- public >- void start() { >+ /** >+ * 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(); >+ } >+ } > >+ >+ /** >+ * 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); > } > } >Index: src/changes/changes.xml >=================================================================== >--- src/changes/changes.xml (revision 682874) >+++ src/changes/changes.xml (working copy) >@@ -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."> >Index: build.properties.sample >=================================================================== >--- build.properties.sample (revision 682874) >+++ build.properties.sample (working copy) >@@ -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 >Index: pom.xml >=================================================================== >--- pom.xml (revision 682874) >+++ pom.xml (working copy) >@@ -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> >Index: build.xml >=================================================================== >--- build.xml (revision 682874) >+++ build.xml (working copy) >@@ -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>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 45485
:
22319
|
22340
| 22389