View | Details | Raw Unified | Return to bug 45485
Collapse All | Expand All

(-)src/main/java/org/apache/log4j/jmx/Agent.java (-6 / +66 lines)
Lines 20-43 Link Here
20
import javax.management.ObjectName;
20
import javax.management.ObjectName;
21
import javax.management.MBeanServer;
21
import javax.management.MBeanServer;
22
import javax.management.MBeanServerFactory;
22
import javax.management.MBeanServerFactory;
23
import com.sun.jdmk.comm.HtmlAdaptorServer;
24
23
25
import org.apache.log4j.Logger;
24
import org.apache.log4j.Logger;
26
25
26
import java.lang.reflect.InvocationTargetException;
27
27
28
29
/**
30
 * Manages an instance of com.sun.jdmk.comm.HtmlAdapterServer which
31
 * was provided for demonstration purposes in the
32
 * Java Management Extensions Reference Implementation 1.2.1.
33
 * This class is provided to maintain compatibility with earlier
34
 * versions of log4j and use in new code is discouraged.
35
 *
36
 * @deprecated
37
 */
28
public class Agent {
38
public class Agent {
29
39
40
    /**
41
     * Diagnostic logger.
42
     * @deprecated
43
     */
30
  static Logger log = Logger.getLogger(Agent.class);
44
  static Logger log = Logger.getLogger(Agent.class);
31
45
46
    /**
47
     * Create new instance.
48
     */
32
  public Agent() {
49
  public Agent() {
33
  }
50
  }
34
51
52
    /**
53
     * Creates a new instance of com.sun.jdmk.comm.HtmlAdapterServer
54
     * using reflection.
55
     *
56
     * @since 1.2.16
57
     * @return new instance.
58
     */
59
  private static Object createServer() {
60
      Object newInstance = null;
61
      try {
62
        newInstance = Class.forName(
63
                "com.sun.jdmk.comm.HtmlAdapterServer").newInstance();
64
      } catch (ClassNotFoundException ex) {
65
          throw new NoClassDefFoundError(ex.toString());
66
      } catch (IllegalAccessException ex) {
67
          throw new IllegalAccessError(ex.toString());
68
      } catch (InstantiationException ex) {
69
          throw new InstantiationError(ex.toString());
70
      }
71
      return newInstance;
72
  }
35
73
36
  public
74
    /**
37
  void start() {
75
     * Invokes HtmlAdapterServer.start() using reflection.
76
     *
77
     * @since 1.2.16
78
     * @param server instance of com.sun.jdmk.comm.HtmlAdapterServer.
79
     */
80
  private static void startServer(final Object server) {
81
      try {
82
          server.getClass().getMethod("start", new Class[0]).
83
                  invoke(server, new Object[0]);
84
      } catch(NoSuchMethodException ex) {
85
          throw new NoSuchMethodError(ex.toString());
86
      } catch(IllegalAccessException ex) {
87
          throw new IllegalAccessError(ex.toString());
88
      } catch(InvocationTargetException ex) {
89
          throw (RuntimeException) ex.getTargetException();
90
      }
91
  }
38
92
93
94
    /**
95
     * Starts instance of HtmlAdapterServer.
96
      */
97
  public void start() {
98
39
    MBeanServer server = MBeanServerFactory.createMBeanServer();
99
    MBeanServer server = MBeanServerFactory.createMBeanServer();
40
    HtmlAdaptorServer html = new HtmlAdaptorServer();
100
    Object html = createServer();
41
101
42
    try {
102
    try {
43
      log.info("Registering HtmlAdaptorServer instance.");
103
      log.info("Registering HtmlAdaptorServer instance.");
Lines 47-55 Link Here
47
      server.registerMBean(hdm, new ObjectName("log4j:hiearchy=default"));
107
      server.registerMBean(hdm, new ObjectName("log4j:hiearchy=default"));
48
108
49
    } catch(Exception e) {
109
    } catch(Exception e) {
50
      log.error("Problem while regitering MBeans instances.", e);
110
      log.error("Problem while registering MBeans instances.", e);
51
      return;
111
      return;
52
    }
112
    }
53
    html.start();
113
    startServer(html);
54
  }
114
  }
55
}
115
}
(-)src/changes/changes.xml (-1 / +3 lines)
Lines 37-44 Link Here
37
       <action action="fix" issue="43304">Make javamail, jmx, jms dependencies optional in pom.xml.</action>
37
       <action action="fix" issue="43304">Make javamail, jmx, jms dependencies optional in pom.xml.</action>
38
       <action action="add" issue="43874">SocketHubAppender should expose actual port in use to extending classes.</action>
38
       <action action="add" issue="43874">SocketHubAppender should expose actual port in use to extending classes.</action>
39
       <action action="add" issue="44551">SocketHubAppender in the 1.2.16 does not support a scroll back buffer or application property</action>
39
       <action action="add" issue="44551">SocketHubAppender in the 1.2.16 does not support a scroll back buffer or application property</action>
40
       <action action="add" issue="41156">Give log4j threads reasonable names/<action>
