Changes since RC2 are attached.

I've done an upload to ~noel/james, but before I tag and we vote, is there
anything else that anyone feels should go into the release?

Last call at the saloon.  :-)

        --- Noel




Index: /home/noel/ASF/james/server/branches/v2.3/UPGRADE.txt
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/UPGRADE.txt       
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 0)
+++ /home/noel/ASF/james/server/branches/v2.3/UPGRADE.txt       
(.../home/noel/ASF/james/server/branches/v2.3)  (revision 441112)
@@ -0,0 +1,99 @@
+  =======================================================================
+  ===         The Apache Software Foundation JAMES Server             ===
+  =======================================================================
+
+  Upgrading ...
+  -----------------
+  
+  Please note that you need to start james 2.3.0 once before this steps can be 
performed. For installation guidelines 
+  read the README.
+  
+
+  Step 1: Copy mailboxes and users
+
+    Remove the apps/james/var directory and copy the apps/james/var directory 
of the old james
+    installation in this place.
+
+
+  Step 2: Copy and modify config.xml
+
+    Step 2.1 : Remove fetchpop block
+      
+      Its necessary to remove the fetchpop block in config.xml cause fetchpop 
was removed in 2.3.
+
+    
+    Step 2.2 : Move mailet and matcher packages config
+      
+      Move <mailetpackages> and <matcherpackages> outside from the 
<spoolmanager> block.
+
+      
+    Step 2.3 : Add neccassary mailets
+      
+      Add the <mailet match="All" class="PostmasterAlias"/> as the first 
mailet of the "root" processor.
+      This was hardcoded in 2.2.0 and previous. Now we made it configurable.
+
+      
+    Step 2.4 : Move the spoolrepository config
+    
+      Move the spoolrepository out of the mailstore. Its also necessary to 
change the config syntax. For example :
+      
+      <spoolRepository>
+         <repository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
+      </spoolRepository>
+
+      Must converted to
+      <spoolrepository destinationURL="db://maildb/spool/spool" type="SPOOL"/>
+
+ 
+    Step 2.5 : Move the objectstore
+      
+      Move the objectstore config into the mailstore config.
+      
+    Step 2.6 : Add SSL to server-sockets
+      
+      To be able to use SSL you need to add this SSL config to the 
server-sockets block:
+      
+         <!--
+         <factory name="ssl" 
class="org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory">
+            <ssl-factory>
+               <keystore>
+                  <file>conf/keystore</file>
+                  <password>secret</password>
+                  <key-password>keysecret</key-password>
+                  <type>JKS</type>
+                  <protocol>TLS</protocol>
+                  <algorithm>SunX509</algorithm>
+                  <authenticate-client>false</authenticate-client>
+               </keystore>
+            </ssl-factory>
+         </factory>
+         -->
+    
+    
+  Step 3: Modify costum mailets if necessary
+    Please note the following things which were changed. So maybe its 
necessary for you to 
+    change some stuff in your mailets.
+      
+    Avalon updates:
+    
+      o  avalon Component has been replaced by avalon Service
+      o  avalon Composable has been replaced by avalon Serviceable
+      o  avalon ComponentManager has been replaced by avalon ServiceManager
+    
+    
+    Cornerstone updates:
+    
+    o  MailStore interface has been removed: mailets looking up the MailStore 
should now lookup
+       a Store (org.apache.avalon.cornerstone.services.store.Store)
+  
+  
+  Step 4: Start james
+      
+    Now you should be able to start james without problems.
+      
+      
+  Good luck :)  
+
+ 
+                                           The James Project
+                                        http://james.apache.org/
Index: /home/noel/ASF/james/server/branches/v2.3/default.properties
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/default.properties        
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/default.properties        
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -8,7 +8,7 @@
 
 name=james
 Name=James Mail Server
-version=2.3.0rc2
+version=2.3.0rc3
 mailet-version=2.3
 mailet-api-version=2.3
 #package-version=3.0a1
Index: /home/noel/ASF/james/server/branches/v2.3/phoenix-bin/bin/phoenix.sh
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/phoenix-bin/bin/phoenix.sh        
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/phoenix-bin/bin/phoenix.sh        
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -138,7 +138,6 @@
 
 # Get the run cmd
 RUN_CMD="$JAVA_HOME/bin/java $JVM_OPTS \
-    $JVM_OPTS \
     $DEBUG \
     
-Djava.security.policy=jar:file:$PHOENIX_HOME/bin/phoenix-loader.jar!/META-INF/java.policy
 \
     $PHOENIX_JVM_OPTS \
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java
===================================================================
--- 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java
 (.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)       
 (revision 441120)
