<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 from org.apache.maven.plugins:maven-project-info-reports-plugin:2.7:project-team at 2019-02-11
 | Rendered using Apache Maven Fluido Skin 1.7
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20190211" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Struts &#x2013; Team list</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script type="text/javascript" src="./js/apache-maven-fluido-1.7.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf-logo.gif"  alt="Apache Software Foundation"/></a></div>
        <div class="pull-right"><a href="http://struts.apache.org/" id="bannerRight"><img src="http://struts.apache.org/img/struts-logo.svg"  alt="Apache Struts"/></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2019-02-11</li>
      <li id="projectVersion" class="pull-right">Version: 2.5.20</li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://struts.apache.org/" class="externalLink" title="Struts">Struts</a></li>
      <li class="pull-right"><a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a></li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
    <ul class="nav nav-list">
      <li class="nav-header">Top Site</li>
    <li><a href="http://struts.apache.org/" class="externalLink" title="Apache Struts"><span class="none"></span>Apache Struts</a></li>
      <li class="nav-header">Project Documentation</li>
    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-down"></span>Project Information</a>
    <ul class="nav nav-list">
    <li><a href="index.html" title="About"><span class="none"></span>About</a></li>
    <li><a href="plugin-management.html" title="Plugin Management"><span class="none"></span>Plugin Management</a></li>
    <li><a href="distribution-management.html" title="Distribution Management"><span class="none"></span>Distribution Management</a></li>
    <li><a href="dependency-info.html" title="Dependency Information"><span class="none"></span>Dependency Information</a></li>
    <li><a href="dependency-convergence.html" title="Dependency Convergence"><span class="none"></span>Dependency Convergence</a></li>
    <li><a href="source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a></li>
    <li><a href="mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a></li>
    <li><a href="issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a></li>
    <li><a href="integration.html" title="Continuous Integration"><span class="none"></span>Continuous Integration</a></li>
    <li><a href="plugins.html" title="Project Plugins"><span class="none"></span>Project Plugins</a></li>
    <li><a href="license.html" title="Project License"><span class="none"></span>Project License</a></li>
    <li><a href="modules.html" title="Project Modules"><span class="none"></span>Project Modules</a></li>
    <li><a href="dependency-management.html" title="Dependency Management"><span class="none"></span>Dependency Management</a></li>
    <li class="active"><a href="#"><span class="none"></span>Project Team</a></li>
    <li><a href="project-summary.html" title="Project Summary"><span class="none"></span>Project Summary</a></li>
    <li><a href="dependencies.html" title="Dependencies"><span class="none"></span>Dependencies</a></li>
    </ul>
</li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a></li>
      <li class="nav-header">Modules</li>
    <li><a href="struts2-core/index.html" title="Struts 2 Core"><span class="none"></span>Struts 2 Core</a></li>
    <li><a href="struts2-plugins/index.html" title="Struts Plugins"><span class="none"></span>Struts Plugins</a></li>
    <li><a href="struts2-osgi-bundles/index.html" title="Struts OSGi Bundles"><span class="none"></span>Struts OSGi Bundles</a></li>
</ul>
          <hr />
          <div id="poweredBy">
            <div class="clear"></div>
            <div class="clear"></div>
            <div class="clear"></div>
            <div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
            </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<div class="section">