40
       <action action="add" issue="41156">Give log4j threads reasonable names.</action>
41
       <action action="fix" issue="44888">LocationInfo can report wrong caller when other class names contain logger class name as substring.</action>
41
       <action action="fix" issue="44888">LocationInfo can report wrong caller when other class names contain logger class name as substring.</action>
42
       <action action="fix" issue="45426">ErrorHandlerTestCase is not run and does not pass.</action>
43
       <action action="fix" issue="45485">Agent.java is sole dependency on jmxtools.jar with Java 5+.</action> 
42
    </release>
44
    </release>
43
  
45
  
44
    <release version="1.2.15" date="2007-08-24" description="SyslogAppender enhancements, NTEventLogAppender and Maven build.">
46
    <release version="1.2.15" date="2007-08-24" description="SyslogAppender enhancements, NTEventLogAppender and Maven build.">
(-)build.properties.sample (-1 lines)
Lines 49-55 Link Here
49
# Required to build the org.apache.log4j.jmx package.
49
# Required to build the org.apache.log4j.jmx package.
50
jmx.home.dir=${lib.home.dir}/jmx-1_2_1-bin
50
jmx.home.dir=${lib.home.dir}/jmx-1_2_1-bin
51
jmx.jar=${jmx.home.dir}/lib/jmxri.jar
51
jmx.jar=${jmx.home.dir}/lib/jmxri.jar
52
jmx-extra.jar=${jmx.home.dir}/lib/jmxtools.jar
53
jndi.jar=${lib.home.dir}/jndi-1_2_1/lib/jndi.jar
52
jndi.jar=${lib.home.dir}/jndi-1_2_1/lib/jndi.jar
54
53
55
# Required to run Checkstyle. Available from http://checkstyle.sf.net
54
# Required to run Checkstyle. Available from http://checkstyle.sf.net
(-)pom.xml (-6 lines)
Lines 407-418 Link Here
407
      <optional>true</optional>
407
      <optional>true</optional>
408
    </dependency>
408
    </dependency>
409
    <dependency>
409
    <dependency>
410
      <groupId>com.sun.jdmk</groupId>
411
      <artifactId>jmxtools</artifactId>
412
      <version>1.2.1</version>
413
      <optional>true</optional>
414
    </dependency>
415
    <dependency>
416
      <groupId>com.sun.jmx</groupId>
410
      <groupId>com.sun.jmx</groupId>
417
      <artifactId>jmxri</artifactId>
411
      <artifactId>jmxri</artifactId>
418
      <version>1.2.1</version>
412
      <version>1.2.1</version>
(-)build.xml (-3 lines)
Lines 32-38 Link Here
32
  <property name="javamail.jar" location="${m2_repo}/javax/mail/mail/1.4/mail-1.4.jar"/>
32
  <property name="javamail.jar" location="${m2_repo}/javax/mail/mail/1.4/mail-1.4.jar"/>
33
  <property name="jms.jar" location="${m2_repo}/javax/jms/jms/1.1/jms-1.1.jar"/>
33
  <property name="jms.jar" location="${m2_repo}/javax/jms/jms/1.1/jms-1.1.jar"/>
34
  <property name="jmx.jar" location="${m2_repo}/com/sun/jmx/jmxri/1.2.1/jmxri-1.2.1.jar"/>
34
  <property name="jmx.jar" location="${m2_repo}/com/sun/jmx/jmxri/1.2.1/jmxri-1.2.1.jar"/>
35
  <property name="jmx-extra.jar" location="${m2_repo}/com/sun/jdmk/jmxtools/1.2.1/jmxtools-1.2.1.jar"/>
36
35
37
36
38
  <!-- Read the system environment variables and stores them in properties, -->
37
  <!-- Read the system environment variables and stores them in properties, -->
Lines 120-126 Link Here
120
    <pathelement location="${jaxp.jaxp.jar}"/>
119
    <pathelement location="${jaxp.jaxp.jar}"/>
121
    <pathelement location="${jms.jar}"/>
120
    <pathelement location="${jms.jar}"/>
122
    <pathelement location="${jmx.jar}"/>
121
    <pathelement location="${jmx.jar}"/>
123
    <pathelement location="${jmx-extra.jar}"/>
124
    <pathelement location="${jndi.jar}"/>
122
    <pathelement location="${jndi.jar}"/>
125
    <pathelement location="${javaee-api.jar}"/>
123
    <pathelement location="${javaee-api.jar}"/>
126
  </path>
124
  </path>
Lines 169-175 Link Here
169
            <available classname="com.sun.jdmk.comm.HtmlAdaptorServer">
167
            <available classname="com.sun.jdmk.comm.HtmlAdaptorServer">
170
                <classpath>
168
                <classpath>
171
                    <pathelement location="${jmx.jar}"/>
169
                    <pathelement location="${jmx.jar}"/>
172
                    <pathelement location="${jmx-extra.jar}"/>
173
					<pathelement location="${javaee-api.jar}"/>
170
					<pathelement location="${javaee-api.jar}"/>
174
                </classpath>
171
                </classpath>
175
            </available>
172
            </available>

Return to bug 45485