<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.    
-->
<!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 2016-10-20 -->
<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>Apache James :: Basic Mailet Toolkit - Team list</title>
    <style type="text/css" media="all">
      @import url("./css/james.css");
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
      @import url("./js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css");
      @import url("./js/jquery/css/print.css");
      @import url("./js/fancybox/jquery.fancybox-1.3.4.css");
    </style>
    <script type="text/javascript" src="./js/jquery/js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="./js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script>
    <script type="text/javascript" src="./js/fancybox/jquery.fancybox-1.3.4.js"></script>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20161020" />
    <meta http-equiv="Content-Language" content="en" />
                                                    
<link title="DOAP" rel="meta" type="application/rdf+xml" href="http://james.apache.org//doap_james-project.rdf"/>
                      
          <!-- Google Analytics -->
    <script type="text/javascript">
    
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-1384591-1']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s);
      })();

    </script>
    </head>
  <body class="composite">
    <div id="banner">
                                      <a href="../../index.html" id="bannerLeft" title="james-logo.png">
              
                                                                            
        <img src="images/logos/james-logo.png" alt="Apache James Project" />
                </a>
                              <a href="http://www.apache.org/index.html" id="bannerRight">
              
                                        
        <img src="images/logos/asf_logo_small.png" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                
                <div class="xleft">
        <span id="publishDate">Last Published: 2016-10-20</span>
                      </div>
            <div class="xright">                    <a href="../../index.html" title="Home">Home</a>
            |
                        <a href="../../server/index.html" title="Server">Server</a>
            |
                        <a href="../../hupa/index.html" title="Hupa">Hupa</a>
            |
                        <a href="../../protocols/index.html" title="Protocols">Protocols</a>
            |
                        <a href="../index.html" title="Mailets">Mailets</a>
            |
                        <a href="../../mailbox/index.html" title="Mailbox">Mailbox</a>
            |
                        <a href="../../mime4j/index.html" title="Mime4J">Mime4J</a>
            |
                        <a href="../../jsieve/index.html" title="jSieve">jSieve</a>
            |
                        <a href="../../jspf/index.html" title="jSPF">jSPF</a>
            |
                        <a href="../../jdkim/index.html" title="jDKIM">jDKIM</a>
            |
                        <a href="../../mpt/index.html" title="MPT">MPT</a>
            |
                        <a href="../../postage/index.html" title="Postage">Postage</a>
              
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                
                                <h5>About James</h5>
                  <ul>
                  <li class="none">
                          <a href="../../index.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="../../newsarchive.html" title="News">News</a>
            </li>
                  <li class="none">
                          <a href="../../mail.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="../../contribute.html" title="Contributing">Contributing</a>
            </li>
                  <li class="none">
                          <a href="../../guidelines.html" title="Guidelines">Guidelines</a>
            </li>
                  <li class="none">
                          <a href="http://wiki.apache.org/james" title="Wiki">Wiki</a>
            </li>
                  <li class="none">
                          <a href="../../team-list.html" title="Who We Are">Who We Are</a>
            </li>
                  <li class="none">
                          <a href="../../license.html" title="License">License</a>
            </li>
                  <li class="none">
                          <a href="../../thanks.html" title="Thanks">Thanks</a>
            </li>
                  <li class="none">
                          <a href="../../support.html" title="Professional support">Professional support</a>
            </li>
          </ul>
                       <h5>Download</h5>
                  <ul>
                  <li class="none">
                          <a href="../../download.cgi" title="Releases">Releases</a>
            </li>
          </ul>
        <h5>Apache Software Foundation</h5>
  <ul>
    <li>
      <strong>
        <a title="ASF" href="http://www.apache.org/">ASF</a>
      </strong>
    </li>
    <li>
      <a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a>
    </li>
    <li>
      <a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a>
    </li>
    <li>
      <a title="License" href="http://www.apache.org/licenses/" >License</a>
    </li>
    <li>
      <a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
    </li>
    <li>
      <a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
    </li>
    <li>
      <a title="Security" href="http://www.apache.org/security/">Security</a>
    </li>
  </ul>
                       <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./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><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="bodyTable">
