<!doctype html>
<html lang=''>
<head>
   <meta charset='utf-8'>
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link rel="stylesheet" href="styles.css">
   <script src="js/jquery.js" type="text/javascript"></script>
   <script src="js/script.js" type="text/javascript"></script>
   <script src="js/projects.js"></script>
   <title>Apache Projects List</title>
</head>
<body onload="buildProjectsList();">

<div id="logo"><h1><div style="padding-top: 30px;">Projects Directory</div></h1></div>
<div id='cssmenu'>
<ul>
   <li><a href='.'><span>Home</span></a></li>
   <li><a href='committees.html'><span>Committees</span></a></li>
   <li class='active'><a href='projects.html'><span>Projects</span></a></li>
   <li><a href='releases.html'><span>Releases</span></a></li>
   <li class='last'><a href='timelines.html'><span>Timelines</span></a></li>
   <li style="background: none !important"><input type="text" style="margin-top: 20px;" onkeypress="checkKeyPress(event, this);" placeholder="Search..."/></li>
   <li style="float: right;"><a href='about.html'><span>About</span></a></li>
   <!--li style="background: none; float: right;"><a href="edit/"><img title="Edit project data" style="vertical-align: middle; margin-top: -5px; height: 24px; width: 24px;" src="images/edit.png"/></a></li-->
</ul>
</div>

<div class="leftbar">
   <ul>
      <li>Project listings:</li>
      <li><img src="images/byname.png"/> &nbsp; <a href="projects.html?name">By Name</a></li>
      <li><img src="images/bypmc.png"/> &nbsp; <a href="projects.html?committee">By Committee</a></li>
      <li><img src="images/bycategory.png"/> &nbsp; <a href="projects.html?category">By Category</a></li>
      <li><img src="images/bylanguage.png"/> &nbsp; <a href="projects.html?language">By Programming Language</a></li>
      <li><img src="images/bynumber.png"/> &nbsp; <a href="projects.html?number">By Number of Committers</a></li>
   </ul>
</div>
<div id="contents">
   <p>Please note that the project information displayed here relies on the <a href="doap.html">DOAP files</a> which <a href="committees.html">PMCs</a> are encouraged to provide.
      However DOAPs are not mandatory, and not all PMCs have provided a DOAP for all the projects they manage.
      Further, the DOAP files may also not be complete or up-to-date.
   </p>
   <div id="title"><h1>Projects by :</h1></div>
   <div id="list">
   <p style="text-align: center;">
      Loading data, please wait...<br/>
      <img src="images/loader.gif"/>
   </p>
   <p id="progress" style="text-align: center;"></p>
   <noscript>
      <h2>Notice!</h2>
      <p>
         This site relies heavily on JavaScript.
         Please enable it or get a browser that supports it.
      </p>
   </noscript>
   </div>
</div>
<div id="footer">
   Managed by the <a href="https://community.apache.org">Apache Community Development Project</a>.<br/>
   Copyright&copy; the Apache Software Foundation. Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a><br/>
   Apache&reg; and the Apache logo are trademarks of The Apache Software Foundation.
</div>
</body>
</html>
