I really really really dislike this change.
Errors are not designed for use by programs but by the jvm itself.
I prefer if this change was reverted and the use of a wrapping
runtimeexception instead.
On 06/08/2008, at 5:16, [EMAIL PROTECTED] wrote:
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]