<tr class="a">
<th>Image</th>
<th>Id</th>
<th>Name</th>
<th>Email</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><img src="http://www.gravatar.com/avatar/a7e20b57e3ff53dcc50dc5c587b70169?d=mm&amp;s=60" alt="" /></td>
<td><a name="bago"></a>bago</td>
<td>Stefano Bagnara</td>
<td><a class="externalLink" href="mailto:bago@apache.org">bago@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>2</td>
<td><span id="developer-0">2</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/e81901854b7f5c44ddd92499fc51cacc?d=mm&amp;s=60" alt="" /></td>
<td><a name="norman"></a>norman</td>
<td>Norman Maurer</td>
<td><a class="externalLink" href="mailto:norman@apache.org">norman@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>2</td>
<td><span id="developer-1">2</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/e7b792910b5ff97e44e95af1f891efaf?d=mm&amp;s=60" alt="" /></td>
<td><a name="serge"></a>serge</td>
<td>Serge Knystautas</td>
<td><a class="externalLink" href="mailto:sergek@lokitech.com">sergek@lokitech.com</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-2">-</span></td>
<td>Donator=Serge was the original donator of the James code, which has since been massively
                    improved by people smarter than him. He tries to answer questions on the listserv and make
                    code
                    contributions when he does get a rare bit of free time.</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/85faa40720290ffb3ca842486ea04e82?d=mm&amp;s=60" alt="" /></td>
<td><a name="benrdf"></a>benrdf</td>
<td>Bernd Fondermann</td>
<td><a class="externalLink" href="mailto:bf_jak@brainlounge.de">bf_jak@brainlounge.de</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-3">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/6ff4291f354202f700240c1581368458?d=mm&amp;s=60" alt="" /></td>
<td><a name="sbrewin"></a>sbrewin</td>
<td>Steve Brewin</td>
<td><a class="externalLink" href="mailto:sbrewin@synsys.com">sbrewin@synsys.com</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-4">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/77aefc9ce8fe8cc4656b7689cd63e02d?d=mm&amp;s=60" alt="" /></td>
<td><a name="hilmer"></a>hilmer</td>
<td>S&#xf8;ren Hilmer</td>
<td><a class="externalLink" href="mailto:sh@widetrail.dk">sh@widetrail.dk</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-5">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/ca8302ce2aee2df38897d1f66faa1538?d=mm&amp;s=60" alt="" /></td>
<td><a name="noel"></a>noel</td>
<td>Noel J. Bergman</td>
<td><a class="externalLink" href="mailto:noel@devtech.com">noel@devtech.com</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-6">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/3aed1b52eca0b4f18fcedba7729df5ce?d=mm&amp;s=60" alt="" /></td>
<td><a name="danny"></a>danny</td>
<td>Danny Angus</td>
<td><a class="externalLink" href="mailto:danny@apache.org">danny@apache.org</a></td>
<td>Student Loans Company ltd</td>
<td><a class="externalLink" href="http://www.slc.co.uk">http://www.slc.co.uk</a></td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-7">-</span></td>
<td>Description=Danny is a member of the Apache Software Foundation and married father
                    of two by night, and by day works as lead technical consultant for the Student Loans
                    Company ltd.</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/47e417b3847f08952598d98de2f9dd4e?d=mm&amp;s=60" alt="" /></td>
