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]

Reply via email to