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 2016/11/23 13:50:34 UTC
[31/46] james-project git commit: JAMES-1854 Use constructor
injection rather than setter injection for delivery mailets
JAMES-1854 Use constructor injection rather than setter injection for delivery mailets
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/55582f58
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/55582f58
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/55582f58
Branch: refs/heads/master
Commit: 55582f58e3ff3a1192347d5d568b58af0d19a9b6
Parents: 09c522b
Author: Benoit Tellier <bt...@linagora.com>
Authored: Thu Nov 10 16:26:01 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 23 18:19:20 2016 +0700
----------------------------------------------------------------------
.../java/org/apache/mailet/MailAddress.java | 11 ++---
.../james/user/lib/AbstractUsersRepository.java | 2 +-
.../james/transport/mailets/LocalDelivery.java | 38 +++++----------
.../transport/mailets/SieveLocalDelivery.java | 50 +++++++-------------
.../mailets/SieveToRecipientFolder.java | 23 ++++-----
.../transport/mailets/ToRecipientFolder.java | 16 +++----
.../mailets/delivery/DeliveryUtils.java | 4 +-
.../mailets/delivery/MailDispatcher.java | 21 ++++----
.../mailets/delivery/MailboxAppender.java | 33 ++++++++-----
.../mailets/delivery/SimpleMailStore.java | 2 +-
.../mailets/jsieve/delivery/SieveMailStore.java | 14 ++++--
.../mailets/delivery/LocalDeliveryTest.java | 16 ++-----
.../mailets/delivery/SimpleMailStoreTest.java | 4 +-
.../mailets/delivery/ToRecipientFolderTest.java | 11 ++---
14 files changed, 101 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/mailet/api/src/main/java/org/apache/mailet/MailAddress.java
----------------------------------------------------------------------
diff --git a/mailet/api/src/main/java/org/apache/mailet/MailAddress.java b/mailet/api/src/main/java/org/apache/mailet/MailAddress.java
index 7c8ca89..fbca0a5 100644
--- a/mailet/api/src/main/java/org/apache/mailet/MailAddress.java
+++ b/mailet/api/src/main/java/org/apache/mailet/MailAddress.java
@@ -278,14 +278,9 @@ public class MailAddress implements java.io.Serializable {
public String toString() {
return localPart + "@" + domain;
}
-
- public String print() {
- return localPart + "@" + domain;
- }
-
-
- public String prettyPrint() {
- return '<' + print() + '>';
+
+ public String asPrettyString() {
+ return '<' + asString() + '>';
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
index 87a4373..287c482 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
@@ -137,7 +137,7 @@ public abstract class AbstractUsersRepository implements UsersRepository, LogEna
@Override
public String getUser(MailAddress mailAddress) throws UsersRepositoryException {
if (supportVirtualHosting()) {
- return mailAddress.print();
+ return mailAddress.asString();
} else {
return mailAddress.getLocalPart();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
index 2a9cc76..74c664c 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
@@ -27,6 +27,7 @@ import org.apache.commons.logging.Log;
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.transport.mailets.delivery.MailDispatcher;
import org.apache.james.transport.mailets.delivery.MailboxAppender;
import org.apache.james.transport.mailets.delivery.SimpleMailStore;
@@ -44,32 +45,20 @@ import org.apache.mailet.base.GenericMailet;
* James 2.3 behavior.
*/
public class LocalDelivery extends GenericMailet {
-
- private org.apache.james.rrt.api.RecipientRewriteTable rrt;
- private UsersRepository usersRepository;
- private MailboxManager mailboxManager;
- private DomainList domainList;
- private MailDispatcher mailDispatcher;
- private RecipientRewriteTable recipientRewriteTable;
- @Inject
- public void setRrt(org.apache.james.rrt.api.RecipientRewriteTable rrt) {
- this.rrt = rrt;
- }
+ private final UsersRepository usersRepository;
+ private final MailboxManager mailboxManager;
+ private final RecipientRewriteTable recipientRewriteTable;
+ private MailDispatcher mailDispatcher;
@Inject
- public void setUsersRepository(UsersRepository usersRepository) {
+ public LocalDelivery(org.apache.james.rrt.api.RecipientRewriteTable rrt, UsersRepository usersRepository,
+ @Named("mailboxmanager") MailboxManager mailboxManager, DomainList domainList) {
this.usersRepository = usersRepository;
- }
-
- @Inject
- public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) {
this.mailboxManager = mailboxManager;
- }
-
- @Inject
- public void setDomainList(DomainList domainList) {
- this.domainList = domainList;
+ this.recipientRewriteTable = new RecipientRewriteTable();
+ recipientRewriteTable.setDomainList(domainList);
+ recipientRewriteTable.setRecipientRewriteTable(rrt);
}
public void service(Mail mail) throws MessagingException {
@@ -84,20 +73,19 @@ public class LocalDelivery extends GenericMailet {
}
public void init() throws MessagingException {
- recipientRewriteTable = new RecipientRewriteTable();
- recipientRewriteTable.setDomainList(domainList);
- recipientRewriteTable.setRecipientRewriteTable(rrt);
recipientRewriteTable.init(getMailetConfig());
+
Log log = CommonsLoggingAdapter.builder()
.wrappedLogger(getMailetContext().getLogger())
.quiet(getInitParameter("quiet", false))
.verbose(getInitParameter("verbose", false))
.build();
+
mailDispatcher = MailDispatcher.builder()
.mailStorer(SimpleMailStore.builder()
.mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext().getLogger()))
.usersRepository(usersRepository)
- .folder("INBOX")
+ .folder(MailboxConstants.INBOX)
.log(log)
.build())
.consume(getInitParameter("consume", true))
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
index 69af0bf..835da00 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
@@ -26,6 +26,7 @@ import javax.mail.MessagingException;
import org.apache.commons.logging.Log;
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.sieverepository.api.SieveRepository;
import org.apache.james.transport.mailets.delivery.MailDispatcher;
import org.apache.james.transport.mailets.delivery.MailboxAppender;
@@ -46,37 +47,21 @@ import org.apache.mailet.base.GenericMailet;
*/
public class SieveLocalDelivery extends GenericMailet {
- private org.apache.james.rrt.api.RecipientRewriteTable rrt;
- private UsersRepository usersRepository;
- private MailboxManager mailboxManager;
- private DomainList domainList;
- private SieveRepository sieveRepository;
+ private final UsersRepository usersRepository;
+ private final MailboxManager mailboxManager;
+ private final SieveRepository sieveRepository;
+ private final RecipientRewriteTable recipientRewriteTable;
private MailDispatcher mailDispatcher;
- private RecipientRewriteTable recipientRewriteTable;
@Inject
- public void setSieveRepository(SieveRepository sieveRepository) {
- this.sieveRepository = sieveRepository;
- }
-
- @Inject
- public void setRrt(org.apache.james.rrt.api.RecipientRewriteTable rrt) {
- this.rrt = rrt;
- }
-
- @Inject
- public void setUsersRepository(UsersRepository usersRepository) {
+ public SieveLocalDelivery(UsersRepository usersRepository, @Named("mailboxmanager") MailboxManager mailboxManager,
+ SieveRepository sieveRepository, org.apache.james.rrt.api.RecipientRewriteTable rrt, DomainList domainList) {
this.usersRepository = usersRepository;
- }
-
- @Inject
- public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) {
this.mailboxManager = mailboxManager;
- }
-
- @Inject
- public void setDomainList(DomainList domainList) {
- this.domainList = domainList;
+ this.sieveRepository = sieveRepository;
+ this.recipientRewriteTable = new RecipientRewriteTable();
+ this.recipientRewriteTable.setDomainList(domainList);
+ this.recipientRewriteTable.setRecipientRewriteTable(rrt);
}
public void service(Mail mail) throws MessagingException {
@@ -91,23 +76,24 @@ public class SieveLocalDelivery extends GenericMailet {
}
public void init() throws MessagingException {
- recipientRewriteTable = new RecipientRewriteTable();
- recipientRewriteTable.setDomainList(domainList);
- recipientRewriteTable.setRecipientRewriteTable(rrt);
recipientRewriteTable.init(getMailetConfig());
+
Log log = CommonsLoggingAdapter.builder()
.wrappedLogger(getMailetContext().getLogger())
.quiet(getInitParameter("quiet", false))
.verbose(getInitParameter("verbose", false))
.build();
- String folder = "INBOX";
+
mailDispatcher = MailDispatcher.builder()
.mailStorer(SieveMailStore.builder()
- .sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext().getLogger()), folder, usersRepository))
+ .sievePoster(new SievePoster(
+ new MailboxAppender(mailboxManager, getMailetContext().getLogger()),
+ MailboxConstants.INBOX,
+ usersRepository))
.usersRepository(usersRepository)
.resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository))
.mailetContext(getMailetContext())
- .folder(folder)
+ .folder(MailboxConstants.INBOX)
.log(log)
.build())
.consume(getInitParameter("consume", true))
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
index 67039a7..0ce02ef 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
@@ -24,6 +24,7 @@ import javax.mail.MessagingException;
import org.apache.commons.logging.Log;
import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.sieverepository.api.SieveRepository;
import org.apache.james.transport.mailets.delivery.MailDispatcher;
import org.apache.james.transport.mailets.delivery.MailboxAppender;
@@ -55,27 +56,19 @@ public class SieveToRecipientFolder extends GenericMailet {
public static final String FOLDER_PARAMETER = "folder";
public static final String CONSUME_PARAMETER = "consume";
- private MailboxManager mailboxManager;
- private SieveRepository sieveRepository;
- private UsersRepository usersRepository;
+ private final MailboxManager mailboxManager;
+ private final SieveRepository sieveRepository;
+ private final UsersRepository usersRepository;
+ private MailDispatcher mailDispatcher;
@Inject
- public void setMailboxManager(@Named("mailboxmanager")MailboxManager mailboxManager) {
+ public SieveToRecipientFolder(@Named("mailboxmanager")MailboxManager mailboxManager, SieveRepository sieveRepository,
+ UsersRepository usersRepository) {
this.mailboxManager = mailboxManager;
- }
-
- @Inject
- public void setSieveRepository(SieveRepository sieveRepository) {
this.sieveRepository = sieveRepository;
- }
-
- @Inject
- public void setUsersRepository(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
- private MailDispatcher mailDispatcher;
-
@Override
public void service(Mail mail) throws MessagingException {
if (!mail.getState().equals(Mail.GHOST)) {
@@ -90,7 +83,7 @@ public class SieveToRecipientFolder extends GenericMailet {
.quiet(getInitParameter("quiet", true))
.verbose(getInitParameter("verbose", false))
.build();
- String folder = getInitParameter(FOLDER_PARAMETER, "INBOX");
+ String folder = getInitParameter(FOLDER_PARAMETER, MailboxConstants.INBOX);
mailDispatcher = MailDispatcher.builder()
.mailStorer(SieveMailStore.builder()
.sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext().getLogger()), folder, usersRepository))
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
index a59e9e2..4644641 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
@@ -24,6 +24,7 @@ import javax.mail.MessagingException;
import org.apache.commons.logging.Log;
import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.transport.mailets.delivery.MailDispatcher;
import org.apache.james.transport.mailets.delivery.MailboxAppender;
import org.apache.james.transport.mailets.delivery.SimpleMailStore;
@@ -53,21 +54,16 @@ public class ToRecipientFolder extends GenericMailet {
public static final String FOLDER_PARAMETER = "folder";
public static final String CONSUME_PARAMETER = "consume";
- private MailboxManager mailboxManager;
- private UsersRepository usersRepository;
+ private final MailboxManager mailboxManager;
+ private final UsersRepository usersRepository;
+ private MailDispatcher mailDispatcher;
@Inject
- public void setMailboxManager(@Named("mailboxmanager")MailboxManager mailboxManager) {
+ public ToRecipientFolder(@Named("mailboxmanager")MailboxManager mailboxManager, UsersRepository usersRepository) {
this.mailboxManager = mailboxManager;
- }
-
- @Inject
- public void setUsersRepository(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
- private MailDispatcher mailDispatcher;
-
@Override
public void service(Mail mail) throws MessagingException {
if (!mail.getState().equals(Mail.GHOST)) {
@@ -86,7 +82,7 @@ public class ToRecipientFolder extends GenericMailet {
.mailStorer(SimpleMailStore.builder()
.mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext().getLogger()))
.usersRepository(usersRepository)
- .folder(getInitParameter(FOLDER_PARAMETER, "INBOX"))
+ .folder(getInitParameter(FOLDER_PARAMETER, MailboxConstants.INBOX))
.log(log)
.build())
.consume(getInitParameter(CONSUME_PARAMETER, false))
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/DeliveryUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/DeliveryUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/DeliveryUtils.java
index e6030d3..22cb40d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/DeliveryUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/DeliveryUtils.java
@@ -25,9 +25,9 @@ public class DeliveryUtils {
public static String prettyPrint(MailAddress mailAddress) {
if (mailAddress != null) {
- return mailAddress.prettyPrint();
+ return mailAddress.asPrettyString();
} else {
- return "<>";
+ return "<>";
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
index 04968a6..43ef1a0 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
@@ -93,8 +93,7 @@ public class MailDispatcher {
}
public void dispatch(Mail mail) throws MessagingException {
- Collection<MailAddress> errors = new Vector<MailAddress>();
- dispatchNeedingErrorsManaged(mail, errors);
+ Collection<MailAddress> errors = customizeHeadersAndDeliver(mail);
if (!errors.isEmpty()) {
// If there were errors, we redirect the email to the ERROR
// processor.
@@ -105,10 +104,13 @@ public class MailDispatcher {
// In the future we may wish to address this.
mailetContext.sendMail(mail.getSender(), errors, mail.getMessage(), Mail.ERROR);
}
+ if (consume) {
+ // Consume this message
+ mail.setState(Mail.GHOST);
+ }
}
- @SuppressWarnings("unchecked")
- private void dispatchNeedingErrorsManaged(Mail mail, Collection<MailAddress> errors) throws MessagingException {
+ private Collection<MailAddress> customizeHeadersAndDeliver(Mail mail) throws MessagingException {
MimeMessage message = mail.getMessage();
// Set Return-Path and remove all other Return-Path headers from the message
// This only works because there is a placeholder inserted by MimeMessageWrapper
@@ -117,14 +119,16 @@ public class MailDispatcher {
List<String> deliveredToHeader = Arrays.asList(Optional.fromNullable(message.getHeader(DELIVERED_TO)).or(NO_HEADERS));
message.removeHeader(DELIVERED_TO);
- dispatchNeedingSavedDeliveredToHeader(mail, errors, message);
+ Collection<MailAddress> errors = deliver(mail, message);
for (String deliveredTo : deliveredToHeader) {
message.addHeader(DELIVERED_TO, deliveredTo);
}
+ return errors;
}
- private void dispatchNeedingSavedDeliveredToHeader(Mail mail, Collection<MailAddress> errors, MimeMessage message) {
+ private Collection<MailAddress> deliver(Mail mail, MimeMessage message) {
+ Collection<MailAddress> errors = new Vector<MailAddress>();
for (MailAddress recipient : mail.getRecipients()) {
try {
// Add qmail's de facto standard Delivered-To header
@@ -136,9 +140,6 @@ public class MailDispatcher {
errors.add(recipient);
}
}
- if (consume) {
- // Consume this message
- mail.setState(Mail.GHOST);
- }
+ return errors;
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
index 4b17263..64c72cb 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
@@ -77,23 +77,12 @@ public class MailboxAppender {
} catch (MailboxException e) {
throw new MessagingException("Unable to access mailbox.", e);
} finally {
- session.close();
- try {
- try {
- mailboxManager.logout(session, true);
- } catch (MailboxException e) {
- throw new MessagingException("Can logout from mailbox", e);
- }
- } finally {
- mailboxManager.endProcessingRequest(session);
- }
+ closeProcessing(session);
}
}
private void appendMessageToMailbox(MimeMessage mail, MailboxSession session, MailboxPath path) throws MailboxException, MessagingException {
- if (!mailboxManager.mailboxExists(path, session)) {
- mailboxManager.createMailbox(path, session);
- }
+ createMailboxIfNotExist(session, path);
final MessageManager mailbox = mailboxManager.getMailbox(path, session);
if (mailbox == null) {
throw new MessagingException("Mailbox " + path + " for user " + session.getUser().getUserName() + " was not found on this server.");
@@ -101,6 +90,12 @@ public class MailboxAppender {
mailbox.appendMessage(new MimeMessageInputStream(mail), new Date(), session, IS_RECENT, FLAGS);
}
+ private void createMailboxIfNotExist(MailboxSession session, MailboxPath path) throws MailboxException {
+ if (!mailboxManager.mailboxExists(path, session)) {
+ mailboxManager.createMailbox(path, session);
+ }
+ }
+
public MailboxSession createMailboxSession(String user) throws MessagingException {
try {
return mailboxManager.createSystemSession(user, logger);
@@ -111,5 +106,17 @@ public class MailboxAppender {
}
}
+ private void closeProcessing(MailboxSession session) throws MessagingException {
+ session.close();
+ try {
+ try {
+ mailboxManager.logout(session, true);
+ } catch (MailboxException e) {
+ throw new MessagingException("Can logout from mailbox", e);
+ }
+ } finally {
+ mailboxManager.endProcessingRequest(session);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
index 3324491..bec5ae8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
@@ -96,7 +96,7 @@ public class SimpleMailStore implements MailStore {
try {
return usersRepository.getUser(recipient);
} catch (UsersRepositoryException e) {
- log.error("Unable to access UsersRepository", e);
+ log.warn("Unable to retrieve username for " + recipient.asPrettyString(), e);
return recipient.toString();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveMailStore.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveMailStore.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveMailStore.java
index fcdf8a3..a5f655c 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveMailStore.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveMailStore.java
@@ -116,15 +116,19 @@ public class SieveMailStore implements MailStore {
this.sievePoster = sievePoster;
this.folder = folder;
this.resourceLocator = resourceLocator;
+ factory = createFactory(log);
+ this.actionDispatcher = new ActionDispatcher();
+ this.log = log;
+ }
+
+ private SieveFactory createFactory(Log log) throws MessagingException {
try {
final ConfigurationManager configurationManager = new ConfigurationManager();
configurationManager.setLog(log);
- factory = configurationManager.build();
+ return configurationManager.build();
} catch (SieveConfigurationException e) {
throw new MessagingException("Failed to load standard Sieve configuration.", e);
}
- this.actionDispatcher = new ActionDispatcher();
- this.log = log;
}
public void storeMail(MailAddress sender, MailAddress recipient, Mail mail) throws MessagingException {
@@ -186,12 +190,12 @@ public class SieveMailStore implements MailStore {
public String retrieveUserNameUsedForScriptStorage(MailAddress mailAddress) {
try {
if (usersRepos.supportVirtualHosting()) {
- return mailAddress.print();
+ return mailAddress.asString();
} else {
return mailAddress.getLocalPart() + "@localhost";
}
} catch (UsersRepositoryException e) {
- log.error("Unable to access UsersRepository", e);
+ log.warn("Can not determine if virtual hosting is used for " + mailAddress.asPrettyString(), e);
return mailAddress.getLocalPart() + "@localhost";
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
index cebf75d..9931bcf 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
@@ -119,18 +119,10 @@ public class LocalDeliveryTest {
RecipientRewriteTable recipientRewriteTable = mock(RecipientRewriteTable.class);
DomainList domainList = mock(DomainList.class);
- SieveLocalDelivery sieveLocalDelivery = new SieveLocalDelivery();
- sieveLocalDelivery.setDomainList(domainList);
- sieveLocalDelivery.setMailboxManager(mailboxManager);
- sieveLocalDelivery.setRrt(recipientRewriteTable);
- sieveLocalDelivery.setUsersRepository(usersRepository);
- sieveLocalDelivery.setSieveRepository(sieveRepository);
-
- LocalDelivery localDelivery = new LocalDelivery();
- localDelivery.setDomainList(domainList);
- localDelivery.setRrt(recipientRewriteTable);
- localDelivery.setMailboxManager(mailboxManager);
- localDelivery.setUsersRepository(usersRepository);
+ SieveLocalDelivery sieveLocalDelivery = new SieveLocalDelivery(usersRepository, mailboxManager, sieveRepository,
+ recipientRewriteTable, domainList);
+
+ LocalDelivery localDelivery = new LocalDelivery(recipientRewriteTable, usersRepository, mailboxManager, domainList);
MailboxSession.User user = mock(MailboxSession.User.class);
MailboxSession session = mock(MailboxSession.class);
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
index 3566362..74a00c6 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
@@ -81,13 +81,13 @@ public class SimpleMailStoreTest {
public void storeMailShouldUseFullMailAddressWhenSupportsVirtualHosting() throws Exception {
MailAddress sender = MailAddressFixture.ANY_AT_JAMES;
MailAddress recipient = MailAddressFixture.OTHER_AT_JAMES;
- when(usersRepository.getUser(recipient)).thenReturn(recipient.print());
+ when(usersRepository.getUser(recipient)).thenReturn(recipient.asString());
FakeMail mail = FakeMail.builder()
.mimeMessage(mimeMessage)
.build();
testee.storeMail(sender, recipient, mail);
- verify(mailboxAppender).append(any(MimeMessage.class), eq(recipient.print()), eq(FOLDER));
+ verify(mailboxAppender).append(any(MimeMessage.class), eq(recipient.asString()), eq(FOLDER));
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/55582f58/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
index 7d67292..edbf3c0 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
@@ -120,14 +120,9 @@ public class ToRecipientFolderTest {
UsersRepository usersRepository = mock(UsersRepository.class);
MailboxManager mailboxManager = mock(MailboxManager.class);
- SieveToRecipientFolder sieveToRecipientFolder = new SieveToRecipientFolder();
- sieveToRecipientFolder.setMailboxManager(mailboxManager);
- sieveToRecipientFolder.setUsersRepository(usersRepository);
- sieveToRecipientFolder.setSieveRepository(sieveRepository);
-
- ToRecipientFolder toRecipientFolder = new ToRecipientFolder();
- toRecipientFolder.setMailboxManager(mailboxManager);
- toRecipientFolder.setUsersRepository(usersRepository);
+ SieveToRecipientFolder sieveToRecipientFolder = new SieveToRecipientFolder(mailboxManager, sieveRepository, usersRepository);
+
+ ToRecipientFolder toRecipientFolder = new ToRecipientFolder(mailboxManager, usersRepository);
MailboxSession.User user = mock(MailboxSession.User.class);
MailboxSession session = mock(MailboxSession.class);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org