<!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 May 8, 2011 -->
<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 AI - Project License</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");
    </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>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20110508" />
    <meta http-equiv="Content-Language" content="en" />
        
          <!-- 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')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
    </head>
  <body class="composite">
    <div id="banner">
                        <a href="http://james.apache.org/mailet/ai/index.html" id="bannerLeft" title="james-ai-mailets-logo.png">
              
                                                                            
        <img src="images/logos/james-ai-mailets-logo.png" alt="JAMES Artificial intelligence Mailets" />
                </a>
                              <a href="http://www.apache.org/index.html" id="bannerRight">
              
                                        
        <img src="images/logos/asf-logo-reduced.gif" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                
                <div class="xleft">
        <span id="publishDate">Last Published: 2011-05-08</span>
                      </div>
            <div class="xright">                    <a href="http://james.apache.org/index.html" class="externalLink" title="Home">Home</a>
            |
                        <a href="http://james.apache.org/server/index.html" class="externalLink" title="Server">Server</a>
            |
                        <a href="http://james.apache.org/hupa/index.html" class="externalLink" title="Hupa">Hupa</a>
            |
                        <a href="http://james.apache.org/protocols/index.html" class="externalLink" title="Protocols">Protocols</a>
            |
                        <a href="http://james.apache.org/imap/index.html" class="externalLink" title="IMAP">IMAP</a>
            |
                        <a href="http://james.apache.org/mailet/index.html" class="externalLink" title="Mailets">Mailets</a>
            |
                        <a href="http://james.apache.org/mailbox/index.html" class="externalLink" title="Mailbox">Mailbox</a>
            |
                        <a href="http://james.apache.org/mime4j/index.html" class="externalLink" title="Mime4J">Mime4J</a>
            |
                        <a href="http://james.apache.org/jsieve/index.html" class="externalLink" title="jSieve">jSieve</a>
            |
                        <a href="http://james.apache.org/jspf/index.html" class="externalLink" title="jSPF">jSPF</a>
            |
                        <a href="http://james.apache.org/jdkim/index.html" class="externalLink" title="jDKIM">jDKIM</a>
            |
                        <a href="http://james.apache.org/mpt/index.html" class="externalLink" title="MPT">MPT</a>
            |
                        <a href="http://james.apache.org/postage/index.html" class="externalLink" title="Postage">Postage</a>
              
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                
                                <h5>Artificial Intelligence Mailets</h5>
                  <ul>
                  <li class="none">
                          <a href="index.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="apidocs/index.html" title="Javadocs">Javadocs</a>
            </li>
                  <li class="none">
                          <a href="release-notes.html" title="Release Notes">Release Notes</a>
            </li>
          </ul>
                       <h5>Mailet</h5>
                  <ul>
                  <li class="none">
                          <a href="http://james.apache.org/mailet/api" title="API">API</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/mailet/ai" title="AI">AI</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/mailet/base" title="Basic Toolkit">Basic Toolkit</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/mailet/crypto" title="Crypto">Crypto</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/mailet/maven-mailetdocs-plugin" title="MailetDocs">MailetDocs</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/jsieve/mailet/index.html" title="Sieve">Sieve</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/mailet/standard" title="Standard">Standard</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="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a>
            </li>
                      <li class="none">
                          <a href="dependency-management.html" title="Dependency Management">Dependency Management</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">
            <strong>Project License</strong>
          </li>
                      <li class="none">
                          <a href="modules.html" title="Project Modules">Project Modules</a>
            </li>
                      <li class="none">
                          <a href="project-summary.html" title="Project Summary">Project Summary</a>
            </li>
                      <li class="none">
                          <a href="team-list.html" title="Project Team">Project Team</a>
            </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>About James</h5>
                  <ul>
                  <li class="none">
                          <a href="http://james.apache.org/index.html" title="Overview">Overview</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/newsarchive.html" title="News">News</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/mail.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/contribute.html" title="Contributing">Contributing</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/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="http://james.apache.org/weare.html" title="Who We Are">Who We Are</a>
            </li>
                  <li class="none">
                          <a href="http://james.apache.org/license.html" title="License">License</a>
            </li>
          </ul>
                       <h5>Download</h5>
                  <ul>
                  <li class="none">
                          <a href="http://james.apache.org/download.cgi" title="Releases">Releases</a>
            </li>
                  <li class="none">
                          <a href="http://people.apache.org/builds/james/nightly/" title=""></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>Overview<a name="Overview"></a></h2><a name="Overview"></a><p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p></div><div class="section"><h2>Project License<a name="Project_License"></a></h2><a name="Project_License"></a><div class="section"><h3>Apache License, Version 2.0<a name="Apache_License_Version_2.0"></a></h3><a name="Apache_License_Version_2.0"></a><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">[Original text]</a><p>Copy of the license follows.</p>
    <div id="page" class="container_16">
      <div id="header" class="grid_8">
        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
        <h1>The Apache Software Foundation</h1>
        <h2>Apache License, Version 2.0</h2>
      </div>
      <div id="nav" class="grid_8">
        <ul>
          <!-- <li><a href="http://www.apache.org/" title="Welcome!">Home</a></li> -->
          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
          <li><a href="http://people.apache.org" title="The People">People</a></li>
          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
        </ul>
        <p><a href="http://www.apache.org/">Home</a>&nbsp;&raquo&nbsp;<a href="http://www.apache.org/licenses/">Licenses</a></p>
        <form name="search" id="search" action="http://www.google.com/search" method="get">
          <input value="*.apache.org" name="sitesearch" type="hidden"/>
          <input type="text" name="q" id="query">
          <input type="submit" id="submit" value="Search">
        </form>
      </div>
      <div class="clear"></div>
      <div id="content" class="grid_16"><div class="section-content"><p>Apache License<br></br>Version 2.0, January 2004<br></br>
