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 2008/01/15 11:09:42 UTC
svn commit: r612067 -
/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java
Author: bago
Date: Tue Jan 15 02:09:41 2008
New Revision: 612067
URL: http://svn.apache.org/viewvc?rev=612067&view=rev
Log:
Added repositorySelector configuration to ToMultiRepository (JAMES-833).
<repositorySelector>localpart</repositorySelector> is the default. "full" is an alternative valid value.
Modified:
james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java
Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java?rev=612067&r1=612066&r2=612067&view=diff
==============================================================================
--- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java (original)
+++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/ToMultiRepository.java Tue Jan 15 02:09:41 2008
@@ -52,7 +52,8 @@
*
* 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.
+ * recipient address or the full recipient address, depending on the configuration
+ * (repositorySelector).
*
* If no repository is specified then this fallback to MailServer.getUserInbox.
* Otherwise you can add your own configuration for the repository
@@ -65,6 +66,8 @@
* Header "Delivered-To" can be added to every message adding the
* <addDeliveryHeader>Delivered-To</addDeliveryHeader>
*
+ * <repositorySelector> defaults to "localpart" and can be changed to "full" if you
+ * prefer to use full recipient emails as repository names.
*/
public class ToMultiRepository extends GenericMailet {
/**
@@ -92,6 +95,14 @@
* The optional repositoryType
*/
private String repositoryType;
+
+ private final static String SELECTOR_LOCALPART = "localpart";
+ private final static String SELECTOR_FULL = "full";
+
+ /**
+ * The optional repositorySelector
+ */
+ private String repositorySelector;
/**
* The delivery header
@@ -264,9 +275,17 @@
repositoryUrl = getInitParameter("repositoryUrl");
if (repositoryUrl != null) {
+ if (!repositoryUrl.endsWith("/"))
+ repositoryUrl += "/";
repositoryType = getInitParameter("repositoryType");
if (repositoryType == null)
repositoryType = "MAIL";
+ repositorySelector = getInitParameter("repositorySelector");
+ if (repositorySelector == null)
+ repositorySelector = SELECTOR_LOCALPART;
+ if (!SELECTOR_LOCALPART.equals(repositorySelector) && !SELECTOR_FULL.equals(repositorySelector)) {
+ throw new MessagingException("repositorySelector valid options are "+SELECTOR_FULL+" or "+SELECTOR_LOCALPART);
+ }
} else {
try {
@@ -297,15 +316,14 @@
if (repositoryUrl == null) {
userInbox = mailServer.getUserInbox(userName);
} else {
- if (!repositoryUrl.endsWith("/")) {
- repositoryUrl += "/";
+ if (SELECTOR_LOCALPART.equals(repositorySelector)) {
+ // find the username for delivery to that user - localname, ignore the rest
+ String[] addressParts = userName.split("@");
+ userName = addressParts[0];
}
- // find the username for delivery to that user - localname, ignore the rest
- String[] addressParts = userName.split("@");
-
StringBuffer destinationBuffer = new StringBuffer(192).append(
- repositoryUrl).append(addressParts[0]).append("/");
+ repositoryUrl).append(userName).append("/");
String destination = destinationBuffer.toString();
DefaultConfiguration mboxConf = new DefaultConfiguration(
"repository", "generated:ToMultiRepository.getUserInbox()");
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org