<td><a name="adc"></a>adc</td>
<td>Alan D. Cabrera</td>
<td><a class="externalLink" href="mailto:list@toolazydogs.com">list@toolazydogs.com</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-8</td>
<td><span id="developer-8">-8</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/5c348f6d6763fdaa9e9bf51c69480d4f?d=mm&amp;s=60" alt="" /></td>
<td><a name="hbedi"></a>hbedi</td>
<td>Harmeet Bedi</td>
<td><a class="externalLink" href="mailto:harmeet@kodemuse.com">harmeet@kodemuse.com</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-9">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/3bd4b5011de9d9f0f5aafa7a2850388d?d=mm&amp;s=60" alt="" /></td>
<td><a name="jasonw"></a>jasonw</td>
<td>Jason Webb</td>
<td><a class="externalLink" href="mailto:jw@inovem.com">jw@inovem.com</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-10">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/e07f0e8c5a765b3528fda6751f0376db?d=mm&amp;s=60" alt="" /></td>
<td><a name="vincenzo"></a>vincenzo</td>
<td>Vincenzo Gianferrari Pini</td>
<td><a class="externalLink" href="mailto:vincenzo.gianferraripini@praxis.it">vincenzo.gianferraripini@praxis.it</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-11">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/30f9094d5dbe2ce93f1a41afc9615b83?d=mm&amp;s=60" alt="" /></td>
<td><a name="rdonkin"></a>rdonkin</td>
<td>Robert Burrell Donkin</td>
<td><a class="externalLink" href="mailto:rdonkin@apache.org">rdonkin@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-12">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/ffd7be99d3aa6de70221efcf2a435b75?d=mm&amp;s=60" alt="" /></td>
<td><a name="niklas"></a>niklas</td>
<td>Niklas Therning</td>
<td><a class="externalLink" href="mailto:niklas@apache.org">niklas@apache.org</a></td>
<td>Trillian AB</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-13">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/af5bbbe065ded3a0661ca3d78b495c33?d=mm&amp;s=60" alt="" /></td>
<td><a name="jcheng"></a>jcheng</td>
<td>Joe Cheng</td>
<td><a class="externalLink" href="mailto:joe@joecheng.com">joe@joecheng.com</a></td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td><span id="developer-14">-</span></td>
<td>Description=Former author to the mime4j product</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/59d2fca5c9b921d43785bad2c2f07466?d=mm&amp;s=60" alt="" /></td>
<td><a name="mwiederkehr"></a>mwiederkehr</td>
<td>Markus Wiederkehr</td>
<td><a class="externalLink" href="mailto:mwiederkehr@apache.org">mwiederkehr@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-15">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/a0176e178f8f08da2ac4524454b4184e?d=mm&amp;s=60" alt="" /></td>
<td><a name="olegk"></a>olegk</td>
<td>Oleg Kalnichevski</td>
<td><a class="externalLink" href="mailto:olegk@apache.org">olegk@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-16">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/f474668bb659f341edf9bbf682946422?d=mm&amp;s=60" alt="" /></td>
<td><a name="manolo"></a>manolo</td>
<td>Manuel Carrasco Monino</td>
<td><a class="externalLink" href="mailto:manolo@apache.org">manolo@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Member</td>
<td>-</td>
<td><span id="developer-17">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/9feeb5e7f70a7e7789b7e9999221bb87?d=mm&amp;s=60" alt="" /></td>
<td><a name="eric"></a>eric</td>
<td>Eric Charles</td>
<td><a class="externalLink" href="mailto:eric@apache.org">eric@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer, PMC Chair</td>
<td>-</td>
<td><span id="developer-18">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/e2c2dac8e24983b89df79134912b3e72?d=mm&amp;s=60" alt="" /></td>
<td><a name="felixk"></a>felixk</td>
<td>Felix Knecht</td>
<td><a class="externalLink" href="mailto:felixk@apache.org">felixk@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Emeritus</td>
<td>1</td>
<td><span id="developer-19">1</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/bb9cb5cc3b2b59865acacf56834bcc9a?d=mm&amp;s=60" alt="" /></td>
<td><a name="ieugen"></a>ieugen</td>
<td>Ioan Eugen Stan</td>
<td><a class="externalLink" href="mailto:ieugen@apache.org">ieugen@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>PMC Member, Developer</td>
<td>-</td>
<td><span id="developer-20">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/dda39f96fb2ce9166664d044f40b2296?d=mm&amp;s=60" alt="" /></td>
<td><a name="matthieu"></a>matthieu</td>
<td>Matthieu Baechler</td>
<td><a class="externalLink" href="mailto:matthieu@apache.org">matthieu@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-21">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/eb3a7ecd66922b3eb64bde7e0131bbf9?d=mm&amp;s=60" alt="" /></td>
<td><a name="btellier"></a>btellier</td>
<td>Benoit Tellier</td>
<td><a class="externalLink" href="mailto:btellier@apache.org">btellier@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-22">-</span></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/04d4463cc1625d9ab1162919093870b7?d=mm&amp;s=60" alt="" /></td>
<td><a name="aduprat"></a>aduprat</td>
<td>Antoine Duprat</td>
<td><a class="externalLink" href="mailto:aduprat@apache.org">aduprat@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-23">-</span></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/c5cd319755f400f07d11f6ac386e8bf8?d=mm&amp;s=60" alt="" /></td>
<td><a name="rouazana"></a>rouazana</td>
<td>Raphael Ouazana</td>
<td><a class="externalLink" href="mailto:rouazana@apache.org">rouazana@apache.org</a></td>
<td>-</td>
<td>-</td>
<td>Developer</td>
<td>-</td>
<td><span id="developer-24">-</span></td>
<td>-</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="bodyTable">
<tr class="a">
<th>Image</th>
<th>Name</th>
<th>Email</th>
<th>Properties</th></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=blank&amp;f=y&amp;s=60" alt="" /></td>
<td>Rob Oxspring</td>
<td>-</td>
<td>Contribution=Contributed to the mime4j product</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>Roger Fullerton</td>
<td>-</td>
<td>Contribution=Wrote spfjava, the first spf implementation in java</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/47e417b3847f08952598d98de2f9dd4e?d=mm&amp;s=60" alt="" /></td>
<td>Alan D. Cabrera [ADC]</td>
<td><a class="externalLink" href="mailto:list@toolazydogs.com">list@toolazydogs.com</a></td>
<td>-</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>Darrell DeBoer (DD)</td>
<td>-</td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/b370eecfbc537ba0f932882b46dae075?d=mm&amp;s=60" alt="" /></td>
<td>Stephen J. McConnell (SJM)</td>
<td><a class="externalLink" href="mailto:mcconnell@apache.org">mcconnell@apache.org</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/a83b340c389b12e1da2ce7ccd827528c?d=mm&amp;s=60" alt="" /></td>
<td>Peter M. Goldstein (PG)</td>
<td><a class="externalLink" href="mailto:farsight@alum.mit.edu">farsight@alum.mit.edu</a></td>
<td>-</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>Pete Donald (PD)</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/cb94ff894a5bbfc39c375e0a248eb1bc?d=mm&amp;s=60" alt="" /></td>
<td>Charles Benett (CB)</td>
<td><a class="externalLink" href="mailto:charles@benett1.demon.co.uk">charles@benett1.demon.co.uk</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/a8a8094ce68af630a16aa98a0cd66c37?d=mm&amp;s=60" alt="" /></td>
<td>Federico Barbieri (FB)</td>
<td><a class="externalLink" href="mailto:scoobie@systemy.it">scoobie@systemy.it</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/6663f3b7fb32a60180af281ca192407e?d=mm&amp;s=60" alt="" /></td>
<td>Stuart Roebuck (SR)</td>
<td><a class="externalLink" href="mailto:stuart.roebuck@adolos.co.uk">stuart.roebuck@adolos.co.uk</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/f9361920d1cd50bc498b4dd92a9934e1?d=mm&amp;s=60" alt="" /></td>
<td>Ivan Seskar (IS)</td>
<td><a class="externalLink" href="mailto:iseskar@upsideweb.com">iseskar@upsideweb.com</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/c92040f23f67cf1657b7f87a5fa0c555?d=mm&amp;s=60" alt="" /></td>
<td>Prasanna Uppaladadium (PU)</td>
<td><a class="externalLink" href="mailto:prasanna@vayusphere.com">prasanna@vayusphere.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/bfd2efc7d442b583fefd3b2ca6ec12e2?d=mm&amp;s=60" alt="" /></td>
<td>Gabriel Bucher (GB)</td>
<td><a class="externalLink" href="mailto:gabriel.bucher@razor.ch">gabriel.bucher@razor.ch</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/7cd52f60d8d98308f1f22d7338bdf0b9?d=mm&amp;s=60" alt="" /></td>
<td>Matthew Pangaro (MP)</td>
<td><a class="externalLink" href="mailto:mattp@lokitech.com">mattp@lokitech.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/022399f9daa86781d66ece12bf6b1571?d=mm&amp;s=60" alt="" /></td>
<td>Jason Borden (JB)</td>
<td><a class="externalLink" href="mailto:jborden@javasense.com">jborden@javasense.com</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/b47ef079020208266c1677c492e45979?d=mm&amp;s=60" alt="" /></td>
<td>Randy Stanard (RS)</td>
<td><a class="externalLink" href="mailto:rstanard@lokitech.com">rstanard@lokitech.com</a></td>
<td>Contribution=Contributed the James logo</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/defe2393e4689ae2274c337a4599ea3c?d=mm&amp;s=60" alt="" /></td>
<td>Samuel Sadek (SS)</td>
<td><a class="externalLink" href="mailto:Samuel.Sadek@kpmg.co.uk">Samuel.Sadek@kpmg.co.uk</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/94d20c8eb43dd813bc8f5f13f9ead052?d=mm&amp;s=60" alt="" /></td>
<td>Stephan Schiessling (SS2)</td>
<td><a class="externalLink" href="mailto:s@rapi.com">s@rapi.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/2b12a6a8626fde2cfd0220da3b08d19f?d=mm&amp;s=60" alt="" /></td>
<td>Eung-ju Park (EP)</td>
<td><a class="externalLink" href="mailto:colus@apache.org">colus@apache.org</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/00aef5822bccf705a892d84df9d03259?d=mm&amp;s=60" alt="" /></td>
<td>Paul Hammant (PH)</td>
<td><a class="externalLink" href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/b86703e9f2c6bf1d63211c86b770ee0a?d=mm&amp;s=60" alt="" /></td>
<td>Jeff Keyser (JK)</td>
<td><a class="externalLink" href="mailto:JKeyser@telocity.com">JKeyser@telocity.com</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/b155a04b0cf4b77dc5e5521bd1b645c3?d=mm&amp;s=60" alt="" /></td>
<td>Andrei Ivanov (AI)</td>
<td><a class="externalLink" href="mailto:myfam@surfeu.fi">myfam@surfeu.fi</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/19e7f33037e597429f9b2af82a9529ef?d=mm&amp;s=60" alt="" /></td>
<td>Brad Walker (BW)</td>
<td><a class="externalLink" href="mailto:bwalker@studentadvantage.com">bwalker@studentadvantage.com</a></td>
<td>-</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>Christian Buchegger (CB2)</td>
<td>-</td>
<td>email=christian.buchegger@planet-interkom.de</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/dfd2f49ab52314ef05db7d7495843527?d=mm&amp;s=60" alt="" /></td>
<td>Shilpa Dalmia (SD)</td>
<td><a class="externalLink" href="mailto:shilpa@postx.com">shilpa@postx.com</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/8eec611ae6cb43fe23baa5da5cfa0fb2?d=mm&amp;s=60" alt="" /></td>
<td>Steve Short (SS3)</td>
<td><a class="externalLink" href="mailto:sshort@postx.com">sshort@postx.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/c620bf71bfd893a17e89dc4408ae29f3?d=mm&amp;s=60" alt="" /></td>
<td>Aaron Knauf (AK)</td>
<td><a class="externalLink" href="mailto:aknauf@xtra.co.nz">aknauf@xtra.co.nz</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/c1ab0bf427a5e872de4e86f8bbe4c96a?d=mm&amp;s=60" alt="" /></td>
<td>Serge &quot;Sergei&quot; Sozonoff (SS4)</td>
<td><a class="externalLink" href="mailto:serge@globalbeach.com">serge@globalbeach.com</a></td>
<td>-</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>Kai Londenberg [KL]</td>
<td>-</td>
<td>email=kai.londenberg@my-vwclub.de</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/39aa2726a3dfa5f85c86f93dc6c2f7e2?d=mm&amp;s=60" alt="" /></td>
<td>Mark Imel [MI]</td>
<td><a class="externalLink" href="mailto:james@imelshire.com">james@imelshire.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/2080c1b3482aab13b9e3e1c09e415905?d=mm&amp;s=60" alt="" /></td>
<td>Kevin Schmidt [KS]</td>
<td><a class="externalLink" href="mailto:ktschmidt@earthlink.net">ktschmidt@earthlink.net</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/ec872b86a477d15bd07826cbf25fa0ff?d=mm&amp;s=60" alt="" /></td>
<td>Hontvari Jozsef [HJ]</td>
<td><a class="externalLink" href="mailto:hontvari2@solware.com">hontvari2@solware.com</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/1c4208a6db7219448933fbe7a4191eee?d=mm&amp;s=60" alt="" /></td>
<td>Cesar Bonadio [CB3]</td>
<td><a class="externalLink" href="mailto:bonadio@picture.com.br">bonadio@picture.com.br</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/b6efe0b15a81b12b312096d5eb37a21d?d=mm&amp;s=60" alt="" /></td>
<td>Marco Tedone [MT]</td>
<td><a class="externalLink" href="mailto:mtedone@jemos.org">mtedone@jemos.org</a></td>
<td>-</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/794245045be6112b08e4ec648cf84059?d=mm&amp;s=60" alt="" /></td>
<td>Tim Stephenson [TS]</td>
<td><a class="externalLink" href="mailto:tim@thestephensons.me.uk">tim@thestephensons.me.uk</a></td>
<td>-</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/ea93d85ece90613e220e320dc5855327?d=mm&amp;s=60" alt="" /></td>
<td>Richard O. Hammer [ROH]</td>
<td><a class="externalLink" href="mailto:rohammer@earthlink.net">rohammer@earthlink.net</a></td>
<td>-</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', '2');
    offsetDate('developer-1', '2');
    offsetDate('developer-8', '-8');
    offsetDate('developer-19', '1');
}

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