<!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 Dependency Management</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">
            <strong>Dependency Management</strong>
          </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="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>Project Dependency Management<a name="Project_Dependency_Management"></a></h2><a name="Project_Dependency_Management"></a><div class="section"><h3>compile<a name="compile"></a></h3><a name="compile"></a><p>The following is a list of compile dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile and run the submodule:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>org.apache.geronimo.javamail</td><td><a class="externalLink" href="http://geronimo.apache.org/maven/javamail/1.6/geronimo-javamail_1.4_mail">geronimo-javamail_1.4_mail</a></td><td>1.6</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.james</td><td><a class="externalLink" href="http://james.apache.org/mailet/api/">apache-mailet</a></td><td>2.4</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.james</td><td><a class="externalLink" href="http://james.apache.org/mailet/base/">apache-mailet-base</a></td><td>1.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</a></td></tr></table></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>