+++ 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java
 (.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -1,20 +1,24 @@
-/***********************************************************************
- * Copyright (c) 1999-2006 The Apache Software Foundation.             *
- * All rights reserved.                                                *
- * ------------------------------------------------------------------- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you *
- * may not use this file except in compliance with the License. You    *
- * may obtain a copy of the License at:                                *
- *                                                                     *
- *     http://www.apache.org/licenses/LICENSE-2.0                      *
- *                                                                     *
- * Unless required by applicable law or agreed to in writing, software *
- * distributed under the License is distributed on an "AS IS" BASIS,   *
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or     *
- * implied.  See the License for the specific language governing       *
- * permissions and limitations under the License.                      *
- ***********************************************************************/
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
 
+
+
 package org.apache.james.mailrepository;
 
 import org.apache.avalon.framework.configuration.Configuration;
@@ -141,20 +145,20 @@
                 
                 public boolean accept (String key, String state, long 
lastUpdated, String errorMessage) {
                     if (Mail.ERROR.equals(state)) {
-                    //if it's an error message, test the time
+                        //if it's an error message, test the time
                         long processingTime = delay + lastUpdated;
-                    if (processingTime < System.currentTimeMillis()) {
-                        //It's time to process
+                        if (processingTime < System.currentTimeMillis()) {
+                            //It's time to process
                             return true;
+                        } else {
+                            //We don't process this, but we want to possibly 
reduce the amount of time
+                            //  we sleep so we wake when this message is ready.
+                            if (sleepUntil == 0 || processingTime < 
sleepUntil) {
+                                sleepUntil = processingTime;
+                            }
+                            return false;
+                        }
                     } else {
-                        //We don't process this, but we want to possibly 
reduce the amount of time
-                        //  we sleep so we wake when this message is ready.
-                        if (sleepUntil == 0 || processingTime < sleepUntil) {
-                            sleepUntil = processingTime;
-                        }
-                            return false;
-                    }
-                } else {
                         return true;
                     }
                 }
@@ -189,12 +193,12 @@
             //Loop through until we are either out of pending messages or have 
a message
             // that we can lock
             PendingMessage next = null;
-            while ((next = getNextPendingMessage()) != null && 
!Thread.currentThread().isInterrupted()) {
+            while ((next = getNextPendingMessage(filter)) != null && 
!Thread.currentThread().isInterrupted()) {
                 //Check whether this is time to expire
                 
-                boolean shouldProcess = filter.accept (next.key, next.state, 
next.lastUpdated, next.errorMessage);
+                // boolean shouldProcess = filter.accept (next.key, 
next.state, next.lastUpdated, next.errorMessage);
                 
-                if (shouldProcess && lock(next.key)) {
+                if (/*shouldProcess && */ lock(next.key)) {
                     try {
                         Mail mail = retrieve(next.key);
                         // Retrieve can return null if the mail is no longer 
on the spool
@@ -241,11 +245,12 @@
      * checks the last time pending messages was loaded and load if
      * it's been more than 1 second (should be configurable).
      */
-    private PendingMessage getNextPendingMessage() {
+    private PendingMessage getNextPendingMessage(SpoolRepository.AcceptFilter 
filter) {
         synchronized (pendingMessages) {
             if (pendingMessages.size() == 0 && pendingMessagesLoadTime < 
System.currentTimeMillis()) {
-                pendingMessagesLoadTime = LOAD_TIME_MININUM + 
System.currentTimeMillis();
-                loadPendingMessages();
+                // pendingMessagesLoadTime = LOAD_TIME_MININUM + 
System.currentTimeMillis();
+                loadPendingMessages(filter);
+                pendingMessagesLoadTime = Math.max(filter.getWaitTime(), 
LOAD_TIME_MININUM) + System.currentTimeMillis();
             }
 
             if (pendingMessages.size() == 0) {
@@ -259,7 +264,7 @@
     /**
      * Retrieves the pending messages that are in the database
      */
-    private void loadPendingMessages() {
+    private void loadPendingMessages(SpoolRepository.AcceptFilter filter) {
         //Loads a vector with PendingMessage objects
         synchronized (pendingMessages) {
             pendingMessages.clear();
@@ -272,7 +277,11 @@
                 listMessages =
                     
conn.prepareStatement(sqlQueries.getSqlString("listMessagesSQL", true));
                 listMessages.setString(1, repositoryName);
-                listMessages.setMaxRows(maxPendingMessages);
+                // Too simplistic.  When filtering, we may need to see
+                // more than just maxPendingMessages to load the
+                // cache, so just hope that the driver and server use
+                // cursors properly.
+                // --> listMessages.setMaxRows(maxPendingMessages);
                 rsListMessages = listMessages.executeQuery();
                 // Continue to have it loop through the list of messages until 
we hit
                 // a possible message, or we retrieve maxPendingMessages 
messages.
@@ -283,7 +292,9 @@
                     String state = rsListMessages.getString(2);
                     long lastUpdated = 
rsListMessages.getTimestamp(3).getTime();
                     String errorMessage = rsListMessages.getString(4);
-                    pendingMessages.add(new PendingMessage(key, state, 
lastUpdated, errorMessage));
+                    if (filter.accept(key, state, lastUpdated, errorMessage)) {
+                        pendingMessages.add(new PendingMessage(key, state, 
lastUpdated, errorMessage));
+                    }
                 }
             } catch (SQLException sqle) {
                 //Log it and avoid reloading for a bit
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
===================================================================
--- 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
 (.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)       
 (revision 441120)
+++ 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
 (.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -1,20 +1,23 @@
-/***********************************************************************
- * Copyright (c) 2000-2006 The Apache Software Foundation.             *
- * All rights reserved.                                                *
- * ------------------------------------------------------------------- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you *
- * may not use this file except in compliance with the License. You    *
- * may obtain a copy of the License at:                                *
- *                                                                     *
- *     http://www.apache.org/licenses/LICENSE-2.0                      *
- *                                                                     *
- * Unless required by applicable law or agreed to in writing, software *
- * distributed under the License is distributed on an "AS IS" BASIS,   *
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or     *
- * implied.  See the License for the specific language governing       *
- * permissions and limitations under the License.                      *
- ***********************************************************************/
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
 
+
 package org.apache.james.remotemanager;
 
 import org.apache.avalon.cornerstone.services.connection.ConnectionHandler;
@@ -54,6 +57,11 @@
     implements ConnectionHandler, Poolable {
 
     /**
+     * The text string for the MEMSTAT command
+     */
+    private static final String COMMAND_MEMSTAT = "MEMSTAT";
+
+    /**
      * The text string for the ADDUSER command
      */
     private static final String COMMAND_ADDUSER = "ADDUSER";
@@ -417,6 +425,8 @@
             return doUNSETFORWARDING(argument);
         } else if (command.equals(COMMAND_USER)) {
             return doUSER(argument);
+        } else if (command.equals(COMMAND_MEMSTAT)) {
+            return doMEMSTAT(argument);
         } else if (command.equals(COMMAND_QUIT)) {
             return doQUIT(argument);
         } else if (command.equals(COMMAND_SHUTDOWN)) {
@@ -428,6 +438,29 @@
     }
 
     /**
+     * Handler method called upon receipt of an MEMSTAT command.
+     * Returns whether further commands should be read off the wire.
+     *
+     * @param argument the argument passed in with the command
+     */
+    private boolean doMEMSTAT(String argument) {
+        writeLoggedFlushedResponse("Current memory statistics:");
+        writeLoggedFlushedResponse("\tFree Memory: " + 
Runtime.getRuntime().freeMemory());
+        writeLoggedFlushedResponse("\tTotal Memory: " + 
Runtime.getRuntime().totalMemory());
+        writeLoggedFlushedResponse("\tMax Memory: " + 
Runtime.getRuntime().maxMemory());
+
+        if ("-gc".equalsIgnoreCase(argument)) {
+            System.gc();
+            writeLoggedFlushedResponse("And after System.gc():");
+            writeLoggedFlushedResponse("\tFree Memory: " + 
Runtime.getRuntime().freeMemory());
+            writeLoggedFlushedResponse("\tTotal Memory: " + 
Runtime.getRuntime().totalMemory());
+            writeLoggedFlushedResponse("\tMax Memory: " + 
Runtime.getRuntime().maxMemory());
+        }
+
+        return true;
+    }
+
+    /**
      * Handler method called upon receipt of an ADDUSER command.
      * Returns whether further commands should be read off the wire.
      *
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/transport/mailets/LogMessage.java
===================================================================
--- 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/transport/mailets/LogMessage.java
       (.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2) 
       (revision 441120)
+++ 
/home/noel/ASF/james/server/branches/v2.3/src/java/org/apache/james/transport/mailets/LogMessage.java
       (.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -54,7 +54,7 @@
         try {
             passThrough = (getInitParameter("passThrough") == null) ? true : 
new Boolean(getInitParameter("passThrough")).booleanValue();
             headers = (getInitParameter("headers") == null) ? true : new 
Boolean(getInitParameter("headers")).booleanValue();
-            passThrough = (getInitParameter("body") == null) ? true : new 
Boolean(getInitParameter("body")).booleanValue();
+            body = (getInitParameter("body") == null) ? true : new 
Boolean(getInitParameter("body")).booleanValue();
             bodyMax = (getInitParameter("maxBody") == null) ? 0 : 
Integer.parseInt(getInitParameter("maxBody"));
             comment = getInitParameter("comment");
         } catch (Exception e) {
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/mailet_api_2_1.xml
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/mailet_api_2_1.xml  
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/mailet_api_2_1.xml  
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -40,7 +40,9 @@
 or pass the message to an external API or component.  This can include 
delivering a message to its destination 
 repository or SMTP server.</p>
 <p>The Mailet API is currently in its second revision.  Although, the Mailet 
API is expected to undergo substantial changes in the near future, it is our 
aim that existing Mailets that abided purely by the prior Mailet API interfaces 
will continue to run with the revised specification.</p>
+<!--
 <p>The Javadoc for the Mailet API can be found <a 
href="mailet/index.html">here</a>.</p>
+-->
 <p>James bundles a number of Matchers and Mailets in its distribution.  
Descriptions of provided matchers 
 can be found <a href="provided_matchers_2_1.html">here</a>, while descriptions 
of provided mailets can be found 
 <a href="provided_mailets_2_1.html">here</a>.</p>
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/mailet_api_2_3.xml
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/mailet_api_2_3.xml  
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/mailet_api_2_3.xml  
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -40,7 +40,7 @@
 or pass the message to an external API or component.  This can include 
delivering a message to its destination 
 repository or SMTP server.</p>
 <p>The Mailet API is currently in its second revision.  Although, the Mailet 
API is expected to undergo substantial changes in the near future, it is our 
aim that existing Mailets that abided purely by the prior Mailet API interfaces 
will continue to run with the revised specification.</p>
-<p>The Javadoc for the Mailet API can be found <a 
href="mailet/index.html">here</a>.</p>
+<p>The Javadoc for the Mailet API can be found <a 
href="apidocs/index.html">here</a>.</p>
 <p>James bundles a number of Matchers and Mailets in its distribution.  
Descriptions of provided matchers 
 can be found <a href="provided_matchers_2_3.html">here</a>, while descriptions 
of provided mailets can be found 
 <a href="provided_mailets_2_3.html">here</a>.</p>
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/provided_matchers_2_3.xml
===================================================================
--- 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/provided_matchers_2_3.xml
   (.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)     
   (revision 441120)
+++ 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/provided_matchers_2_3.xml
   (.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -182,6 +182,17 @@
 <p>Configuration string: One of three strings - "blackholes.mail-abuse.org", 
"relays.mail-abuse.org", or "dialups.mail-abuse.org".</p>
 </subsection>
 
+<subsection name="IsInWhiteList">
+<p>Description: Matches recipients having the mail sender in the recipient's 
private whitelist.
+The recipient name is always converted to its primary name (handling 
aliases).</p>
+<p>Configuration string: The database name containing the white list table.</p>
+<pre><code>
+&lt;mailet match="IsInWhiteList=db://maildb" class="ToProcessor"&gt;
+  &lt;processor&gt; transport &lt;/processor&gt;
+&lt;/mailet&gt;
+</code></pre>
+</subsection>
+
 <subsection name="IsSingleRecipient">
 <p>Description: Matches those messages sent to only a single recipient.  The 
single recipient is returned.</p>
 <p>Configuration string: None.</p>
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/provided_mailets_2_3.xml
===================================================================
--- 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/provided_mailets_2_3.xml
    (.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)    
    (revision 441120)
+++ 
/home/noel/ASF/james/server/branches/v2.3/src/site/xdoc/provided_mailets_2_3.xml
    (.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -30,10 +30,11 @@
 <p>James provides a number of implemented Mailets for use by James 
administrators in their 
 configurations.  These are primarily mailets that members of the James 
developer or user 
 communities have found useful in their own configurations.  A description of 
how to configure 
-Mailets and use them in the James SpoolManager can be found <a 
href="spoolmanager_configuration_2_1.html">here</a>.</p>
+Mailets and use them in the James SpoolManager can be found <a 
href="spoolmanager_configuration_2_3.html">here</a>.</p>
 
 <subsection name="AddFooter">
 <p>Description: This mailet adds a text footer to the message.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>text</strong> (required) - the text that will be added as a footer 
to the message.</li>
@@ -43,23 +44,19 @@
 
 <subsection name="AddHabeasWarrantMark">
 <p>Description: This mailet adds a Habeas warrant mark (see <a 
href="http://habeas.com";>http://habeas.com</a> for details) to the message.</p>
+
 <p>Parameters: None.</p>
 </subsection>
 
 <subsection name="AddHeader">
 <p>Description: This mailet is <strong>deprecated</strong> .Please use 
SetMimeHeader .</p>
-<p>Parameters:
-<ul>
-<li><strong>name</strong> (required) - the name of the header to be added to 
the message.</li>
-<li><strong>value</strong> (required) - the text that will be added as a 
header to the message.</li>
-</ul>
-</p>
 </subsection>
 
 <subsection name="AvalonListserv">
 <p>Provides basic list server functionality.  Implements basic filters for 
emails sent to the list, 
 including restriction of senders to members, diallowing attachments in list 
messages, and subject line 
 processing</p>
+
 <p>Parameters:
 <ul>
 <li><strong>repositoryName</strong> (required) - the name of the user 
repository that contains the users 
@@ -83,6 +80,7 @@
 &lt;list-name&gt;-off@&lt;host&gt; where &lt;list-name&gt; and lt;host&gt; are 
arbitrary.  Note 
 that this should be used in tandem with a CommandForListserv matcher to ensure 
that only commands 
 intended for a specific list are processed.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>repositoryName</strong> (required) - the name of the user 
repository that contains the users 
@@ -93,6 +91,7 @@
 
 <subsection name="BayesianAnalysis">
 <p>Description: Spam detection mailet using bayesian analysis techniques.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>repositoryPath</strong> (required) - The repositoryPath which is 
used.</li>
@@ -106,6 +105,7 @@
 
 <subsection name="BayesianAnalysisFeeder">
 <p>Description: Feeds ham OR spam messages to train the BayesianAnalysis 
mailet.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>repositoryPath</strong> (required) - The repositoryPath which is 
used.</li>
@@ -117,6 +117,7 @@
 
 <subsection name="Bounce">
 <p>Description: Generates a response to the reverse-path address.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>sender</strong> - The senderAddress which will be used for sending 
the bounce. Possible values: <i>address</i>, <i>postmaster</i> , <i>sender</i>,
@@ -140,6 +141,7 @@
 
 <subsection name="ClamAVScan">
 <p>Description: Does an antivirus scan check using a ClamAV daemon (CLAMD).</p>
+
 <p>Parameters:
 <ul>
 <li><strong>host</strong> - The host name of the server where CLAMD runs. The 
default is <i>localhost</i></li>
@@ -156,6 +158,67 @@
 </p>
 </subsection>
 
+<subsection name="CommandListservFooter">
+<p>Description: CommandListservFooter is based on the AddFooter mailet. It is 
used by the CommandListservProcessor to inject a footer into mailing list.</p>
+
+<p>Parameters: None.</p>
+</subsection>
+
+<subsection name="CommandListservManager">
+<p> Description: CommandListservManager is the default implementation of 
ICommandListservManager.
+It loads all the configured IListServCommands and delegates to them at runtime.
+<br/>
+It isn't responsible for procesing messages sent to the main mailing list, but 
is responsible for
+individual commands sent by users, such as: info, subscribe, etc...
+<br/>
+Requests sent to the CommandListservManager take the form of:
+<pre>
+&lt;listName&gt;-&lt;commandName&gt;@domain
+</pre>
+ 
+If the command isn't recognized an error will be sent.
+<br/>
+<br/>
+The configuration for this mailet sould be in the 'root' processor block.</p>
+
+<p>Parameters:
+<ul>
+<li><strong>listName</strong> - The listname </li>
+<li><strong>displayName</strong>  - The full listname</li>
+<li><strong>listOwner</strong> - An emailaddress which will be used as 
owneraddress.</li>
+<li><strong>repositoryName</strong> - the repository name </li> 
+<li><strong>listDomain</strong> - The domain</li>
+</ul>
+</p>
+<br/> 
+<p> Example configuration:
+<source>
+&lt;mailet match="[EMAIL PROTECTED]" class="CommandListservManager"&gt;
+  &lt;listName&gt;announce&lt;/listName&gt;
+  &lt;displayName&gt;Announce mailing list&lt;/displayName&gt;
+  &lt;listOwner&gt;[EMAIL PROTECTED]&lt;/listOwner&gt;
+  &lt;repositoryName&gt;list-announce&lt;/repositoryName&gt;
+  &lt;listDomain&gt;localhost&lt;/listDomain&gt;
+
+  &lt;commandpackages&gt;
+     
&lt;commandpackage&gt;org.apache.james.transport.mailets.listservcommands&lt;/commandpackage&gt;
+  &lt;/commandpackages&gt;
+
+  &lt;commands&gt;
+     &lt;command name="subscribe" class="Subscribe"/&gt;
+     &lt;command name="subscribe-confirm" class="SubscribeConfirm"/&gt;
+     &lt;command name="unsubscribe" class="UnSubscribe"/&gt;
+     &lt;command name="unsubscribe-confirm" class="UnSubscribeConfirm"/&gt;
+     &lt;command name="error" class="ErrorCommand"/&gt;
+     &lt;command name="owner" class="Owner"/&gt;
+     &lt;command name="info" class="Info"/&gt;
+  &lt;/commands&gt;
+ &lt;/mailet&gt;
+</source> 
+</p>
+</subsection>
+
+
 <subsection name="DSNBounce">
 <p>Description: Generates a Delivery Status Notification (DSN). Note that this 
is different than a mail-client's
 reply, which would use the Reply-To or From header.Bounced messages are 
attached in their entirety (headers and
@@ -164,6 +227,7 @@
 meaning that no reply should be sent.
 A sender of the notification message can optionally be specified.
 If one is not specified, the postmaster's address will be used.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>sender</strong> - An address, postmaster,sender or unaltered. 
Default is <i>postmaster</i></li>
@@ -181,6 +245,7 @@
 
 <subsection name="Forward">
 <p>Description: This mailet forwards the message to a set of recipients.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>forwardto</strong> (required) - a comma delimited list of email 
addresses.</li>
@@ -190,6 +255,7 @@
 
 <subsection name="FromRepository">
 <p>Description: This mailet ee-spools mail found in the specified 
Repository.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>repositoryPath</strong> (required) - The repositoryPath which is 
used.</li>
@@ -199,8 +265,15 @@
 </p>
 </subsection>
 
+<subsection name="ICommandListservManager">
+<p>Description: ICommandListservManager is the interface that describes the 
functionality of any command based list serv managers.</p>
+
+<p>Parameters: None.</p>
+</subsection>
+
 <subsection name="JDBCAlias">
 <p>Description: This mailet does alias translation for email addresses stored 
in a database table.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>mappings</strong> (required) - a URL of the form 
db://&lt;data-source&gt;/&lt;table&gt;, where 
@@ -214,6 +287,7 @@
 
 <subsection name="JDBCVirtualUserTable">
 <p>Description: This mailet does complex alias translation for email addresses 
stored in a database table.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>table</strong> (required) - the URL describing the database table. 
 This URL has the form 
@@ -227,11 +301,28 @@
 
 <subsection name="LocalDelivery">
 <p>Description: This mailet delivers messages to local mailboxes.</p>
+
 <p>Parameters: None.</p>
 </subsection>
 
+<subsection name="LogMessage">
+<p>Description: Logs Message Headers and/or Body.</p>
+
+<p>Parameters:
+<ul>
+<li><strong>passThrough</strong> (optional) - If the "passThrough" in confs is 
true the mail will be left untouched in
+the pipe. If false will be destroyed.  Default is true.</li>
+<li><strong>headers</strong> (optional) - If set to true the headers get 
logged. Default is true"</li>
+<li><strong>body</strong> (optional) - If set to true the body get logged. 
Default is true.</li>
+<li><strong>bodyMax</strong> (optional) - The max length wich should be 
logged. Default is log all.</li>
+<li><strong>comment</strong> (optional) - The comment which should be logged  
Default is none.</li>
+</ul>
+</p>
+</subsection>
+
 <subsection name="NotifyPostmaster">
 <p>Description: This mailet forwards the message as an attachment to the James 
postmaster.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>sendingAddress</strong> (optional) - the address from which the 
forwarded email will be 
@@ -245,6 +336,7 @@
 
 <subsection name="NotifySender">
 <p>Description: This mailet forwards the message as an attachment to the 
original sender.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>sendingAddress</strong> (optional) - the address from which the 
forwarded email will be 
@@ -258,6 +350,7 @@
 
 <subsection name="Null">
 <p>Description: This mailet ends processing for this mail.</p>
+
 <p>Parameters: None.</p>
 </subsection>
 
@@ -266,6 +359,7 @@
 of the domains managed by this James server and substitutes the configured 
James postmaster address for
 the original recipient address.  This mailet is inserted automatically by 
James at the head of the root
 processor.</p>
+
 <p>Parameters: None.</p>
 </subsection>
 
@@ -280,12 +374,14 @@
     By extending it and overriding one or more of its methods new behaviour can
     be quickly created without the author having to address any other issue 
than
     the relevant one. For more information see the javadocs
-    <a 
href="javadocs/org/apache/james/transport/mailets/Redirect.html">here</a>.</p>
-<p>Parameters: <a 
href="javadocs/org/apache/james/transport/mailets/Redirect.html">See 
javadocs.</a></p>
+    <a 
href="apidocs/org/apache/james/transport/mailets/Redirect.html">here</a>.</p>
+
+<p>Parameters: <a 
href="apidocs/org/apache/james/transport/mailets/Redirect.html">See 
javadocs.</a></p>
 </subsection>
 
 <subsection name="RemoteDelivery">
 <p>Manages delivery of messages to recipients on remote SMTP hosts.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>outgoing</strong> (required) - The URL for the repository that 
will hold messages being processed
@@ -323,12 +419,14 @@
 </subsection>
 
 <subsection name="RemoveAllMailAttributes">
-<p>Desctription: Removes all attributes on the Mail instance.</p>
-<p>Parameters: None. </p>
+<p>Description: Removes all attributes on the Mail instance.</p>
+
+<p>Parameters: None.</p>
 </subsection>
 
-<subsection name="RemoveAllMailAttributes">
-<p>Desctription: Remove attributes on the Mail instance.</p>
+<subsection name="RemoveMailAttributes">
+<p>Description: Remove attributes on the Mail instance.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>name</strong> (required) - The name of the attribute to 
remove.</li>
@@ -336,13 +434,85 @@
 </p>
 </subsection>
 
+<subsection name="Resend">
+<p>Description:A mailet providing configurable redirection services. For more 
information see 
+the javadocs <a 
href="apidocs/org/apache/james/transport/mailets/Resend.html">here</a>.</p>
+
+<p>Parameters: <a 
href="apidocs/org/apache/james/transport/mailets/Resend.html">See 
javadocs.</a></p>
+</subsection>
+
 <subsection name="ServerTime">
 <p>Description: This mailet sends a message to the sender of the original mail 
message with a server timestamp.</p>
+
 <p>Parameters: None.</p>
 </subsection>
 
+<subsection name="SetMailAttributes">
+<p>Description: Set attributes on the Mail instance.</p>
+
+<p>Parameters:
+<ul>
+<li><strong>name</strong> (required) - The name of the attribute to set.</li>
+</ul>
+</p>
+</subsection>
+
+<subsection name="SetMimeHeader">
+<p>Description: Set an MimeHeader on a MimeMessage.</p>
+
+<p>Parameters:
+<ul>
+<li><strong>name</strong> (required) - the name of the header to be added to 
the message.</li>
+<li><strong>value</strong> (required) - the text that will be added as a 
header to the message.</li>
+</ul>
+</p>
+</subsection>
+
+<subsection name="SMIMECheckSignature">
+<p>Description: Verifies the s/mime signature of a message. The s/mime signing 
ensure that
+the private key owner is the real sender of the message. To be checked by
+this mailet the s/mime signature must contain the actual signature, the
+signer's certificate and optionally a set of certificate that can be used to
+create a chain of trust that starts from the signer's certificate and leads
+to a known trusted certificate.
+</p>
+<p>
+This check is composed by two steps: firstly it's ensured that the signature
+is valid, then it's checked if a chain of trust starting from the signer
+certificate and that leads to a trusted certificate can be created. The first
+check verifies that the the message has not been modified after the signature
+was put and that the signer's certificate was valid at the time of the
+signing. The latter should ensure that the signer is who he declare to be.
+</p>
+
+<p>Parameters: <a 
href="apidocs/org/apache/james/transport/mailets/smime/SMIMECheckSignature.html">See
 javadocs.</a></p>
+</subsection>
+
+<subsection name="SMIMEDecrypt">
+<p>Description: This mailet decrypts a s/mime encrypted message. It takes as 
input an
+encrypted message and it tries to dechiper it using the key specified in its
+configuration. If the decryption is successful the mail will be changed and
+it will contain the decrypted message. The mail attribute
+<code>org.apache.james.SMIMEDecrypt</code> will contain the public
+certificate of the key used in the process. </p>
+
+<p>Parameters: <a 
href="apidocs/org/apache/james/transport/mailets/smime/SMIMEDecrypt.html">See 
javadocs.</a></p>
+</subsection>
+
+<subsection name="SMIMESign">
+<p>Description: Puts a <i>server-side</i> SMIME signature on a message.
+It is a concrete subclass of SMIMEAbstractSign, with very few modifications to 
it.</p>
+<p>A text file with an explanation text is attached to the original message,
+and the resulting message with all its attachments is signed.
+The resulting appearence of the message is almost unchanged: only an extra 
attachment
+and the signature are added.</p>
+
+<p>Parameters: <a 
href="apidocs/org/apache/james/transport/mailets/smime/SMIMESign.html">See 
javadocs.</a></p>
+</subsection>
+
 <subsection name="ToProcessor">
-<p>Redirects processing of the mail message to the specified processor.</p>
+<p>Description: Redirects processing of the mail message to the specified 
processor.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>processor</strong> (required) - the name of the processor to which 
the message
@@ -354,8 +524,29 @@
 </p>
 </subsection>
 
+<subsection name="ToMultiRepository">
+<p>Description: Receives a Mail from JamesSpoolManager and takes care of 
delivery of the
+message to local inboxes or a specific repository.
+ 
+Differently from LocalDelivery this does not lookup the UserRepository This
+simply store the message in a repository named like the local part of the
+recipient address.
+ 
+If no repository is specified then this fallback to MailServer.getUserInbox.
+Otherwise you can add your own configuration for the repository.</p>
+<p>Parameters:
+<ul>
+<li><strong>repositoryUrl</strong> (required) - the URL of the repository to 
which the message
+is to be added.</li>
+<li><strong>addDeliveryHeader</strong> (optional) - a String value which can 
be used specify a header which will add to the message. 
+Default is to not add a header.</li>
+</ul>
+</p>
+</subsection>
+
 <subsection name="ToRepository">
 <p>Places a copy of the message in the specified repository.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>repositoryPath</strong> (required) - the URL of the repository to 
which the message
@@ -370,6 +561,7 @@
 <p>Description: Ignores the recipients associated with the Mail interface.  
Instead, it regenerates the
 mail recipients from the MimeMessage headers (To, Cc, Bcc) and inserts a new 
message at the queue root
 these new recipients.  The original message is GHOSTed.</p>
+
 <p>Parameters:
 <ul>
 <li><strong>debug</strong> (optional) - a boolean value (true/false) 
indicating whether debugging is
@@ -377,6 +569,58 @@
 </ul>
 </p>
 </subsection>
+
+<subsection name="UsersRepositoryAliasingForwarding">
+<p>Receives a Mail from JamesSpoolManager and takes care of delivery of the
+message to local inboxes.</p>
+
+<p>Parameters:
+<ul>
+<li><strong>enableAliases</strong> (optional) - Specify wether the user 
aliases should 
+be looked up or not. Default is false.</li>
+<li><strong>enableForwarding</strong> (optional) -Enable the forwarding. 
Default to 
+false.</li>
+<li><strong>usersRepository</strong> (optional) - Specific users repository
+name. Default to empty. If empty does lookup the default userRepository.
+</li>
+</ul>
+</p>
+</subsection>
+
+<subsection name="WhiteListManager">
+<p>Manages for each local user a "white list" of remote addresses whose 
messages
+should never be blocked as spam.</p>
+<p>The normal behaviour is to check, for a local sender, if a remote recipient
+is already in the list: if not, it will be automatically inserted.
+This is under the interpretation that if a local sender <i>X</i> sends a 
message to a
+remote recipient <i>Y</i>, then later on if a message is sent by <i>Y</i> to 
<i>X</i> it should be
+considered always valid and never blocked; hence <i>Y</i> should be in the 
white list
+of <i>X</i>.</p>
+<p>Another mode of operations is when a local sender sends a message to 
<i>whitelistManagerAddress</i>
+with one of three specific values in the subject, to
+(i) send back a message displaying a list of the addresses in his own list;
+(ii) insert some new addresses in his own list;
+(iii) remove some addresses from his own list.
+In all this cases the message will be ghosted and the postmaster will reply
+to the sender.</p>
+<p> The sender name is always converted to its primary name (handling 
aliases).</p>
+
+<p>Parameters:
+<ul>
+<li><strong>repositoryPath</strong>  - The repository path.</li>
+<li><strong>automaticInsert</strong> (optional) - If true automatically 
inserts the local sender to remote 
+recipients entries in the whitelist. Default is false.</li>
+<li><strong>whitelistManagerAddress</strong> (optional) -  Set this to an 
email address of the "whitelist manager" to send 
+commands to (default is null).</li>
+<li><strong>displayFlag</strong> (optional) - Set this to a unique text that 
you can use (by sending a 
+message to the "whitelist manager" above) to tell the mailet to send back the 
contents of the white list. Default is null.</li>
+<li><strong>insertFlag</strong> (optional) - Set this to a unique text that 
you can use (by sending a message to the "whitelist manager" above)
+to tell the mailet to insert some new remote recipients to the white list. 
Default is null.</li>
+<li><strong>removeFlag</strong> (optional) - Set this to a unique text that 
you can use (by sending a message to the "whitelist manager" above)
+to tell the mailet to remove some remote recipients from the white list. 
Default is null.</li>
+</ul>
+</p>
+</subsection>
 </section>
 </body>
 </document>
Index: /home/noel/ASF/james/server/branches/v2.3/src/conf/james-config.xml
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/src/conf/james-config.xml 
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/src/conf/james-config.xml 
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -19,7 +19,7 @@
 <!-- In case the defaults do not suit you, the items you are most likely to 
need to change -->
 <!-- are preceded by a CHECKME! or CONFIRM? comment in the left margin. -->
 
-<!-- For production use you will probably n"src/conf/james-assembly.xml"eed to 
make more extensive changes, see -->
+<!-- For production use you will probably need to make more extensive changes, 
see -->
 <!-- http://james.apache.org/documentation_2_1.html -->
 
 <!-- $Revision$ Committed on $Date$ by: $Author$ -->
Index: 
/home/noel/ASF/james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageTest.java
===================================================================
--- 
/home/noel/ASF/james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageTest.java
       (.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2) 
       (revision 441112)
+++ 
/home/noel/ASF/james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageTest.java
       (.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -92,7 +92,7 @@
         MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new 
Properties()));
         mmCreated.setSubject("test");
         MimeMultipart mm = new MimeMultipart("alternative");
-        mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new 
ByteArrayInputStream("X-header: test1\r\nContent-Type: text/plain; 
charset=Cp1252\r\n".getBytes())),"first part òàù".getBytes()));
+        mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new 
ByteArrayInputStream("X-header: test1\r\nContent-Type: text/plain; 
charset=Cp1252\r\n".getBytes())),"first part ���".getBytes()));
         mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new 
ByteArrayInputStream("X-header: test2\r\nContent-Type: text/plain; 
charset=Cp1252\r\nContent-Transfer-Encoding: 
quoted-printable\r\n".getBytes())),"second part =E8=E8".getBytes()));
         mmCreated.setContent(mm);
         mmCreated.saveChanges();
Index: /home/noel/ASF/james/server/branches/v2.3/build.xml
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/build.xml 
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/build.xml 
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -140,6 +140,7 @@
           <include name="LICENSE.txt"/>
           <include name="NOTICE.txt"/>
           <include name="README"/>
+          <include name="UPGRADE.txt"/>
         </fileset>
       </copy>
       <fixcrlf srcdir="${java.dir}" includes="**/*.java" eol="lf" tab="remove" 
tablength="4" />
@@ -632,6 +633,7 @@
                 <include name="README"/>
                 <include name="LICENSE.txt"/>
                 <include name="NOTICE.txt"/>
+                <include name="UPGRADE.txt"/>
                 <include name="build.*"/>
                 <include name="lib/**"/>
                 <include name="${phoenix.dir}/**"/>
@@ -648,6 +650,7 @@
                 <include name="README"/>
                 <include name="LICENSE.txt"/>
                 <include name="NOTICE.txt"/>
+                <include name="UPGRADE.txt"/>
                 <include name="build.*"/>
                 <include name="lib/**"/>
                 <include name="${phoenix.dir}/**"/>
@@ -674,6 +677,7 @@
                 <include name="tools/**"/>
                 <include name="*.txt"/>
                 <include name="README"/>
+                <include name="UPGRADE.txt"/>
                 <include name="KEYS"/>
                 <include name="LICENSE.txt"/>
                 <include name="NOTICE.txt"/>
@@ -689,6 +693,7 @@
                 <include name="tools/**"/>
                 <include name="*.txt"/>
                 <include name="README"/>
+                <include name="UPGRADE.txt"/>
                 <include name="KEYS"/>
                 <include name="LICENSE.txt"/>
                 <include name="NOTICE.txt"/>
Index: /home/noel/ASF/james/server/branches/v2.3/README.txt
===================================================================
--- /home/noel/ASF/james/server/branches/v2.3/README.txt        
(.../https://svn.apache.org/repos/asf/james/server/tags/build_2_3_0_RC2)        
(revision 441120)
+++ /home/noel/ASF/james/server/branches/v2.3/README.txt        
(.../home/noel/ASF/james/server/branches/v2.3)  (working copy)
@@ -26,7 +26,7 @@
   These are some JAMES features:
   
     o  complete portability:  James is a 100% pure Java(tm) application
-       based on the Java 2 platform and the JavaMail 1.3.1 API.
+       based on the Java 2 platform and the JavaMail 1.4 API.
        
     o  protocol abstraction:  unlike other mail engines, protocols are seen 
only
        like "communication languages" ruling communications between clients and
@@ -97,8 +97,8 @@
   Step 2: start phoenix.
 
     M$ users should just run /bin/run.bat. Unix users will find run.sh
-    under the same folder - you may need to chmod +x run.sh. A JVM must be in
-    the path.
+    under the same folder - you may need to chmod +x run.sh and chmod +x 
phoenix.sh.
+    A JVM must be in the path.
 
     Phoenix will unpack the james.sar into apps/james. Note that port 1111
     must be available for Phoenix to run (used by RMI server).
@@ -106,8 +106,9 @@
     Most UNIX systems require superuser privileges to open sockets below 1024,
     which includes the IANA-standard SMTP (on port 25), POP3 (on port 110),
     IMAP (port ) and NNTP (port ).  You will get an error message with
-      'org.apache.avalon.framework.atlantis.ApplicationException: Failed to
-       load block imapserver'
+      'org.apache.avalon.phoenix.containerkit.lifecycle.LifecycleException: 
Component 
+      named "xxx" failed to pass through the Starting stage. (Reason: 
java.net.BindException: 
+      Permission denied).'
     or something similar if you have not got the right privileges.
 
     If you have the right privileges,  you should see
@@ -155,14 +156,14 @@
 
     Trace out JAMES actions in /logs/*info.log.
     Action that will be taken by JAMES on incoming mail are configurated in
-    the mailet pipe line (/conf/james.conf.xml). Look at it if you want to
+    the mailet pipe line (/apps/james/SAR-INF/config.xml). Look at it if you 
want to
     understand what's happening.
 
   Step 5: configuration.
 
-    The configuration files are in apps/james/conf.  For new users, the only
-    elements you need to worry about are in config.xml. You probably want to
-    change the root password in the remote manager section and to add your
+    The configuration files are in apps/james/conf and apps/james/SAR-INF/.  
For new 
+    users, the only elements you need to worry about are in config.xml. You 
probably 
+    want to change the root password in the remote manager section and to add 
your
     local network's IP address to the anti-spam mailet.
 
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to