<?xml version="1.0"?>
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="developers.html">

  &project;

  <properties>
    <author email="remm@apache.org">Remy Maucherat</author>
    <author email="yoavs@apache.org">Yoav Shapira</author>
    <title>Tomcat Developers</title>
  </properties>

<body>

  <section name="Active Developers">

    <p>
      The list indicates the developers' main areas of interest. Feel free to
      add to the list :) The developers email addresses are 
      <code>[login]@apache.org</code>. Please <strong>do not</strong> contact 
      developers directly for any support issues (please post to the 
      tomcat-users mailing list instead, or one of the other support 
      resources; some organizations and individual consultants also offer 
      for pay Tomcat support, as listed on the 
      <a href="http://jakarta.apache.org/site/vendors.html">vendors page</a>
      on the Jakarta website).
    </p>

    <ul>
      <li>Amy Roh (amyroh): Catalina, Admin webapp</li>
      <li>Bill Barker (billbarker): Connectors</li>
      <li>Costin Manolache (costin): Catalina, Connectors</li>
      <li>Filip Hanik (fhanik): Clustering, Release Manager</li>
      <li>Glenn Nielsen (glenn): Catalina, Connectors</li>
      <li>Henri Gomez (hgomez): Connectors</li>
      <li>Jan Luehe (luehe): Jasper</li>
      <li>Jean-Francois Arcand (jfarcand): Catalina</li>
      <li>Jean-Frederic Clere (jfclere): Connectors</li>
      <li>Jim Jagielski (jim): Connectors</li>
      <li>Kin-Man Chung (kinman): Jasper</li>
      <li>Mark Thomas (markt): CGI, SSI, WebDAV, bug fixing</li>
      <li>Mladen Turk (mturk): Connectors</li>
      <li>Peter Rossbach (pero): Catalina, Clustering, JMX</li>
      <li>Rainer Jung (rjung): Catalina, Clustering, Connectors</li>
      <li>Remy Maucherat (remm): Catalina, Connectors, Docs</li>
      <li>Tim Funk (funkman): Catalina, Docs</li>
      <li>Yoav Shapira (yoavs): Docs, JMX, Catalina, balancer</li>
    </ul>

  </section>

  <section name="Retired Developers">



  </section>

</body>
</document>