<h2><a name="The_Team"></a>The Team</h2><a name="The_Team"></a>
<p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
<p>The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p>
<div class="section">
<h3><a name="Members"></a>Members</h3><a name="Members"></a>
<p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>Image</th>
<th>Id</th>
<th>Name</th>
<th>Email</th>
<th>Roles</th></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/2cd826c0170bb50b56ecca8fecc05bd2?d=mm&amp;s=60" alt="" /></td>
<td><a name="husted"></a>husted</td>
<td>Ted Husted</td>
<td>husted at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/34fddbba4e00afda440c2c37920e06e5?d=mm&amp;s=60" alt="" /></td>
<td><a name="cedric"></a>cedric</td>
<td>Cedric Dumoulin</td>
<td>cedric.dumoulin at lifl.fr</td>
<td>Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/cde2f03c6cec5335cc7be33655b399e6?d=mm&amp;s=60" alt="" /></td>
<td><a name="martinc"></a>martinc</td>
<td>Martin Cooper</td>
<td>martinc at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/548b39c872c532fff9f3a4ebb3f5829e?d=mm&amp;s=60" alt="" /></td>
<td><a name="jholmes"></a>jholmes</td>
<td>James Holmes</td>
<td>jholmes at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/82ef20d8a275f6179473acdc784457f6?d=mm&amp;s=60" alt="" /></td>
<td><a name="jmitchell"></a>jmitchell</td>
<td>James Mitchell</td>
<td>jmitchell at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/9e7461fcc34485d1714192f0e37faefb?d=mm&amp;s=60" alt="" /></td>
<td><a name="mrdon"></a>mrdon</td>
<td>Don Brown</td>
<td>mrdon at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/4651ec4eea25df1cf47bdfa4f3278714?d=mm&amp;s=60" alt="" /></td>
<td><a name="niallp"></a>niallp</td>
<td>Niall Pemberton</td>
<td>niallp at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/b45188299ebd2c0c412c18d3a78d41cd?d=mm&amp;s=60" alt="" /></td>
<td><a name="wsmoak"></a>wsmoak</td>
<td>Wendy Smoak</td>
<td>wsmoak at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/194279921d54a985f5e6d85c8a88b693?d=mm&amp;s=60" alt="" /></td>
<td><a name="laurieh"></a>laurieh</td>
<td>Laurie Harper</td>
<td>laurieh at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/c603df4f41821e73ffa4c3c67e4aafec?d=mm&amp;s=60" alt="" /></td>
<td><a name="apopescu"></a>apopescu</td>
<td>Alexandru Popescu</td>
<td>apopescu at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/e74b172a5112aa341adb03a0fab9a249?d=mm&amp;s=60" alt="" /></td>
<td><a name="rgielen"></a>rgielen</td>
<td>Rene Gielen</td>
<td>rgielen at apache.org</td>
<td>PMC Chair</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/a6cc36e65a9f4c55c729e319003e2d0f?d=mm&amp;s=60" alt="" /></td>
<td><a name="hermanns"></a>hermanns</td>
<td>Rainer Hermanns</td>
<td>hermanns at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/45ec2f2068458619222bc3acca9914cc?d=mm&amp;s=60" alt="" /></td>
<td><a name="tmjee"></a>tmjee</td>
<td>Toby Jee</td>
<td>tmjee at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/94982e21807d9ebe33fedc05016dad90?d=mm&amp;s=60" alt="" /></td>
<td><a name="pbenedict"></a>pbenedict</td>
<td>Paul Benedict</td>
<td>pbenedict at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/149d5dd124b45edb10ae99a910d5a4a5?d=mm&amp;s=60" alt="" /></td>
<td><a name="mikus"></a>mikus</td>
<td>Michael Jouravlev</td>
<td>mikus at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/a2612d79376d1e2c676526029564ec08?d=mm&amp;s=60" alt="" /></td>
<td><a name="crazybob"></a>crazybob</td>
<td>Bob Lee</td>
<td>crazybob at apache.org</td>
<td>Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/b77f6195c135b22196b3d833d22721e0?d=mm&amp;s=60" alt="" /></td>
<td><a name="ddewolf"></a>ddewolf</td>
<td>David H. DeWolf</td>
<td>ddewolf at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/047f2d65a84cee1a0165793cdce14103?d=mm&amp;s=60" alt="" /></td>
<td><a name="wesw"></a>wesw</td>
<td>Wes Wannemacher</td>
<td>wesw at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/0b8d958ad2c7adf588045fd9e1e5891f?d=mm&amp;s=60" alt="" /></td>
<td><a name="daven"></a>daven</td>
<td>Dave Newton</td>
<td>davenewton at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/b103833fb2051def46c4885bfbb7232b?d=mm&amp;s=60" alt="" /></td>
<td><a name="nilsga"></a>nilsga</td>
<td>Nils-Helge Garli Hegvik</td>
<td>nilsga at apache.org</td>
<td>Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/09ff3fcead5e089a141e0775f25628f2?d=mm&amp;s=60" alt="" /></td>
<td><a name="jeromy"></a>jeromy</td>
<td>Jeromy Evans</td>
<td>jeromy at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/0e54d257e8e10a26f29cee9bfb49d160?d=mm&amp;s=60" alt="" /></td>
<td><a name="mraible"></a>mraible</td>
<td>Matt Raible</td>
<td>mraible at apache.org</td>
<td>Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/7a77316516b48f6881b2ee0e90563753?d=mm&amp;s=60" alt="" /></td>
<td><a name="pathos"></a>pathos</td>
<td>Mathias Bogaert</td>
<td>pathos at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/06f667b66376912505ff5ec35f22ebc1?d=mm&amp;s=60" alt="" /></td>
<td><a name="lukaszlenart"></a>lukaszlenart</td>
<td>Lukasz Lenart</td>
<td>lukaszlenart at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/ddbe7d32d580752f1ed31b06ecbb922f?d=mm&amp;s=60" alt="" /></td>
<td><a name="mcucchiara"></a>mcucchiara</td>
<td>Maurizio Cucchiara</td>
<td>mcucchiara at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/03a5b164337ea6f67952f17d41de8a41?d=mm&amp;s=60" alt="" /></td>
<td><a name="jogep"></a>jogep</td>
<td>Johannes Geppert</td>
<td>jogep at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/a1efc4e0c2b99e0e61d8472419ea1bcc?d=mm&amp;s=60" alt="" /></td>
<td><a name="grobmeier"></a>grobmeier</td>
<td>Christian Grobmeier</td>
<td>grobmeier at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/903a2ab4600c15f125c9b09dbcf94d2d?d=mm&amp;s=60" alt="" /></td>
<td><a name="cnenning"></a>cnenning</td>
<td>Christoph Nenning</td>
<td>cnenning at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/80c1a24d4afc0bddba4dccc1b9ca74ce?d=mm&amp;s=60" alt="" /></td>
<td><a name="jafl"></a>jafl</td>
<td>John Lindal</td>
<td>jafl at apache.org</td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/3db1f67f8123127cac81bdff5dfafd1d?d=mm&amp;s=60" alt="" /></td>
<td><a name="bphillips"></a>bphillips</td>
<td>Bruce A. Phillips</td>
<td>bphillips at apache.org</td>
<td>Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/be15bc47f4300c84bc470e0facbaa528?d=mm&amp;s=60" alt="" /></td>
<td><a name="ghuber"></a>ghuber</td>
<td>Greg Huber</td>
<td>ghuber at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/9c3ea64c414aa11d97486c56e6773c21?d=mm&amp;s=60" alt="" /></td>
<td><a name="amashchenko"></a>amashchenko</td>
<td>Aleksandr Mashchenko</td>
<td>amashchenko at apache.org</td>
<td>PMC Member</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/7eaceca53545b0ca6cbc61915a96e437?d=mm&amp;s=60" alt="" /></td>
<td><a name="sdutry"></a>sdutry</td>
<td>Stefaan Dutry</td>
<td>sdutry at apache.org</td>
<td>PMC Member</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/60f78d2cd9661904ee014c47aa271182?d=mm&amp;s=60" alt="" /></td>
<td><a name="yasserzamani"></a>yasserzamani</td>
<td>Yasser Zamani</td>
<td>yasserzamani at apache.org</td>
<td>PMC Member</td></tr></table></div>
<div class="section">
<h3><a name="Contributors"></a>Contributors</h3><a name="Contributors"></a>
<p>There are no contributors listed for this project. Please check back again later.</p><script type="text/javascript">
function offsetDate(id, offset) {
    var now = new Date();
    var nowTime = now.getTime();
    var localOffset = now.getTimezoneOffset();
    var developerTime = nowTime + ( offset * 60 * 60 * 1000 )+ ( localOffset * 60 * 1000 );
    var developerDate = new Date(developerTime);

    document.getElementById(id).innerHTML = developerDate;
}

function init(){
}

window.onLoad = init();
</script></div></div>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
<div class="row span12">
            Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project
            logos are trademarks of The Apache Software Foundation.
            </div>
        </div>
      </div>
    </footer>
  </body>
</html>
