<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Oct 10, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>OpenCMIS - Team list</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20121010" />
    <meta http-equiv="Content-Language" content="en" />
        
  </head>
  <body class="composite">
    <div id="banner">
                  <a href="" id="bannerLeft">
                                                <img src="images/chemistry-logo.png" alt="Apache Chemistry OpenCMIS" />
                </a>
                        <a href="http://www.apache.org/" id="bannerRight">
                                                <img src="images/apache-logo.gif" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                
                <div class="xleft">
        <span id="publishDate">Last Published: 2012-10-10</span>
                      </div>
            <div class="xright">        
                
                 <span id="projectVersion">Version: 0.8.0</span>
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                
                                <h5>Parent Project</h5>
                  <ul>
                  <li class="none">
                          <a href="http://www.apache.org/index.html" class="externalLink" title="The Apache Software Foundation">The Apache Software Foundation</a>
            </li>
          </ul>
                       <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                                                                                                                <li class="expanded">
                          <a href="project-info.html" title="Project Information">Project Information</a>
                    <ul>
                      <li class="none">
                          <a href="index.html" title="About">About</a>
            </li>
                      <li class="none">
                          <a href="integration.html" title="Continuous Integration">Continuous Integration</a>
            </li>
                      <li class="none">
                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
            </li>
                      <li class="none">
                          <a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a>
            </li>
                      <li class="none">
                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                      <li class="none">
                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                      <li class="none">
                          <a href="license.html" title="Project License">Project License</a>
            </li>
                      <li class="none">
                          <a href="project-summary.html" title="Project Summary">Project Summary</a>
            </li>
                      <li class="none">
            <strong>Project Team</strong>
          </li>
                      <li class="none">
                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
            </li>
              </ul>
        </li>
                                                                                      <li class="collapsed">
                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
                  </li>
          </ul>
                       <h5>Chemistry</h5>
                  <ul>
                  <li class="none">
                          <a href="http://chemistry.apache.org" class="externalLink" title="Main Website">Main Website</a>
            </li>
          </ul>
                                                                                                                   <a href="http://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
      </a>
                       
                
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>The Team<a name="The_Team"></a></h2><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><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="bodyTable"><tr class="a"><th>Id</th><th>Name</th><th>Email</th><th>URL</th><th>Organization</th><th>Organization URL</th><th>Roles</th><th>Time Zone</th><th>Actual Time (GMT)</th><th>Properties</th></tr><tr class="b"><td>fmui</td><td>Florian M&#xfc;ller</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-0">-</span></td><td>-</td></tr><tr class="a"><td>jenshuebel</td><td>Jens H&#xfc;bel</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-1">-</span></td><td>-</td></tr><tr class="b"><td>dward</td><td>David Ward</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-2">-</span></td><td>-</td></tr><tr class="a"><td>klevenzs</td><td>Stephan Klevenz</td><td><a class="externalLink" href="mailto:sklevenz@apache.org">sklevenz@apache.org</a></td><td>-</td><td>-</td><td>-</td><td>committer</td><td>CET</td><td><span id="developer-3">CET</span></td><td>-</td></tr><tr class="b"><td>hermesm</td><td>Martin Hermes</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-4">-</span></td><td>-</td></tr><tr class="a"><td>paulgoetz</td><td>Paul Goetz</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-5">-</span></td><td>-</td></tr><tr class="b"><td>dcaruana</td><td>David Caruana</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-6">-</span></td><td>-</td></tr><tr class="a"><td>gabriele</td><td>Gabriele Columbro</td><td><a class="externalLink" href="mailto:gabriele@apache.org">gabriele@apache.org</a></td><td>-</td><td>-</td><td>-</td><td>release manager</td><td>-</td><td><span id="developer-7">-</span></td><td>-</td></tr><tr class="b"><td>fguillaume</td><td>Florent Guillaume</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-8">-</span></td><td>-</td></tr><tr class="a"><td>sfermigier</td><td>Stefane Fermigier</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-9">-</span></td><td>-</td></tr><tr class="b"><td>jmpascal</td><td>Jean Marie Pascal</td><td>-</td><td>-</td><td>-</td><td>-</td><td>committer</td><td>-</td><td><span id="developer-10">-</span></td><td>-</td></tr></table></div><div class="section"><h3>Contributors<a name="Contributors"></a></h3><p>There are no contributors listed for this project. Please check back again later.</p></div></div><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-3', 'CET');
}

window.onLoad = init();
</script>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2009-2012
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