<a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a> </p>
<p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p>
<p><strong><a name="definitions">1. Definitions</a></strong>.</p>
<p>"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.</p>
<p>"Licensor" shall mean the copyright owner or entity authorized by the
copyright owner that is granting the License.</p>
<p>"Legal Entity" shall mean the union of the acting entity and all other
entities that control, are controlled by, or are under common control with
that entity. For the purposes of this definition, "control" means (i) the
power, direct or indirect, to cause the direction or management of such
entity, whether by contract or otherwise, or (ii) ownership of fifty
percent (50%) or more of the outstanding shares, or (iii) beneficial
ownership of such entity.</p>
<p>"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.</p>
<p>"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation source,
and configuration files.</p>
<p>"Object" form shall mean any form resulting from mechanical transformation
or translation of a Source form, including but not limited to compiled
object code, generated documentation, and conversions to other media types.</p>
<p>"Work" shall mean the work of authorship, whether in Source or Object form,
made available under the License, as indicated by a copyright notice that
is included in or attached to the work (an example is provided in the
Appendix below).</p>
<p>"Derivative Works" shall mean any work, whether in Source or Object form,
that is based on (or derived from) the Work and for which the editorial
revisions, annotations, elaborations, or other modifications represent, as
a whole, an original work of authorship. For the purposes of this License,
Derivative Works shall not include works that remain separable from, or
merely link (or bind by name) to the interfaces of, the Work and Derivative
Works thereof.</p>
<p>"Contribution" shall mean any work of authorship, including the original
version of the Work and any modifications or additions to that Work or
Derivative Works thereof, that is intentionally submitted to Licensor for
inclusion in the Work by the copyright owner or by an individual or Legal
Entity authorized to submit on behalf of the copyright owner. For the
purposes of this definition, "submitted" means any form of electronic,
verbal, or written communication sent to the Licensor or its
representatives, including but not limited to communication on electronic
mailing lists, source code control systems, and issue tracking systems that
are managed by, or on behalf of, the Licensor for the purpose of discussing
and improving the Work, but excluding communication that is conspicuously
marked or otherwise designated in writing by the copyright owner as "Not a
Contribution."</p>
<p>"Contributor" shall mean Licensor and any individual or Legal Entity on
behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.</p>
<p><strong><a name="copyright">2. Grant of Copyright License</a></strong>. Subject to the
terms and conditions of this License, each Contributor hereby grants to You
a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of, publicly
display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.</p>
<p><strong><a name="patent">3. Grant of Patent License</a></strong>. Subject to the terms
and conditions of this License, each Contributor hereby grants to You a
perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made, use,
offer to sell, sell, import, and otherwise transfer the Work, where such
license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by
combination of their Contribution(s) with the Work to which such
Contribution(s) was submitted. If You institute patent litigation against
any entity (including a cross-claim or counterclaim in a lawsuit) alleging
that the Work or a Contribution incorporated within the Work constitutes
direct or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate as of the
date such litigation is filed.</p>
<p><strong><a name="redistribution">4. Redistribution</a></strong>. You may reproduce and
distribute copies of the Work or Derivative Works thereof in any medium,
with or without modifications, and in Source or Object form, provided that
You meet the following conditions:</p>
<ol>
<li>
<p>You must give any other recipients of the Work or Derivative Works a
copy of this License; and</p>
</li>
<li>
<p>You must cause any modified files to carry prominent notices stating
that You changed the files; and</p>
</li>
<li>
<p>You must retain, in the Source form of any Derivative Works that You
distribute, all copyright, patent, trademark, and attribution notices from
the Source form of the Work, excluding those notices that do not pertain to
any part of the Derivative Works; and</p>
</li>
<li>
<p>If the Work includes a "NOTICE" text file as part of its distribution,
then any Derivative Works that You distribute must include a readable copy
of the attribution notices contained within such NOTICE file, excluding
those notices that do not pertain to any part of the Derivative Works, in
at least one of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or documentation,
if provided along with the Derivative Works; or, within a display generated
by the Derivative Works, if and wherever such third-party notices normally
appear. The contents of the NOTICE file are for informational purposes only
and do not modify the License. You may add Your own attribution notices
within Derivative Works that You distribute, alongside or as an addendum to
the NOTICE text from the Work, provided that such additional attribution
notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may
provide additional or different license terms and conditions for use,
reproduction, or distribution of Your modifications, or for any such
Derivative Works as a whole, provided Your use, reproduction, and
distribution of the Work otherwise complies with the conditions stated in
this License.</p>
</li>
</ol>
<p><strong><a name="contributions">5. Submission of Contributions</a></strong>. Unless You
explicitly state otherwise, any Contribution intentionally submitted for
inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the
terms of any separate license agreement you may have executed with Licensor
regarding such Contributions.</p>
<p><strong><a name="trademarks">6. Trademarks</a></strong>. This License does not grant
permission to use the trade names, trademarks, service marks, or product
names of the Licensor, except as required for reasonable and customary use
in describing the origin of the Work and reproducing the content of the
NOTICE file.</p>
<p><strong><a name="no-warranty">7. Disclaimer of Warranty</a></strong>. Unless required by
applicable law or agreed to in writing, Licensor provides the Work (and
each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You
are solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise
of permissions under this License.</p>
<p><strong><a name="no-liability">8. Limitation of Liability</a></strong>. In no event and
under no legal theory, whether in tort (including negligence), contract, or
otherwise, unless required by applicable law (such as deliberate and
grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a result
of this License or out of the use or inability to use the Work (including
but not limited to damages for loss of goodwill, work stoppage, computer
failure or malfunction, or any and all other commercial damages or losses),
even if such Contributor has been advised of the possibility of such
damages.</p>
<p><strong><a name="additional">9. Accepting Warranty or Additional Liability</a></strong>.
While redistributing the Work or Derivative Works thereof, You may choose
to offer, and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this License.
However, in accepting such obligations, You may act only on Your own behalf
and on Your sole responsibility, not on behalf of any other Contributor,
and only if You agree to indemnify, defend, and hold each Contributor
harmless for any liability incurred by, or claims asserted against, such
Contributor by reason of your accepting any such warranty or additional
liability.</p>
<p>END OF TERMS AND CONDITIONS</p>
<h1 id="apply">APPENDIX: How to apply the Apache License to your work</h1>
<p>To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "[]" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included
on the same "printed page" as the copyright notice for easier
identification within third-party archives.</p>
<div class="codehilite"><pre>   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
   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 &quot;AS IS&quot; 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.
</pre></div></div></div>
      <div class="clear"></div>
    </div>
    <div id="footer" class="container_16">
      <div class="links grid_16">
      <div class="grid_3">
        <h4>Projects</h4>
        <ul>
<li><a href="http://httpd.apache.org/" title="Apache Web Server (httpd)">HTTP Server</a></li>
<li><a href="http://abdera.apache.org/" title="Atom Publishing Protocol Implementation">Abdera</a></li>
<li><a href="http://activemq.apache.org/" title="Distributed Messaging System">ActiveMQ</a></li>
<li><a href="http://ant.apache.org/" title="Java-based build tool">Ant</a></li>
<li><a href="http://apr.apache.org/" title="Apache Portable Runtime libraries">APR</a></li>
<li><a href="http://archiva.apache.org/" title="Build Artifact Repository Manager">Archiva</a></li>
<li><a href="http://avro.apache.org/" title="A Serialization System">Avro</a></li>
<li><a href="http://axis.apache.org/" title="Java SOAP Engine">Axis</a></li>
<li><a href="http://buildr.apache.org/" title="Simple and intuitive build system for Java applications">Buildr</a></li>
<li><a href="http://camel.apache.org/" title="Spring based Integration Framework which implements the Enterprise Integration Patterns">Camel</a></li>
<li><a href="http://cassandra.apache.org/" title="Highly scalable second-generation distributed database">Cassandra</a></li>
<li><a href="http://cayenne.apache.org/" title="User-friendly Java ORM with Tools">Cayenne</a></li>
<li><a href="http://chemistry.apache.org/" title="CMIS (Content Managment Interoperability Services) Clients and Servers">Chemistry</a></li>
<li><a href="http://click.apache.org/" title="User-friendly page and component oriented web framework">Click</a></li>
<li><a href="http://cocoon.apache.org/" title="Web development framework: separation of concerns, component-based">Cocoon</a></li>
<li><a href="http://commons.apache.org/" title="Reusable Java components">Commons</a></li>
<li><a href="http://continuum.apache.org/" title="Continuous Integration and Build Server">Continuum</a></li>
<li><a href="http://couchdb.apache.org/" title="RESTful document database">CouchDB</a></li>
<li><a href="http://cxf.apache.org/" title="Service Framework">CXF</a></li>
<li><a href="http://db.apache.org/" title="Database access">DB</a></li>
<li><a href="http://directory.apache.org/" title="Apache Directory Server">Directory</a></li>
<li><a href="http://esme.apache.org/" title="Enterprise Social Messaging Environment">ESME</a></li>
<li><a href="http://felix.apache.org/" title="OSGi Framework and components.">Felix</a></li>
<li><a href="http://forrest.apache.org/" title="Aggregated multi-channel documentation, separation of concerns">Forrest</a></li>
<li><a href="http://geronimo.apache.org/" title="Java2, Enterprise Edition (J2EE) container">Geronimo</a></li>
<li><a href="http://gump.apache.org/" title="Continuous integration of open source projects">Gump</a></li>
<li><a href="http://hadoop.apache.org/" title="Distributed computing platform">Hadoop</a></li>
<li><a href="http://harmony.apache.org/" title="Open source implementation of Java SE">Harmony</a></li>
<li><a href="http://hbase.apache.org/" title="Hadoop Database">HBase</a></li>
<li><a href="http://hive.apache.org/" title="Data warehouse infrastructure using the Hadoop Database">Hive</a></li>
<li><a href="http://hc.apache.org/" title="Java toolset of low level HTTP components">HttpComponents</a></li>
<li><a href="http://jackrabbit.apache.org/" title="Content Repository for Java">Jackrabbit</a></li>
<li><a href="http://jakarta.apache.org/" title="Server-side Java">Jakarta</a></li>
<li><a href="http://james.apache.org/" title="Java Apache Mail Enterprise Server">James</a></li>
<li><a href="http://karaf.apache.org/" title="Server-side OSGi distribution">Karaf</a></li>
<li><a href="http://lenya.apache.org/" title="Content Management System">Lenya</a></li>
<li><a href="http://logging.apache.org/" title="Cross-language logging services">Logging</a></li>
<li><a href="http://lucene.apache.org/" title="Search engine library">Lucene</a></li>
<li><a href="http://mahout.apache.org/" title="Scalable machine learning library">Mahout</a></li>
<li><a href="http://maven.apache.org/" title="Java project management and comprehension tools">Maven</a></li>
<li><a href="http://mina.apache.org/" title="Multipurpose Infrastructure for Network Application">Mina</a></li>
<li><a href="http://myfaces.apache.org/" title="JavaServer(tm) Faces implementation and components">MyFaces</a></li>
<li><a href="http://nutch.apache.org/" title="Open Source Web Search Software">Nutch</a></li>
<li><a href="http://ode.apache.org/" title="Orchestration Director Engine: Business Process Management (BPM), Process Orchestration and Workflow through service compositioni.">ODE</a></li>
<li><a href="http://oodt.apache.org/" title="Object Oriented Data Technology (middleware metadata)">OODT</a></li>
<li><a href="http://ofbiz.apache.org/" title="Open for Business: enterprise automation software">OFBiz</a></li>
<li><a href="http://openejb.apache.org/" title="OpenEJB: a modular, configurable, and extendable EJB Container System and Server">OpenEJB</a></li>
<li><a href="http://openjpa.apache.org/" title="OpenJPA: Object Relational Mapping for Java">OpenJPA</a></li>
<li><a href="http://openwebbeans.apache.org/" title="OpenWebBeans: JSR-299 Context and Dependency Injection for Java EE Platform Implementation">OpenWebBeans</a></li>
<li><a href="http://pdfbox.apache.org/" title="Java library for working with PDF documents">PDFBox</a></li>
<li><a href="http://perl.apache.org/" title="Dynamic websites using Perl">Perl</a></li>
<li><a href="http://pig.apache.org/" title="Platform for analyzing large data sets">Pig</a></li>
<li><a href="http://pivot.apache.org/" title="Rich Internet applications in Java">Pivot</a></li>
<li><a href="http://poi.apache.org/" title="Java API for OLE 2 Compound and OOXML Documents">POI</a></li>
<li><a href="http://portals.apache.org/" title="Portal technology">Portals</a></li>
<li><a href="http://qpid.apache.org/" title="Multiple language implementation of the latest Advanced Message Queuing Protocol (AMQP)">Qpid</a></li>
<li><a href="http://roller.apache.org/" title="Java blog server">Roller</a></li>
<li><a href="http://santuario.apache.org/" title="XML Security in Java and C++">Santuario</a></li>
<li><a href="http://servicemix.apache.org/" title="Enterprise Service Bus">ServiceMix</a></li>
<li><a href="http://shindig.apache.org/" title="Opensocial Reference Implementation">Shindig</a></li>
<li><a href="http://shiro.apache.org/" title="Powerful and easy-to-use application security framework">Shiro</a></li>
<li><a href="http://sling.apache.org/" title="Web Framework for JCR Content Repositories">Sling</a></li>
<li><a href="http://spamassassin.apache.org/" title="Mail filter to identify spam">SpamAssassin</a></li>
<li><a href="http://stdcxx.apache.org/" title="Apache C++ Standard Library">STDCXX</a></li>
<li><a href="http://struts.apache.org/" title="Model 2 framework for building Java web applications">Struts</a></li>
<li><a href="http://subversion.apache.org/" title="Version Control">Subversion</a></li>
<li><a href="http://synapse.apache.org/" title="Enterprise Service Bus and Mediation Framework">Synapse</a></li>
<li><a href="http://tapestry.apache.org/" title="Component-based Java Web Application Framework">Tapestry</a></li>
<li><a href="http://tcl.apache.org/" title="Dynamic websites using TCL">TCL</a></li>
<li><a href="http://thrift.apache.org/" title="Framework for scalable cross-language services development">Thrift</a></li>
<li><a href="http://tika.apache.org" title="Content Analysis and Detection Toolkit">Tika</a></li>
<li><a href="http://tiles.apache.org/" title="A templating framework for web application user interfaces">Tiles</a></li>
<li><a href="http://tomcat.apache.org/" title="A Java Servlet and JSP Container">Tomcat</a></li>
<li><a href="http://trafficserver.apache.org/" title="A fast, scalable and extensible HTTP/1.1 compliant caching proxy server">TrafficServer</a></li>
<li><a href="http://turbine.apache.org/" title="A Java Servlet Web Application Framework and associated component library">Turbine</a></li>
<li><a href="http://tuscany.apache.org/" title="An SCA based Service Composition Framework">Tuscany</a></li>
<li><a href="http://uima.apache.org/" title="Framework and annotators for unstructured information analysis">UIMA</a></li>
<li><a href="http://velocity.apache.org/" title="A Java Templating Engine">Velocity</a></li>
<li><a href="http://wicket.apache.org/" title="Component-based Java Web Application Framework.">Wicket</a></li>
<li><a href="http://ws.apache.org/">Web Services</a></li>
<li><a href="http://xalan.apache.org/" title="XSLT processors in Java and C++">Xalan</a></li>
<li><a href="http://xerces.apache.org/" title="XML parsers in Java, C++ and Perl">Xerces</a></li>
<li><a href="http://xml.apache.org/" title="XML solutions focused on the web">XML</a></li>
<li><a href="http://xmlbeans.apache.org/" title="XML-Java binding tool">XMLBeans</a></li>
<li><a href="http://xmlgraphics.apache.org/" title="Conversion from XML to graphical output">XML Graphics</a></li>
<li><a href="http://zookeeper.apache.org/" title="Centralized service for maintaining configuration information">Zoo Keeper</a></li>
</ul>
      </div>
      <div class="grid_3">
        <h4>Foundation</h4>
        <ul>
          <li><a href="http://www.apache.org/foundation/faq.html">FAQ</a></li> 
          <li><a href="http://www.apache.org/licenses/" title="Overview of the Apache Licenese">Licenses</a></li> 
          <li><a href="http://www.apache.org/foundation/marks/" title="Apache marks policies and listing">Trademarks</a></li>  
          <li><a href="http://www.apache.org/foundation/news.html" title="Official news feed of Foundation announcements">News</a></li> 
          <li><a href="http://www.apache.org/press/" title="Press, Media, and Analyst contact">Press Inquiries</a></li> 
          <li><a href="http://www.apache.org/foundation/records/" title="Formal corporate records and board meeting minutes">Public Records</a></li> 
          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsor the Foundation">Sponsorship</a></li> 
          <li><a href="http://www.apache.org/foundation/contributing.html" title="Donate to the Foundation">Donations</a></li> 
          <li><a href="http://www.apache.org/foundation/buy_stuff.html" title="Buy Apache branded merchandise">Buy Stuff</a></li> 
          <li><a href="http://www.apache.org/foundation/thanks.html" title="Thank you to our Sponsors">Thanks</a></li> 
          <li><a href="http://www.apache.org/foundation/contact.html" title="Contact Us">Contact</a></li> 
        </ul>
      </div>
      <div class="grid_3 suffix_1">
        <h4>Foundation Projects</h4>
        <ul>
          <li><a href="http://attic.apache.org/" title="Inactive projects repository">Attic</a></li> 
          <li><a href="http://www.apache.org/foundation/conferences.html" title="Meetings of developers and users">Conferences</a></li> 
          <li><a href="http://community.apache.org/" title="Helping newcomers to the ASF">Community Development</a></li> 
          <li><a href="http://incubator.apache.org/" title="Shepherd for new projects">Incubator</a></li> 
          <li><a href="http://www.apache.org/dev/" title="ASF Infrastructure: Operations and howto documents for PMCs and contributors">Infrastructure</a></li> 
          <li><a href="http://www.apache.org/jcp/" title="Apache and the Java Community Process">JCP</a></li> 
          <li><a href="http://labs.apache.org/" title="The Innovation Laboratories of the Apache Software Foundation">Labs</a></li> 
          <li><a href="http://www.apache.org/legal/" title="Legal Affairs">Legal Affairs</a></li> 
          <li><a href="http://www.apache.org/press/" title="Public Relations">Public Relations</a></li> 
          <li><a href="http://www.apache.org/security/" title="Security">Security</a></li> 
          <li><a href="http://www.apache.org/travel/" title="Travel Assistance">Travel Assistance</a></li> 
        </ul>
      </div>
      
      <div class="grid_3">
        <h4>Community</h4>
        <ul>
          <li><a href="http://people.apache.org/" title="Apache committer homepages">People</a></li> 
          <li><a href="http://www.apache.org/memorials/" title="In memoriam of past committers">Memorials</a></li> 
          <li><a href="http://feathercast.org/" title="Apache Podcasts">Feathercast</a></li> 
          <li><a href="http://blogs.apache.org/" title="Apache Project Blogs">Project Blogs</a></li> 
          <li><a href="http://planet.apache.org/committers/" title="Apache Committers' Blogs">PlanetApache</a></li> 
        </ul>
      </div>
      <div class="grid_3">
        <h4>How It Works</h4>
        <ul>
          <li><a href="http://www.apache.org/foundation/how-it-works.html">Introduction</a></li> 
          <li><a href="http://www.apache.org/foundation/how-it-works.html#meritocracy">Meritocracy</a></li> 
          <li><a href="http://www.apache.org/foundation/how-it-works.html#structure">Structure</a></li> 
          <li><a href="http://www.apache.org/foundation/how-it-works.html#roles">Roles</a></li> 
          <li><a href="http://www.apache.org/foundation/how-it-works.html#management">Collaboration</a></li> 
          <li><a href="http://www.apache.org/foundation/how-it-works.html#incubator">Incubator</a></li> 
          <li><a href="http://www.apache.org/foundation/how-it-works.html#other">Other entities</a></li> 
          <li><a href="http://www.apache.org/foundation/glossary.html">Glossary</a></li> 
          <li><a href="http://www.apache.org/foundation/voting.html">Voting</a></li> 
        </ul>
      </div>
    </div>
    <div class="clear"></div>
    
    </div>
    <div id="copyright" class="container_16">
      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
    </div>
  </div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2011
                        <a href="http://www.apache.org">The Apache Software Foundation</a>.
            All Rights Reserved.      
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
