<!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 Apr 3, 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 Client Implementation - 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="20120403" />
    <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-04-03</span>
                      </div>
            <div class="xright">        
                
                 <span id="projectVersion">Version: 0.7.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="../../index.html" title="Apache Chemistry OpenCMIS">Apache Chemistry OpenCMIS</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></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>
