<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at May 31, 2013
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<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="20130531" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva :: Web - Team list</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.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.3.0.min.js"></script>

    
            </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Modules <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="archiva-security/index.html"  title="Archiva Web :: Security Configuration">Archiva Web :: Security Configuration</a>
</li>
                  
                      <li>      <a href="archiva-webdav/index.html"  title="Archiva Web :: WebDAV">Archiva Web :: WebDAV</a>
</li>
                  
                      <li>      <a href="archiva-rss/index.html"  title="Archiva Web :: RSS">Archiva Web :: RSS</a>
</li>
                  
                      <li>      <a href="archiva-test-mocks/index.html"  title="Archiva Web :: Tests Mocks">Archiva Web :: Tests Mocks</a>
</li>
                  
                      <li>      <a href="archiva-rest/index.html"  title="Archiva Web :: REST support">Archiva Web :: REST support</a>
</li>
                  
                      <li>      <a href="archiva-web-common/index.html"  title="Archiva Web :: Web Common">Archiva Web :: Web Common</a>
</li>
                  
                      <li>      <a href="archiva-webapp/index.html"  title="Archiva Web :: Javascript Application">Archiva Web :: Javascript Application</a>
</li>
                          </ul>
      </li>
                      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li class="dropdown-submenu">
                                      <a href="project-info.html"  title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
</li>
                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
