<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2018-04-02 
 | Rendered using Apache Maven Fluido Skin 1.5
-->
<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="20180402" />
    <meta http-equiv="Content-Language" content="en" />
    <title>streams-components &#x2013; Project Team</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.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.5.min.js"></script>

          <script>
                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
                })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

                ga('create', 'UA-77087101-1', 'auto');
                ga('send', 'pageview');
            </script>
                      </head>
        <body class="topBarEnabled">
          
    
    
            
    
        
    <a href="https://github.com/apache/streams">
      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
        src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"
        alt="Fork me on GitHub">
    </a>
  
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top navbar-inverse">
      <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">Overview <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li>      <a href="../index.html"  title="Overview">Overview</a>
</li>
                  
                      <li>      <a href="../architecture.html"  title="Architecture">Architecture</a>
</li>
                  
                      <li>      <a href="../concepts.html"  title="Concepts">Concepts</a>
</li>
                  
                      <li>      <a href="../downloads.html"  title="Downloads">Downloads</a>
</li>
                  
                      <li>      <a href="../streams-examples/index.html"  title="Examples">Examples</a>
</li>
                  
                      <li>      <a href="../faq.html"  title="Frequently Asked Questions">Frequently Asked Questions</a>
</li>
                  
                      <li>      <a href="../modules.html"  title="Modules">Modules</a>
</li>
                          </ul>
      </li>
                <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Reports <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="integration.html"  title="CI Management">CI Management</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</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="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Management">Issue Management</a>
</li>
                                  <li>      <a href="license.html"  title="Licenses">Licenses</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="modules.html"  title="Project Modules">Project Modules</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Plugins">Plugins</a>
</li>
                                  <li>      <a href="team-list.html"  title="Team">Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Code Management">Source Code Management</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Summary">Summary</a>
</li>
                              </ul>
            </li>
                  
                      <li class="dropdown-submenu">
                                      <a href="project-reports.html"  title="Project Reports">Project Reports</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="third-party-report.html"  title="Third Parties">Third Parties</a>
