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 <[email protected]> Authored: Thu Nov 10 16:26:01 2016 +0700 Committer: Benoit Tellier <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
