<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<!-- ============================================================================ -->
<!-- To correctly start Jetty with JMX module enabled, this configuration         -->
<!-- file must appear first in the list of the configuration files.               -->
<!-- The simplest way to achieve this is to add etc/jetty-jmx.xml as the          -->
<!-- first file in configuration file list at the end of start.ini file.          -->
<!-- ============================================================================ -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">

  <!-- =========================================================== -->
  <!-- Set the java.rmi.server.hostname property in case you've    -->
  <!-- got a misconfigured /etc/hosts entry or the like.           -->
  <!-- =========================================================== -->
  <!-- 
  <Call class="java.lang.System" name="setProperty">
    <Arg>java.rmi.server.hostname</Arg>
    <Arg>127.0.0.1</Arg>
  </Call>
  -->
  
  <!-- =========================================================== -->
  <!-- Initialize an mbean server                                  -->
  <!-- =========================================================== -->
  <Call id="MBeanServer" class="java.lang.management.ManagementFactory"
    name="getPlatformMBeanServer" />

  <!-- =========================================================== -->
  <!-- Initialize the Jetty MBean container                        -->
  <!-- =========================================================== -->
  <New id="MBeanContainer" class="org.eclipse.jetty.jmx.MBeanContainer">
    <Arg><Ref id="MBeanServer" /></Arg>
    <Call name="start"/>
  </New>

  <!-- Add to the Server to listen for object events -->
  <Get id="Container" name="container">
    <Call name="addEventListener">
      <Arg><Ref id="MBeanContainer" /></Arg>
    </Call>
  </Get>

  <!-- Add to the Server as a managed lifecycle -->
  <Call name="addBean">
    <Arg><Ref id="MBeanContainer"/></Arg>
    <Arg type="boolean">true</Arg>
  </Call>

  <!-- Add the static log -->
  <Ref id="MBeanContainer">
    <Call name="addBean">
      <Arg>
        <New class="org.eclipse.jetty.util.log.Log"/>
      </Arg>
    </Call>
  </Ref>
  
  <!-- In order to connect to the JMX server remotely from a different
       process, possibly running on a different host, Jetty JMX module
       can create a remote JMX connector. It requires RMI registry to
       be started prior to creating the connector server because the
       JMX specification uses RMI to facilitate connections.        
   -->

  <!-- Optionally start the RMI registry. Normally RMI registry runs on
       port 1099. The argument below can be changed in order to comply
       with the firewall requirements.
  -->
  <!--
  <Call name="createRegistry" class="java.rmi.registry.LocateRegistry">
    <Arg type="java.lang.Integer"><SystemProperty name="jetty.jmxrmiport" default="1099"/></Arg>
    <Call name="sleep" class="java.lang.Thread">
       <Arg type="java.lang.Integer">1000</Arg>
    </Call>
  </Call>
  -->
 
  <!-- Optionally add a remote JMX connector. The parameters of the constructor
       below specify the JMX service URL, and the object name string for the
       connector server bean. The parameters of the JMXServiceURL constructor 
       specify the protocol that clients will use to connect to the remote JMX
       connector (RMI), the hostname of the server (local hostname), port number
       (automatically assigned), and the URL path. Note that URL path contains
       the RMI registry hostname and port number, that may need to be modified
       in order to comply with the firewall requirements. 
  -->
  <!--
  <New id="ConnectorServer" class="org.eclipse.jetty.jmx.ConnectorServer">
    <Arg>
      <New class="javax.management.remote.JMXServiceURL">
        <Arg type="java.lang.String">rmi</Arg>
        <Arg type="java.lang.String" />
        <Arg type="java.lang.Integer"><SystemProperty name="jetty.jmxrmiport" default="1099"/></Arg>
        <Arg type="java.lang.String">/jndi/rmi://<SystemProperty name="jetty.jmxrmihost" default="localhost"/>:<SystemProperty name="jetty.jmxrmiport" default="1099"/>/jmxrmi</Arg>
      </New>
    </Arg>
    <Arg>org.eclipse.jetty.jmx:name=rmiconnectorserver</Arg>
    <Call name="start" />
  </New>
  -->
</Configure>

