You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2007/03/22 20:57:23 UTC

svn commit: r521427 [3/9] - in /james/server/trunk: ./ build-tools/ core-library/ core-library/src/ core-library/src/main/ core-library/src/main/config/ core-library/src/main/java/ core-library/src/main/java/org/ core-library/src/main/java/org/apache/ ...

Added: james/server/trunk/phoenix-deployment/www/build_instructions.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/build_instructions.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/build_instructions.html (added)
+++ james/server/trunk/phoenix-deployment/www/build_instructions.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - Building James</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<ul>
+<li>
+<a href="./summary.html">Summary</a>
+</li>
+<li>
+<a href="./spoolmanager.html">SpoolManager</a>
+</li>
+<li>
+<a href="./repositories.html">Repositories</a>
+</li>
+<li>
+<a href="./mailet_api.html">The Mailet API</a>
+</li>
+</ul>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</a>
+</li>
+<li>
+<a href="./adding_users.html">Adding Users</a>
+</li>
+<li>
+<a href="./provided_matchers.html">Provided Matchers</a>
+</li>
+<li>
+<a href="./provided_mailets.html">Provided Mailets</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<ul>
+<li>
+<a href="./smtp_auth.html">Using SMTP AUTH</a>
+</li>
+<li>
+<a href="./using_database.html">Using a Database with James</a>
+</li>
+<li>
+<a href="./usingTLS.html">Using TLS/SSL</a>
+</li>
+<li>
+<a href="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<ul>
+<li>
+<a href="./custom_matcher.html">How to write a custom Matcher</a>
+</li>
+<li>
+<a href="./custom_mailet.html">How to write a custom Mailet</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Getting the Source Code">
+<strong>Getting the Source Code</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>There are two ways to get the James source code.</p>
+<p>1. Download the source distribution - the source is available from the 
+<a href="http://james.apache.org/download.cgi">James release mirrors</a>.
+Simply choose the version of James you'd like to download, and pick the source distribution appropriate for your platform.
+</p>
+<p>2. Get the source code using SVN - this method gives you access to the cutting edge code 
+base.  Instructions on how to use SVN to get the James source code (the jakarta-james distribution) 
+can be found <a href="http://www.apache.org/dev/version-control.html">here</a>.
+James server repository is <a href="http://svn.apache.org/repos/asf/james/server/">here</a>.
+</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Required Tools">
+<strong>Required Tools</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>To run the build you need two third-party tools.</p>
+<p>1. Java Development Kit - You must have a JDK of Java version 1.4 or higher installed to build the 
+James distribution.  The exact JDKs available depend on the platform.  A JDK must be downloaded and
+installed before the build can run.</p>
+<p>2. Ant - This is a Java-tailored, XML-configured, extensible build or make system. You need ant (1.6+) in order
+to build James. You can get the latest version of Ant <a href="http://ant.apache.org/">here</a>. </p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Building the Distribution">
+<strong>Building the Distribution</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>In the top level directory of the source distribution you can use  ant, simple set the environment variable
+JAVA_HOME to the base directory of the  JDK.  Then run the build with any of the following command line arguments:
+<ul>
+<li>clean - deletes the build directory, making the system ready for a clean build.</li>
+<li>compile - compiles the source code.</li>
+<li>dist - generates all the James distributions, packed.</li>
+<li>dist-lite - generates all the James distributions, unpacked.  This is the default argument.</li>
+<li>javadocs - builds the James javadocs.</li>
+<li>usage - prints out the usage instructions for the script.</li>
+<li>website - builds the entirety of the James website.</li>
+<li>xdocs - creates the documentaion for James.</li>
+<li>run-unit-tests - run unit tests for James.</li>
+</ul>
+</p>
+<p>All build products are output in the dist subdirectory of the James source distribution directory.  There 
+is also a build subdirectory of the James source distribution directory that is created during the build process.  Both 
+of these directories will be deleted if you run build with the clean argument.</p>
+<p> <strong>Warning!</strong> Any changes you've made in the 'dist' directory 
+will be lost after a recompilation. If you are making changes to the config.xml 
+or other files, we recommend you backup and then change the copies in src to 
+avoid losing work. </p>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/changelog.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/changelog.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/changelog.html (added)
+++ james/server/trunk/phoenix-deployment/www/changelog.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,804 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - ChangeLog</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+<meta value="James Project Web Team" name="author"/>
+<meta value="site-dev@james.apache.org" name="email"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<ul>
+<li>
+<a href="./summary.html">Summary</a>
+</li>
+<li>
+<a href="./spoolmanager.html">SpoolManager</a>
+</li>
+<li>
+<a href="./repositories.html">Repositories</a>
+</li>
+<li>
+<a href="./mailet_api.html">The Mailet API</a>
+</li>
+</ul>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</a>
+</li>
+<li>
+<a href="./adding_users.html">Adding Users</a>
+</li>
+<li>
+<a href="./provided_matchers.html">Provided Matchers</a>
+</li>
+<li>
+<a href="./provided_mailets.html">Provided Mailets</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<ul>
+<li>
+<a href="./smtp_auth.html">Using SMTP AUTH</a>
+</li>
+<li>
+<a href="./using_database.html">Using a Database with James</a>
+</li>
+<li>
+<a href="./usingTLS.html">Using TLS/SSL</a>
+</li>
+<li>
+<a href="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<ul>
+<li>
+<a href="./custom_matcher.html">How to write a custom Matcher</a>
+</li>
+<li>
+<a href="./custom_mailet.html">How to write a custom Mailet</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0 Final">
+<strong>Version 2.3.0 Final</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 23 October 2006</p>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0rc5">
+<strong>Version 2.3.0rc5</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 12 October 2006</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-625">JAMES-625</a>] - an empty mbox will cause an error at pop3 login</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-644">JAMES-644</a>] - FileRegexMatcher possibly leaks minor memory on startup</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-649">JAMES-649</a>] - error "OutOfMemoryError: JAVA HEAP SPACE" in connections log file when doing a POP TOP for 4000 messages</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-655">JAMES-655</a>] - MboxMailRepository throws NPE when storing mail with mail from: &lt;&gt;</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0rc4">
+<strong>Version 2.3.0rc4</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 2 October 2006</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-626">JAMES-626</a>] - Invalid (outdated) urls in config files.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-631">JAMES-631</a>] - Default host configuration for InSpammerBlacklist is relative: it should contain a trailing "." or it will reject all mail when the default domain has an "*" IN A rule.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-638">JAMES-638</a>] - Wrong default encoding in text message (Autoconverted: from 8bit to quoted-printable)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-639">JAMES-639</a>] - SerialUID is not hardcoded</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-618">JAMES-618</a>] - Move server-site documents from james/server repository to james/site/server repository</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-634">JAMES-634</a>] - Fix m2 projects to not lookup dependencies on ibiblio, to simplify the website build and to include 2.2.0 and 2.3.0 docs</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0rc3">
+<strong>Version 2.3.0rc3</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 15 September 2006</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-327">JAMES-327</a>] - Mailet overview not complete</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-579">JAMES-579</a>] - Update license headers and NOTICE to follow the latest ASF requirements</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-591">JAMES-591</a>] - LogMessage mailet use wrong configutre option</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-594">JAMES-594</a>] - JVM_OPTS get passed two times</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-603">JAMES-603</a>] - Outgoing spooling stuck over old mails when more than 1000 old mails are present in outgoing.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-609">JAMES-609</a>] - MailImpl.setMessage and possible NPE: regression from 2.2.0 and 2.3.0rc1</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-541">JAMES-541</a>] - Check what we need to bundle bcprov BouncyCastle JCE provider</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-613">JAMES-613</a>] - Define a new version for Mailet API and update James.java to return the new version.</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Wish">
+<strong>Wish</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-581">JAMES-581</a>] - Add an "Upgrade documentation" to our docs explaining the upgrade from 2.2.0 to 2.3.0</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0rc2">
+<strong>Version 2.3.0rc2</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 12 August 2006</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-574">JAMES-574</a>] - Annoying logging of whitelist/blacklist nomatching as "unknown host exception thrown: listname" if INFO is enabled</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-580">JAMES-580</a>] - NPE is issued when receiving a "read receipt" from MS Outlook, and &lt;checkValidSenderDomain&gt; is set to true</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-584">JAMES-584</a>] - FileStreamStore diskspace leak for removed messages in file based spool under windows</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-585">JAMES-585</a>] - SMTP Server may leak temporary ($[JAMES}/temp/*.m64) files</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-587">JAMES-587</a>] - CommandListServManager does not properly handle invalid commands.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-588">JAMES-588</a>] - XMLResource getString methods have incorrect javadocs, and one will throw an NPE.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-612">JAMES-612</a>] - James File Repository Error: Too many open files</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-432">JAMES-432</a>] - Reorganize and update xdocs documentation and site generation</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Wish">
+<strong>Wish</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-582">JAMES-582</a>] - Released packages confusions (name, artifacts)</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0rc1">
+<strong>Version 2.3.0rc1</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 25 July 2006</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-566">JAMES-566</a>] - Fastfail DNSRBL blacklisted messages are rejected even if the sender user is successfully SMTP AUTHenticated</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-570">JAMES-570</a>] - James insert a Return-Path: null in outgoing email</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-568">JAMES-568</a>] - reorganize download area structure</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0b3">
+<strong>Version 2.3.0b3</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 15 July 2006</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-554">JAMES-554</a>] - Set the right svn property for excutable files</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-559">JAMES-559</a>] - Message body get lost after call saveChanges() and move to other processor</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-560">JAMES-560</a>] - SetMimeHeader not throw an MessagingException if needed config values missed</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-561">JAMES-561</a>] - User aliasing does not work</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0b2">
+<strong>Version 2.3.0b2</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Unreleased</p>
+<p>Detail</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-527">JAMES-527</a>] - data-source for default derby maildb is configured with a relative path</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-535">JAMES-535</a>] - Denial of service (CPU consumption) via a long argument to the MAIL command.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-538">JAMES-538</a>] - Original headers are lost when trying to alter headers of a cloned message</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-540">JAMES-540</a>] - catch lifecycle problems for handlers</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Improvement">
+<strong>Improvement</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-553">JAMES-553</a>] - Upgrade to Derby 10.1.3.1</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="New Feature">
+<strong>New Feature</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-537">JAMES-537</a>] - Add ConfigOption to disable the RemoteManager</li>
+</ul>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-496">JAMES-496</a>] - Add a default hardcoded configuration for the SMTPHandlerChain</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-529">JAMES-529</a>] - Add a GenericAddFooter for use in AddFooter and CommandListservFooter</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-536">JAMES-536</a>] - Decide what to do with repository implementations configured by default (db/dbfile/file)</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0b1">
+<strong>Version 2.3.0b1</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 9 June 2006</p>
+<p>Details</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-499">JAMES-499</a>] - Inconsistent usage of the lastUpdated field for Mail objects</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-505">JAMES-505</a>] - ClassCastException in UsersRepositoryAliasingForwarding using file based users store</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-512">JAMES-512</a>] - OutOfMemoryError -- object not released.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-522">JAMES-522</a>] - Having the ClamAVScan mailet configured, but clamd unavailable when JAMES starts, keeps JAMES from starting.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-524">JAMES-524</a>] - James fails to create mysql tables with mysql-4.1.</li>
+</ul>
+                
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-513">JAMES-513</a>] - Rename AddHeader and AddHeaderHandler</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0a3">
+<strong>Version 2.3.0a3</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Details</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-456">JAMES-456</a>] - AddFooter mailet javax.mail.internet.ParseException</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-474">JAMES-474</a>] - NullPointerException and bodymessage lost with weird configurations in message spooling</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-489">JAMES-489</a>] - ArrayIndexOutOfBoundsException in RemoteDelivery when an mail has errorstate and error_message 0</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-490">JAMES-490</a>] - Javamail 1.4 regression: SocketFetcher changed to require SocketFactory implementation</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-501">JAMES-501</a>] - sendmail.py get not include in build</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-503">JAMES-503</a>] - SpoolManager locking issues</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-504">JAMES-504</a>] - RemoteDelivery threads do not unlock delayed mails</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0a2">
+<strong>Version 2.3.0a2</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Details</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-368">JAMES-368</a>] - AddFooter couldn't process mails which MimeType is multipart/related</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-419">JAMES-419</a>] - NPE during 8bit conversion of non-mime messages</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-434">JAMES-434</a>] - NPE on empty sender and AUTHenticated user</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-443">JAMES-443</a>] - AddFooter and Encoding issues</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-446">JAMES-446</a>] - NPE while fetching mail (FetchMail)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-447">JAMES-447</a>] - ClassCastException when storing multipart message without Msg ID</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-452">JAMES-452</a>] - Broken messages after passing james</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-455">JAMES-455</a>] - AddFooter mailet throw UnsupportedEncodingException</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-458">JAMES-458</a>] - SSL not working in James 2.3.0a1</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-459">JAMES-459</a>] - Incompatible/Duplicate excalibur-cli-1.0.jar library in classpath</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-460">JAMES-460</a>] - Running James as an NT service</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-462">JAMES-462</a>] - Error in message.getLineCount (Error using NotifyPostmaster with James 2.3)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-466">JAMES-466</a>] - java.sql.SQLException: Error reading from InputStream java.io.IOException in current trunk</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-467">JAMES-467</a>] - corrupt messages in james trunk</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-470">JAMES-470</a>] - DNSRBLHandler config error</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-473">JAMES-473</a>] - AddHeaderHandler configure bug</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-475">JAMES-475</a>] - SQLException on james trunk after build and without modifications of config.xml</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-476">JAMES-476</a>] - NPE in RemoteDelivery</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-482">JAMES-482</a>] - incorrect state on duplicate mail (LinearProcessor)</li>
+</ul>
+    
+<div class="subsection">
+<div class="subsection-header">
+<a name="Improvement">
+<strong>Improvement</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-158">JAMES-158</a>] - Stream body in JDBCMailRepository.store(Mail)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-299">JAMES-299</a>] - Support for SMTP auth to gateway server in RemoteDelivery mailet</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-371">JAMES-371</a>] - Speed improvement in SpoolManager</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-438">JAMES-438</a>] - add GenericMailet.getInitParameter(name,default)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-440">JAMES-440</a>] - Improve DBCP: provide more DBCP options, like removeAbandoned</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-441">JAMES-441</a>] - Add an option to support aliases (CNAME) for MX records</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-445">JAMES-445</a>] - Enforcement for HELO/EHLO commands before MAIL</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-450">JAMES-450</a>] - "LocalUsers" user repository should be wired in the assembly and not hardcoded in components</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-469">JAMES-469</a>] - Make SMTP message queuing configurable (as an Handler)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-477">JAMES-477</a>] - Configure option to disable heloEhloEnforcement to be compatible with james &lt; 2.3.0</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-478">JAMES-478</a>] - Only check against RBL if the client is not allowed to relay</li>
+</ul>
+    
+<div class="subsection">
+<div class="subsection-header">
+<a name="New Feature">
+<strong>New Feature</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-427">JAMES-427</a>] - [PATCH] Introduce Unit Testing</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-437">JAMES-437</a>] - add failed recipient address to log when authorization fails</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-465">JAMES-465</a>] - Check for valid sender domain in mail from</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-468">JAMES-468</a>] - Limit MaxRcpt per Email</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-471">JAMES-471</a>] - Tarpit support</li>
+</ul>
+        
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-416">JAMES-416</a>] - Upgrade to javamail-1.3.3</li>
+</ul>
+        
+<div class="subsection">
+<div class="subsection-header">
+<a name="Wish">
+<strong>Wish</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-451">JAMES-451</a>] - Check for valid domain in HELO</li>
+</ul>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Version 2.3.0a1">
+<strong>Version 2.3.0a1</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Released 15 February 2006</p>
+<p>
+James 2.3.0a1 is "storage" compatible with 2.2.0 (It uses the same files/db formats of James 2.2.0). Configuration should be updated following this instructions. Mailets developed against 2.2.0 are not binary compatible with 2.3.0 but rebuilding mailets in 2.3.0a1 should be an easy task: just replace "Component"s with "Service"s and replace "MailStore" with "Store" and rebuild. Below are some highlights of features and changes already available:
+<ul>
+<li>Phoenix container upgraded to the latest trunk: better classpath management for mailets</li>
+<li>Derby support: also made it the default storage engine</li>
+<li>JavaMail 1.3.2 (not JavaMail 1.3.3 because of known bugs with Base64 encoding)</li>
+<li>Upgraded dependencies to the latest known stable releases (dnsjava, excalibur components, cornerstone, etc.)</li>
+<li>Removed FetchPop</li>
+<li>Command pattern for SMTPServer configuration (make it easier for developers to customize fastfail)</li>
+<li>Increased components granularity/flexibility: many top level components have been refactored to be more modular (look at the new assembly.xml)</li>
+<li>SMTP server now supports 8BITMIME, ENHANCEDSTATUSCODES, PIPELINING</li>
+<li>Introduced a few experimental S/MIME and Bayesian matcher/mailets</li>
+<li>Fixed more than 40 bugs against 2.2.0</li>
+<li>And much more!</li>
+</ul>
+</p>
+<p>Details</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Bug">
+<strong>Bug</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-138">JAMES-138</a>] - Don't keep all mailboxes in-memory forever</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-152">JAMES-152</a>] - When a Received header is invalid mail may be created with a null remote address and host name</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-154">JAMES-154</a>] - fetchmail config. files not copied to .sar</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-237">JAMES-237</a>] - J2 1.5'enum' is a keyword</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-250">JAMES-250</a>] - fail to start if installed under a "bin" directory</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-264">JAMES-264</a>] - mail list loop caused by using Return-Path</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-286">JAMES-286</a>] - Exceeding maximum value with MAIL SIZE causes NullPointerException</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-295">JAMES-295</a>] - Missing sqlDefs wont be detected</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-296">JAMES-296</a>] - James does not handle Source Routing</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-300">JAMES-300</a>] - Fetchmail can't fetch mails</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-305">JAMES-305</a>] - AttachmentFileNameIs never matches if the message is S/MIME signed</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-306">JAMES-306</a>] - AttachmentFileNameIs may throw  UnsupportedEncodingException</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-311">JAMES-311</a>] - Nntp very picky with clients</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-312">JAMES-312</a>] - AttachmentFileNameIs matcher may throw an Exception examining a multipart/alternative message</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-316">JAMES-316</a>] - java.lang.ArrayIndexOutOfBoundsException from RemoteDelivery</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-317">JAMES-317</a>] - FromProcessor doesn't delete, throws ClassCastException</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-318">JAMES-318</a>] - java.lang.NullPointerException when host is unknown</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-320">JAMES-320</a>] - Some messages cause POP3 output stream to freeze on RETR.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-323">JAMES-323</a>] - using toUppercase, toLowerCase, equalsIgnoreCase without specifying the locale is a bug</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-328">JAMES-328</a>] - TOP &lt;msg&gt; 0 does not return a terminator on error</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-329">JAMES-329</a>] - DefaultUsersJdbcRepository readUserFromResultSet incorrect</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-337">JAMES-337</a>] - Exception when FromRepository tries to delete a message</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-343">JAMES-343</a>] - James does not compile using Sun JDK 5.0</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-356">JAMES-356</a>] - MimeMessageWrapper does not handle multiline headers</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-359">JAMES-359</a>] - remote address from Received header is not handled</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-361">JAMES-361</a>] - DSNBounce often report the dsn Status 5.5.0 incorrectly</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-372">JAMES-372</a>] - Inboxes deleted during OutOfMemoryError</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-378">JAMES-378</a>] - DSNBounce creates not rfc1894 compliant notifications</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-379">JAMES-379</a>] - MailImpl.duplicate() should also clone attributes and not only the container HashMap</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-380">JAMES-380</a>] - ESMTP Compliance fix</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-383">JAMES-383</a>] - new posts hanging</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-387">JAMES-387</a>] - Exception in BayesianAnalysis</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-396">JAMES-396</a>] - Wrong column order (IMHO) in primary key definition for SpoolRepositories.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-413">JAMES-413</a>] - James does not resolve CNAME DNS registrations</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-417">JAMES-417</a>] - ClassCastException handling the recipients after a DSNBounce</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-418">JAMES-418</a>] - Loader uses wrong method to obtain class loader/doesn't set context class loader</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-420">JAMES-420</a>] - Sometimes messages are delayed or stalled in the spool</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-421">JAMES-421</a>] - MailImpls sharing MimeMessages / LinearProcessor not cloning it after a partial match.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-428">JAMES-428</a>] - Deadlock in ServerConnection</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-430">JAMES-430</a>] - MailImpl#writeContentTo leaks thread</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-431">JAMES-431</a>] - Line ending and CRLF.CRLF issues in POP3 and SMTP</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-435">JAMES-435</a>] - James Service Wrapper displays wrong James version</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-436">JAMES-436</a>] - James trunk cannot be built with jdk1.4</li>
+</ul>
+    
+<div class="subsection">
+<div class="subsection-header">
+<a name="Improvement">
+<strong>Improvement</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-270">JAMES-270</a>] - Add MailAttributes to indicate when default values have been applied</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-303">JAMES-303</a>] - AttachmentFileNameIs matcher should be able to analyze zip file attachments</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-321">JAMES-321</a>] - Comments on configuri</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-333">JAMES-333</a>] - Build Broken in HEAD revision</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-338">JAMES-338</a>] - Upgrade to JavaMail 1.3.2</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-357">JAMES-357</a>] - DSNBounce should be configured by default</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-360">JAMES-360</a>] - Support for Additional "received for" headers: e.g. X-Envelope-To</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-363">JAMES-363</a>] - Move PostmasterAlias from code to james-confix.xml</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-369">JAMES-369</a>] - Always announce AUTH capability to clients</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-375">JAMES-375</a>] - RFC 1854 - Command Pipelining support</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-377">JAMES-377</a>] - rfc2034 ENHANCEDSTATUSCODES compliance</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-388">JAMES-388</a>] - Upgrade to dnsjava 2.0.0</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-389">JAMES-389</a>] - Invert "precompilation" logic for jdbc3</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-395">JAMES-395</a>] - Support latest hsqldb in sqlResources.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-398">JAMES-398</a>] - Add SMIME mailets for signature verification and message decrypt</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-399">JAMES-399</a>] - Update bouncycastle to 129 and remove jdk13 compatibility</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-407">JAMES-407</a>] - James inprotocol handling framework</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-410">JAMES-410</a>] - Re-enable EHLO support in RemoteDelivery</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-411">JAMES-411</a>] - update Mailet's Mail to support most of the current james mailets</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-412">JAMES-412</a>] - Increase James component granularity / flexibility</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-414">JAMES-414</a>] - Add more flexibility to LocalDelivery</li>
+</ul>
+    
+<div class="subsection">
+<div class="subsection-header">
+<a name="New Feature">
+<strong>New Feature</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-257">JAMES-257</a>] - S/MIME Matchers/Mailets</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-258">JAMES-258</a>] - Add Bayesian Filtering</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-381">JAMES-381</a>] - Configurable RBL support</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-390">JAMES-390</a>] - Add derby support</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-423">JAMES-423</a>] - Give the remote manager a service promt</li>
+</ul>
+        
+<div class="subsection">
+<div class="subsection-header">
+<a name="Task">
+<strong>Task</strong>
+</a>
+</div>
+<div class="subsection-body"/>
+</div>
+<ul>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-149">JAMES-149</a>] - Add soft-fail to unresolved received from domains</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-190">JAMES-190</a>] - Apache license 2.0</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-391">JAMES-391</a>] - Move "candidates" libraries to the official lib / remove unused libraries</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-392">JAMES-392</a>] - Resolve deprecation use from MailetAPI for the next release</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-393">JAMES-393</a>] - Use Derby and db providers by default instead of file repositories.</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-394">JAMES-394</a>] - Remove OLD mm.mysql driver (not compatible with newer MySQL db)</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-400">JAMES-400</a>] - Move previous SMIME matcher/mailets to the new "smime" subpackages</li>
+<li>[<a href="http://issues.apache.org/jira/browse/JAMES-406">JAMES-406</a>] - Investigate about libraries upgradability (cornerstone/excalibur/avalon/phoenix)</li>
+</ul>
+
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/custom_mailet.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/custom_mailet.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/custom_mailet.html (added)
+++ james/server/trunk/phoenix-deployment/www/custom_mailet.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - Writing a Custom Mailet</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<ul>
+<li>
+<a href="./summary.html">Summary</a>
+</li>
+<li>
+<a href="./spoolmanager.html">SpoolManager</a>
+</li>
+<li>
+<a href="./repositories.html">Repositories</a>
+</li>
+<li>
+<a href="./mailet_api.html">The Mailet API</a>
+</li>
+</ul>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</a>
+</li>
+<li>
+<a href="./adding_users.html">Adding Users</a>
+</li>
+<li>
+<a href="./provided_matchers.html">Provided Matchers</a>
+</li>
+<li>
+<a href="./provided_mailets.html">Provided Mailets</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<ul>
+<li>
+<a href="./smtp_auth.html">Using SMTP AUTH</a>
+</li>
+<li>
+<a href="./using_database.html">Using a Database with James</a>
+</li>
+<li>
+<a href="./usingTLS.html">Using TLS/SSL</a>
+</li>
+<li>
+<a href="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<ul>
+<li>
+<a href="./custom_matcher.html">How to write a custom Matcher</a>
+</li>
+<li>
+<a href="./custom_mailet.html">How to write a custom Mailet</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Writing a Custom Mailet">
+<strong>Writing a Custom Mailet</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Implementing a custom mailet is generally a simple task, most of whose complexity 
+lies in coding the actual work to be done by the mailet.  This is largely due to the 
+simplicity of the Mailet interface and the fact that a GenericMailet class is provided 
+as part of the Mailet package.</p>
+<p>In this discussion we will assume that any mailet being implemented is a subclass of 
+GenericMailet.  The GenericMailet class serves to abstract away of the configuration and 
+logging details.  While it provides a noop implementation of the init() and destroy() methods, 
+these can be easily overridden to provide useful functionality.</p>
+<p>In general, the only four methods that you should need to implement are init(), destroy(), 
+getMailetInfo(), and service(Mail).  And only the last is required in all cases.</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Configuration">
+<strong>Configuration</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>As described in the <a href="spoolmanager_configuration.html">SpoolManager configuration 
+section</a>, mailets are configured with a set of String (name, value) pairs.  These values are
+passed into the Mailet upon initialization (although the details of this process are hidden by 
+the GenericMailet implementation).  GenericMailet provides access to this configuration 
+information through use of the getInitParameter(String) method.  Passing in the name of the 
+requested configuration value will yield the value if set, and null otherwise.  Configuration 
+values are available inside the init(), destroy(), and service(Mail) methods.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Logging">
+<strong>Logging</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>There is a simple logging mechanism provided by the Mailet API.  It does not support 
+logging levels, so any log filtering will have to be implemented in the Mailet code.  
+Logging is done by calling one of the two logging methods on GenericMailet - log(String) 
+or log(String,Throwable).  Logging is available inside the init(), destroy(), and service(Mail)
+methods.</p>
+<p>The value of getMailetInfo() for the Mailet is prepended to the log entries for that 
+Mailet.  So it may be desirable for you to override this method so you can distinguish mailet
+log entries by Mailet.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Initialization">
+<strong>Initialization</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>As part of the Mailet lifecycle, a Mailet is guaranteed to be initialized immediately after 
+being instantiated.  This happens once and only once for each Mailet instance.  The 
+Initialization phase is where configuration parsing and per-Mailet resource creation generally 
+take place.  Depending on your Mailet, it may or may not be necessary to do any initialization 
+of the mailet.  Initialization logic is implemented by overriding the init() method of 
+GenericMailet.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Servicing">
+<strong>Servicing</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>The bulk of the Mailet logic is expected to be invoked from the service(Mail) method.  This 
+method is invoked each time a mail message is to be processed by the mailet.  The message is 
+passed in as an instance of the Mail interface, which is part of the Mailet API.</p>
+<p>The Mail interface is essentially a light wrapper around JavaMail's MimeMessage class with a 
+few important differences.  See the Javadoc for the interface for a description of the additional
+methods available on this wrapper.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Destruction">
+<strong>Destruction</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>As part of the Mailet lifecycle, a Mailet is guaranteed to be destroyed when the container 
+cleans up the Mailet.  This happens once and only once for each Mailet instance.  The 
+Destruction phase is where per-Mailet resource release generally takes place.  Depending 
+on your Mailet, it may or may not be necessary to do any destruction 
+of the mailet.  Destruction logic is implemented by overriding the destroy() method of 
+GenericMailet.</p>
+</div>
+</div>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Deploying a Custom Mailet">
+<strong>Deploying a Custom Mailet</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Once a Mailet has been successfully implemented there are only a couple of 
+additional steps necessary to actually deploy the Mailet.</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Adding Your Mailet to the Classpath">
+<strong>Adding Your Mailet to the Classpath</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+The Mailet must be added to James' classpath so that the Mailet can be loaded by James.  There 
+are three ways to add a custom Mailet to the classpath so that James will be able to load the 
+Mailet.  These are:
+</p>
+<p>
+1a. Download the source distribution, add a jar file containing the custom files to the lib 
+directory of the unpacked source distribution, and build a new .sar file by following the 
+directions <a href="build_instructions.html">here</a>.  This new .sar file will now 
+include your custom classes.
+</p>
+<p>
+or
+</p>
+<p>
+1b. Place a jar file containing the custom class files in the lib subdirectory of the James
+installation.  It will also be necessary to unpack the JavaMail and James jar files from 
+the provided .sar file and add them to this directory.
+</p>
+<p>
+or
+</p>
+<p>
+1c. Place a jar file containing the custom class files in the path/to/james/apps/james/SAR-INF/lib subdirectory.
+Please note that you must start james once to get the apps/james/SAR-INF directory created. After that is done create 
+the lib directory and copy the jar to the directory.
+</p>
+<p>
+2. After this is done get sure you add the mailet package to the config.xml. For example: 
+<p>
+<div class="source">
+&lt;!-- Set the Java packages from which to load mailets and matchers --&gt;
+&lt;mailetpackages&gt;
+    &lt;mailetpackage&gt;org.apache.james.transport.mailets&lt;/mailetpackage&gt;
+    &lt;mailetpackage&gt;org.apache.james.transport.mailets.smime&lt;/mailetpackage&gt;
+    &lt;mailetpackage&gt;your.costum.package.transport-mailets&lt;/mailetpackage&gt;
+&lt;/mailetpackages&gt;
+</div>
+</p>
+After that restart james.
+</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="James Configuration">
+<strong>James Configuration</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>Configuration of the processor chain is discussed 
+<a href="spoolmanager_configuration.html">elsewhere</a> in this documentation.  The 
+details of configuring mailet deployment is discussed at length.  Here we will only comment 
+that it is important to add the appropriate mailet package for your custom mailet to the 
+&lt;mailetpackages&gt; list and that the name of your mailet should not conflict with any of 
+the mailets described <a href="provided_mailets.html">here</a>.
+</p>
+</div>
+</div>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/custom_matcher.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/custom_matcher.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/custom_matcher.html (added)
+++ james/server/trunk/phoenix-deployment/www/custom_matcher.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - Writing a Custom Matcher</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<ul>
+<li>
+<a href="./summary.html">Summary</a>
+</li>
+<li>
+<a href="./spoolmanager.html">SpoolManager</a>
+</li>
+<li>
+<a href="./repositories.html">Repositories</a>
+</li>
+<li>
+<a href="./mailet_api.html">The Mailet API</a>
+</li>
+</ul>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</a>
+</li>
+<li>
+<a href="./adding_users.html">Adding Users</a>
+</li>
+<li>
+<a href="./provided_matchers.html">Provided Matchers</a>
+</li>
+<li>
+<a href="./provided_mailets.html">Provided Mailets</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<ul>
+<li>
+<a href="./smtp_auth.html">Using SMTP AUTH</a>
+</li>
+<li>
+<a href="./using_database.html">Using a Database with James</a>
+</li>
+<li>
+<a href="./usingTLS.html">Using TLS/SSL</a>
+</li>
+<li>
+<a href="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<ul>
+<li>
+<a href="./custom_matcher.html">How to write a custom Matcher</a>
+</li>
+<li>
+<a href="./custom_mailet.html">How to write a custom Mailet</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Writing a Custom Matcher">
+<strong>Writing a Custom Matcher</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Implementing a custom matcher is generally a simple task, most of whose complexity 
+lies in coding the actual work to be done by the matcher.  This is largely due to the 
+simplicity of the Matcher interface and the fact that a couple of abstract Matcher template
+classes are provided in the Mailet package.  These two classes, GenericMatcher and 
+GenericRecipientMatcher, greatly simplfy the task of Matcher authoring.</p>
+<p>As discussed elsewhere in this manual, the Matcher interface does not simply match 
+or not match a particular message.  Rather, it returns some subset of the original message
+recipients as a result of the match(Mail) method.  This leads to the two different abstract
+Matcher implementations.</p>
+<p>The first, GenericMatcher, is intended for matchers where recipient evaluation is not 
+necessary.  Basically, you should subclass this implementation if your matcher is going to 
+return all or none of the recipients.</p>
+<p>When subclassing this class, there are four methods that potentially need to be 
+overridden.  These are getMatcherInfo(), init(), match(Mail), and destroy().  More on these 
+anon.</p>
+<p>The second implementation, GenericRecipientMatcher, is intended for those matchers where 
+each recipient is evaluated individually.  It is a subclass of GenericMatcher, and inherits 
+most of its behavior from that class.  The only major difference is that subclasses are 
+expected to override matchRecipient(MailAddress) rather than match(Mail).</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Configuration">
+<strong>Configuration</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>Matchers are passed a single String as part of their configuration.  Interpretation of this 
+list is left entirely to the body of the Matcher.  This String value is available in 
+the body of the Matcher through use of the getCondition() method of the 
+GenericMatcher class.  This method returns the String value passed to the Matcher, and returns 
+null if no value is set.  The method getCondition() is available inside the init(), destroy(), match(Mail), 
+and matchRecipient(MailAddress) methods.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Logging">
+<strong>Logging</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>There is a simple logging mechanism provided by the Mailet API.  It does not support 
+logging levels, so any log filtering will have to be implemented in the Matcher code.  
+Logging is done by calling one of the two logging methods on GenericMatcher/GenericRecipientMatcher - log(String) 
+or log(String,Throwable).  Logging is available inside the init(), destroy(), match(Mail), 
+and matchRecipient(MailAddress) methods.</p>
+<p>The value of getMatcherInfo() for the Matcher is prepended to the log entries for that 
+Matcher.  So it may be desirable for you to override this method so you can distinguish Matcher
+log entries by Matcher.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Initialization">
+<strong>Initialization</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>As part of the Matcher lifecycle, a Matcher is guaranteed to be initialized immediately after 
+being instantiated.  This happens once and only once for each Matcher instance.  The 
+Initialization phase is where configuration parsing and per-Matcher resource creation generally 
+take place.  Depending on your Matcher, it may or may not be necessary to do any initialization 
+of the Matcher.  Initialization logic is implemented by overriding the init() method of 
+GenericMatcher/GenericRecipientMatcher.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Matching">
+<strong>Matching</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>It is the matching phase where the Matcher's work is done.  The exact form of this phase largely 
+depends on which Matcher superclass is subclassed.</p>
+<p>If GenericMatcher is being subclassed, it is the match(Mail) that is implemented.  As described 
+above, this method returns a Collection of MailAddresses that is a subset of the original 
+recipients for the Mail object.</p>
+<p>If it is a purely recipient-filtering Matcher, then the GenericRecipientMatcher should be
+subclassed.  In this case, developers must provide an implementation of the 
+matchRecipient(MailAddress) method.  This method returns true if the recipient matches,
+and false otherwise.</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Destruction">
+<strong>Destruction</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>As part of the Matcher lifecycle, a Matcher is guaranteed to be destroyed when the container 
+cleans up the Matcher.  This happens once and only once for each Matcher instance.  The 
+Destruction phase is where per-Matcher resource release generally takes place.  Depending 
+on your Matcher, it may or may not be necessary to do any destruction 
+of the Matcher.  Destruction logic is implemented by overriding the destroy() method of 
+GenericMatcher/GenericRecipientMatcher.</p>
+</div>
+</div>
+</div>
+</p>
+</div>
+<div class="section">
+<div class="section-header">
+<a name="Deploying a Custom Matcher">
+<strong>Deploying a Custom Matcher</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+<p>Once a Matcher has been successfully implemented there are only a couple of 
+additional steps necessary to actually deploy the Matcher.</p>
+<div class="subsection">
+<div class="subsection-header">
+<a name="Adding Your Matcher to the Classpath">
+<strong>Adding Your Matcher to the Classpath</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>
+The Matcher must be added to James' classpath so that the Matcher can be loaded by James.  There 
+are two ways to add a custom Matcher to the classpath so that James will be able to load the 
+Matcher.  These are:
+</p>
+<p>
+1a. Download the source distribution, add a jar file containing the custom files to the lib 
+directory of the unpacked source distribution, and build a new .sar file by following the 
+directions <a href="build_instructions.html">here</a>.  This new .sar file will now 
+include your custom classes.
+</p>
+<p>
+or
+</p>
+<p>
+1b. Place a jar file containing the custom class files in the lib subdirectory of the James
+installation.  It will also be necessary to unpack the JavaMail and James jar files from 
+the provided .sar file and add them to this directory.
+</p>
+<p>
+or
+</p>
+<p>
+1c. Place a jar file containing the custom class files in the path/to/james/apps/james/SAR-INF/lib subdirectory.
+Please note that you must start james once to get the apps/james/SAR-INF directory created. After that is done create 
+the lib directory and copy the jar to the directory.
+</p>
+<p>
+2. After this is done get sure you add the matcher package to the config.xml. For example: 
+<p>
+<div class="source">
+&lt;!-- Set the Java packages from which to load mailets and matchers --&gt;
+&lt;matcherpackages&gt;
+    &lt;matcherpackage&gt;org.apache.james.transport.matchers&lt;/matcherpackage&gt;
+    &lt;matcherpackage&gt;org.apache.james.transport.matchers.smime&lt;/matcherpackage&gt;
+    &lt;matcherpackage&gt;your.costum.package.transport-matchers&lt;/matcherpackage&gt;
+&lt;/matcherpackages&gt;
+</div>
+</p>
+After that restart james.
+</p>
+</div>
+</div>
+<div class="subsection">
+<div class="subsection-header">
+<a name="James Configuration">
+<strong>James Configuration</strong>
+</a>
+</div>
+<div class="subsection-body">
+<p>Configuration of the processor chain is discussed 
+<a href="spoolmanager_configuration.html">elsewhere</a> in this documentation.  The 
+details of configuring matcher deployment is discussed at length.  Here we will only comment 
+that it is important to add the appropriate matcher package for your custom matcher to the 
+&lt;matcherpackages&gt; list and that the name of your matcher should not conflict with any of 
+the matchers described <a href="provided_matchers.html">here</a>.
+</p>
+</div>
+</div>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/design_objectives.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/design_objectives.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/design_objectives.html (added)
+++ james/server/trunk/phoenix-deployment/www/design_objectives.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - Design Objectives</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+<meta value="James Project Web Team" name="author"/>
+<meta value="site-dev@james.apache.org" name="email"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<ul>
+<li>
+<a href="./summary.html">Summary</a>
+</li>
+<li>
+<a href="./spoolmanager.html">SpoolManager</a>
+</li>
+<li>
+<a href="./repositories.html">Repositories</a>
+</li>
+<li>
+<a href="./mailet_api.html">The Mailet API</a>
+</li>
+</ul>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</a>
+</li>
+<li>
+<a href="./adding_users.html">Adding Users</a>
+</li>
+<li>
+<a href="./provided_matchers.html">Provided Matchers</a>
+</li>
+<li>
+<a href="./provided_mailets.html">Provided Mailets</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<ul>
+<li>
+<a href="./smtp_auth.html">Using SMTP AUTH</a>
+</li>
+<li>
+<a href="./using_database.html">Using a Database with James</a>
+</li>
+<li>
+<a href="./usingTLS.html">Using TLS/SSL</a>
+</li>
+<li>
+<a href="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<ul>
+<li>
+<a href="./custom_matcher.html">How to write a custom Matcher</a>
+</li>
+<li>
+<a href="./custom_mailet.html">How to write a custom Mailet</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="Design Objectives">
+<strong>Design Objectives</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+      
+      <div class="subsection">
+<div class="subsection-header">
+<a name="features">
+<strong>features</strong>
+</a>
+</div>
+<div class="subsection-body">
+        <p>These are some of the currently implemented features:</p>
+        <p>
+          <i>
+            <b>Complete portability</b>
+          </i>  Apache James is be a 100% pure Java application
+       based on the Java 2 platform and the JavaMail 1.4 API.
+  </p>
+        <p>
+          <i>
+            <b>Protocol abstraction</b>
+          </i>  Unlike other mail engines, protocols are seen only
+       like "communication languages" ruling comunications between clients and
+       the server. Apache James is not be tied to any particular protocol but
+       follow an abstracted server design (like JavaMail did on the
+       client side)</p>
+        <p>
+          <i>
+            <b>Complete solution</b>
+          </i>  the mail system is able to handle both mail
+       transport and storage in a single server application. Apache James
+       works alone without the need for any other server or solution.</p>
+        <p>
+          <i>
+            <b>Mailet support</b>
+          </i>  Apache James supports the Apache Mailet API. A Mailet
+       is a discrete piece of mail-processing logic which is incorporated into
+       a Mailet-compliant mail-server's processing. This easy-to-write,
+       easy-to-use pattern allows developers to build powerful customized mail
+       systems. Examples of the services a Mailet might provide include: a
+       mail-to-fax or mail-to-phone transformer, a filter, a language translator, a mailing
+       list manager, etc. Several Mailets are included in the JAMES
+       distribution (see <a href="documentation.html">documentation</a>).</p>
+        <p>
+          <i>
+            <b>Resource abstraction</b>
+          </i>  Like protocols, resources are abstracted and,
+       accessed through defined interfaces (JavaMail for transport, JDBC for
+       spool storage or user accounts in RDBMS's, Apache Mailet API). The server is
+       highly modular and reuse solutions from other projects.</p>
+        <p>
+          <i>
+            <b>Secure and multi-threaded design</b>
+          </i>  Based on the technology developed
+       for the Apache JServ servlet engine, Apache James has a careful,
+       security-oriented, full multi-threaded design, to allow performance,
+       scalability and mission-critical use.</p>
+        <p>Anything else you may want if you help us write it :-)</p>
+      </div>
+</div>
+      <div class="subsection">
+<div class="subsection-header">
+<a name="standards compliance">
+<strong>standards compliance</strong>
+</a>
+</div>
+<div class="subsection-body">
+        <p>It is the existence of published "open" standards which 
+allows independant teams to develop interoperable software.
+<br/>James attempts to support a number of these standards most of which are 
+IETF RFC's and in the areas covered by these standards the published standard 
+is our requirements document.
+<br/>This sometimes leads to confusion where behaviour is not 
+the subject of a relevant standard, or conflict where common 
+(de-facto) behaviour is actually at odds with a supported standard.
+<br/>We believe that it is our responsibility to adhere to the published standard. 
+If we allow our implementation to deviate it means that we are tacitly encouraging 
+the situation whereby interoperability is no longer guarenteed by standards 
+compliance alone, but also requires access to undocumented and possibly 
+even commercially licenced technology. There is no easy route for a 
+newcomer to aquire these secrets, and interoperabilty 
+becomes something only available to the elite.
+        </p>
+        <p>The James policy for issues of non-compliance tries to tread the fine line
+between a pragmatic acceptance of other people's misinterpretation of the
+RFC's and an evangelical defence of open standards as the key to freedom of interoperation.
+        </p>
+        <p>
+In practice this policy is that certain well argued of cases of
+non-compliance which can be *safely* worked around, will be tolerated by
+James.
+</p>
+        <p>
+In cases (like jira issue JAMES-344 ) where variance from a published standard is
+required it is desirable that this functionality is disabled in James by default,
+it must be prominently and clearly documented that this causes James 
+to violate the relevant standard, and should be enabled by explicit 
+configuration, making its use a conscious decision of the user rather 
+than an decision taken by the James team.
+</p>
+        <p>
+In cases where the required behaviour is not within the scope of any standard which
+James claims to support (such as behaviour which is a de-facto standard or
+an <i>internet draft</i> RFC but not yet subject of a <i>standards track</i> RFC) it is
+acceptable to implement the behaviour so long as it is adequately
+documented (for instance by refrence to an <i>internet draft</i> or 
+other public document) and users can be clear about what to expect from James.
+</p>
+      </div>
+</div>
+    </div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: james/server/trunk/phoenix-deployment/www/dns_configuration.html
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/dns_configuration.html?view=auto&rev=521427
==============================================================================
--- james/server/trunk/phoenix-deployment/www/dns_configuration.html (added)
+++ james/server/trunk/phoenix-deployment/www/dns_configuration.html Thu Mar 22 12:57:00 2007
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Apache James - Mail and News server - James 2.3 - Configuring DNS Services</title>
+<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
+</head>
+<body>
+<table cellspacing="0" width="100%" border="0" class="page-header">
+<!--PAGE HEADER-->
+<tr>
+<td colspan="2">
+<!--ASF LOGO-->
+<a href="http://www.apache.org/">
+<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
+</a>
+<!--PROJECT LOGO-->
+<a href="http://james.apache.org/">
+<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
+</a>
+</td>
+</tr>
+</table>
+<table cellspacing="4" width="100%" border="0">
+<tr>
+<!--LEFT SIDE NAVIGATION-->
+<td nowrap="true" valign="top" class="left-navbar">
+<table cellpadding="0" cellspacing="0" width="100%" border="0">
+<tr>
+<td>
+<a href="http://apachecon.com">
+<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
+</a>
+</td>
+</tr>
+</table>
+<navbar name="lhs">
+
+    <p>
+<strong>Concepts</strong>
+</p>
+<ul>
+<li>
+<a href="./summary.html">Summary</a>
+</li>
+<li>
+<a href="./spoolmanager.html">SpoolManager</a>
+</li>
+<li>
+<a href="./repositories.html">Repositories</a>
+</li>
+<li>
+<a href="./mailet_api.html">The Mailet API</a>
+</li>
+</ul>
+    
+    <p>
+<strong>How to...</strong>
+</p>
+<ul>
+<li>
+<a href="./build_instructions.html">Build James</a>
+</li>
+<li>
+<a href="./installation_instructions.html">Install James</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Configuration</strong>
+</p>
+<ul>
+<li>
+<a href="./dns_configuration.html">DNS Server</a>
+</li>
+<li>
+<a href="./pop3_configuration.html">POP3 Server</a>
+</li>
+<li>
+<a href="./smtp_configuration.html">SMTP Server</a>
+</li>
+<li>
+<a href="./nntp_configuration.html">NNTP Server</a>
+</li>
+<li>
+<a href="./fetchmail_configuration.html">FetchMail</a>
+</li>
+<li>
+<a href="./remotemanager_configuration.html">RemoteManager</a>
+</li>
+<li>
+<a href="./spoolmanager_configuration.html">SpoolManager</a>
+</li>
+<li>
+<a href="./serverwide_configuration.html">Server-wide</a>
+</li>
+<li>
+<a href="./adding_users.html">Adding Users</a>
+</li>
+<li>
+<a href="./provided_matchers.html">Provided Matchers</a>
+</li>
+<li>
+<a href="./provided_mailets.html">Provided Mailets</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Common Configurations</strong>
+</p>
+<ul>
+<li>
+<a href="./smtp_auth.html">Using SMTP AUTH</a>
+</li>
+<li>
+<a href="./using_database.html">Using a Database with James</a>
+</li>
+<li>
+<a href="./usingTLS.html">Using TLS/SSL</a>
+</li>
+<li>
+<a href="./james_and_sendmail.html">James and Sendmail</a>
+</li>
+<li>
+<a href="./mailing_lists.html">Creating Mailing Lists</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Customization</strong>
+</p>
+<ul>
+<li>
+<a href="./custom_matcher.html">How to write a custom Matcher</a>
+</li>
+<li>
+<a href="./custom_mailet.html">How to write a custom Mailet</a>
+</li>
+</ul>
+    
+    <p>
+<strong>Project</strong>
+</p>
+<ul>
+<li>
+<a href="./changelog.html">Changelog</a>
+</li>
+</ul>
+
+   </navbar>
+</td>
+<!--MAIN BODY-->
+<td align="left" valign="top" class="main-body">
+<div class="section">
+<div class="section-header">
+<a name="DNS Configuration">
+<strong>DNS Configuration</strong>
+</a>
+</div>
+<p>
+<div class="section-body">
+
+  
+<p>DNS Transport services are controlled by a configuration block in
+the config.xml. This block affects SMTP remote delivery.</p>
+
+<p>The dnsserver tag defines the boundaries of the configuration
+block. It encloses all the relevant configuration for the DNS server.
+The behavior of the DNS service is controlled by the attributes and
+children of this tag.</p> 
+
+<p>The standard children of the dnsserver tag are:</p>
+<ul>
+<li>
+<strong>servers</strong> - This is a list of DNS Servers to be used by James and are 
+specified by one, or more <strong>
+<i>server</i>
+</strong> elements, which are child elements. 
+Each server element is the IP address of a single DNS server.
+<div class="source">
+&lt;servers&gt;
+  &lt;server&gt;127.0.0.1&lt;/server&gt;
+  &lt;server&gt;166.181.194.205&lt;/server&gt;
+&lt;/servers&gt;
+</div>
+</li>
+
+<li>
+<strong>authoritative</strong> - (<strong>true/false</strong>)This tag specifies whether or not 
+to require authoritative (non-cached) DNS records; to only accept DNS responses that are 
+authoritative for the domain. It is primarily useful in an intranet/extranet environment.
+<p>This should always be <strong>false</strong> unless you understand the implications.</p>
+</li>
+</ul>
+</div>
+</p>
+</div>
+</td>
+</tr>
+<!--FOOTER SEPARATOR-->
+<tr>
+<td colspan="2">
+<hr size="1" noshade=""/>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<div class="page-footer">
+<em>
+        Copyright © 1999-2006, The Apache Software Foundation
+        </em>
+</div>
+</td>
+</tr>
+</table>
+</body>
+</html>



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r521427 [3/9] - in /james/server/trunk: ./ build-tools/ core-library/ core-library/src/ core-library/src/main/ core-library/src/main/config/ core-library/src/main/java/ core-library/src/main/java/org/ core-library/src/main/java/org/apache/ ...

Posted by Stefano Bagnara <ap...@bago.org>.
WTF! I'm sorry but the "ant clean" did not remove the "www" folder so I 
committed it by mistake.

This should be the cause of so big changeset because everything else was 
svn-copies/deletes and a bunch of LICENSE/build.xml files.

Stefano

bago@apache.org ha scritto:
> Added: james/server/trunk/phoenix-deployment/www/build_instructions.html
> URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/build_instructions.html?view=auto&rev=521427
> ==============================================================================
> --- james/server/trunk/phoenix-deployment/www/build_instructions.html (added)
> +++ james/server/trunk/phoenix-deployment/www/build_instructions.html Thu Mar 22 12:57:00 2007
> @@ -0,0 +1,243 @@
> +<?xml version="1.0" encoding="iso-8859-1"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html>
> +<head>
> +<title>Apache James - Mail and News server - James 2.3 - Building James</title>
> +<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
> +</head>
> +<body>
> +<table cellspacing="0" width="100%" border="0" class="page-header">
> +<!--PAGE HEADER-->
> +<tr>
> +<td colspan="2">
> +<!--ASF LOGO-->
> +<a href="http://www.apache.org/">
> +<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
> +</a>
> +<!--PROJECT LOGO-->
> +<a href="http://james.apache.org/">
> +<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<table cellspacing="4" width="100%" border="0">
> +<tr>
> +<!--LEFT SIDE NAVIGATION-->
> +<td nowrap="true" valign="top" class="left-navbar">
> +<table cellpadding="0" cellspacing="0" width="100%" border="0">
> +<tr>
> +<td>
> +<a href="http://apachecon.com">
> +<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<navbar name="lhs">
> +
> +    <p>
> +<strong>Concepts</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./summary.html">Summary</a>
> +</li>
> +<li>
> +<a href="./spoolmanager.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./repositories.html">Repositories</a>
> +</li>
> +<li>
> +<a href="./mailet_api.html">The Mailet API</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>How to...</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./build_instructions.html">Build James</a>
> +</li>
> +<li>
> +<a href="./installation_instructions.html">Install James</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Configuration</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./dns_configuration.html">DNS Server</a>
> +</li>
> +<li>
> +<a href="./pop3_configuration.html">POP3 Server</a>
> +</li>
> +<li>
> +<a href="./smtp_configuration.html">SMTP Server</a>
> +</li>
> +<li>
> +<a href="./nntp_configuration.html">NNTP Server</a>
> +</li>
> +<li>
> +<a href="./fetchmail_configuration.html">FetchMail</a>
> +</li>
> +<li>
> +<a href="./remotemanager_configuration.html">RemoteManager</a>
> +</li>
> +<li>
> +<a href="./spoolmanager_configuration.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./serverwide_configuration.html">Server-wide</a>
> +</li>
> +<li>
> +<a href="./adding_users.html">Adding Users</a>
> +</li>
> +<li>
> +<a href="./provided_matchers.html">Provided Matchers</a>
> +</li>
> +<li>
> +<a href="./provided_mailets.html">Provided Mailets</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Common Configurations</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./smtp_auth.html">Using SMTP AUTH</a>
> +</li>
> +<li>
> +<a href="./using_database.html">Using a Database with James</a>
> +</li>
> +<li>
> +<a href="./usingTLS.html">Using TLS/SSL</a>
> +</li>
> +<li>
> +<a href="./james_and_sendmail.html">James and Sendmail</a>
> +</li>
> +<li>
> +<a href="./mailing_lists.html">Creating Mailing Lists</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Customization</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./custom_matcher.html">How to write a custom Matcher</a>
> +</li>
> +<li>
> +<a href="./custom_mailet.html">How to write a custom Mailet</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Project</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./changelog.html">Changelog</a>
> +</li>
> +</ul>
> +
> +   </navbar>
> +</td>
> +<!--MAIN BODY-->
> +<td align="left" valign="top" class="main-body">
> +<div class="section">
> +<div class="section-header">
> +<a name="Getting the Source Code">
> +<strong>Getting the Source Code</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>There are two ways to get the James source code.</p>
> +<p>1. Download the source distribution - the source is available from the 
> +<a href="http://james.apache.org/download.cgi">James release mirrors</a>.
> +Simply choose the version of James you'd like to download, and pick the source distribution appropriate for your platform.
> +</p>
> +<p>2. Get the source code using SVN - this method gives you access to the cutting edge code 
> +base.  Instructions on how to use SVN to get the James source code (the jakarta-james distribution) 
> +can be found <a href="http://www.apache.org/dev/version-control.html">here</a>.
> +James server repository is <a href="http://svn.apache.org/repos/asf/james/server/">here</a>.
> +</p>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Required Tools">
> +<strong>Required Tools</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>To run the build you need two third-party tools.</p>
> +<p>1. Java Development Kit - You must have a JDK of Java version 1.4 or higher installed to build the 
> +James distribution.  The exact JDKs available depend on the platform.  A JDK must be downloaded and
> +installed before the build can run.</p>
> +<p>2. Ant - This is a Java-tailored, XML-configured, extensible build or make system. You need ant (1.6+) in order
> +to build James. You can get the latest version of Ant <a href="http://ant.apache.org/">here</a>. </p>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Building the Distribution">
> +<strong>Building the Distribution</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>In the top level directory of the source distribution you can use  ant, simple set the environment variable
> +JAVA_HOME to the base directory of the  JDK.  Then run the build with any of the following command line arguments:
> +<ul>
> +<li>clean - deletes the build directory, making the system ready for a clean build.</li>
> +<li>compile - compiles the source code.</li>
> +<li>dist - generates all the James distributions, packed.</li>
> +<li>dist-lite - generates all the James distributions, unpacked.  This is the default argument.</li>
> +<li>javadocs - builds the James javadocs.</li>
> +<li>usage - prints out the usage instructions for the script.</li>
> +<li>website - builds the entirety of the James website.</li>
> +<li>xdocs - creates the documentaion for James.</li>
> +<li>run-unit-tests - run unit tests for James.</li>
> +</ul>
> +</p>
> +<p>All build products are output in the dist subdirectory of the James source distribution directory.  There 
> +is also a build subdirectory of the James source distribution directory that is created during the build process.  Both 
> +of these directories will be deleted if you run build with the clean argument.</p>
> +<p> <strong>Warning!</strong> Any changes you've made in the 'dist' directory 
> +will be lost after a recompilation. If you are making changes to the config.xml 
> +or other files, we recommend you backup and then change the copies in src to 
> +avoid losing work. </p>
> +</div>
> +</p>
> +</div>
> +</td>
> +</tr>
> +<!--FOOTER SEPARATOR-->
> +<tr>
> +<td colspan="2">
> +<hr size="1" noshade=""/>
> +</td>
> +</tr>
> +<tr>
> +<td colspan="2">
> +<div class="page-footer">
> +<em>
> +        Copyright © 1999-2006, The Apache Software Foundation
> +        </em>
> +</div>
> +</td>
> +</tr>
> +</table>
> +</body>
> +</html>
> 
> Added: james/server/trunk/phoenix-deployment/www/changelog.html
> URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/changelog.html?view=auto&rev=521427
> ==============================================================================
> --- james/server/trunk/phoenix-deployment/www/changelog.html (added)
> +++ james/server/trunk/phoenix-deployment/www/changelog.html Thu Mar 22 12:57:00 2007
> @@ -0,0 +1,804 @@
> +<?xml version="1.0" encoding="iso-8859-1"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html>
> +<head>
> +<title>Apache James - Mail and News server - ChangeLog</title>
> +<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
> +<meta value="James Project Web Team" name="author"/>
> +<meta value="site-dev@james.apache.org" name="email"/>
> +</head>
> +<body>
> +<table cellspacing="0" width="100%" border="0" class="page-header">
> +<!--PAGE HEADER-->
> +<tr>
> +<td colspan="2">
> +<!--ASF LOGO-->
> +<a href="http://www.apache.org/">
> +<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
> +</a>
> +<!--PROJECT LOGO-->
> +<a href="http://james.apache.org/">
> +<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<table cellspacing="4" width="100%" border="0">
> +<tr>
> +<!--LEFT SIDE NAVIGATION-->
> +<td nowrap="true" valign="top" class="left-navbar">
> +<table cellpadding="0" cellspacing="0" width="100%" border="0">
> +<tr>
> +<td>
> +<a href="http://apachecon.com">
> +<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<navbar name="lhs">
> +
> +    <p>
> +<strong>Concepts</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./summary.html">Summary</a>
> +</li>
> +<li>
> +<a href="./spoolmanager.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./repositories.html">Repositories</a>
> +</li>
> +<li>
> +<a href="./mailet_api.html">The Mailet API</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>How to...</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./build_instructions.html">Build James</a>
> +</li>
> +<li>
> +<a href="./installation_instructions.html">Install James</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Configuration</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./dns_configuration.html">DNS Server</a>
> +</li>
> +<li>
> +<a href="./pop3_configuration.html">POP3 Server</a>
> +</li>
> +<li>
> +<a href="./smtp_configuration.html">SMTP Server</a>
> +</li>
> +<li>
> +<a href="./nntp_configuration.html">NNTP Server</a>
> +</li>
> +<li>
> +<a href="./fetchmail_configuration.html">FetchMail</a>
> +</li>
> +<li>
> +<a href="./remotemanager_configuration.html">RemoteManager</a>
> +</li>
> +<li>
> +<a href="./spoolmanager_configuration.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./serverwide_configuration.html">Server-wide</a>
> +</li>
> +<li>
> +<a href="./adding_users.html">Adding Users</a>
> +</li>
> +<li>
> +<a href="./provided_matchers.html">Provided Matchers</a>
> +</li>
> +<li>
> +<a href="./provided_mailets.html">Provided Mailets</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Common Configurations</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./smtp_auth.html">Using SMTP AUTH</a>
> +</li>
> +<li>
> +<a href="./using_database.html">Using a Database with James</a>
> +</li>
> +<li>
> +<a href="./usingTLS.html">Using TLS/SSL</a>
> +</li>
> +<li>
> +<a href="./james_and_sendmail.html">James and Sendmail</a>
> +</li>
> +<li>
> +<a href="./mailing_lists.html">Creating Mailing Lists</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Customization</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./custom_matcher.html">How to write a custom Matcher</a>
> +</li>
> +<li>
> +<a href="./custom_mailet.html">How to write a custom Mailet</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Project</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./changelog.html">Changelog</a>
> +</li>
> +</ul>
> +
> +   </navbar>
> +</td>
> +<!--MAIN BODY-->
> +<td align="left" valign="top" class="main-body">
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0 Final">
> +<strong>Version 2.3.0 Final</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 23 October 2006</p>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0rc5">
> +<strong>Version 2.3.0rc5</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 12 October 2006</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-625">JAMES-625</a>] - an empty mbox will cause an error at pop3 login</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-644">JAMES-644</a>] - FileRegexMatcher possibly leaks minor memory on startup</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-649">JAMES-649</a>] - error "OutOfMemoryError: JAVA HEAP SPACE" in connections log file when doing a POP TOP for 4000 messages</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-655">JAMES-655</a>] - MboxMailRepository throws NPE when storing mail with mail from: &lt;&gt;</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0rc4">
> +<strong>Version 2.3.0rc4</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 2 October 2006</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-626">JAMES-626</a>] - Invalid (outdated) urls in config files.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-631">JAMES-631</a>] - Default host configuration for InSpammerBlacklist is relative: it should contain a trailing "." or it will reject all mail when the default domain has an "*" IN A rule.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-638">JAMES-638</a>] - Wrong default encoding in text message (Autoconverted: from 8bit to quoted-printable)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-639">JAMES-639</a>] - SerialUID is not hardcoded</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-618">JAMES-618</a>] - Move server-site documents from james/server repository to james/site/server repository</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-634">JAMES-634</a>] - Fix m2 projects to not lookup dependencies on ibiblio, to simplify the website build and to include 2.2.0 and 2.3.0 docs</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0rc3">
> +<strong>Version 2.3.0rc3</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 15 September 2006</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-327">JAMES-327</a>] - Mailet overview not complete</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-579">JAMES-579</a>] - Update license headers and NOTICE to follow the latest ASF requirements</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-591">JAMES-591</a>] - LogMessage mailet use wrong configutre option</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-594">JAMES-594</a>] - JVM_OPTS get passed two times</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-603">JAMES-603</a>] - Outgoing spooling stuck over old mails when more than 1000 old mails are present in outgoing.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-609">JAMES-609</a>] - MailImpl.setMessage and possible NPE: regression from 2.2.0 and 2.3.0rc1</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-541">JAMES-541</a>] - Check what we need to bundle bcprov BouncyCastle JCE provider</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-613">JAMES-613</a>] - Define a new version for Mailet API and update James.java to return the new version.</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Wish">
> +<strong>Wish</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-581">JAMES-581</a>] - Add an "Upgrade documentation" to our docs explaining the upgrade from 2.2.0 to 2.3.0</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0rc2">
> +<strong>Version 2.3.0rc2</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 12 August 2006</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-574">JAMES-574</a>] - Annoying logging of whitelist/blacklist nomatching as "unknown host exception thrown: listname" if INFO is enabled</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-580">JAMES-580</a>] - NPE is issued when receiving a "read receipt" from MS Outlook, and &lt;checkValidSenderDomain&gt; is set to true</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-584">JAMES-584</a>] - FileStreamStore diskspace leak for removed messages in file based spool under windows</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-585">JAMES-585</a>] - SMTP Server may leak temporary ($[JAMES}/temp/*.m64) files</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-587">JAMES-587</a>] - CommandListServManager does not properly handle invalid commands.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-588">JAMES-588</a>] - XMLResource getString methods have incorrect javadocs, and one will throw an NPE.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-612">JAMES-612</a>] - James File Repository Error: Too many open files</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-432">JAMES-432</a>] - Reorganize and update xdocs documentation and site generation</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Wish">
> +<strong>Wish</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-582">JAMES-582</a>] - Released packages confusions (name, artifacts)</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0rc1">
> +<strong>Version 2.3.0rc1</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 25 July 2006</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-566">JAMES-566</a>] - Fastfail DNSRBL blacklisted messages are rejected even if the sender user is successfully SMTP AUTHenticated</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-570">JAMES-570</a>] - James insert a Return-Path: null in outgoing email</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-568">JAMES-568</a>] - reorganize download area structure</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0b3">
> +<strong>Version 2.3.0b3</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 15 July 2006</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-554">JAMES-554</a>] - Set the right svn property for excutable files</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-559">JAMES-559</a>] - Message body get lost after call saveChanges() and move to other processor</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-560">JAMES-560</a>] - SetMimeHeader not throw an MessagingException if needed config values missed</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-561">JAMES-561</a>] - User aliasing does not work</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0b2">
> +<strong>Version 2.3.0b2</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Unreleased</p>
> +<p>Detail</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-527">JAMES-527</a>] - data-source for default derby maildb is configured with a relative path</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-535">JAMES-535</a>] - Denial of service (CPU consumption) via a long argument to the MAIL command.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-538">JAMES-538</a>] - Original headers are lost when trying to alter headers of a cloned message</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-540">JAMES-540</a>] - catch lifecycle problems for handlers</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Improvement">
> +<strong>Improvement</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-553">JAMES-553</a>] - Upgrade to Derby 10.1.3.1</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="New Feature">
> +<strong>New Feature</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-537">JAMES-537</a>] - Add ConfigOption to disable the RemoteManager</li>
> +</ul>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-496">JAMES-496</a>] - Add a default hardcoded configuration for the SMTPHandlerChain</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-529">JAMES-529</a>] - Add a GenericAddFooter for use in AddFooter and CommandListservFooter</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-536">JAMES-536</a>] - Decide what to do with repository implementations configured by default (db/dbfile/file)</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0b1">
> +<strong>Version 2.3.0b1</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 9 June 2006</p>
> +<p>Details</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-499">JAMES-499</a>] - Inconsistent usage of the lastUpdated field for Mail objects</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-505">JAMES-505</a>] - ClassCastException in UsersRepositoryAliasingForwarding using file based users store</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-512">JAMES-512</a>] - OutOfMemoryError -- object not released.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-522">JAMES-522</a>] - Having the ClamAVScan mailet configured, but clamd unavailable when JAMES starts, keeps JAMES from starting.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-524">JAMES-524</a>] - James fails to create mysql tables with mysql-4.1.</li>
> +</ul>
> +                
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-513">JAMES-513</a>] - Rename AddHeader and AddHeaderHandler</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0a3">
> +<strong>Version 2.3.0a3</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Details</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-456">JAMES-456</a>] - AddFooter mailet javax.mail.internet.ParseException</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-474">JAMES-474</a>] - NullPointerException and bodymessage lost with weird configurations in message spooling</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-489">JAMES-489</a>] - ArrayIndexOutOfBoundsException in RemoteDelivery when an mail has errorstate and error_message 0</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-490">JAMES-490</a>] - Javamail 1.4 regression: SocketFetcher changed to require SocketFactory implementation</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-501">JAMES-501</a>] - sendmail.py get not include in build</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-503">JAMES-503</a>] - SpoolManager locking issues</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-504">JAMES-504</a>] - RemoteDelivery threads do not unlock delayed mails</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0a2">
> +<strong>Version 2.3.0a2</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Details</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-368">JAMES-368</a>] - AddFooter couldn't process mails which MimeType is multipart/related</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-419">JAMES-419</a>] - NPE during 8bit conversion of non-mime messages</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-434">JAMES-434</a>] - NPE on empty sender and AUTHenticated user</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-443">JAMES-443</a>] - AddFooter and Encoding issues</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-446">JAMES-446</a>] - NPE while fetching mail (FetchMail)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-447">JAMES-447</a>] - ClassCastException when storing multipart message without Msg ID</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-452">JAMES-452</a>] - Broken messages after passing james</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-455">JAMES-455</a>] - AddFooter mailet throw UnsupportedEncodingException</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-458">JAMES-458</a>] - SSL not working in James 2.3.0a1</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-459">JAMES-459</a>] - Incompatible/Duplicate excalibur-cli-1.0.jar library in classpath</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-460">JAMES-460</a>] - Running James as an NT service</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-462">JAMES-462</a>] - Error in message.getLineCount (Error using NotifyPostmaster with James 2.3)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-466">JAMES-466</a>] - java.sql.SQLException: Error reading from InputStream java.io.IOException in current trunk</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-467">JAMES-467</a>] - corrupt messages in james trunk</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-470">JAMES-470</a>] - DNSRBLHandler config error</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-473">JAMES-473</a>] - AddHeaderHandler configure bug</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-475">JAMES-475</a>] - SQLException on james trunk after build and without modifications of config.xml</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-476">JAMES-476</a>] - NPE in RemoteDelivery</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-482">JAMES-482</a>] - incorrect state on duplicate mail (LinearProcessor)</li>
> +</ul>
> +    
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Improvement">
> +<strong>Improvement</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-158">JAMES-158</a>] - Stream body in JDBCMailRepository.store(Mail)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-299">JAMES-299</a>] - Support for SMTP auth to gateway server in RemoteDelivery mailet</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-371">JAMES-371</a>] - Speed improvement in SpoolManager</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-438">JAMES-438</a>] - add GenericMailet.getInitParameter(name,default)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-440">JAMES-440</a>] - Improve DBCP: provide more DBCP options, like removeAbandoned</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-441">JAMES-441</a>] - Add an option to support aliases (CNAME) for MX records</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-445">JAMES-445</a>] - Enforcement for HELO/EHLO commands before MAIL</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-450">JAMES-450</a>] - "LocalUsers" user repository should be wired in the assembly and not hardcoded in components</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-469">JAMES-469</a>] - Make SMTP message queuing configurable (as an Handler)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-477">JAMES-477</a>] - Configure option to disable heloEhloEnforcement to be compatible with james &lt; 2.3.0</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-478">JAMES-478</a>] - Only check against RBL if the client is not allowed to relay</li>
> +</ul>
> +    
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="New Feature">
> +<strong>New Feature</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-427">JAMES-427</a>] - [PATCH] Introduce Unit Testing</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-437">JAMES-437</a>] - add failed recipient address to log when authorization fails</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-465">JAMES-465</a>] - Check for valid sender domain in mail from</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-468">JAMES-468</a>] - Limit MaxRcpt per Email</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-471">JAMES-471</a>] - Tarpit support</li>
> +</ul>
> +        
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-416">JAMES-416</a>] - Upgrade to javamail-1.3.3</li>
> +</ul>
> +        
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Wish">
> +<strong>Wish</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-451">JAMES-451</a>] - Check for valid domain in HELO</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Version 2.3.0a1">
> +<strong>Version 2.3.0a1</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Released 15 February 2006</p>
> +<p>
> +James 2.3.0a1 is "storage" compatible with 2.2.0 (It uses the same files/db formats of James 2.2.0). Configuration should be updated following this instructions. Mailets developed against 2.2.0 are not binary compatible with 2.3.0 but rebuilding mailets in 2.3.0a1 should be an easy task: just replace "Component"s with "Service"s and replace "MailStore" with "Store" and rebuild. Below are some highlights of features and changes already available:
> +<ul>
> +<li>Phoenix container upgraded to the latest trunk: better classpath management for mailets</li>
> +<li>Derby support: also made it the default storage engine</li>
> +<li>JavaMail 1.3.2 (not JavaMail 1.3.3 because of known bugs with Base64 encoding)</li>
> +<li>Upgraded dependencies to the latest known stable releases (dnsjava, excalibur components, cornerstone, etc.)</li>
> +<li>Removed FetchPop</li>
> +<li>Command pattern for SMTPServer configuration (make it easier for developers to customize fastfail)</li>
> +<li>Increased components granularity/flexibility: many top level components have been refactored to be more modular (look at the new assembly.xml)</li>
> +<li>SMTP server now supports 8BITMIME, ENHANCEDSTATUSCODES, PIPELINING</li>
> +<li>Introduced a few experimental S/MIME and Bayesian matcher/mailets</li>
> +<li>Fixed more than 40 bugs against 2.2.0</li>
> +<li>And much more!</li>
> +</ul>
> +</p>
> +<p>Details</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Bug">
> +<strong>Bug</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-138">JAMES-138</a>] - Don't keep all mailboxes in-memory forever</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-152">JAMES-152</a>] - When a Received header is invalid mail may be created with a null remote address and host name</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-154">JAMES-154</a>] - fetchmail config. files not copied to .sar</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-237">JAMES-237</a>] - J2 1.5'enum' is a keyword</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-250">JAMES-250</a>] - fail to start if installed under a "bin" directory</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-264">JAMES-264</a>] - mail list loop caused by using Return-Path</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-286">JAMES-286</a>] - Exceeding maximum value with MAIL SIZE causes NullPointerException</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-295">JAMES-295</a>] - Missing sqlDefs wont be detected</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-296">JAMES-296</a>] - James does not handle Source Routing</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-300">JAMES-300</a>] - Fetchmail can't fetch mails</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-305">JAMES-305</a>] - AttachmentFileNameIs never matches if the message is S/MIME signed</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-306">JAMES-306</a>] - AttachmentFileNameIs may throw  UnsupportedEncodingException</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-311">JAMES-311</a>] - Nntp very picky with clients</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-312">JAMES-312</a>] - AttachmentFileNameIs matcher may throw an Exception examining a multipart/alternative message</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-316">JAMES-316</a>] - java.lang.ArrayIndexOutOfBoundsException from RemoteDelivery</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-317">JAMES-317</a>] - FromProcessor doesn't delete, throws ClassCastException</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-318">JAMES-318</a>] - java.lang.NullPointerException when host is unknown</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-320">JAMES-320</a>] - Some messages cause POP3 output stream to freeze on RETR.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-323">JAMES-323</a>] - using toUppercase, toLowerCase, equalsIgnoreCase without specifying the locale is a bug</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-328">JAMES-328</a>] - TOP &lt;msg&gt; 0 does not return a terminator on error</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-329">JAMES-329</a>] - DefaultUsersJdbcRepository readUserFromResultSet incorrect</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-337">JAMES-337</a>] - Exception when FromRepository tries to delete a message</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-343">JAMES-343</a>] - James does not compile using Sun JDK 5.0</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-356">JAMES-356</a>] - MimeMessageWrapper does not handle multiline headers</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-359">JAMES-359</a>] - remote address from Received header is not handled</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-361">JAMES-361</a>] - DSNBounce often report the dsn Status 5.5.0 incorrectly</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-372">JAMES-372</a>] - Inboxes deleted during OutOfMemoryError</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-378">JAMES-378</a>] - DSNBounce creates not rfc1894 compliant notifications</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-379">JAMES-379</a>] - MailImpl.duplicate() should also clone attributes and not only the container HashMap</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-380">JAMES-380</a>] - ESMTP Compliance fix</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-383">JAMES-383</a>] - new posts hanging</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-387">JAMES-387</a>] - Exception in BayesianAnalysis</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-396">JAMES-396</a>] - Wrong column order (IMHO) in primary key definition for SpoolRepositories.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-413">JAMES-413</a>] - James does not resolve CNAME DNS registrations</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-417">JAMES-417</a>] - ClassCastException handling the recipients after a DSNBounce</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-418">JAMES-418</a>] - Loader uses wrong method to obtain class loader/doesn't set context class loader</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-420">JAMES-420</a>] - Sometimes messages are delayed or stalled in the spool</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-421">JAMES-421</a>] - MailImpls sharing MimeMessages / LinearProcessor not cloning it after a partial match.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-428">JAMES-428</a>] - Deadlock in ServerConnection</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-430">JAMES-430</a>] - MailImpl#writeContentTo leaks thread</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-431">JAMES-431</a>] - Line ending and CRLF.CRLF issues in POP3 and SMTP</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-435">JAMES-435</a>] - James Service Wrapper displays wrong James version</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-436">JAMES-436</a>] - James trunk cannot be built with jdk1.4</li>
> +</ul>
> +    
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Improvement">
> +<strong>Improvement</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-270">JAMES-270</a>] - Add MailAttributes to indicate when default values have been applied</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-303">JAMES-303</a>] - AttachmentFileNameIs matcher should be able to analyze zip file attachments</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-321">JAMES-321</a>] - Comments on configuri</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-333">JAMES-333</a>] - Build Broken in HEAD revision</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-338">JAMES-338</a>] - Upgrade to JavaMail 1.3.2</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-357">JAMES-357</a>] - DSNBounce should be configured by default</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-360">JAMES-360</a>] - Support for Additional "received for" headers: e.g. X-Envelope-To</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-363">JAMES-363</a>] - Move PostmasterAlias from code to james-confix.xml</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-369">JAMES-369</a>] - Always announce AUTH capability to clients</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-375">JAMES-375</a>] - RFC 1854 - Command Pipelining support</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-377">JAMES-377</a>] - rfc2034 ENHANCEDSTATUSCODES compliance</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-388">JAMES-388</a>] - Upgrade to dnsjava 2.0.0</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-389">JAMES-389</a>] - Invert "precompilation" logic for jdbc3</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-395">JAMES-395</a>] - Support latest hsqldb in sqlResources.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-398">JAMES-398</a>] - Add SMIME mailets for signature verification and message decrypt</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-399">JAMES-399</a>] - Update bouncycastle to 129 and remove jdk13 compatibility</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-407">JAMES-407</a>] - James inprotocol handling framework</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-410">JAMES-410</a>] - Re-enable EHLO support in RemoteDelivery</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-411">JAMES-411</a>] - update Mailet's Mail to support most of the current james mailets</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-412">JAMES-412</a>] - Increase James component granularity / flexibility</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-414">JAMES-414</a>] - Add more flexibility to LocalDelivery</li>
> +</ul>
> +    
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="New Feature">
> +<strong>New Feature</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-257">JAMES-257</a>] - S/MIME Matchers/Mailets</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-258">JAMES-258</a>] - Add Bayesian Filtering</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-381">JAMES-381</a>] - Configurable RBL support</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-390">JAMES-390</a>] - Add derby support</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-423">JAMES-423</a>] - Give the remote manager a service promt</li>
> +</ul>
> +        
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Task">
> +<strong>Task</strong>
> +</a>
> +</div>
> +<div class="subsection-body"/>
> +</div>
> +<ul>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-149">JAMES-149</a>] - Add soft-fail to unresolved received from domains</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-190">JAMES-190</a>] - Apache license 2.0</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-391">JAMES-391</a>] - Move "candidates" libraries to the official lib / remove unused libraries</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-392">JAMES-392</a>] - Resolve deprecation use from MailetAPI for the next release</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-393">JAMES-393</a>] - Use Derby and db providers by default instead of file repositories.</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-394">JAMES-394</a>] - Remove OLD mm.mysql driver (not compatible with newer MySQL db)</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-400">JAMES-400</a>] - Move previous SMIME matcher/mailets to the new "smime" subpackages</li>
> +<li>[<a href="http://issues.apache.org/jira/browse/JAMES-406">JAMES-406</a>] - Investigate about libraries upgradability (cornerstone/excalibur/avalon/phoenix)</li>
> +</ul>
> +
> +</div>
> +</p>
> +</div>
> +</td>
> +</tr>
> +<!--FOOTER SEPARATOR-->
> +<tr>
> +<td colspan="2">
> +<hr size="1" noshade=""/>
> +</td>
> +</tr>
> +<tr>
> +<td colspan="2">
> +<div class="page-footer">
> +<em>
> +        Copyright © 1999-2006, The Apache Software Foundation
> +        </em>
> +</div>
> +</td>
> +</tr>
> +</table>
> +</body>
> +</html>
> 
> Added: james/server/trunk/phoenix-deployment/www/custom_mailet.html
> URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/custom_mailet.html?view=auto&rev=521427
> ==============================================================================
> --- james/server/trunk/phoenix-deployment/www/custom_mailet.html (added)
> +++ james/server/trunk/phoenix-deployment/www/custom_mailet.html Thu Mar 22 12:57:00 2007
> @@ -0,0 +1,351 @@
> +<?xml version="1.0" encoding="iso-8859-1"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html>
> +<head>
> +<title>Apache James - Mail and News server - James 2.3 - Writing a Custom Mailet</title>
> +<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
> +</head>
> +<body>
> +<table cellspacing="0" width="100%" border="0" class="page-header">
> +<!--PAGE HEADER-->
> +<tr>
> +<td colspan="2">
> +<!--ASF LOGO-->
> +<a href="http://www.apache.org/">
> +<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
> +</a>
> +<!--PROJECT LOGO-->
> +<a href="http://james.apache.org/">
> +<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<table cellspacing="4" width="100%" border="0">
> +<tr>
> +<!--LEFT SIDE NAVIGATION-->
> +<td nowrap="true" valign="top" class="left-navbar">
> +<table cellpadding="0" cellspacing="0" width="100%" border="0">
> +<tr>
> +<td>
> +<a href="http://apachecon.com">
> +<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<navbar name="lhs">
> +
> +    <p>
> +<strong>Concepts</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./summary.html">Summary</a>
> +</li>
> +<li>
> +<a href="./spoolmanager.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./repositories.html">Repositories</a>
> +</li>
> +<li>
> +<a href="./mailet_api.html">The Mailet API</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>How to...</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./build_instructions.html">Build James</a>
> +</li>
> +<li>
> +<a href="./installation_instructions.html">Install James</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Configuration</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./dns_configuration.html">DNS Server</a>
> +</li>
> +<li>
> +<a href="./pop3_configuration.html">POP3 Server</a>
> +</li>
> +<li>
> +<a href="./smtp_configuration.html">SMTP Server</a>
> +</li>
> +<li>
> +<a href="./nntp_configuration.html">NNTP Server</a>
> +</li>
> +<li>
> +<a href="./fetchmail_configuration.html">FetchMail</a>
> +</li>
> +<li>
> +<a href="./remotemanager_configuration.html">RemoteManager</a>
> +</li>
> +<li>
> +<a href="./spoolmanager_configuration.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./serverwide_configuration.html">Server-wide</a>
> +</li>
> +<li>
> +<a href="./adding_users.html">Adding Users</a>
> +</li>
> +<li>
> +<a href="./provided_matchers.html">Provided Matchers</a>
> +</li>
> +<li>
> +<a href="./provided_mailets.html">Provided Mailets</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Common Configurations</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./smtp_auth.html">Using SMTP AUTH</a>
> +</li>
> +<li>
> +<a href="./using_database.html">Using a Database with James</a>
> +</li>
> +<li>
> +<a href="./usingTLS.html">Using TLS/SSL</a>
> +</li>
> +<li>
> +<a href="./james_and_sendmail.html">James and Sendmail</a>
> +</li>
> +<li>
> +<a href="./mailing_lists.html">Creating Mailing Lists</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Customization</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./custom_matcher.html">How to write a custom Matcher</a>
> +</li>
> +<li>
> +<a href="./custom_mailet.html">How to write a custom Mailet</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Project</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./changelog.html">Changelog</a>
> +</li>
> +</ul>
> +
> +   </navbar>
> +</td>
> +<!--MAIN BODY-->
> +<td align="left" valign="top" class="main-body">
> +<div class="section">
> +<div class="section-header">
> +<a name="Writing a Custom Mailet">
> +<strong>Writing a Custom Mailet</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Implementing a custom mailet is generally a simple task, most of whose complexity 
> +lies in coding the actual work to be done by the mailet.  This is largely due to the 
> +simplicity of the Mailet interface and the fact that a GenericMailet class is provided 
> +as part of the Mailet package.</p>
> +<p>In this discussion we will assume that any mailet being implemented is a subclass of 
> +GenericMailet.  The GenericMailet class serves to abstract away of the configuration and 
> +logging details.  While it provides a noop implementation of the init() and destroy() methods, 
> +these can be easily overridden to provide useful functionality.</p>
> +<p>In general, the only four methods that you should need to implement are init(), destroy(), 
> +getMailetInfo(), and service(Mail).  And only the last is required in all cases.</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Configuration">
> +<strong>Configuration</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>As described in the <a href="spoolmanager_configuration.html">SpoolManager configuration 
> +section</a>, mailets are configured with a set of String (name, value) pairs.  These values are
> +passed into the Mailet upon initialization (although the details of this process are hidden by 
> +the GenericMailet implementation).  GenericMailet provides access to this configuration 
> +information through use of the getInitParameter(String) method.  Passing in the name of the 
> +requested configuration value will yield the value if set, and null otherwise.  Configuration 
> +values are available inside the init(), destroy(), and service(Mail) methods.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Logging">
> +<strong>Logging</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>There is a simple logging mechanism provided by the Mailet API.  It does not support 
> +logging levels, so any log filtering will have to be implemented in the Mailet code.  
> +Logging is done by calling one of the two logging methods on GenericMailet - log(String) 
> +or log(String,Throwable).  Logging is available inside the init(), destroy(), and service(Mail)
> +methods.</p>
> +<p>The value of getMailetInfo() for the Mailet is prepended to the log entries for that 
> +Mailet.  So it may be desirable for you to override this method so you can distinguish mailet
> +log entries by Mailet.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Initialization">
> +<strong>Initialization</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>As part of the Mailet lifecycle, a Mailet is guaranteed to be initialized immediately after 
> +being instantiated.  This happens once and only once for each Mailet instance.  The 
> +Initialization phase is where configuration parsing and per-Mailet resource creation generally 
> +take place.  Depending on your Mailet, it may or may not be necessary to do any initialization 
> +of the mailet.  Initialization logic is implemented by overriding the init() method of 
> +GenericMailet.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Servicing">
> +<strong>Servicing</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>The bulk of the Mailet logic is expected to be invoked from the service(Mail) method.  This 
> +method is invoked each time a mail message is to be processed by the mailet.  The message is 
> +passed in as an instance of the Mail interface, which is part of the Mailet API.</p>
> +<p>The Mail interface is essentially a light wrapper around JavaMail's MimeMessage class with a 
> +few important differences.  See the Javadoc for the interface for a description of the additional
> +methods available on this wrapper.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Destruction">
> +<strong>Destruction</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>As part of the Mailet lifecycle, a Mailet is guaranteed to be destroyed when the container 
> +cleans up the Mailet.  This happens once and only once for each Mailet instance.  The 
> +Destruction phase is where per-Mailet resource release generally takes place.  Depending 
> +on your Mailet, it may or may not be necessary to do any destruction 
> +of the mailet.  Destruction logic is implemented by overriding the destroy() method of 
> +GenericMailet.</p>
> +</div>
> +</div>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Deploying a Custom Mailet">
> +<strong>Deploying a Custom Mailet</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Once a Mailet has been successfully implemented there are only a couple of 
> +additional steps necessary to actually deploy the Mailet.</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Adding Your Mailet to the Classpath">
> +<strong>Adding Your Mailet to the Classpath</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>
> +The Mailet must be added to James' classpath so that the Mailet can be loaded by James.  There 
> +are three ways to add a custom Mailet to the classpath so that James will be able to load the 
> +Mailet.  These are:
> +</p>
> +<p>
> +1a. Download the source distribution, add a jar file containing the custom files to the lib 
> +directory of the unpacked source distribution, and build a new .sar file by following the 
> +directions <a href="build_instructions.html">here</a>.  This new .sar file will now 
> +include your custom classes.
> +</p>
> +<p>
> +or
> +</p>
> +<p>
> +1b. Place a jar file containing the custom class files in the lib subdirectory of the James
> +installation.  It will also be necessary to unpack the JavaMail and James jar files from 
> +the provided .sar file and add them to this directory.
> +</p>
> +<p>
> +or
> +</p>
> +<p>
> +1c. Place a jar file containing the custom class files in the path/to/james/apps/james/SAR-INF/lib subdirectory.
> +Please note that you must start james once to get the apps/james/SAR-INF directory created. After that is done create 
> +the lib directory and copy the jar to the directory.
> +</p>
> +<p>
> +2. After this is done get sure you add the mailet package to the config.xml. For example: 
> +<p>
> +<div class="source">
> +&lt;!-- Set the Java packages from which to load mailets and matchers --&gt;
> +&lt;mailetpackages&gt;
> +    &lt;mailetpackage&gt;org.apache.james.transport.mailets&lt;/mailetpackage&gt;
> +    &lt;mailetpackage&gt;org.apache.james.transport.mailets.smime&lt;/mailetpackage&gt;
> +    &lt;mailetpackage&gt;your.costum.package.transport-mailets&lt;/mailetpackage&gt;
> +&lt;/mailetpackages&gt;
> +</div>
> +</p>
> +After that restart james.
> +</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="James Configuration">
> +<strong>James Configuration</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>Configuration of the processor chain is discussed 
> +<a href="spoolmanager_configuration.html">elsewhere</a> in this documentation.  The 
> +details of configuring mailet deployment is discussed at length.  Here we will only comment 
> +that it is important to add the appropriate mailet package for your custom mailet to the 
> +&lt;mailetpackages&gt; list and that the name of your mailet should not conflict with any of 
> +the mailets described <a href="provided_mailets.html">here</a>.
> +</p>
> +</div>
> +</div>
> +</div>
> +</p>
> +</div>
> +</td>
> +</tr>
> +<!--FOOTER SEPARATOR-->
> +<tr>
> +<td colspan="2">
> +<hr size="1" noshade=""/>
> +</td>
> +</tr>
> +<tr>
> +<td colspan="2">
> +<div class="page-footer">
> +<em>
> +        Copyright © 1999-2006, The Apache Software Foundation
> +        </em>
> +</div>
> +</td>
> +</tr>
> +</table>
> +</body>
> +</html>
> 
> Added: james/server/trunk/phoenix-deployment/www/custom_matcher.html
> URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/custom_matcher.html?view=auto&rev=521427
> ==============================================================================
> --- james/server/trunk/phoenix-deployment/www/custom_matcher.html (added)
> +++ james/server/trunk/phoenix-deployment/www/custom_matcher.html Thu Mar 22 12:57:00 2007
> @@ -0,0 +1,362 @@
> +<?xml version="1.0" encoding="iso-8859-1"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html>
> +<head>
> +<title>Apache James - Mail and News server - James 2.3 - Writing a Custom Matcher</title>
> +<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
> +</head>
> +<body>
> +<table cellspacing="0" width="100%" border="0" class="page-header">
> +<!--PAGE HEADER-->
> +<tr>
> +<td colspan="2">
> +<!--ASF LOGO-->
> +<a href="http://www.apache.org/">
> +<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
> +</a>
> +<!--PROJECT LOGO-->
> +<a href="http://james.apache.org/">
> +<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<table cellspacing="4" width="100%" border="0">
> +<tr>
> +<!--LEFT SIDE NAVIGATION-->
> +<td nowrap="true" valign="top" class="left-navbar">
> +<table cellpadding="0" cellspacing="0" width="100%" border="0">
> +<tr>
> +<td>
> +<a href="http://apachecon.com">
> +<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<navbar name="lhs">
> +
> +    <p>
> +<strong>Concepts</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./summary.html">Summary</a>
> +</li>
> +<li>
> +<a href="./spoolmanager.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./repositories.html">Repositories</a>
> +</li>
> +<li>
> +<a href="./mailet_api.html">The Mailet API</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>How to...</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./build_instructions.html">Build James</a>
> +</li>
> +<li>
> +<a href="./installation_instructions.html">Install James</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Configuration</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./dns_configuration.html">DNS Server</a>
> +</li>
> +<li>
> +<a href="./pop3_configuration.html">POP3 Server</a>
> +</li>
> +<li>
> +<a href="./smtp_configuration.html">SMTP Server</a>
> +</li>
> +<li>
> +<a href="./nntp_configuration.html">NNTP Server</a>
> +</li>
> +<li>
> +<a href="./fetchmail_configuration.html">FetchMail</a>
> +</li>
> +<li>
> +<a href="./remotemanager_configuration.html">RemoteManager</a>
> +</li>
> +<li>
> +<a href="./spoolmanager_configuration.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./serverwide_configuration.html">Server-wide</a>
> +</li>
> +<li>
> +<a href="./adding_users.html">Adding Users</a>
> +</li>
> +<li>
> +<a href="./provided_matchers.html">Provided Matchers</a>
> +</li>
> +<li>
> +<a href="./provided_mailets.html">Provided Mailets</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Common Configurations</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./smtp_auth.html">Using SMTP AUTH</a>
> +</li>
> +<li>
> +<a href="./using_database.html">Using a Database with James</a>
> +</li>
> +<li>
> +<a href="./usingTLS.html">Using TLS/SSL</a>
> +</li>
> +<li>
> +<a href="./james_and_sendmail.html">James and Sendmail</a>
> +</li>
> +<li>
> +<a href="./mailing_lists.html">Creating Mailing Lists</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Customization</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./custom_matcher.html">How to write a custom Matcher</a>
> +</li>
> +<li>
> +<a href="./custom_mailet.html">How to write a custom Mailet</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Project</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./changelog.html">Changelog</a>
> +</li>
> +</ul>
> +
> +   </navbar>
> +</td>
> +<!--MAIN BODY-->
> +<td align="left" valign="top" class="main-body">
> +<div class="section">
> +<div class="section-header">
> +<a name="Writing a Custom Matcher">
> +<strong>Writing a Custom Matcher</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Implementing a custom matcher is generally a simple task, most of whose complexity 
> +lies in coding the actual work to be done by the matcher.  This is largely due to the 
> +simplicity of the Matcher interface and the fact that a couple of abstract Matcher template
> +classes are provided in the Mailet package.  These two classes, GenericMatcher and 
> +GenericRecipientMatcher, greatly simplfy the task of Matcher authoring.</p>
> +<p>As discussed elsewhere in this manual, the Matcher interface does not simply match 
> +or not match a particular message.  Rather, it returns some subset of the original message
> +recipients as a result of the match(Mail) method.  This leads to the two different abstract
> +Matcher implementations.</p>
> +<p>The first, GenericMatcher, is intended for matchers where recipient evaluation is not 
> +necessary.  Basically, you should subclass this implementation if your matcher is going to 
> +return all or none of the recipients.</p>
> +<p>When subclassing this class, there are four methods that potentially need to be 
> +overridden.  These are getMatcherInfo(), init(), match(Mail), and destroy().  More on these 
> +anon.</p>
> +<p>The second implementation, GenericRecipientMatcher, is intended for those matchers where 
> +each recipient is evaluated individually.  It is a subclass of GenericMatcher, and inherits 
> +most of its behavior from that class.  The only major difference is that subclasses are 
> +expected to override matchRecipient(MailAddress) rather than match(Mail).</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Configuration">
> +<strong>Configuration</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>Matchers are passed a single String as part of their configuration.  Interpretation of this 
> +list is left entirely to the body of the Matcher.  This String value is available in 
> +the body of the Matcher through use of the getCondition() method of the 
> +GenericMatcher class.  This method returns the String value passed to the Matcher, and returns 
> +null if no value is set.  The method getCondition() is available inside the init(), destroy(), match(Mail), 
> +and matchRecipient(MailAddress) methods.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Logging">
> +<strong>Logging</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>There is a simple logging mechanism provided by the Mailet API.  It does not support 
> +logging levels, so any log filtering will have to be implemented in the Matcher code.  
> +Logging is done by calling one of the two logging methods on GenericMatcher/GenericRecipientMatcher - log(String) 
> +or log(String,Throwable).  Logging is available inside the init(), destroy(), match(Mail), 
> +and matchRecipient(MailAddress) methods.</p>
> +<p>The value of getMatcherInfo() for the Matcher is prepended to the log entries for that 
> +Matcher.  So it may be desirable for you to override this method so you can distinguish Matcher
> +log entries by Matcher.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Initialization">
> +<strong>Initialization</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>As part of the Matcher lifecycle, a Matcher is guaranteed to be initialized immediately after 
> +being instantiated.  This happens once and only once for each Matcher instance.  The 
> +Initialization phase is where configuration parsing and per-Matcher resource creation generally 
> +take place.  Depending on your Matcher, it may or may not be necessary to do any initialization 
> +of the Matcher.  Initialization logic is implemented by overriding the init() method of 
> +GenericMatcher/GenericRecipientMatcher.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Matching">
> +<strong>Matching</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>It is the matching phase where the Matcher's work is done.  The exact form of this phase largely 
> +depends on which Matcher superclass is subclassed.</p>
> +<p>If GenericMatcher is being subclassed, it is the match(Mail) that is implemented.  As described 
> +above, this method returns a Collection of MailAddresses that is a subset of the original 
> +recipients for the Mail object.</p>
> +<p>If it is a purely recipient-filtering Matcher, then the GenericRecipientMatcher should be
> +subclassed.  In this case, developers must provide an implementation of the 
> +matchRecipient(MailAddress) method.  This method returns true if the recipient matches,
> +and false otherwise.</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Destruction">
> +<strong>Destruction</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>As part of the Matcher lifecycle, a Matcher is guaranteed to be destroyed when the container 
> +cleans up the Matcher.  This happens once and only once for each Matcher instance.  The 
> +Destruction phase is where per-Matcher resource release generally takes place.  Depending 
> +on your Matcher, it may or may not be necessary to do any destruction 
> +of the Matcher.  Destruction logic is implemented by overriding the destroy() method of 
> +GenericMatcher/GenericRecipientMatcher.</p>
> +</div>
> +</div>
> +</div>
> +</p>
> +</div>
> +<div class="section">
> +<div class="section-header">
> +<a name="Deploying a Custom Matcher">
> +<strong>Deploying a Custom Matcher</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +<p>Once a Matcher has been successfully implemented there are only a couple of 
> +additional steps necessary to actually deploy the Matcher.</p>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="Adding Your Matcher to the Classpath">
> +<strong>Adding Your Matcher to the Classpath</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>
> +The Matcher must be added to James' classpath so that the Matcher can be loaded by James.  There 
> +are two ways to add a custom Matcher to the classpath so that James will be able to load the 
> +Matcher.  These are:
> +</p>
> +<p>
> +1a. Download the source distribution, add a jar file containing the custom files to the lib 
> +directory of the unpacked source distribution, and build a new .sar file by following the 
> +directions <a href="build_instructions.html">here</a>.  This new .sar file will now 
> +include your custom classes.
> +</p>
> +<p>
> +or
> +</p>
> +<p>
> +1b. Place a jar file containing the custom class files in the lib subdirectory of the James
> +installation.  It will also be necessary to unpack the JavaMail and James jar files from 
> +the provided .sar file and add them to this directory.
> +</p>
> +<p>
> +or
> +</p>
> +<p>
> +1c. Place a jar file containing the custom class files in the path/to/james/apps/james/SAR-INF/lib subdirectory.
> +Please note that you must start james once to get the apps/james/SAR-INF directory created. After that is done create 
> +the lib directory and copy the jar to the directory.
> +</p>
> +<p>
> +2. After this is done get sure you add the matcher package to the config.xml. For example: 
> +<p>
> +<div class="source">
> +&lt;!-- Set the Java packages from which to load mailets and matchers --&gt;
> +&lt;matcherpackages&gt;
> +    &lt;matcherpackage&gt;org.apache.james.transport.matchers&lt;/matcherpackage&gt;
> +    &lt;matcherpackage&gt;org.apache.james.transport.matchers.smime&lt;/matcherpackage&gt;
> +    &lt;matcherpackage&gt;your.costum.package.transport-matchers&lt;/matcherpackage&gt;
> +&lt;/matcherpackages&gt;
> +</div>
> +</p>
> +After that restart james.
> +</p>
> +</div>
> +</div>
> +<div class="subsection">
> +<div class="subsection-header">
> +<a name="James Configuration">
> +<strong>James Configuration</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +<p>Configuration of the processor chain is discussed 
> +<a href="spoolmanager_configuration.html">elsewhere</a> in this documentation.  The 
> +details of configuring matcher deployment is discussed at length.  Here we will only comment 
> +that it is important to add the appropriate matcher package for your custom matcher to the 
> +&lt;matcherpackages&gt; list and that the name of your matcher should not conflict with any of 
> +the matchers described <a href="provided_matchers.html">here</a>.
> +</p>
> +</div>
> +</div>
> +</div>
> +</p>
> +</div>
> +</td>
> +</tr>
> +<!--FOOTER SEPARATOR-->
> +<tr>
> +<td colspan="2">
> +<hr size="1" noshade=""/>
> +</td>
> +</tr>
> +<tr>
> +<td colspan="2">
> +<div class="page-footer">
> +<em>
> +        Copyright © 1999-2006, The Apache Software Foundation
> +        </em>
> +</div>
> +</td>
> +</tr>
> +</table>
> +</body>
> +</html>
> 
> Added: james/server/trunk/phoenix-deployment/www/design_objectives.html
> URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/design_objectives.html?view=auto&rev=521427
> ==============================================================================
> --- james/server/trunk/phoenix-deployment/www/design_objectives.html (added)
> +++ james/server/trunk/phoenix-deployment/www/design_objectives.html Thu Mar 22 12:57:00 2007
> @@ -0,0 +1,293 @@
> +<?xml version="1.0" encoding="iso-8859-1"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html>
> +<head>
> +<title>Apache James - Mail and News server - Design Objectives</title>
> +<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
> +<meta value="James Project Web Team" name="author"/>
> +<meta value="site-dev@james.apache.org" name="email"/>
> +</head>
> +<body>
> +<table cellspacing="0" width="100%" border="0" class="page-header">
> +<!--PAGE HEADER-->
> +<tr>
> +<td colspan="2">
> +<!--ASF LOGO-->
> +<a href="http://www.apache.org/">
> +<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
> +</a>
> +<!--PROJECT LOGO-->
> +<a href="http://james.apache.org/">
> +<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<table cellspacing="4" width="100%" border="0">
> +<tr>
> +<!--LEFT SIDE NAVIGATION-->
> +<td nowrap="true" valign="top" class="left-navbar">
> +<table cellpadding="0" cellspacing="0" width="100%" border="0">
> +<tr>
> +<td>
> +<a href="http://apachecon.com">
> +<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<navbar name="lhs">
> +
> +    <p>
> +<strong>Concepts</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./summary.html">Summary</a>
> +</li>
> +<li>
> +<a href="./spoolmanager.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./repositories.html">Repositories</a>
> +</li>
> +<li>
> +<a href="./mailet_api.html">The Mailet API</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>How to...</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./build_instructions.html">Build James</a>
> +</li>
> +<li>
> +<a href="./installation_instructions.html">Install James</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Configuration</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./dns_configuration.html">DNS Server</a>
> +</li>
> +<li>
> +<a href="./pop3_configuration.html">POP3 Server</a>
> +</li>
> +<li>
> +<a href="./smtp_configuration.html">SMTP Server</a>
> +</li>
> +<li>
> +<a href="./nntp_configuration.html">NNTP Server</a>
> +</li>
> +<li>
> +<a href="./fetchmail_configuration.html">FetchMail</a>
> +</li>
> +<li>
> +<a href="./remotemanager_configuration.html">RemoteManager</a>
> +</li>
> +<li>
> +<a href="./spoolmanager_configuration.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./serverwide_configuration.html">Server-wide</a>
> +</li>
> +<li>
> +<a href="./adding_users.html">Adding Users</a>
> +</li>
> +<li>
> +<a href="./provided_matchers.html">Provided Matchers</a>
> +</li>
> +<li>
> +<a href="./provided_mailets.html">Provided Mailets</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Common Configurations</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./smtp_auth.html">Using SMTP AUTH</a>
> +</li>
> +<li>
> +<a href="./using_database.html">Using a Database with James</a>
> +</li>
> +<li>
> +<a href="./usingTLS.html">Using TLS/SSL</a>
> +</li>
> +<li>
> +<a href="./james_and_sendmail.html">James and Sendmail</a>
> +</li>
> +<li>
> +<a href="./mailing_lists.html">Creating Mailing Lists</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Customization</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./custom_matcher.html">How to write a custom Matcher</a>
> +</li>
> +<li>
> +<a href="./custom_mailet.html">How to write a custom Mailet</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Project</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./changelog.html">Changelog</a>
> +</li>
> +</ul>
> +
> +   </navbar>
> +</td>
> +<!--MAIN BODY-->
> +<td align="left" valign="top" class="main-body">
> +<div class="section">
> +<div class="section-header">
> +<a name="Design Objectives">
> +<strong>Design Objectives</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +      
> +      <div class="subsection">
> +<div class="subsection-header">
> +<a name="features">
> +<strong>features</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +        <p>These are some of the currently implemented features:</p>
> +        <p>
> +          <i>
> +            <b>Complete portability</b>
> +          </i>  Apache James is be a 100% pure Java application
> +       based on the Java 2 platform and the JavaMail 1.4 API.
> +  </p>
> +        <p>
> +          <i>
> +            <b>Protocol abstraction</b>
> +          </i>  Unlike other mail engines, protocols are seen only
> +       like "communication languages" ruling comunications between clients and
> +       the server. Apache James is not be tied to any particular protocol but
> +       follow an abstracted server design (like JavaMail did on the
> +       client side)</p>
> +        <p>
> +          <i>
> +            <b>Complete solution</b>
> +          </i>  the mail system is able to handle both mail
> +       transport and storage in a single server application. Apache James
> +       works alone without the need for any other server or solution.</p>
> +        <p>
> +          <i>
> +            <b>Mailet support</b>
> +          </i>  Apache James supports the Apache Mailet API. A Mailet
> +       is a discrete piece of mail-processing logic which is incorporated into
> +       a Mailet-compliant mail-server's processing. This easy-to-write,
> +       easy-to-use pattern allows developers to build powerful customized mail
> +       systems. Examples of the services a Mailet might provide include: a
> +       mail-to-fax or mail-to-phone transformer, a filter, a language translator, a mailing
> +       list manager, etc. Several Mailets are included in the JAMES
> +       distribution (see <a href="documentation.html">documentation</a>).</p>
> +        <p>
> +          <i>
> +            <b>Resource abstraction</b>
> +          </i>  Like protocols, resources are abstracted and,
> +       accessed through defined interfaces (JavaMail for transport, JDBC for
> +       spool storage or user accounts in RDBMS's, Apache Mailet API). The server is
> +       highly modular and reuse solutions from other projects.</p>
> +        <p>
> +          <i>
> +            <b>Secure and multi-threaded design</b>
> +          </i>  Based on the technology developed
> +       for the Apache JServ servlet engine, Apache James has a careful,
> +       security-oriented, full multi-threaded design, to allow performance,
> +       scalability and mission-critical use.</p>
> +        <p>Anything else you may want if you help us write it :-)</p>
> +      </div>
> +</div>
> +      <div class="subsection">
> +<div class="subsection-header">
> +<a name="standards compliance">
> +<strong>standards compliance</strong>
> +</a>
> +</div>
> +<div class="subsection-body">
> +        <p>It is the existence of published "open" standards which 
> +allows independant teams to develop interoperable software.
> +<br/>James attempts to support a number of these standards most of which are 
> +IETF RFC's and in the areas covered by these standards the published standard 
> +is our requirements document.
> +<br/>This sometimes leads to confusion where behaviour is not 
> +the subject of a relevant standard, or conflict where common 
> +(de-facto) behaviour is actually at odds with a supported standard.
> +<br/>We believe that it is our responsibility to adhere to the published standard. 
> +If we allow our implementation to deviate it means that we are tacitly encouraging 
> +the situation whereby interoperability is no longer guarenteed by standards 
> +compliance alone, but also requires access to undocumented and possibly 
> +even commercially licenced technology. There is no easy route for a 
> +newcomer to aquire these secrets, and interoperabilty 
> +becomes something only available to the elite.
> +        </p>
> +        <p>The James policy for issues of non-compliance tries to tread the fine line
> +between a pragmatic acceptance of other people's misinterpretation of the
> +RFC's and an evangelical defence of open standards as the key to freedom of interoperation.
> +        </p>
> +        <p>
> +In practice this policy is that certain well argued of cases of
> +non-compliance which can be *safely* worked around, will be tolerated by
> +James.
> +</p>
> +        <p>
> +In cases (like jira issue JAMES-344 ) where variance from a published standard is
> +required it is desirable that this functionality is disabled in James by default,
> +it must be prominently and clearly documented that this causes James 
> +to violate the relevant standard, and should be enabled by explicit 
> +configuration, making its use a conscious decision of the user rather 
> +than an decision taken by the James team.
> +</p>
> +        <p>
> +In cases where the required behaviour is not within the scope of any standard which
> +James claims to support (such as behaviour which is a de-facto standard or
> +an <i>internet draft</i> RFC but not yet subject of a <i>standards track</i> RFC) it is
> +acceptable to implement the behaviour so long as it is adequately
> +documented (for instance by refrence to an <i>internet draft</i> or 
> +other public document) and users can be clear about what to expect from James.
> +</p>
> +      </div>
> +</div>
> +    </div>
> +</p>
> +</div>
> +</td>
> +</tr>
> +<!--FOOTER SEPARATOR-->
> +<tr>
> +<td colspan="2">
> +<hr size="1" noshade=""/>
> +</td>
> +</tr>
> +<tr>
> +<td colspan="2">
> +<div class="page-footer">
> +<em>
> +        Copyright © 1999-2006, The Apache Software Foundation
> +        </em>
> +</div>
> +</td>
> +</tr>
> +</table>
> +</body>
> +</html>
> 
> Added: james/server/trunk/phoenix-deployment/www/dns_configuration.html
> URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/www/dns_configuration.html?view=auto&rev=521427
> ==============================================================================
> --- james/server/trunk/phoenix-deployment/www/dns_configuration.html (added)
> +++ james/server/trunk/phoenix-deployment/www/dns_configuration.html Thu Mar 22 12:57:00 2007
> @@ -0,0 +1,217 @@
> +<?xml version="1.0" encoding="iso-8859-1"?>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html>
> +<head>
> +<title>Apache James - Mail and News server - James 2.3 - Configuring DNS Services</title>
> +<LINK TITLE="Style" HREF="stylesheet.css" TYPE="text/css" REL="stylesheet"/>
> +</head>
> +<body>
> +<table cellspacing="0" width="100%" border="0" class="page-header">
> +<!--PAGE HEADER-->
> +<tr>
> +<td colspan="2">
> +<!--ASF LOGO-->
> +<a href="http://www.apache.org/">
> +<img border="0" alt="The ASF" align="left" src="http://www.apache.org/images/asf_logo_wide.gif"/>
> +</a>
> +<!--PROJECT LOGO-->
> +<a href="http://james.apache.org/">
> +<img border="0" alt="James - Java Apache Mail Enterprise Server" align="right" src="./images/james-logo.jpg"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<table cellspacing="4" width="100%" border="0">
> +<tr>
> +<!--LEFT SIDE NAVIGATION-->
> +<td nowrap="true" valign="top" class="left-navbar">
> +<table cellpadding="0" cellspacing="0" width="100%" border="0">
> +<tr>
> +<td>
> +<a href="http://apachecon.com">
> +<img border="0" alt="ApacheCon Promotion" align="left" src="http://www.apache.org/ads/ApacheCon/234x60-2006-us.gif"/>
> +</a>
> +</td>
> +</tr>
> +</table>
> +<navbar name="lhs">
> +
> +    <p>
> +<strong>Concepts</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./summary.html">Summary</a>
> +</li>
> +<li>
> +<a href="./spoolmanager.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./repositories.html">Repositories</a>
> +</li>
> +<li>
> +<a href="./mailet_api.html">The Mailet API</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>How to...</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./build_instructions.html">Build James</a>
> +</li>
> +<li>
> +<a href="./installation_instructions.html">Install James</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Configuration</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./dns_configuration.html">DNS Server</a>
> +</li>
> +<li>
> +<a href="./pop3_configuration.html">POP3 Server</a>
> +</li>
> +<li>
> +<a href="./smtp_configuration.html">SMTP Server</a>
> +</li>
> +<li>
> +<a href="./nntp_configuration.html">NNTP Server</a>
> +</li>
> +<li>
> +<a href="./fetchmail_configuration.html">FetchMail</a>
> +</li>
> +<li>
> +<a href="./remotemanager_configuration.html">RemoteManager</a>
> +</li>
> +<li>
> +<a href="./spoolmanager_configuration.html">SpoolManager</a>
> +</li>
> +<li>
> +<a href="./serverwide_configuration.html">Server-wide</a>
> +</li>
> +<li>
> +<a href="./adding_users.html">Adding Users</a>
> +</li>
> +<li>
> +<a href="./provided_matchers.html">Provided Matchers</a>
> +</li>
> +<li>
> +<a href="./provided_mailets.html">Provided Mailets</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Common Configurations</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./smtp_auth.html">Using SMTP AUTH</a>
> +</li>
> +<li>
> +<a href="./using_database.html">Using a Database with James</a>
> +</li>
> +<li>
> +<a href="./usingTLS.html">Using TLS/SSL</a>
> +</li>
> +<li>
> +<a href="./james_and_sendmail.html">James and Sendmail</a>
> +</li>
> +<li>
> +<a href="./mailing_lists.html">Creating Mailing Lists</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Customization</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./custom_matcher.html">How to write a custom Matcher</a>
> +</li>
> +<li>
> +<a href="./custom_mailet.html">How to write a custom Mailet</a>
> +</li>
> +</ul>
> +    
> +    <p>
> +<strong>Project</strong>
> +</p>
> +<ul>
> +<li>
> +<a href="./changelog.html">Changelog</a>
> +</li>
> +</ul>
> +
> +   </navbar>
> +</td>
> +<!--MAIN BODY-->
> +<td align="left" valign="top" class="main-body">
> +<div class="section">
> +<div class="section-header">
> +<a name="DNS Configuration">
> +<strong>DNS Configuration</strong>
> +</a>
> +</div>
> +<p>
> +<div class="section-body">
> +
> +  
> +<p>DNS Transport services are controlled by a configuration block in
> +the config.xml. This block affects SMTP remote delivery.</p>
> +
> +<p>The dnsserver tag defines the boundaries of the configuration
> +block. It encloses all the relevant configuration for the DNS server.
> +The behavior of the DNS service is controlled by the attributes and
> +children of this tag.</p> 
> +
> +<p>The standard children of the dnsserver tag are:</p>
> +<ul>
> +<li>
> +<strong>servers</strong> - This is a list of DNS Servers to be used by James and are 
> +specified by one, or more <strong>
> +<i>server</i>
> +</strong> elements, which are child elements. 
> +Each server element is the IP address of a single DNS server.
> +<div class="source">
> +&lt;servers&gt;
> +  &lt;server&gt;127.0.0.1&lt;/server&gt;
> +  &lt;server&gt;166.181.194.205&lt;/server&gt;
> +&lt;/servers&gt;
> +</div>
> +</li>
> +
> +<li>
> +<strong>authoritative</strong> - (<strong>true/false</strong>)This tag specifies whether or not 
> +to require authoritative (non-cached) DNS records; to only accept DNS responses that are 
> +authoritative for the domain. It is primarily useful in an intranet/extranet environment.
> +<p>This should always be <strong>false</strong> unless you understand the implications.</p>
> +</li>
> +</ul>
> +</div>
> +</p>
> +</div>
> +</td>
> +</tr>
> +<!--FOOTER SEPARATOR-->
> +<tr>
> +<td colspan="2">
> +<hr size="1" noshade=""/>
> +</td>
> +</tr>
> +<tr>
> +<td colspan="2">
> +<div class="page-footer">
> +<em>
> +        Copyright © 1999-2006, The Apache Software Foundation
> +        </em>
> +</div>
> +</td>
> +</tr>
> +</table>
> +</body>
> +</html>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org