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 rd...@apache.org on 2008/12/12 12:02:02 UTC
svn commit: r725962 - in /james/server/trunk: phoenix-deployment/
phoenix-deployment/src/conf/
phoenix-deployment/src/java/org/apache/james/phoenix/
spoolmanager-function/src/main/java/org/apache/james/api/
spoolmanager-function/src/main/java/org/apach...
Author: rdonkin
Date: Fri Dec 12 03:02:01 2008
New Revision: 725962
URL: http://svn.apache.org/viewvc?rev=725962&view=rev
Log:
Basic support for injecting @Resource setters. Only phoenix block names are supported.
Added:
james/server/trunk/phoenix-deployment/src/java/org/apache/james/phoenix/PhoenixLoader.java
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/kernel/
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/kernel/ServiceLocator.java
Modified:
james/server/trunk/phoenix-deployment/build.xml
james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml
james/server/trunk/phoenix-deployment/src/conf/james-config.xml
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesMailetLoader.java
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java
james/server/trunk/spring-deployment/src/main/config/james/james-config.xml
Modified: james/server/trunk/phoenix-deployment/build.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/build.xml?rev=725962&r1=725961&r2=725962&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/build.xml (original)
+++ james/server/trunk/phoenix-deployment/build.xml Fri Dec 12 03:02:01 2008
@@ -127,6 +127,9 @@
<fileset refid="james.jars"/>
<pathelement path="${java.class.path}" />
<pathelement path="${build.classes}" />
+ <fileset dir='../phoenix-deployment/phoenix-bin/lib'>
+ <include name='phoenix-client.jar'/>
+ </fileset>
</path>
<path id="tools.class.path">
Modified: james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml?rev=725962&r1=725961&r2=725962&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml (original)
+++ james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml Fri Dec 12 03:02:01 2008
@@ -54,6 +54,7 @@
role="org.apache.avalon.cornerstone.services.scheduler.TimeScheduler"/>
<provide name="database-connections"
role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
+ <proxy disable='true'/>
</block>
<!-- The James Spool Manager block -->
@@ -61,16 +62,19 @@
<provide name="spoolrepository" role="org.apache.james.services.SpoolRepository"/>
<provide name="matcherpackages" role="org.apache.james.transport.MatcherLoader"/>
<provide name="mailetpackages" role="org.apache.james.transport.MailetLoader"/>
+ <proxy disable='true'/>
</block>
<block name="matcherpackages" class="org.apache.james.transport.JamesMatcherLoader" >
<provide name="James" role="org.apache.mailet.MailetContext"/>
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<block name="mailetpackages" class="org.apache.james.transport.JamesMailetLoader" >
<provide name="James" role="org.apache.mailet.MailetContext"/>
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<block name="dnsserver" class="org.apache.james.dnsserver.DNSServer" />
@@ -78,16 +82,19 @@
<!-- The Spool Management block -->
<block name="spoolmanagement" class="org.apache.james.management.impl.SpoolManagement" >
<provide name="mailstore" role="org.apache.avalon.cornerstone.services.store.Store"/>
+ <proxy disable='true'/>
</block>
<block name="processormanagement" class="org.apache.james.management.impl.ProcessorManagement" >
<provide name="spoolmanager" role="org.apache.james.services.SpoolManager"/>
+ <proxy disable='true'/>
</block>
<block name="bayesiananalyzermanagement" class="org.apache.james.management.impl.BayesianAnalyzerManagement" >
<provide name="database-connections"
role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<block name="remotemanager" class="org.apache.james.remotemanager.RemoteManager" >
@@ -109,12 +116,14 @@
<provide name="processormanagement" role="org.apache.james.management.ProcessorManagementService"/>
<provide name="virtualusertablemanagement" role="org.apache.james.api.vut.management.VirtualUserTableManagementService"/>
<provide name="domainlistmanagement" role="org.apache.james.management.DomainListManagementService"/>
+ <proxy disable='true'/>
</block>
<!-- The User Management block -->
<block name="usermanagement" class="org.apache.james.impl.user.UserManagement" >
<provide name="localusersrepository" role="org.apache.james.api.user.UsersRepository"/>
<provide name="users-store" role="org.apache.james.api.user.UsersStore"/>
+ <proxy disable='true'/>
</block>
<!-- POP3 Server -->
@@ -128,6 +137,7 @@
<provide name="thread-manager"
role="org.apache.avalon.cornerstone.services.threads.ThreadManager" />
<provide name="dnsserver" role="org.apache.james.api.dnsservice.DNSService"/>
+ <proxy disable='true'/>
</block>
<!-- SMTP Server -->
@@ -147,6 +157,7 @@
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
<provide name="defaultvirtualusertable"
role="org.apache.james.api.vut.VirtualUserTable" />
+ <proxy disable='true'/>
</block>
<!-- NNTP Server -->
@@ -162,11 +173,13 @@
role="org.apache.avalon.cornerstone.services.threads.ThreadManager" />
<provide name="dnsserver" role="org.apache.james.api.dnsservice.DNSService"/>
<provide name="James" role="org.apache.james.services.MailServer"/>
+ <proxy disable='true'/>
</block>
<!-- NNTP Repository -->
<block name="nntp-repository" class="org.apache.james.nntpserver.repository.NNTPRepositoryImpl">
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<!-- FetchMail Service -->
@@ -176,6 +189,7 @@
<provide name="James" role="org.apache.james.services.MailServer"/>
<provide name="localusersrepository" role="org.apache.james.api.user.UsersRepository"/>
<provide name="dnsserver" role="org.apache.james.api.dnsservice.DNSService"/>
+ <proxy disable='true'/>
</block>
<!-- JMS Service
@@ -191,12 +205,14 @@
<provide name="database-connections"
role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<!-- The main SpoolRepository -->
<block name="spoolrepository" class="org.apache.james.mailrepository.MailStoreSpoolRepository" >
<provide name="mailstore"
role="org.apache.avalon.cornerstone.services.store.Store" />
+ <proxy disable='true'/>
</block>
<!-- The User Storage block -->
@@ -207,6 +223,7 @@
<provide name="database-connections"
role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<!-- This is needed to link the smtpserver to the local user repository -->
@@ -217,6 +234,7 @@
<block name="localusersrepository" class="org.apache.james.impl.jamesuser.LocalJamesUsersRepository">
<provide name="users-store"
role="org.apache.james.api.user.UsersStore"/>
+ <proxy disable='true'/>
</block>
<!-- The context FileSystem implementation -->
@@ -227,6 +245,7 @@
<block name="virtualusertablemanagement" class="org.apache.james.impl.vut.VirtualUserTableManagement" >
<provide name="virtualusertable-store" role="org.apache.james.api.vut.VirtualUserTableStore"/>
<provide name="defaultvirtualusertable" role="org.apache.james.api.vut.management.VirtualUserTableManagement" />
+ <proxy disable='true'/>
</block>
<!-- VirtualUserTable Store -->
@@ -235,11 +254,13 @@
role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector"/>
<provide name="filesystem" role="org.apache.james.services.FileSystem"/>
<provide name="dnsserver" role="org.apache.james.api.dnsservice.DNSService"/>
+ <proxy disable='true'/>
</block>
<block name="defaultvirtualusertable" class="org.apache.james.impl.vut.DefaultVirtualUserTable">
<provide name="virtualusertable-store"
role="org.apache.james.api.vut.VirtualUserTableStore"/>
+ <proxy disable='true'/>
</block>
@@ -247,6 +268,7 @@
<!-- The context domainlist implementation -->
<block name="domainlist" class="org.apache.james.domain.XMLDomainList">
<provide name="dnsserver" role="org.apache.james.api.dnsservice.DNSService"/>
+ <proxy disable='true'/>
</block>
<!-- JDBC implementation of the domainlist service-->
@@ -289,6 +311,7 @@
<provide name="dnsserver" role="org.apache.james.api.dnsservice.DNSService"/>
<provide name="James" role="org.apache.james.services.MailServer"/>
<provide name="filesystem" role="org.apache.james.services.FileSystem" />
+ <proxy disable='true'/>
</block>
<!-- #################################################################### -->
@@ -296,6 +319,7 @@
<block name="domainlistmanagement" class="org.apache.james.management.impl.DomainListManagement">
<provide name="domainlist"
role="org.apache.james.api.domainlist.DomainList"/>
+ <proxy disable='true'/>
</block>
<!-- Configuration for Cornerstone Blocks only after here
@@ -307,25 +331,33 @@
class="org.apache.james.util.connection.SimpleConnectionManager" >
<provide name="thread-manager"
role="org.apache.avalon.cornerstone.services.threads.ThreadManager" />
+ <proxy disable='true'/>
</block>
<!-- The Socket Manager block -->
<block name="sockets"
- class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketManager"/>
+ class="org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketManager">
+ <proxy disable='true'/>
+ </block>
<!-- The Time Scheduler block -->
<block name="scheduler"
class="org.apache.avalon.cornerstone.blocks.scheduler.DefaultTimeScheduler" >
<provide name="thread-manager"
role="org.apache.avalon.cornerstone.services.threads.ThreadManager" />
+ <proxy disable='true'/>
</block>
<!-- The DataSourceSelector block -->
<block name="database-connections"
- class="org.apache.avalon.cornerstone.blocks.datasources.DefaultDataSourceSelector" />
+ class="org.apache.avalon.cornerstone.blocks.datasources.DefaultDataSourceSelector" >
+ <proxy disable='true'/>
+ </block>
<!-- The ThreadManager block -->
<block name="thread-manager"
- class="org.apache.avalon.cornerstone.blocks.threads.DefaultThreadManager" />
+ class="org.apache.avalon.cornerstone.blocks.threads.DefaultThreadManager" >
+ <proxy disable='true'/>
+ </block>
</assembly>
Modified: james/server/trunk/phoenix-deployment/src/conf/james-config.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/conf/james-config.xml?rev=725962&r1=725961&r2=725962&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/conf/james-config.xml (original)
+++ james/server/trunk/phoenix-deployment/src/conf/james-config.xml Fri Dec 12 03:02:01 2008
@@ -153,10 +153,14 @@
<!-- Set the Java packages from which to load mailets and matchers -->
<mailetpackages>
<mailetpackage>org.apache.james.transport.mailets</mailetpackage>
+ <!-- Cryptography Mailets -->
<mailetpackage>org.apache.james.transport.mailets.smime</mailetpackage>
+ <!-- Sieve Mail Scripting -->
+ <mailetpackage>org.apache.james.imapserver.sieve</mailetpackage>
</mailetpackages>
<matcherpackages>
<matcherpackage>org.apache.james.transport.matchers</matcherpackage>
+ <!-- Crytographic mailets -->
<matcherpackage>org.apache.james.transport.matchers.smime</matcherpackage>
</matcherpackages>
@@ -343,6 +347,10 @@
</mapping>
</mailet>
-->
+
+ <!-- Deliver To IMAP mailboxes, applying a Sieve script if the user has one
+ <mailet match="All" class="SieveMailet"/>
+ -->
<!-- Anti-spam processing -->
<!-- The following two entries avoid double anti-spam analysis -->
Added: james/server/trunk/phoenix-deployment/src/java/org/apache/james/phoenix/PhoenixLoader.java
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/java/org/apache/james/phoenix/PhoenixLoader.java?rev=725962&view=auto
==============================================================================
--- james/server/trunk/phoenix-deployment/src/java/org/apache/james/phoenix/PhoenixLoader.java (added)
+++ james/server/trunk/phoenix-deployment/src/java/org/apache/james/phoenix/PhoenixLoader.java Fri Dec 12 03:02:01 2008
@@ -0,0 +1,139 @@
+/****************************************************************
+ * 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.phoenix;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.phoenix.ApplicationEvent;
+import org.apache.avalon.phoenix.ApplicationListener;
+import org.apache.avalon.phoenix.BlockEvent;
+import org.apache.james.api.kernel.ServiceLocator;
+
+public class PhoenixLoader implements ServiceLocator, ApplicationListener, LogEnabled {
+
+ private Logger logger;
+
+ private final Map<String, Object> resources;
+
+ public PhoenixLoader() {
+ resources = new HashMap<String, Object>();
+ resources.put("org.apache.james.ServiceLocator", this);
+ }
+
+ public Object get(String name) {
+ return resources.get(name);
+ }
+
+ public void applicationFailure(Exception exception) {
+
+ }
+
+ /**
+ * Indicates application has started.
+ * This hook initialises all annotated resources.
+ * This ensure that all services have been loaded
+ * before initilisation any.
+ */
+ public void applicationStarted() {
+ for (Object resource : resources.values()) {
+ Method[] methods = resource.getClass().getMethods();
+ for (Method method : methods) {
+ Resource resourceAnnotation = method.getAnnotation(Resource.class);
+ if (resourceAnnotation != null) {
+ final String name = resourceAnnotation.name();
+ final Object service = get(name);
+ if (resource == null) {
+ if (logger.isWarnEnabled()) {
+ logger.warn("Unknown service: " + name);
+ }
+ } else {
+ try {
+ Object[] args = {service};
+ method.invoke(resource, args);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("Injection failed", e);
+ } catch (IllegalArgumentException e) {
+ throw new RuntimeException("Injection failed", e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException("Injection failed", e);
+ }
+ }
+ }
+ }
+ }
+
+ try {
+ for (Object object : resources.values()) {
+ Method[] methods = object.getClass().getMethods();
+ for (Method method : methods) {
+ PostConstruct postConstructAnnotation = method.getAnnotation(PostConstruct.class);
+ if (postConstructAnnotation != null) {
+ Object[] args = {};
+ method.invoke(object, args);
+ }
+ }
+ }
+ } catch (Exception e) {
+ throw new RuntimeException("Initialisation failed", e);
+ }
+ }
+
+ public void applicationStarting(ApplicationEvent event) throws Exception {
+
+ }
+
+ public void applicationStopped() {
+
+ }
+
+ public void applicationStopping() {
+
+ }
+
+ /**
+ * Adds service.
+ */
+ public void blockAdded(BlockEvent event) {
+ final Object resource = event.getObject();
+ final String name = event.getName();
+ resources.put(name, resource);
+ }
+
+ /**
+ * Removes service.
+ * Existing references are maintained.
+ */
+ public void blockRemoved(BlockEvent event) {
+ final String name = event.getName();
+ resources.remove(name);
+ }
+
+ public void enableLogging(Logger logger) {
+ this.logger = logger;
+ }
+}
Added: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/kernel/ServiceLocator.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/kernel/ServiceLocator.java?rev=725962&view=auto
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/kernel/ServiceLocator.java (added)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/api/kernel/ServiceLocator.java Fri Dec 12 03:02:01 2008
@@ -0,0 +1,34 @@
+/****************************************************************
+ * 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.api.kernel;
+
+/**
+ * Locates services.
+ */
+public interface ServiceLocator {
+
+ /**
+ * Gets a service by name.
+ * @param name not null
+ * @return the service,
+ * or null when the service cannot be located
+ */
+ public Object get(String name);
+}
Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesMailetLoader.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesMailetLoader.java?rev=725962&r1=725961&r2=725962&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesMailetLoader.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesMailetLoader.java Fri Dec 12 03:02:01 2008
@@ -19,10 +19,15 @@
package org.apache.james.transport;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.annotation.Resource;
import javax.mail.MessagingException;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.james.api.kernel.ServiceLocator;
import org.apache.mailet.Mailet;
import org.apache.mailet.MailetException;
/**
@@ -30,6 +35,26 @@
*
*/
public class JamesMailetLoader extends Loader implements MailetLoader {
+
+ private ServiceLocator serviceLocator;
+
+ /**
+ * Gets the service locator.
+ * @return the serviceLocator, not null after initialisation
+ */
+ public final ServiceLocator getServiceLocator() {
+ return serviceLocator;
+ }
+
+ /**
+ * Sets the service locator.
+ * @param serviceLocator the serviceLocator to set
+ */
+ @Resource(name="org.apache.james.ServiceLocator")
+ public final void setServiceLocator(ServiceLocator serviceLocator) {
+ this.serviceLocator = serviceLocator;
+ }
+
/**
* @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
*/
@@ -51,6 +76,9 @@
configImpl.setMailetName(mailetName);
configImpl.setConfiguration(configuration);
configImpl.setMailetContext(new MailetContextWrapper(mailetContext, getLogger().getChildLogger(mailetName)));
+
+ injectServices(mailet);
+
mailet.init(configImpl);
return mailet;
} catch (ClassNotFoundException cnfe) {
@@ -73,4 +101,28 @@
throw new MailetException(exceptionBuffer.toString(), e);
}
}
+
+ private void injectServices(Mailet mailet) throws IllegalArgumentException, IllegalAccessException,
+ InvocationTargetException {
+ if (serviceLocator == null) {
+ getLogger().warn("Service locator not set. Cannot load services.");
+ } else {
+ Method[] methods = mailet.getClass().getMethods();
+ for (Method method : methods) {
+ Resource resourceAnnotation = method.getAnnotation(Resource.class);
+ if (resourceAnnotation != null) {
+ final String name = resourceAnnotation.name();
+ final Object resource = serviceLocator.get(name);
+ if (resource == null) {
+ if (getLogger().isWarnEnabled()) {
+ getLogger().warn("Unknown service: " + name);
+ }
+ } else {
+ Object[] args = {resource};
+ method.invoke(mailet, args);
+ }
+ }
+ }
+ }
+ }
}
Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java?rev=725962&r1=725961&r2=725962&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/JamesSpoolManager.java Fri Dec 12 03:02:01 2008
@@ -40,6 +40,8 @@
import java.util.List;
import java.util.ArrayList;
+import javax.annotation.PostConstruct;
+
/**
* Manages the mail spool. This class is responsible for retrieving
* messages from the spool, directing messages to the appropriate
@@ -50,7 +52,7 @@
*/
public class JamesSpoolManager
extends AbstractLogEnabled
- implements Serviceable, Configurable, Initializable, Runnable, Disposable, SpoolManager {
+ implements Serviceable, Configurable, Runnable, Disposable, SpoolManager {
/**
* System component manager
@@ -147,8 +149,9 @@
}
/**
- * @see org.apache.avalon.framework.activity.Initializable#initialize()
+ * Initialises the spool manager.
*/
+ @PostConstruct
public void initialize() throws Exception {
getLogger().info("JamesSpoolManager init...");
Modified: james/server/trunk/spring-deployment/src/main/config/james/james-config.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/spring-deployment/src/main/config/james/james-config.xml?rev=725962&r1=725961&r2=725962&view=diff
==============================================================================
--- james/server/trunk/spring-deployment/src/main/config/james/james-config.xml (original)
+++ james/server/trunk/spring-deployment/src/main/config/james/james-config.xml Fri Dec 12 03:02:01 2008
@@ -153,10 +153,14 @@
<!-- Set the Java packages from which to load mailets and matchers -->
<mailetpackages>
<mailetpackage>org.apache.james.transport.mailets</mailetpackage>
+ <!-- Cryptography Mailets -->
<mailetpackage>org.apache.james.transport.mailets.smime</mailetpackage>
+ <!-- Sieve Mail Scripting -->
+ <mailetpackage>org.apache.james.imapserver.sieve</mailetpackage>
</mailetpackages>
<matcherpackages>
<matcherpackage>org.apache.james.transport.matchers</matcherpackage>
+ <!-- Crytographic mailets -->
<matcherpackage>org.apache.james.transport.matchers.smime</matcherpackage>
</matcherpackages>
@@ -343,6 +347,10 @@
</mapping>
</mailet>
-->
+
+ <!-- Deliver To IMAP mailboxes, applying a Sieve script if the user has one
+ <mailet match="All" class="SieveMailet"/>
+ -->
<!-- Anti-spam processing -->
<!-- The following two entries avoid double anti-spam analysis -->
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org