</li>
                                  <li>      <a href="rat-report.html"  title="Rat Report">Rat Report</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
          
                                                    
        
        
        <ul class="nav pull-right"><li>
    
    <a href="https://twitter.com/ApacheStreams" class="twitter-follow-button" data-show-count="true" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow ApacheStreams</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="http://streams.apache.org" id="bannerLeft">
                                                                                        <img src="http://streams.apache.org/images/streams_logo.jpg"  alt="Apache Streams" width="150" height="100"/>
                </a>
                      </div>
        <div class="pull-right">  </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
              
                              <li class="">
                    <a href="http://streams.apache.org" class="externalLink" title="Streams">
        Streams</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="index.html" title="streams-components">
        streams-components</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Project Team</li>
        
              
      
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <div class="section">
<h2><a name="Project_Team"></a>Project Team</h2><a name="Project_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 project 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>URL</th>
<th>Roles</th></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/344a4a387d8f3e0007b03c6dd3d0a284?d=mm&amp;s=60" alt="" /></td>
<td><a name="rbaxter85"></a>rbaxter85</td>
<td>Ryan Baxter</td>
<td><a class="externalLink" href="mailto:rbaxter85@apache.org">rbaxter85@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/ryanjbaxter">http://twitter.com/ryanjbaxter</a></td>
<td>Committer</td></tr>
<tr class="a">
<td><img src="https://avatars.githubusercontent.com/steveblackmon" alt="" /></td>
<td><a name="sblackmon"></a>sblackmon</td>
<td>Steve Blackmon</td>
<td><a class="externalLink" href="mailto:sblackmon@apache.org">sblackmon@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/steveblackmon">http://twitter.com/steveblackmon</a></td>
<td>PPMC Member, Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/720cd7fd1888d678d682a0f03dffcaf1?d=mm&amp;s=60" alt="" /></td>
<td><a name="rdouglas"></a>rdouglas</td>
<td>Robert Douglas</td>
<td><a class="externalLink" href="mailto:rdouglas@apache.org">rdouglas@apache.org</a></td>
<td>-</td>
<td>PPMC Member, Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/5e897a9fb5302704326b29be2eac4857?d=mm&amp;s=60" alt="" /></td>
<td><a name="ate"></a>ate</td>
<td>Ate Douma</td>
<td><a class="externalLink" href="mailto:ate@apache.org">ate@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/atedouma">http://twitter.com/atedouma</a></td>
<td>Mentor, PPMC Member, Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/09d9226a4b4c59682d2aa62d1ef771f8?d=mm&amp;s=60" alt="" /></td>
<td><a name="rebanks"></a>rebanks</td>
<td>Ryan Ebanks</td>
<td><a class="externalLink" href="mailto:rebanks@apache.org">rebanks@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/ebanksre">http://twitter.com/ebanksre</a></td>
<td>PPMC Member, Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/02cff2140b62484a78a68ff09b8fcea5?d=mm&amp;s=60" alt="" /></td>
<td><a name="chansen"></a>chansen</td>
<td>Carol Hansen</td>
<td><a class="externalLink" href="mailto:chansen@apache.org">chansen@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/carolbirgitta">http://twitter.com/carolbirgitta</a></td>
<td>PPMC Member, Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/500d57d82032718d784219e383988e45?d=mm&amp;s=60" alt="" /></td>
<td><a name="ahart"></a>ahart</td>
<td>Andrew Hart</td>
<td><a class="externalLink" href="mailto:ahart@apache.org">ahart@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/andrewfhart">http://twitter.com/andrewfhart</a></td>
<td>Mentor, PPMC Member, Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/ae5b6a8c2f9d279e5029f04681b49816?d=mm&amp;s=60" alt="" /></td>
<td><a name="mfranklin"></a>mfranklin</td>
<td>Matt Franklin</td>
<td><a class="externalLink" href="mailto:mfranklin@apache.org">mfranklin@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/mattfranklin">http://twitter.com/mattfranklin</a></td>
<td>Mentor, PPMC Member, Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/3c8a834c4b595ebab11bb625060e22ca?d=mm&amp;s=60" alt="" /></td>
<td><a name="letourneau"></a>letourneau</td>
<td>Jason Letourneau</td>
<td><a class="externalLink" href="mailto:letourneau@apache.org">letourneau@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/jletourneau8080">http://twitter.com/jletourneau8080</a></td>
<td>PPMC Member, Committer</td></tr>
<tr class="a">
<td><img src="http://www.gravatar.com/avatar/d89afee66d3560fbc29042aca47161e0?d=mm&amp;s=60" alt="" /></td>
<td><a name="craigmcc"></a>craigmcc</td>
<td>Craig McClanahan</td>
<td><a class="externalLink" href="mailto:craigmcc@apache.org">craigmcc@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/craigmcclanahan">http://twitter.com/craigmcclanahan</a></td>
<td>Mentor, PPMC Member, Committer</td></tr>
<tr class="b">
<td><img src="http://www.gravatar.com/avatar/de3a4562b0dc77942d0a5d75043231d8?d=mm&amp;s=60" alt="" /></td>
<td><a name="dsullivan"></a>dsullivan</td>
<td>Danny Sullivan</td>
<td><a class="externalLink" href="mailto:dsullivan@apache.org">dsullivan@apache.org</a></td>
<td><a class="externalLink" href="http://twitter.com/dbsullivan23">http://twitter.com/dbsullivan23</a></td>
<td>PPMC Member, Committer</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></div></div>
                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
                      <div class="row">
                                      <p >Copyright &copy;                    2018
                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.    
                  <li id="publishDate" class="pull-right">Last Published: 2018-04-02</li>
              <li id="projectVersion" class="pull-right">
                    Version: 0.5.2-SNAPSHOT
        </li>
            </p>
                </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>
    </footer>
        </body>
</html>