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 ro...@apache.org on 2017/01/11 09:26:24 UTC
[36/50] [abbrv] james-project git commit: MAILET-115 Rename
AbstractRedirect
MAILET-115 Rename AbstractRedirect
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5a81c0d9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5a81c0d9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5a81c0d9
Branch: refs/heads/master
Commit: 5a81c0d9ccfd6a0e46319bd0a58946c1eab194b3
Parents: 30c8a8c
Author: Antoine Duprat <ad...@apache.org>
Authored: Thu Nov 17 15:16:03 2016 +0100
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Jan 11 10:03:31 2017 +0700
----------------------------------------------------------------------
.../apache/james/transport/mailets/Bounce.java | 8 +-
.../james/transport/mailets/DSNBounce.java | 8 +-
.../apache/james/transport/mailets/Forward.java | 4 +-
.../transport/mailets/NotifyPostmaster.java | 8 +-
.../james/transport/mailets/NotifySender.java | 8 +-
.../james/transport/mailets/Redirect.java | 6 +-
.../apache/james/transport/mailets/Resend.java | 8 +-
.../mailets/redirect/AbstractRedirect.java | 316 -------------------
.../redirect/MailMessageAlteringUtils.java | 10 +-
.../mailets/redirect/MailModifier.java | 8 +-
.../mailets/redirect/ProcessRedirectNotify.java | 6 +-
.../mailets/redirect/RedirectNotify.java | 316 +++++++++++++++++++
.../james/transport/util/RecipientsUtils.java | 8 +-
.../apache/james/transport/util/TosUtils.java | 8 +-
.../redirect/MailMessageAlteringUtilsTest.java | 14 +-
.../mailets/redirect/MailModifierTest.java | 6 +-
.../transport/util/RecipientsUtilsTest.java | 6 +-
.../james/transport/util/TosUtilsTest.java | 6 +-
18 files changed, 377 insertions(+), 377 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
index 40cebb5..2b1d3e2 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
@@ -24,7 +24,7 @@ import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
import org.apache.james.transport.mailets.redirect.NotifyMailetsMessage;
@@ -117,7 +117,7 @@ import com.google.common.collect.ImmutableList;
*
* @since 2.2.0
*/
-public class Bounce extends AbstractRedirect {
+public class Bounce extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
"debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError" };
@@ -182,13 +182,13 @@ public class Bounce extends AbstractRedirect {
@Override
protected MailAddress getReversePath() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), AbstractRedirect.REVERSE_PATH_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), RedirectNotify.REVERSE_PATH_ALLOWED_SPECIALS);
}
@Override
public MailAddress getSender() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), AbstractRedirect.SENDER_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), RedirectNotify.SENDER_ALLOWED_SPECIALS);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
index 3fba468..c47645c 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
@@ -32,7 +32,7 @@ import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import org.apache.james.core.MailImpl;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.MailModifier;
import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
@@ -96,7 +96,7 @@ import com.google.common.collect.ImmutableList;
* @see org.apache.james.transport.mailets.AbstractNotify
*/
-public class DSNBounce extends AbstractRedirect {
+public class DSNBounce extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[]{ "debug", "passThrough", "messageString", "attachment", "sender", "prefix" };
private static final List<MailAddress> RECIPIENT_MAIL_ADDRESSES = ImmutableList.of(SpecialAddress.REVERSE_PATH);
@@ -169,7 +169,7 @@ public class DSNBounce extends AbstractRedirect {
@Override
protected MailAddress getReversePath() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), AbstractRedirect.REVERSE_PATH_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), RedirectNotify.REVERSE_PATH_ALLOWED_SPECIALS);
}
@Override
@@ -180,7 +180,7 @@ public class DSNBounce extends AbstractRedirect {
@Override
public MailAddress getSender() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), AbstractRedirect.SENDER_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), RedirectNotify.SENDER_ALLOWED_SPECIALS);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
index 77b3c6d..fcab123 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
@@ -25,7 +25,7 @@ import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.AddressExtractor;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
@@ -87,7 +87,7 @@ import com.google.common.collect.ImmutableList;
* for backward compatibility.
* </p>
*/
-public class Forward extends AbstractRedirect {
+public class Forward extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
"debug", "passThrough", "fakeDomainCheck", "forwardto", "forwardTo" };
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
index 2c309bf..47f6ece 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
@@ -24,7 +24,7 @@ import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.AddressExtractor;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
@@ -117,7 +117,7 @@ import com.google.common.collect.ImmutableList;
* are kept for backward compatibility.
* </p>
*/
-public class NotifyPostmaster extends AbstractRedirect {
+public class NotifyPostmaster extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[]{
"debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError", "to" };
@@ -193,7 +193,7 @@ public class NotifyPostmaster extends AbstractRedirect {
@Override
protected MailAddress getReversePath() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), AbstractRedirect.REVERSE_PATH_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), RedirectNotify.REVERSE_PATH_ALLOWED_SPECIALS);
}
@Override
@@ -204,7 +204,7 @@ public class NotifyPostmaster extends AbstractRedirect {
@Override
public MailAddress getSender() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), AbstractRedirect.SENDER_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), RedirectNotify.SENDER_ALLOWED_SPECIALS);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
index f426d1e..11a46cb 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
@@ -24,7 +24,7 @@ import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.AddressExtractor;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
@@ -116,7 +116,7 @@ import com.google.common.collect.ImmutableList;
* are kept for backward compatibility.
* </p>
*/
-public class NotifySender extends AbstractRedirect {
+public class NotifySender extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[]{
"debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError", "to" };
@@ -193,7 +193,7 @@ public class NotifySender extends AbstractRedirect {
@Override
protected MailAddress getReversePath() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), AbstractRedirect.REVERSE_PATH_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), RedirectNotify.REVERSE_PATH_ALLOWED_SPECIALS);
}
@Override
@@ -204,7 +204,7 @@ public class NotifySender extends AbstractRedirect {
@Override
public MailAddress getSender() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), AbstractRedirect.SENDER_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), RedirectNotify.SENDER_ALLOWED_SPECIALS);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
index fa08a6d..1e86f56 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
@@ -24,7 +24,7 @@ import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.AddressExtractor;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
@@ -296,7 +296,7 @@ import com.google.common.collect.ImmutableList;
* </p>
*/
-public class Redirect extends AbstractRedirect {
+public class Redirect extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
"static", "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "recipients", "to", "replyTo", "replyto", "reversePath", "sender", "subject", "prefix", "attachError", "isReply" };
@@ -424,7 +424,7 @@ public class Redirect extends AbstractRedirect {
@Override
public MailAddress getSender() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), AbstractRedirect.SENDER_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), RedirectNotify.SENDER_ALLOWED_SPECIALS);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
index ad84e41..bde2c78 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
@@ -24,7 +24,7 @@ import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.AddressExtractor;
import org.apache.james.transport.mailets.redirect.InitParameters;
import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
@@ -291,7 +291,7 @@ import com.google.common.collect.ImmutableList;
* @since 2.2.0
*/
-public class Resend extends AbstractRedirect {
+public class Resend extends RedirectNotify {
private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
"debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "recipients", "to", "replyTo", "replyto", "reversePath", "sender", "subject", "prefix", "attachError", "isReply" };
@@ -370,7 +370,7 @@ public class Resend extends AbstractRedirect {
@Override
protected MailAddress getReversePath() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), AbstractRedirect.REVERSE_PATH_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getReversePath(), RedirectNotify.REVERSE_PATH_ALLOWED_SPECIALS);
}
@Override
@@ -387,7 +387,7 @@ public class Resend extends AbstractRedirect {
@Override
public MailAddress getSender() throws MessagingException {
return SpecialAddressesUtils.from(this)
- .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), AbstractRedirect.SENDER_ALLOWED_SPECIALS);
+ .getFirstSpecialAddressIfMatchingOrGivenAddress(getInitParameters().getSender(), RedirectNotify.SENDER_ALLOWED_SPECIALS);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
deleted file mode 100644
index 70ccf76..0000000
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/****************************************************************
- * 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.transport.mailets.redirect;
-
-import java.util.List;
-
-import javax.inject.Inject;
-import javax.mail.MessagingException;
-import javax.mail.internet.InternetAddress;
-
-import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.transport.mailets.Redirect;
-import org.apache.james.transport.mailets.utils.MimeMessageModifier;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
-import org.apache.mailet.base.GenericMailet;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-
-/**
- * <p>
- * Abstract mailet providing configurable redirection services.<br>
- * This mailet can be subclassed to make authoring redirection mailets simple.<br>
- * By extending it and overriding one or more of these methods new behaviour can
- * be quickly created without the author having to address any other issue than
- * the relevant one:
- * </p>
- * <ul>
- * <li>attachError() , should error messages be appended to the message</li>
- * <li>getAttachmentType(), what should be attached to the message</li>
- * <li>getInLineType(), what should be included in the message</li>
- * <li>getMessage(), The text of the message itself</li>
- * <li>getRecipients(), the recipients the mail is sent to</li>
- * <li>getReplyTo(), where replies to this message will be sent</li>
- * <li>getReversePath(), what to set the reverse-path to</li>
- * <li>getSender(), who the mail is from</li>
- * <li>getSubject(), a string to replace the message subject</li>
- * <li>getSubjectPrefix(), a prefix to be added to the message subject, possibly
- * already replaced by a new subject</li>
- * <li>getTo(), a list of people to whom the mail is *apparently* sent</li>
- * <li>isReply(), should this mailet set the IN_REPLY_TO header to the id of the
- * current message</li>
- * <li>getPassThrough(), should this mailet allow the original message to
- * continue processing or GHOST it.</li>
- * <li>getFakeDomainCheck(), should this mailet check if the sender domain
- * address is valid.</li>
- * <li>isStatic(), should this mailet run the get methods for every mail, or
- * just once.</li>
- * </ul>
- * <p>
- * For each of the methods above (generically called "getX()" methods in this
- * class and its subclasses), there is an associated "getX(Mail)" method and
- * most times a "setX(Mail, Tx, Mail)" method.<br>
- * The roles are the following:
- * </p>
- * <ul>
- * <li>a "getX()" method returns the correspondent "X" value that can be
- * evaluated "statically" once at init time and then stored in a variable and
- * made available for later use by a "getX(Mail)" method;</li>
- * <li>a "getX(Mail)" method is the one called to return the correspondent "X"
- * value that can be evaluated "dynamically", tipically based on the currently
- * serviced mail; the default behaviour is to return the value of getX();</li>
- * <li>a "setX(Mail, Tx, Mail)" method is called to change the correspondent "X"
- * value of the redirected Mail object, using the value returned by
- * "gexX(Mail)"; if such value is null, it does nothing.</li>
- * </ul>
- * <p>
- * Here follows the typical pattern of those methods:
- * </p>
- * <p/>
- * <pre>
- * <code>
- * ...
- * Tx x;
- * ...
- * protected boolean getX(Mail originalMail) throws MessagingException {
- * boolean x = (isStatic()) ? this.x : getX();
- * ...
- * return x;
- * }
- * ...
- * public void init() throws MessagingException {
- * ...
- * isStatic = (getInitParameter("static") == null) ? false : new Boolean(getInitParameter("static")).booleanValue();
- * if(isStatic()) {
- * ...
- * X = getX();
- * ...
- * }
- * ...
- * public void service(Mail originalMail) throws MessagingException {
- * ...
- * setX(newMail, getX(originalMail), originalMail);
- * ...
- * }
- * ...
- * </code>
- * </pre>
- * <p>
- * The <i>isStatic</i> variable and method is used to allow for the situations
- * (deprecated since version 2.2, but possibly used by previoulsy written
- * extensions to {@link Redirect}) in which the getX() methods are non static:
- * in this case {@link #isStatic()} must return false.<br>
- * Finally, a "getX()" method may return a "special address" (see
- * {@link SpecialAddress}), that later will be resolved ("late bound") by a
- * "getX(Mail)" or "setX(Mail, Tx, Mail)": it is a dynamic value that does not
- * require <code>isStatic</code> to be false.
- * </p>
- * <p/>
- * <p>
- * Supports by default the <code>passThrough</code> init parameter (false if
- * missing). Subclasses can override this behaviour overriding
- * {@link #getPassThrough()}.
- * </p>
- *
- * @since 2.2.0
- */
-
-public abstract class AbstractRedirect extends GenericMailet {
-
- public static final List<String> REVERSE_PATH_ALLOWED_SPECIALS = ImmutableList.of("postmaster", "sender", "null", "unaltered");
- public static final List<String> SENDER_ALLOWED_SPECIALS = ImmutableList.of("postmaster", "sender", "unaltered");
-
- public abstract InitParameters getInitParameters();
-
- protected abstract String[] getAllowedInitParameters();
-
- protected DNSService dns;
-
- @Inject
- public void setDNSService(DNSService dns) {
- this.dns = dns;
- }
-
- /**
- * Gets the <code>message</code> property, built dynamically using the
- * original Mail object. Is a "getX(Mail)" method.
- *
- * @return {@link #getMessage()}
- */
- public abstract String getMessage(Mail originalMail) throws MessagingException;
-
- /**
- * Gets the <code>recipients</code> property. Returns the collection of
- * recipients of the new message, or null if no change is requested. Is a
- * "getX()" method.
- *
- * @return the <code>recipients</code> init parameter or the postmaster
- * address or <code>SpecialAddress.SENDER</code> or
- * <code>SpecialAddress.FROM</code> or
- * <code>SpecialAddress.REPLY_TO</code> or
- * <code>SpecialAddress.REVERSE_PATH</code> or
- * <code>SpecialAddress.UNALTERED</code> or
- * <code>SpecialAddress.RECIPIENTS</code> or <code>null</code> if
- * missing
- */
- public abstract List<MailAddress> getRecipients() throws MessagingException;
-
- /**
- * Gets the <code>recipients</code> property, built dynamically using the
- * original Mail object. Is a "getX(Mail)" method.
- *
- * @return {@link #replaceMailAddresses} on {@link #getRecipients()},
- */
- protected abstract List<MailAddress> getRecipients(Mail originalMail) throws MessagingException;
-
- /**
- * Gets the <code>to</code> property. Returns the "To:" recipients of the
- * new message. or null if no change is requested. Is a "getX()" method.
- *
- * @return the <code>to</code> init parameter or the postmaster address or
- * <code>SpecialAddress.SENDER</code> or
- * <code>SpecialAddress.REVERSE_PATH</code> or
- * <code>SpecialAddress.FROM</code> or
- * <code>SpecialAddress.REPLY_TO</code> or
- * <code>SpecialAddress.UNALTERED</code> or
- * <code>SpecialAddress.TO</code> or <code>null</code> if missing
- */
- public abstract List<InternetAddress> getTo() throws MessagingException;
-
- /**
- * Gets the <code>to</code> property, built dynamically using the original
- * Mail object. Its outcome will be the the value the <i>TO:</i> header will
- * be set to, that could be different from the real recipient (see
- * {@link Mail#getRecipients}). Is a "getX(Mail)" method.
- *
- * @return {@link #replaceInternetAddresses} on {@link #getRecipients()},
- */
- protected abstract List<MailAddress> getTo(Mail originalMail) throws MessagingException;
-
- /**
- * Gets the <code>replyto</code> property. Returns the Reply-To address of
- * the new message, or null if no change is requested. Is a "getX()" method.
- *
- * @return the <code>replyto</code> init parameter or the postmaster address
- * or <code>SpecialAddress.SENDER</code> or
- * <code>SpecialAddress.UNALTERED</code> or
- * <code>SpecialAddress.NULL</code> or <code>null</code> if missing
- */
- public abstract MailAddress getReplyTo() throws MessagingException;
-
- /**
- * Gets the <code>replyTo</code> property, built dynamically using the
- * original Mail object. Is a "getX(Mail)" method.
- *
- * @return {@link #getReplyTo()} replacing
- * <code>SpecialAddress.UNALTERED</code> if applicable with null and
- * <code>SpecialAddress.SENDER</code> with the original mail sender
- */
- protected abstract MailAddress getReplyTo(Mail originalMail) throws MessagingException;
-
- /**
- * Gets the <code>reversePath</code> property. Returns the reverse-path of
- * the new message, or null if no change is requested. Is a "getX()" method.
- *
- * @return the <code>reversePath</code> init parameter or the postmaster
- * address or <code>SpecialAddress.SENDER</code> or
- * <code>SpecialAddress.NULL</code> or
- * <code>SpecialAddress.UNALTERED</code> or <code>null</code> if
- * missing
- */
- protected abstract MailAddress getReversePath() throws MessagingException;
-
- /**
- * Gets the <code>reversePath</code> property, built dynamically using the
- * original Mail object. Is a "getX(Mail)" method.
- *
- * @return {@link #getReversePath()}, replacing
- * <code>SpecialAddress.SENDER</code> if applicable with null,
- * replacing <code>SpecialAddress.UNALTERED</code> and
- * <code>SpecialAddress.REVERSE_PATH</code> if applicable with null,
- * but not replacing <code>SpecialAddress.NULL</code> that will be
- * handled by {@link #setReversePath}
- */
- protected abstract MailAddress getReversePath(Mail originalMail) throws MessagingException;
-
- /**
- * Gets the <code>sender</code> property. Returns the new sender as a
- * MailAddress, or null if no change is requested. Is a "getX()" method.
- *
- * @return the <code>sender</code> init parameter or the postmaster address
- * or <code>SpecialAddress.SENDER</code> or
- * <code>SpecialAddress.UNALTERED</code> or <code>null</code> if
- * missing
- */
- public abstract MailAddress getSender() throws MessagingException;
-
- /**
- * Gets the <code>sender</code> property, built dynamically using the
- * original Mail object. Is a "getX(Mail)" method.
- *
- * @return {@link #getSender()} replacing
- * <code>SpecialAddress.UNALTERED</code> and
- * <code>SpecialAddress.SENDER</code> if applicable with null
- */
- protected abstract Optional<MailAddress> getSender(Mail originalMail) throws MessagingException;
-
- /**
- * Builds the subject of <i>newMail</i> appending the subject of
- * <i>originalMail</i> to <i>subjectPrefix</i>. Is a "setX(Mail, Tx, Mail)"
- * method.
- */
- protected abstract Optional<String> getSubjectPrefix(Mail newMail, String subjectPrefix, Mail originalMail) throws MessagingException;
-
- /**
- * Mailet initialization routine. Will setup static values for each "x"
- * initialization parameter in config.xml, using getX(), if
- * {@link #isStatic()} returns true.
- */
- @Override
- public void init() throws MessagingException {
- if (getInitParameters().isDebug()) {
- log("Initializing");
- }
-
- // check that all init parameters have been declared in
- // allowedInitParameters
- checkInitParameters(getAllowedInitParameters());
-
- if (getInitParameters().isStatic()) {
- if (getInitParameters().isDebug()) {
- log(getInitParameters().asString());
- }
- }
- }
-
- /**
- * Service does the hard work,and redirects the originalMail in the form
- * specified.
- *
- * @param originalMail the mail to process and redirect
- * @throws MessagingException if a problem arises formulating the redirected mail
- */
- @Override
- public abstract void service(Mail originalMail) throws MessagingException;
-
- protected abstract MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException;
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
index f83adb5..f040e90 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
@@ -39,17 +39,17 @@ public class MailMessageAlteringUtils {
private static final char LINE_BREAK = '\n';
- public static Builder from(AbstractRedirect mailet) {
+ public static Builder from(RedirectNotify mailet) {
return new Builder(mailet);
}
public static class Builder {
- private AbstractRedirect mailet;
+ private RedirectNotify mailet;
private Mail originalMail;
private Mail newMail;
- private Builder(AbstractRedirect mailet) {
+ private Builder(RedirectNotify mailet) {
this.mailet = mailet;
}
@@ -75,11 +75,11 @@ public class MailMessageAlteringUtils {
}
}
- private final AbstractRedirect mailet;
+ private final RedirectNotify mailet;
private final Mail originalMail;
private final Mail newMail;
- private MailMessageAlteringUtils(AbstractRedirect mailet, Mail originalMail, Mail newMail) {
+ private MailMessageAlteringUtils(RedirectNotify mailet, Mail originalMail, Mail newMail) {
this.mailet = mailet;
this.originalMail = originalMail;
this.newMail = newMail;
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
index 12312e9..198acfd 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
@@ -47,14 +47,14 @@ public class MailModifier {
public static class Builder {
- private AbstractRedirect mailet;
+ private RedirectNotify mailet;
private MailImpl mail;
private DNSService dns;
private Builder() {
}
- public Builder mailet(AbstractRedirect mailet) {
+ public Builder mailet(RedirectNotify mailet) {
this.mailet = mailet;
return this;
}
@@ -77,11 +77,11 @@ public class MailModifier {
}
}
- private final AbstractRedirect mailet;
+ private final RedirectNotify mailet;
private final MailImpl mail;
private final DNSService dns;
- private MailModifier(AbstractRedirect mailet, MailImpl mail, DNSService dns) {
+ private MailModifier(RedirectNotify mailet, MailImpl mail, DNSService dns) {
this.mailet = mailet;
this.mail = mail;
this.dns = dns;
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
index e41ca83..12f27bb 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
@@ -27,14 +27,14 @@ import org.apache.mailet.Mail;
public class ProcessRedirectNotify {
- public static ProcessRedirectNotify from(AbstractRedirect mailet) {
+ public static ProcessRedirectNotify from(RedirectNotify mailet) {
return new ProcessRedirectNotify(mailet);
}
- private final AbstractRedirect mailet;
+ private final RedirectNotify mailet;
private final boolean isDebug;
- private ProcessRedirectNotify(AbstractRedirect mailet) {
+ private ProcessRedirectNotify(RedirectNotify mailet) {
this.mailet = mailet;
this.isDebug = mailet.getInitParameters().isDebug();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
new file mode 100644
index 0000000..aa5c19e
--- /dev/null
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
@@ -0,0 +1,316 @@
+/****************************************************************
+ * 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.transport.mailets.redirect;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.mail.MessagingException;
+import javax.mail.internet.InternetAddress;
+
+import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.transport.mailets.Redirect;
+import org.apache.james.transport.mailets.utils.MimeMessageModifier;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.GenericMailet;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableList;
+
+/**
+ * <p>
+ * Abstract mailet providing configurable redirection services.<br>
+ * This mailet can be subclassed to make authoring redirection mailets simple.<br>
+ * By extending it and overriding one or more of these methods new behaviour can
+ * be quickly created without the author having to address any other issue than
+ * the relevant one:
+ * </p>
+ * <ul>
+ * <li>attachError() , should error messages be appended to the message</li>
+ * <li>getAttachmentType(), what should be attached to the message</li>
+ * <li>getInLineType(), what should be included in the message</li>
+ * <li>getMessage(), The text of the message itself</li>
+ * <li>getRecipients(), the recipients the mail is sent to</li>
+ * <li>getReplyTo(), where replies to this message will be sent</li>
+ * <li>getReversePath(), what to set the reverse-path to</li>
+ * <li>getSender(), who the mail is from</li>
+ * <li>getSubject(), a string to replace the message subject</li>
+ * <li>getSubjectPrefix(), a prefix to be added to the message subject, possibly
+ * already replaced by a new subject</li>
+ * <li>getTo(), a list of people to whom the mail is *apparently* sent</li>
+ * <li>isReply(), should this mailet set the IN_REPLY_TO header to the id of the
+ * current message</li>
+ * <li>getPassThrough(), should this mailet allow the original message to
+ * continue processing or GHOST it.</li>
+ * <li>getFakeDomainCheck(), should this mailet check if the sender domain
+ * address is valid.</li>
+ * <li>isStatic(), should this mailet run the get methods for every mail, or
+ * just once.</li>
+ * </ul>
+ * <p>
+ * For each of the methods above (generically called "getX()" methods in this
+ * class and its subclasses), there is an associated "getX(Mail)" method and
+ * most times a "setX(Mail, Tx, Mail)" method.<br>
+ * The roles are the following:
+ * </p>
+ * <ul>
+ * <li>a "getX()" method returns the correspondent "X" value that can be
+ * evaluated "statically" once at init time and then stored in a variable and
+ * made available for later use by a "getX(Mail)" method;</li>
+ * <li>a "getX(Mail)" method is the one called to return the correspondent "X"
+ * value that can be evaluated "dynamically", tipically based on the currently
+ * serviced mail; the default behaviour is to return the value of getX();</li>
+ * <li>a "setX(Mail, Tx, Mail)" method is called to change the correspondent "X"
+ * value of the redirected Mail object, using the value returned by
+ * "gexX(Mail)"; if such value is null, it does nothing.</li>
+ * </ul>
+ * <p>
+ * Here follows the typical pattern of those methods:
+ * </p>
+ * <p/>
+ * <pre>
+ * <code>
+ * ...
+ * Tx x;
+ * ...
+ * protected boolean getX(Mail originalMail) throws MessagingException {
+ * boolean x = (isStatic()) ? this.x : getX();
+ * ...
+ * return x;
+ * }
+ * ...
+ * public void init() throws MessagingException {
+ * ...
+ * isStatic = (getInitParameter("static") == null) ? false : new Boolean(getInitParameter("static")).booleanValue();
+ * if(isStatic()) {
+ * ...
+ * X = getX();
+ * ...
+ * }
+ * ...
+ * public void service(Mail originalMail) throws MessagingException {
+ * ...
+ * setX(newMail, getX(originalMail), originalMail);
+ * ...
+ * }
+ * ...
+ * </code>
+ * </pre>
+ * <p>
+ * The <i>isStatic</i> variable and method is used to allow for the situations
+ * (deprecated since version 2.2, but possibly used by previoulsy written
+ * extensions to {@link Redirect}) in which the getX() methods are non static:
+ * in this case {@link #isStatic()} must return false.<br>
+ * Finally, a "getX()" method may return a "special address" (see
+ * {@link SpecialAddress}), that later will be resolved ("late bound") by a
+ * "getX(Mail)" or "setX(Mail, Tx, Mail)": it is a dynamic value that does not
+ * require <code>isStatic</code> to be false.
+ * </p>
+ * <p/>
+ * <p>
+ * Supports by default the <code>passThrough</code> init parameter (false if
+ * missing). Subclasses can override this behaviour overriding
+ * {@link #getPassThrough()}.
+ * </p>
+ *
+ * @since 2.2.0
+ */
+
+public abstract class RedirectNotify extends GenericMailet {
+
+ public static final List<String> REVERSE_PATH_ALLOWED_SPECIALS = ImmutableList.of("postmaster", "sender", "null", "unaltered");
+ public static final List<String> SENDER_ALLOWED_SPECIALS = ImmutableList.of("postmaster", "sender", "unaltered");
+
+ public abstract InitParameters getInitParameters();
+
+ protected abstract String[] getAllowedInitParameters();
+
+ protected DNSService dns;
+
+ @Inject
+ public void setDNSService(DNSService dns) {
+ this.dns = dns;
+ }
+
+ /**
+ * Gets the <code>message</code> property, built dynamically using the
+ * original Mail object. Is a "getX(Mail)" method.
+ *
+ * @return {@link #getMessage()}
+ */
+ public abstract String getMessage(Mail originalMail) throws MessagingException;
+
+ /**
+ * Gets the <code>recipients</code> property. Returns the collection of
+ * recipients of the new message, or null if no change is requested. Is a
+ * "getX()" method.
+ *
+ * @return the <code>recipients</code> init parameter or the postmaster
+ * address or <code>SpecialAddress.SENDER</code> or
+ * <code>SpecialAddress.FROM</code> or
+ * <code>SpecialAddress.REPLY_TO</code> or
+ * <code>SpecialAddress.REVERSE_PATH</code> or
+ * <code>SpecialAddress.UNALTERED</code> or
+ * <code>SpecialAddress.RECIPIENTS</code> or <code>null</code> if
+ * missing
+ */
+ public abstract List<MailAddress> getRecipients() throws MessagingException;
+
+ /**
+ * Gets the <code>recipients</code> property, built dynamically using the
+ * original Mail object. Is a "getX(Mail)" method.
+ *
+ * @return {@link #replaceMailAddresses} on {@link #getRecipients()},
+ */
+ protected abstract List<MailAddress> getRecipients(Mail originalMail) throws MessagingException;
+
+ /**
+ * Gets the <code>to</code> property. Returns the "To:" recipients of the
+ * new message. or null if no change is requested. Is a "getX()" method.
+ *
+ * @return the <code>to</code> init parameter or the postmaster address or
+ * <code>SpecialAddress.SENDER</code> or
+ * <code>SpecialAddress.REVERSE_PATH</code> or
+ * <code>SpecialAddress.FROM</code> or
+ * <code>SpecialAddress.REPLY_TO</code> or
+ * <code>SpecialAddress.UNALTERED</code> or
+ * <code>SpecialAddress.TO</code> or <code>null</code> if missing
+ */
+ public abstract List<InternetAddress> getTo() throws MessagingException;
+
+ /**
+ * Gets the <code>to</code> property, built dynamically using the original
+ * Mail object. Its outcome will be the the value the <i>TO:</i> header will
+ * be set to, that could be different from the real recipient (see
+ * {@link Mail#getRecipients}). Is a "getX(Mail)" method.
+ *
+ * @return {@link #replaceInternetAddresses} on {@link #getRecipients()},
+ */
+ protected abstract List<MailAddress> getTo(Mail originalMail) throws MessagingException;
+
+ /**
+ * Gets the <code>replyto</code> property. Returns the Reply-To address of
+ * the new message, or null if no change is requested. Is a "getX()" method.
+ *
+ * @return the <code>replyto</code> init parameter or the postmaster address
+ * or <code>SpecialAddress.SENDER</code> or
+ * <code>SpecialAddress.UNALTERED</code> or
+ * <code>SpecialAddress.NULL</code> or <code>null</code> if missing
+ */
+ public abstract MailAddress getReplyTo() throws MessagingException;
+
+ /**
+ * Gets the <code>replyTo</code> property, built dynamically using the
+ * original Mail object. Is a "getX(Mail)" method.
+ *
+ * @return {@link #getReplyTo()} replacing
+ * <code>SpecialAddress.UNALTERED</code> if applicable with null and
+ * <code>SpecialAddress.SENDER</code> with the original mail sender
+ */
+ protected abstract MailAddress getReplyTo(Mail originalMail) throws MessagingException;
+
+ /**
+ * Gets the <code>reversePath</code> property. Returns the reverse-path of
+ * the new message, or null if no change is requested. Is a "getX()" method.
+ *
+ * @return the <code>reversePath</code> init parameter or the postmaster
+ * address or <code>SpecialAddress.SENDER</code> or
+ * <code>SpecialAddress.NULL</code> or
+ * <code>SpecialAddress.UNALTERED</code> or <code>null</code> if
+ * missing
+ */
+ protected abstract MailAddress getReversePath() throws MessagingException;
+
+ /**
+ * Gets the <code>reversePath</code> property, built dynamically using the
+ * original Mail object. Is a "getX(Mail)" method.
+ *
+ * @return {@link #getReversePath()}, replacing
+ * <code>SpecialAddress.SENDER</code> if applicable with null,
+ * replacing <code>SpecialAddress.UNALTERED</code> and
+ * <code>SpecialAddress.REVERSE_PATH</code> if applicable with null,
+ * but not replacing <code>SpecialAddress.NULL</code> that will be
+ * handled by {@link #setReversePath}
+ */
+ protected abstract MailAddress getReversePath(Mail originalMail) throws MessagingException;
+
+ /**
+ * Gets the <code>sender</code> property. Returns the new sender as a
+ * MailAddress, or null if no change is requested. Is a "getX()" method.
+ *
+ * @return the <code>sender</code> init parameter or the postmaster address
+ * or <code>SpecialAddress.SENDER</code> or
+ * <code>SpecialAddress.UNALTERED</code> or <code>null</code> if
+ * missing
+ */
+ public abstract MailAddress getSender() throws MessagingException;
+
+ /**
+ * Gets the <code>sender</code> property, built dynamically using the
+ * original Mail object. Is a "getX(Mail)" method.
+ *
+ * @return {@link #getSender()} replacing
+ * <code>SpecialAddress.UNALTERED</code> and
+ * <code>SpecialAddress.SENDER</code> if applicable with null
+ */
+ protected abstract Optional<MailAddress> getSender(Mail originalMail) throws MessagingException;
+
+ /**
+ * Builds the subject of <i>newMail</i> appending the subject of
+ * <i>originalMail</i> to <i>subjectPrefix</i>. Is a "setX(Mail, Tx, Mail)"
+ * method.
+ */
+ protected abstract Optional<String> getSubjectPrefix(Mail newMail, String subjectPrefix, Mail originalMail) throws MessagingException;
+
+ /**
+ * Mailet initialization routine. Will setup static values for each "x"
+ * initialization parameter in config.xml, using getX(), if
+ * {@link #isStatic()} returns true.
+ */
+ @Override
+ public void init() throws MessagingException {
+ if (getInitParameters().isDebug()) {
+ log("Initializing");
+ }
+
+ // check that all init parameters have been declared in
+ // allowedInitParameters
+ checkInitParameters(getAllowedInitParameters());
+
+ if (getInitParameters().isStatic()) {
+ if (getInitParameters().isDebug()) {
+ log(getInitParameters().asString());
+ }
+ }
+ }
+
+ /**
+ * Service does the hard work,and redirects the originalMail in the form
+ * specified.
+ *
+ * @param originalMail the mail to process and redirect
+ * @throws MessagingException if a problem arises formulating the redirected mail
+ */
+ @Override
+ public abstract void service(Mail originalMail) throws MessagingException;
+
+ protected abstract MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException;
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/util/RecipientsUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/RecipientsUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/RecipientsUtils.java
index f99ae25..e1220c1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/RecipientsUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/RecipientsUtils.java
@@ -22,7 +22,7 @@ import java.util.List;
import javax.mail.MessagingException;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.SpecialAddress;
import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
@@ -31,13 +31,13 @@ import com.google.common.collect.ImmutableList;
public class RecipientsUtils {
- public static RecipientsUtils from(AbstractRedirect mailet) {
+ public static RecipientsUtils from(RedirectNotify mailet) {
return new RecipientsUtils(mailet);
}
- private final AbstractRedirect mailet;
+ private final RedirectNotify mailet;
- private RecipientsUtils(AbstractRedirect mailet) {
+ private RecipientsUtils(RedirectNotify mailet) {
this.mailet = mailet;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
index db31c87..44c03a1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
@@ -23,7 +23,7 @@ import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.SpecialAddress;
import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
@@ -32,13 +32,13 @@ import com.google.common.collect.ImmutableList;
public class TosUtils {
- public static TosUtils from(AbstractRedirect mailet) {
+ public static TosUtils from(RedirectNotify mailet) {
return new TosUtils(mailet);
}
- private final AbstractRedirect mailet;
+ private final RedirectNotify mailet;
- private TosUtils(AbstractRedirect mailet) {
+ private TosUtils(RedirectNotify mailet) {
this.mailet = mailet;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtilsTest.java
index b43d883..70a7768 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtilsTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtilsTest.java
@@ -42,7 +42,7 @@ public class MailMessageAlteringUtilsTest {
public void buildShouldThrowWhenOriginalMailIsNull() {
expectedException.expect(NullPointerException.class);
expectedException.expectMessage("'originalMail' is mandatory");
- MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.build();
}
@@ -50,14 +50,14 @@ public class MailMessageAlteringUtilsTest {
public void buildShouldThrowWhenNewMailIsNull() {
expectedException.expect(NullPointerException.class);
expectedException.expectMessage("'newMail' is mandatory");
- MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.originalMail(mock(Mail.class))
.build();
}
@Test
public void buildShouldWorkWhenEverythingProvided() {
- MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.originalMail(mock(Mail.class))
.newMail(mock(Mail.class))
.build();
@@ -65,7 +65,7 @@ public class MailMessageAlteringUtilsTest {
@Test
public void getFileNameShouldReturnNoSubjectWhenSubjectIsNull() {
- MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.originalMail(mock(Mail.class))
.newMail(mock(Mail.class))
.build();
@@ -77,7 +77,7 @@ public class MailMessageAlteringUtilsTest {
@Test
public void getFileNameShouldReturnNoSubjectWhenSubjectContainsOnlySpaces() {
- MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.originalMail(mock(Mail.class))
.newMail(mock(Mail.class))
.build();
@@ -89,7 +89,7 @@ public class MailMessageAlteringUtilsTest {
@Test
public void getFileNameShouldReturnSubjectWhenSubjectIsGiven() {
- MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.originalMail(mock(Mail.class))
.newMail(mock(Mail.class))
.build();
@@ -101,7 +101,7 @@ public class MailMessageAlteringUtilsTest {
@Test
public void getFileNameShouldReturnTrimmedSubjectWhenSubjectStartsWithSpaces() {
- MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(AbstractRedirect.class))
+ MailMessageAlteringUtils alteredMailUtils = MailMessageAlteringUtils.from(mock(RedirectNotify.class))
.originalMail(mock(Mail.class))
.newMail(mock(Mail.class))
.build();
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailModifierTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailModifierTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailModifierTest.java
index 335e968..f996bf5 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailModifierTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailModifierTest.java
@@ -43,7 +43,7 @@ public class MailModifierTest {
expectedException.expect(NullPointerException.class);
expectedException.expectMessage("'mail' is mandatory");
MailModifier.builder()
- .mailet(mock(AbstractRedirect.class))
+ .mailet(mock(RedirectNotify.class))
.build();
}
@@ -52,7 +52,7 @@ public class MailModifierTest {
expectedException.expect(NullPointerException.class);
expectedException.expectMessage("'dns' is mandatory");
MailModifier.builder()
- .mailet(mock(AbstractRedirect.class))
+ .mailet(mock(RedirectNotify.class))
.mail(mock(MailImpl.class))
.build();
}
@@ -60,7 +60,7 @@ public class MailModifierTest {
@Test
public void buildShouldWorkWhenEverythingProvided() {
MailModifier.builder()
- .mailet(mock(AbstractRedirect.class))
+ .mailet(mock(RedirectNotify.class))
.mail(mock(MailImpl.class))
.dns(mock(DNSService.class))
.build();
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
index 68080d1..8649088 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
@@ -29,7 +29,7 @@ import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.SpecialAddress;
import org.apache.mailet.MailAddress;
import org.apache.mailet.base.test.FakeMail;
@@ -40,12 +40,12 @@ import com.google.common.collect.ImmutableList;
public class RecipientsUtilsTest {
- private AbstractRedirect mailet;
+ private RedirectNotify mailet;
private RecipientsUtils testee;
@Before
public void setup() {
- mailet = mock(AbstractRedirect.class);
+ mailet = mock(RedirectNotify.class);
testee = RecipientsUtils.from(mailet);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5a81c0d9/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
index f8fc000..21c8846 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
@@ -30,7 +30,7 @@ import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
-import org.apache.james.transport.mailets.redirect.AbstractRedirect;
+import org.apache.james.transport.mailets.redirect.RedirectNotify;
import org.apache.james.transport.mailets.redirect.SpecialAddress;
import org.apache.mailet.MailAddress;
import org.apache.mailet.base.test.FakeMail;
@@ -41,12 +41,12 @@ import com.google.common.collect.ImmutableList;
public class TosUtilsTest {
- private AbstractRedirect mailet;
+ private RedirectNotify mailet;
private TosUtils testee;
@Before
public void setup() {
- mailet = mock(AbstractRedirect.class);
+ mailet = mock(RedirectNotify.class);
testee = TosUtils.from(mailet);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org