</li>
                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/ref/1.4-M4" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
                                                    
        
        
        <ul class="nav pull-right"><li>
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow archiva</a>
    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

        </li></ul>
                
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="../../../index.html" id="bannerLeft">
                                                                                                <img src="../../../images/archiva.png"  alt="Apache Archiva"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
                                                                                        <img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Software Foundation"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../" title="Apache Archiva">
        Apache Archiva</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../" title="Archiva :: Modules">
        Archiva :: Modules</a>
        </li>
      <li class="divider ">/</li>
                <li class="">
                    <a href="./" title="Archiva :: Web">
        Archiva :: Web</a>
        </li>
      <li class="divider ">/</li>
        <li class="">Team list</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 31 May 2013</li> 
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <div class="section"><h2>The Team<a name="The_Team"></a></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>Members<a name="Members"></a></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>Organization</th><th>Roles</th><th>Time Zone</th><th>Actual Time (GMT)</th></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/a49e2c09c4c36374c40e6cb819157eda?d=mm&amp;s=60" alt="" /></td><td><a name="oching"></a>oching</td><td>Maria Odea B. Ching</td><td><a class="externalLink" href="mailto:oching@apache.org">oching@apache.org</a></td><td>-</td><td>PMC Chair</td><td>+8</td><td><span id="developer-0">+8</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/1db61ec29963d4a77ef2275140144fd4?d=mm&amp;s=60" alt="" /></td><td><a name="brett"></a>brett</td><td>Brett Porter</td><td><a class="externalLink" href="mailto:brett@apache.org">brett@apache.org</a></td><td>ASF</td><td>PMC Member</td><td>+10</td><td><span id="developer-1">+10</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/6559d4b2de15cb1433fc13c34599e4c7?d=mm&amp;s=60" alt="" /></td><td><a name="carlos"></a>carlos</td><td>Carlos Sanchez</td><td><a class="externalLink" href="mailto:carlos@apache.org">carlos@apache.org</a></td><td>ASF</td><td>PMC Member</td><td>+1</td><td><span id="developer-2">+1</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/89d1772a8f19085482a13decc709cda2?d=mm&amp;s=60" alt="" /></td><td><a name="epunzalan"></a>epunzalan</td><td>Edwin Punzalan</td><td><a class="externalLink" href="mailto:epunzalan@apache.org">epunzalan@apache.org</a></td><td>-</td><td>PMC Member</td><td>-8</td><td><span id="developer-3">-8</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/3fe23ff82e7920b5941e18515adf9bba?d=mm&amp;s=60" alt="" /></td><td><a name="nicolas"></a>nicolas</td><td>Nicolas De Loof</td><td><a class="externalLink" href="mailto:nicolas@apache.org">nicolas@apache.org</a></td><td>-</td><td>PMC Member</td><td>+1</td><td><span id="developer-4">+1</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/bab29f762bea8e578505424443d8cd41?d=mm&amp;s=60" alt="" /></td><td><a name="olamy"></a>olamy</td><td>Olivier Lamy</td><td><a class="externalLink" href="mailto:olamy@apache.org">olamy@apache.org</a></td><td>Talend</td><td>PMC Member</td><td>Australia/Melbourne</td><td><span id="developer-5">Australia/Melbourne</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/c8686cad245196c9e392201ad7bb364f?d=mm&amp;s=60" alt="" /></td><td><a name="dennisl"></a>dennisl</td><td>Dennis Lundberg</td><td><a class="externalLink" href="mailto:dennisl@apache.org">dennisl@apache.org</a></td><td>ASF</td><td>Committer</td><td>+1</td><td><span id="developer-6">+1</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/76f1823568e5f31931bd32415a4cffa7?d=mm&amp;s=60" alt="" /></td><td><a name="martinc"></a>martinc</td><td>Martin Cooper</td><td><a class="externalLink" href="mailto:martinc@apache.org">martinc@apache.org</a></td><td>ASF</td><td>Committer</td><td>-</td><td><span id="developer-7">-</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/07a0055c4259569aff19ee558ee3999d?d=mm&amp;s=60" alt="" /></td><td><a name="mbaclay"></a>mbaclay</td><td>Marecor M. Baclay</td><td><a class="externalLink" href="mailto:mbaclay@apache.org">mbaclay@apache.org</a></td><td>-</td><td>Committer</td><td>+8</td><td><span id="developer-8">+8</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/026acc6fb60c44ed137de35517837065?d=mm&amp;s=60" alt="" /></td><td><a name="jzurbano"></a>jzurbano</td><td>Jevica Arianne B. Zurbano</td><td><a class="externalLink" href="mailto:jzurbano@apache.org">jzurbano@apache.org</a></td><td>-</td><td>Committer</td><td>+8</td><td><span id="developer-9">+8</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&amp;s=60" alt="" /></td><td><a name="jbonofre"></a>jbonofre</td><td>Jean-Baptiste Onofr&#xe9;</td><td><a class="externalLink" href="mailto:jbonofre@apache.org">jbonofre@apache.org</a></td><td>Talend</td><td>Committer</td><td>+1</td><td><span id="developer-10">+1</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/030e414fc478d45703ba0cbf6fa431f9?d=mm&amp;s=60" alt="" /></td><td><a name="skygo"></a>skygo</td><td>Eric Barboni</td><td><a class="externalLink" href="mailto:skygo@apache.org">skygo@apache.org</a></td><td>ASF</td><td>Committer</td><td>+1</td><td><span id="developer-11">+1</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/aeb4e8e65a6c91233e1a9128d8989093?d=mm&amp;s=60" alt="" /></td><td><a name="alecharp"></a>alecharp</td><td>Adrien Lecharpentier</td><td><a class="externalLink" href="mailto:alecharp@apache.org">alecharp@apache.org</a></td><td>Zenika</td><td>Committer</td><td>+1</td><td><span id="developer-12">+1</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/38f7796e51a469f8efc08de2d88fa335?d=mm&amp;s=60" alt="" /></td><td><a name="joakime"></a>joakime</td><td>Joakim Erdfelt</td><td><a class="externalLink" href="mailto:joakime@apache.org">joakime@apache.org</a></td><td>ASF</td><td>Emeritus</td><td>-5</td><td><span id="developer-13">-5</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="jvanzyl"></a>jvanzyl</td><td>Jason van Zyl</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-14">-</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="bayard"></a>bayard</td><td>Henri Yandell</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-15">-</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="kenney"></a>kenney</td><td>Kenney Westerhof</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-16">-</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="aheritier"></a>aheritier</td><td>Arnaud Heritier</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-17">-</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="bellingard"></a>bellingard</td><td>Fabrice Bellingard</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-18">-</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="jdumay"></a>jdumay</td><td>James William Dumay</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-19">-</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="jmcconnell"></a>jmcconnell</td><td>Jesse McConnell</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-20">-</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/efe7252f3b18253bf4318062ece95a3b?d=mm&amp;s=60" alt="" /></td><td><a name="evenisse"></a>evenisse</td><td>Emmanuel Venisse</td><td><a class="externalLink" href="mailto:evenisse@apache.org">evenisse@apache.org</a></td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-21">-</span></td></tr><tr class="b"><td><img src="http://www.gravatar.com/avatar/b38a3be83226b10b399985496c058e4c?d=mm&amp;s=60" alt="" /></td><td><a name="jtolentino"></a>jtolentino</td><td>Ernesto Tolentino Jr.</td><td><a class="externalLink" href="mailto:jtolentino@apache.org">jtolentino@apache.org</a></td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-22">-</span></td></tr><tr class="a"><td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td><td><a name="wsmoak"></a>wsmoak</td><td>Wendy Smoak</td><td>-</td><td>-</td><td>Emeritus</td><td>-</td><td><span id="developer-23">-</span></td></tr></table></div><div class="section"><h3>Contributors<a name="Contributors"></a></h3><a name="Contributors"></a><p>The following additional people have contributed to this project through the way of suggestions, patches or documentation.</p><table border="0" class="table table-striped"><tr class="a"><th>Name</th></tr><tr class="b"><td>Steffen Grunwald</td></tr><tr class="a"><td>Stefan Prange</td></tr><tr class="b"><td>John Michael Luy</td></tr><tr class="a"><td>Martin H&#xf6;ller</td></tr><tr class="b"><td>Stephen Gargan</td></tr><tr class="a"><td>Dario Oliveros</td></tr><tr class="b"><td>james ahlborn</td></tr><tr class="a"><td>Jim Jackson</td></tr><tr class="b"><td>Daniel Harvey</td></tr><tr class="a"><td>Aleksandr Tarutin</td></tr><tr class="b"><td>Teodoro Cue Jr.</td></tr><tr class="a"><td>Jan Ancajas</td></tr><tr class="b"><td>Jens M&#xfc;hlenhoff</td></tr><tr class="a"><td>Dawn Angelito</td></tr><tr class="b"><td>Henry Isidro</td></tr><tr class="a"><td>Antoine Veret</td></tr><tr class="b"><td>Christian Gruber</td></tr><tr class="a"><td>Allan Ramirez</td></tr><tr class="b"><td>Pete Marvin King</td></tr><tr class="a"><td>Joel Sudiacal</td></tr><tr class="b"><td>Milos Kleint</td></tr><tr class="a"><td>Nick Gonzalez</td></tr><tr class="b"><td>Maria Catherine Tan</td></tr><tr class="a"><td>Dan Tran</td></tr><tr class="b"><td>Gwen Harold Autencio</td></tr><tr class="a"><td>Mark Jeffery</td></tr><tr class="b"><td>Fabrice Daugan</td></tr><tr class="a"><td>Doron Solomon</td></tr><tr class="b"><td>Michal Stochmialek</td></tr><tr class="a"><td>Julien Henry</td></tr><tr class="b"><td>Andreas Baumann</td></tr><tr class="a"><td>Adelita L. Padilla</td></tr><tr class="b"><td>Daniel Triphaus</td></tr><tr class="a"><td>Patti Arachchige Eshan Sudharaka</td></tr><tr class="b"><td>Shinsuke Sugaya</td></tr><tr class="a"><td>Marcus Dimand</td></tr><tr class="b"><td>Catalino Pineda Jr.</td></tr><tr class="a"><td>Warner Pinero</td></tr><tr class="b"><td>Dave Brosius</td></tr><tr class="a"><td>Jim Sellers</td></tr><tr class="b"><td>Igor Galic</td></tr><tr class="a"><td>Mark Struberg</td></tr><tr class="b"><td>Marc Jansen Tan Chua</td></tr><tr class="a"><td>Lucien Weller</td></tr><tr class="b"><td>Greg Michael Meneses</td></tr><tr class="a"><td>Chris Graham</td></tr><tr class="b"><td>Fredrik Jonson</td></tr><tr class="a"><td>Lester Ecarma</td></tr><tr class="b"><td>Eirik Bj&#xf8;rsn&#xf8;s</td></tr><tr class="a"><td>Jan Ancajas</td></tr><tr class="b"><td>Damien Blugeon</td></tr><tr class="a"><td>John Michael Luy</td></tr><tr class="b"><td>Wolfgang Strunk</td></tr><tr class="a"><td>Jevica Arianne B. Zurbano</td></tr><tr class="b"><td>Stefan Prange</td></tr><tr class="a"><td>Napoleon Esmundo C. Ramirez</td></tr><tr class="b"><td>Brent Atkinson</td></tr><tr class="a"><td>Antoine ROUAZE</td></tr></table><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(){
    offsetDate('developer-0', '+8');
    offsetDate('developer-1', '+10');
    offsetDate('developer-2', '+1');
    offsetDate('developer-3', '-8');
    offsetDate('developer-4', '+1');
    offsetDate('developer-5', '10');
    offsetDate('developer-6', '+1');
    offsetDate('developer-8', '+8');
    offsetDate('developer-9', '+8');
    offsetDate('developer-10', '+1');
    offsetDate('developer-11', '+1');
    offsetDate('developer-12', '+1');
    offsetDate('developer-13', '-5');
}

window.onLoad = init();
</script></div></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
              <div class="row span12">Copyright &copy;                    2006-2013
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

        
                <p id="poweredBy" class="pull-right">
                          <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>
              </p>
        
          
    
    
                
    <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
  </body>
</html>