blob: 1ad7ca898f5bc0e628e5bb0e577b909b438604bc [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>James Server -
James 2.3 - Upgrading</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body class="composite">
<div id="banner">
<a href="http://james.apache.org/index.html" id="bannerLeft">
<img src="images/james-server-logo.gif" alt="" />
</a>
<a href="http://www.apache.org/index.html" id="bannerRight">
<img src="images/asf-logo-reduced.gif" alt="" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
Last Published: 09/02/2009
</div>
<div class="xright"> <a href="../../index.html">JAMES Project</a>
|
<a href="../../server/index.html">Server</a>
|
<a href="../../mailet/index.html">Mailets</a>
|
<a href="../../jspf/index.html">jSPF</a>
|
<a href="../../mime4j/index.html">Mime4J</a>
|
<a href="../../jsieve/index.html">JSieve</a>
|
<a href="../../postage/index.html">Postage</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>James Server</h5>
<ul>
<li class="none">
<a href="../index.html">Overview</a>
</li>
<li class="none">
<a href="../design_objectives.html">Objectives</a>
</li>
<li class="expanded">
<a href="../FAQ.html">James FAQ</a>
<ul>
<li class="none">
<a href="../james_and_sendmail.html">James and Sendmail</a>
</li>
</ul>
</li>
<li class="none">
<a href="http://wiki.apache.org/james">Wiki</a>
</li>
<li class="none">
<a href="../rfclist.html">Useful RFCs</a>
</li>
</ul>
<h5>Overview</h5>
<ul>
<li class="none">
<a href="index.html">Introduction</a>
</li>
<li class="none">
<a href="release-notes.html">Release Notes</a>
</li>
</ul>
<h5>Concepts</h5>
<ul>
<li class="none">
<a href="summary.html">Summary</a>
</li>
<li class="none">
<a href="spoolmanager.html">SpoolManager</a>
</li>
<li class="none">
<a href="repositories.html">Repositories</a>
</li>
<li class="none">
<a href="mailet_api.html">The Mailet API</a>
</li>
</ul>
<h5>How to...</h5>
<ul>
<li class="none">
<a href="build_instructions.html">Build James</a>
</li>
<li class="none">
<a href="installation_instructions.html">Install James</a>
</li>
</ul>
<h5>Configuration</h5>
<ul>
<li class="none">
<a href="dns_configuration.html">DNS Server</a>
</li>
<li class="none">
<a href="pop3_configuration.html">POP3 Server</a>
</li>
<li class="none">
<a href="smtp_configuration.html">SMTP Server</a>
</li>
<li class="none">
<a href="nntp_configuration.html">NNTP Server</a>
</li>
<li class="none">
<a href="fetchmail_configuration.html">FetchMail</a>
</li>
<li class="none">
<a href="remotemanager_configuration.html">RemoteManager</a>
</li>
<li class="none">
<a href="spoolmanager_configuration.html">SpoolManager</a>
</li>
<li class="none">
<a href="serverwide_configuration.html">Server-wide</a>
</li>
<li class="none">
<a href="adding_users.html">Adding Users</a>
</li>
<li class="none">
<a href="provided_matchers.html">Provided Matchers</a>
</li>
<li class="none">
<a href="provided_mailets.html">Provided Mailets</a>
</li>
</ul>
<h5>Common Configurations</h5>
<ul>
<li class="none">
<a href="smtp_auth.html">Using SMTP AUTH</a>
</li>
<li class="none">
<a href="using_database.html">Using a Database with James</a>
</li>
<li class="none">
<a href="usingTLS.html">Using TLS/SSL</a>
</li>
<li class="none">
<a href="mailing_lists.html">Creating Mailing Lists</a>
</li>
</ul>
<h5>Customization</h5>
<ul>
<li class="none">
<a href="custom_matcher.html">How to write a custom Matcher</a>
</li>
<li class="none">
<a href="custom_mailet.html">How to write a custom Mailet</a>
</li>
</ul>
<h5>Project</h5>
<ul>
<li class="none">
<a href="changelog.html">Changelog</a>
</li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="collapsed">
<a href="project-info.html">Project Information</a>
</li>
<li class="collapsed">
<a href="project-reports.html">Project Reports</a>
</li>
</ul>
<h5>Project</h5>
<ul>
<li class="none">
<a href="http://issues.apache.org/jira/browse/JAMES">Bug Database</a>
</li>
<li class="none">
<a href="http://svn.apache.org/viewvc/james/server/">Source Code</a>
</li>
<li class="none">
<a href="../todo.html">TODO</a>
</li>
</ul>
<h5>Downloads</h5>
<ul>
<li class="none">
<a href="../../download.cgi">Stable releases</a>
</li>
<li class="none">
<a href="../../downloadunstable.cgi">Unstable releases</a>
</li>
<li class="none">
<a href="http://people.apache.org/builds/james/nightly/">Nightly builds</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
<img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<a name="Upgrading Comments"></a><div class="section"><h2>Upgrading Comments</h2>
<p>James upgrading involves a number of steps, each of which is described in some detail in the
following sections. But as this sequence of steps has confused some users in the past, additional
comments seem warranted.</p>
<p>It is important to realize that the James configuration files are not unpacked from the James
distribution until the first time James is started. This is a consequence of the design of the
Avalon Phoenix container used to run James. Once James has been started, the distribution will
be unpacked. The server should be stopped, the configuration files edited, and the server restarted.</p>
<p>So the Upgrading sequence is: <b>1) Start, 2) Stop, 3) Move 4) Edit, 5) Restart</b>.</p>
</div>
<a name="Copy mailboxes and users"></a><div class="section"><h2>Copy mailboxes and users</h2>
<a name="Copy mailboxes and users"></a><div class="section"><h3>Copy mailboxes and users</h3>
<p>Remove the apps/james/var directory and copy the apps/james/var directory of the old james
installation in this place.</p>
</div>
</div>
<a name="Copy and modify config.xml"></a><div class="section"><h2>Copy and modify config.xml</h2>
<a name="Remove the fetchpop block"></a><div class="section"><h3>Remove the fetchpop block</h3>
<p>It's necessary to remove the fetchpop block in config.xml because fetchpop was removed in 2.3.</p>
</div>
<a name="Move mailet and matcher packages config"></a><div class="section"><h3>Move mailet and matcher packages config</h3>
<p>Move &lt;mailetpackages&gt; and &lt;matcherpackages&gt; outside of the &lt;spoolmanager&gt; block.</p>
</div>
<a name="Add necessary mailets"></a><div class="section"><h3>Add necessary mailets</h3>
<p>Add the following line as the first mailet of the &quot;root&quot; processor:</p>
<div class="source"><pre>
&lt;mailet match=&quot;All&quot; class=&quot;PostmasterAlias&quot;/&gt;
</pre></div>
<p>This was hardcoded in 2.2.0 and previous. Now we made it configurable.</p>
</div>
<a name="Move the spoolrepository config"></a><div class="section"><h3>Move the spoolrepository config</h3>
<p>Move the spoolrepository out of the mailstore. Its also necessary to change the config syntax. For example:</p>
<div class="source"><pre>
&lt;spoolRepository&gt;
&lt;repository destinationURL=&quot;db://maildb/spool/spool&quot; type=&quot;SPOOL&quot;/&gt;
&lt;/spoolRepository&gt;
</pre></div>
Must converted to
<div class="source"><pre>
&lt;spoolrepository destinationURL=&quot;db://maildb/spool/spool&quot; type=&quot;SPOOL&quot;/&gt;
</pre></div>
</div>
<a name="Move the objectstore"></a><div class="section"><h3>Move the objectstore</h3>
<p>Move the objectstore config into the mailstore config.</p>
</div>
<a name="Add SSL to server-sockets"></a><div class="section"><h3>Add SSL to server-sockets</h3>
<p> To be able to use SSL you need to add this SSL config to the server-sockets block:</p>
<div class="source"><pre>
&lt;!--
&lt;factory name=&quot;ssl&quot; class=&quot;org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory&quot;&gt;
&lt;ssl-factory&gt;
&lt;keystore&gt;
&lt;file&gt;conf/keystore/&lt;/file&gt;
&lt;password&gt;secret&lt;/password&gt;
&lt;key-password&gt;keysecret&lt;/key-password&gt;
&lt;type&gt;JKS&lt;/type&gt;
&lt;protocol&gt;TLS&lt;/protocol&gt;
&lt;algorithm&gt;SunX509&lt;/algorithm&gt;
&lt;authenticate-client&gt;false&lt;/authenticate-client&gt;
&lt;/keystore&gt;
&lt;/ssl-factory&gt;
&lt;/factory&gt;
--&gt;
</pre></div>
</div>
</div>
<a name="Modify costum mailets if necessary"></a><div class="section"><h2>Modify costum mailets if necessary</h2>
<p> Please note the following things that were changed. So maybe it's necessary for you to change some stuff in your mailets. </p>
<a name="Avalon updates"></a><div class="section"><h3>Avalon updates</h3>
<ul>
<li>avalon Component has been replaced by avalon Service</li>
<li>avalon Composable has been replaced by avalon Serviceable</li>
<li>avalon ComponentManager has been replaced by avalon ServiceManager</li>
</ul>
</div>
<a name="Cornerstone updates"></a><div class="section"><h3>Cornerstone updates</h3>
<ul>
<li>MailStore interface has been removed: mailets looking up the MailStore should now lookup
a Store (org.apache.avalon.cornerstone.services.store.Store)</li>
</ul>
</div>
</div>
<a name="Start James"></a><div class="section"><h2>Start James</h2>
Now you should be able to start james without problems.
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">&#169;
2002-2009
The Apache Software Foundation
</div>
<div class="clear">
<hr/>
</div>
</div>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1384591-1";
urchinTracker();
</script>
</body>
</html>