JAMES-1852 Move mailets to the right package It allows it to be addressed in mailetcontainer by name and not by FQDN
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e9cba9cf Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e9cba9cf Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e9cba9cf Branch: refs/heads/master Commit: e9cba9cfb7b81ec9ba811359895f7bdd7d8b024c Parents: 989d60e Author: Benoit Tellier <[email protected]> Authored: Fri Oct 28 15:57:38 2016 +0200 Committer: Benoit Tellier <[email protected]> Committed: Fri Nov 18 18:46:46 2016 +0700 ---------------------------------------------------------------------- .../james/transport/mailets/LocalDelivery.java | 110 +++++++++++++++++ .../transport/mailets/SieveLocalDelivery.java | 122 +++++++++++++++++++ .../mailets/SieveToRecipientFolder.java | 114 +++++++++++++++++ .../transport/mailets/ToRecipientFolder.java | 103 ++++++++++++++++ .../mailets/delivery/LocalDelivery.java | 107 ---------------- .../mailets/delivery/SieveLocalDelivery.java | 118 ------------------ .../delivery/SieveToRecipientFolder.java | 111 ----------------- .../mailets/delivery/ToRecipientFolder.java | 100 --------------- .../delivery/SieveLocalDeliveryTest.java | 1 + .../delivery/SieveToRecipientFolderTest.java | 2 + 10 files changed, 452 insertions(+), 436 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/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 new file mode 100644 index 0000000..28b9a51 --- /dev/null +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java @@ -0,0 +1,110 @@ +/**************************************************************** + * 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; + +import javax.inject.Inject; +import javax.inject.Named; +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.transport.mailets.delivery.MailDispatcher; +import org.apache.james.transport.mailets.delivery.MailboxAppender; +import org.apache.james.transport.mailets.delivery.SimpleMailStorer; +import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; +import org.apache.james.user.api.UsersRepository; +import org.apache.mailet.Mail; +import org.apache.mailet.base.GenericMailet; + +/** + * Receives a Mail from the Queue and takes care of delivery of the + * message to local inboxes. + * + * This mailet is a composition of RecipientRewriteTable, SieveMailet + * and MailboxManager configured to mimic the old "LocalDelivery" + * 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; + + @Inject + public void setRrt(org.apache.james.rrt.api.RecipientRewriteTable rrt) { + this.rrt = rrt; + } + + @Inject + public void setUsersRepository(UsersRepository usersRepository) { + this.usersRepository = usersRepository; + } + + @Inject + public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) { + this.mailboxManager = mailboxManager; + } + + @Inject + public void setDomainList(DomainList domainList) { + this.domainList = domainList; + } + + private MailDispatcher mailDispatcher; // Mailet that actually stores the message + private RecipientRewriteTable recipientRewriteTable; // Mailet that applies RecipientRewriteTable + + public void service(Mail mail) throws MessagingException { + recipientRewriteTable.service(mail); + if (!mail.getState().equals(Mail.GHOST)) { + mailDispatcher.dispatch(mail); + } + } + + public String getMailetInfo() { + return "Local Delivery Mailet"; + } + + public void init() throws MessagingException { + recipientRewriteTable = new RecipientRewriteTable(); + recipientRewriteTable.setDomainList(domainList); + recipientRewriteTable.setRecipientRewriteTable(rrt); + recipientRewriteTable.init(getMailetConfig()); + Log log = CommonsLoggingAdapter.builder() + .mailet(this) + .quiet(getInitParameter("quiet", false)) + .verbose(getInitParameter("verbose", false)) + .build(); + mailDispatcher = MailDispatcher.builder() + .mailStorer(SimpleMailStorer.builder() + .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext())) + .usersRepository(usersRepository) + .folder("INBOX") + .log(log) + .build()) + .consume(getInitParameter("consume", true)) + .mailetContext(getMailetContext()) + .log(log) + .build(); + } + +} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/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 new file mode 100644 index 0000000..9dfa5f2 --- /dev/null +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java @@ -0,0 +1,122 @@ +/**************************************************************** + * 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; + +import javax.inject.Inject; +import javax.inject.Named; +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.sieverepository.api.SieveRepository; +import org.apache.james.transport.mailets.RecipientRewriteTable; +import org.apache.james.transport.mailets.ResourceLocatorImpl; +import org.apache.james.transport.mailets.delivery.MailDispatcher; +import org.apache.james.transport.mailets.delivery.MailboxAppender; +import org.apache.james.transport.mailets.delivery.SieveMailStorer; +import org.apache.james.transport.mailets.delivery.SievePoster; +import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; +import org.apache.james.user.api.UsersRepository; +import org.apache.mailet.Mail; +import org.apache.mailet.base.GenericMailet; + +/** + * Receives a Mail from the Queue and takes care of delivery of the + * message to local inboxes applying SIEVE rules. + * + * This mailet is a composition of RecipientRewriteTable, SieveMailet + * and MailboxManager configured to mimic the old "LocalDelivery" + * James 2.3 behavior. + */ +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; + + @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) { + this.usersRepository = usersRepository; + } + + @Inject + public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) { + this.mailboxManager = mailboxManager; + } + + @Inject + public void setDomainList(DomainList domainList) { + this.domainList = domainList; + } + + private MailDispatcher mailDispatcher; // Mailet that actually stores the message + private RecipientRewriteTable recipientRewriteTable; // Mailet that applies RecipientRewriteTable + + public void service(Mail mail) throws MessagingException { + recipientRewriteTable.service(mail); + if (!mail.getState().equals(Mail.GHOST)) { + mailDispatcher.dispatch(mail); + } + } + + public String getMailetInfo() { + return "Local Delivery Mailet"; + } + + public void init() throws MessagingException { + recipientRewriteTable = new RecipientRewriteTable(); + recipientRewriteTable.setDomainList(domainList); + recipientRewriteTable.setRecipientRewriteTable(rrt); + recipientRewriteTable.init(getMailetConfig()); + Log log = CommonsLoggingAdapter.builder() + .mailet(this) + .quiet(getInitParameter("quiet", false)) + .verbose(getInitParameter("verbose", false)) + .build(); + String folder = "INBOX"; + mailDispatcher = MailDispatcher.builder() + .mailStorer(SieveMailStorer.builder() + .sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext()), folder, usersRepository, getMailetContext())) + .usersRepository(usersRepository) + .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository)) + .mailetContext(getMailetContext()) + .folder(folder) + .log(log) + .build()) + .consume(getInitParameter("consume", true)) + .mailetContext(getMailetContext()) + .log(log) + .build(); + } + +} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/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 new file mode 100644 index 0000000..a574a15 --- /dev/null +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java @@ -0,0 +1,114 @@ +/**************************************************************** + * 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; + +import javax.inject.Inject; +import javax.inject.Named; +import javax.mail.MessagingException; + +import org.apache.commons.logging.Log; +import org.apache.james.mailbox.MailboxManager; +import org.apache.james.sieverepository.api.SieveRepository; +import org.apache.james.transport.mailets.delivery.MailDispatcher; +import org.apache.james.transport.mailets.delivery.MailboxAppender; +import org.apache.james.transport.mailets.delivery.SieveMailStorer; +import org.apache.james.transport.mailets.delivery.SievePoster; +import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; +import org.apache.james.user.api.UsersRepository; +import org.apache.mailet.Mail; +import org.apache.mailet.base.GenericMailet; + +/** + * Receives a Mail from the Queue and takes care to deliver the message + * to a defined folder of the recipient(s) applying SIEVE rules. + * + * You have to define the folder name of the recipient(s). + * The flag 'consume' will tell is the mail will be further + * processed by the upcoming processor mailets, or not. + * + * <pre> + * <mailet match="RecipientIsLocal" class="ToRecipientFolder"> + * <folder> <i>Junk</i> </folder> + * <consume> <i>false</i> </consume> + * </mailet> + * </pre> + * + */ +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; + + @Inject + public void setMailboxManager(@Named("mailboxmanager")MailboxManager mailboxManager) { + 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)) { + mailDispatcher.dispatch(mail); + } + } + + @Override + public void init() throws MessagingException { + Log log = CommonsLoggingAdapter.builder() + .mailet(this) + .quiet(getInitParameter("quiet", true)) + .verbose(getInitParameter("verbose", false)) + .build(); + String folder = getInitParameter(FOLDER_PARAMETER, "INBOX"); + mailDispatcher = MailDispatcher.builder() + .mailStorer(SieveMailStorer.builder() + .sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext()), folder, usersRepository, getMailetContext())) + .usersRepository(usersRepository) + .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository)) + .mailetContext(getMailetContext()) + .folder(folder) + .log(log) + .build()) + .consume(getInitParameter(CONSUME_PARAMETER, false)) + .mailetContext(getMailetContext()) + .log(log) + .build(); + } + + @Override + public String getMailetInfo() { + return SieveToRecipientFolder.class.getName() + " Mailet"; + } + +} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/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 new file mode 100644 index 0000000..9270dcb --- /dev/null +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java @@ -0,0 +1,103 @@ +/**************************************************************** + * 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; + +import javax.inject.Inject; +import javax.inject.Named; +import javax.mail.MessagingException; + +import org.apache.commons.logging.Log; +import org.apache.james.mailbox.MailboxManager; +import org.apache.james.transport.mailets.delivery.MailDispatcher; +import org.apache.james.transport.mailets.delivery.MailboxAppender; +import org.apache.james.transport.mailets.delivery.SimpleMailStorer; +import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; +import org.apache.james.user.api.UsersRepository; +import org.apache.mailet.Mail; +import org.apache.mailet.base.GenericMailet; + +/** + * Receives a Mail from the Queue and takes care to deliver the message + * to a defined folder of the recipient(s). + * + * You have to define the folder name of the recipient(s). + * The flag 'consume' will tell is the mail will be further + * processed by the upcoming processor mailets, or not. + * + * <pre> + * <mailet match="RecipientIsLocal" class="ToRecipientFolder"> + * <folder> <i>Junk</i> </folder> + * <consume> <i>false</i> </consume> + * </mailet> + * </pre> + * + */ +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; + + @Inject + public void setMailboxManager(@Named("mailboxmanager")MailboxManager mailboxManager) { + 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)) { + mailDispatcher.dispatch(mail); + } + } + + @Override + public void init() throws MessagingException { + Log log = CommonsLoggingAdapter.builder() + .mailet(this) + .quiet(getInitParameter("quiet", true)) + .verbose(getInitParameter("verbose", false)) + .build(); + mailDispatcher = MailDispatcher.builder() + .mailStorer(SimpleMailStorer.builder() + .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext())) + .usersRepository(usersRepository) + .folder(getInitParameter(FOLDER_PARAMETER, "INBOX")) + .log(log) + .build()) + .consume(getInitParameter(CONSUME_PARAMETER, false)) + .mailetContext(getMailetContext()) + .log(log) + .build(); + } + + @Override + public String getMailetInfo() { + return ToRecipientFolder.class.getName() + " Mailet"; + } + +} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java deleted file mode 100644 index b90a8ed..0000000 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java +++ /dev/null @@ -1,107 +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.delivery; - -import javax.inject.Inject; -import javax.inject.Named; -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.transport.mailets.RecipientRewriteTable; -import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; -import org.apache.james.user.api.UsersRepository; -import org.apache.mailet.Mail; -import org.apache.mailet.base.GenericMailet; - -/** - * Receives a Mail from the Queue and takes care of delivery of the - * message to local inboxes. - * - * This mailet is a composition of RecipientRewriteTable, SieveMailet - * and MailboxManager configured to mimic the old "LocalDelivery" - * 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; - - @Inject - public void setRrt(org.apache.james.rrt.api.RecipientRewriteTable rrt) { - this.rrt = rrt; - } - - @Inject - public void setUsersRepository(UsersRepository usersRepository) { - this.usersRepository = usersRepository; - } - - @Inject - public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) { - this.mailboxManager = mailboxManager; - } - - @Inject - public void setDomainList(DomainList domainList) { - this.domainList = domainList; - } - - private MailDispatcher mailDispatcher; // Mailet that actually stores the message - private RecipientRewriteTable recipientRewriteTable; // Mailet that applies RecipientRewriteTable - - public void service(Mail mail) throws MessagingException { - recipientRewriteTable.service(mail); - if (!mail.getState().equals(Mail.GHOST)) { - mailDispatcher.dispatch(mail); - } - } - - public String getMailetInfo() { - return "Local Delivery Mailet"; - } - - public void init() throws MessagingException { - recipientRewriteTable = new RecipientRewriteTable(); - recipientRewriteTable.setDomainList(domainList); - recipientRewriteTable.setRecipientRewriteTable(rrt); - recipientRewriteTable.init(getMailetConfig()); - Log log = CommonsLoggingAdapter.builder() - .mailet(this) - .quiet(getInitParameter("quiet", false)) - .verbose(getInitParameter("verbose", false)) - .build(); - mailDispatcher = MailDispatcher.builder() - .mailStorer(SimpleMailStorer.builder() - .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext())) - .usersRepository(usersRepository) - .folder("INBOX") - .log(log) - .build()) - .consume(getInitParameter("consume", true)) - .mailetContext(getMailetContext()) - .log(log) - .build(); - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveLocalDelivery.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveLocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveLocalDelivery.java deleted file mode 100644 index eeba376..0000000 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveLocalDelivery.java +++ /dev/null @@ -1,118 +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.delivery; - -import javax.inject.Inject; -import javax.inject.Named; -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.sieverepository.api.SieveRepository; -import org.apache.james.transport.mailets.RecipientRewriteTable; -import org.apache.james.transport.mailets.ResourceLocatorImpl; -import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; -import org.apache.james.user.api.UsersRepository; -import org.apache.mailet.Mail; -import org.apache.mailet.base.GenericMailet; - -/** - * Receives a Mail from the Queue and takes care of delivery of the - * message to local inboxes applying SIEVE rules. - * - * This mailet is a composition of RecipientRewriteTable, SieveMailet - * and MailboxManager configured to mimic the old "LocalDelivery" - * James 2.3 behavior. - */ -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; - - @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) { - this.usersRepository = usersRepository; - } - - @Inject - public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) { - this.mailboxManager = mailboxManager; - } - - @Inject - public void setDomainList(DomainList domainList) { - this.domainList = domainList; - } - - private MailDispatcher mailDispatcher; // Mailet that actually stores the message - private RecipientRewriteTable recipientRewriteTable; // Mailet that applies RecipientRewriteTable - - public void service(Mail mail) throws MessagingException { - recipientRewriteTable.service(mail); - if (!mail.getState().equals(Mail.GHOST)) { - mailDispatcher.dispatch(mail); - } - } - - public String getMailetInfo() { - return "Local Delivery Mailet"; - } - - public void init() throws MessagingException { - recipientRewriteTable = new RecipientRewriteTable(); - recipientRewriteTable.setDomainList(domainList); - recipientRewriteTable.setRecipientRewriteTable(rrt); - recipientRewriteTable.init(getMailetConfig()); - Log log = CommonsLoggingAdapter.builder() - .mailet(this) - .quiet(getInitParameter("quiet", false)) - .verbose(getInitParameter("verbose", false)) - .build(); - String folder = "INBOX"; - mailDispatcher = MailDispatcher.builder() - .mailStorer(SieveMailStorer.builder() - .sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext()), folder, usersRepository, getMailetContext())) - .usersRepository(usersRepository) - .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository)) - .mailetContext(getMailetContext()) - .folder(folder) - .log(log) - .build()) - .consume(getInitParameter("consume", true)) - .mailetContext(getMailetContext()) - .log(log) - .build(); - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolder.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolder.java deleted file mode 100644 index 634f653..0000000 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolder.java +++ /dev/null @@ -1,111 +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.delivery; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.mail.MessagingException; - -import org.apache.commons.logging.Log; -import org.apache.james.mailbox.MailboxManager; -import org.apache.james.sieverepository.api.SieveRepository; -import org.apache.james.transport.mailets.ResourceLocatorImpl; -import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; -import org.apache.james.user.api.UsersRepository; -import org.apache.mailet.Mail; -import org.apache.mailet.base.GenericMailet; - -/** - * Receives a Mail from the Queue and takes care to deliver the message - * to a defined folder of the recipient(s) applying SIEVE rules. - * - * You have to define the folder name of the recipient(s). - * The flag 'consume' will tell is the mail will be further - * processed by the upcoming processor mailets, or not. - * - * <pre> - * <mailet match="RecipientIsLocal" class="ToRecipientFolder"> - * <folder> <i>Junk</i> </folder> - * <consume> <i>false</i> </consume> - * </mailet> - * </pre> - * - */ -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; - - @Inject - public void setMailboxManager(@Named("mailboxmanager")MailboxManager mailboxManager) { - 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)) { - mailDispatcher.dispatch(mail); - } - } - - @Override - public void init() throws MessagingException { - Log log = CommonsLoggingAdapter.builder() - .mailet(this) - .quiet(getInitParameter("quiet", true)) - .verbose(getInitParameter("verbose", false)) - .build(); - String folder = getInitParameter(FOLDER_PARAMETER, "INBOX"); - mailDispatcher = MailDispatcher.builder() - .mailStorer(SieveMailStorer.builder() - .sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext()), folder, usersRepository, getMailetContext())) - .usersRepository(usersRepository) - .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository)) - .mailetContext(getMailetContext()) - .folder(folder) - .log(log) - .build()) - .consume(getInitParameter(CONSUME_PARAMETER, false)) - .mailetContext(getMailetContext()) - .log(log) - .build(); - } - - @Override - public String getMailetInfo() { - return SieveToRecipientFolder.class.getName() + " Mailet"; - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java deleted file mode 100644 index 1167c28..0000000 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java +++ /dev/null @@ -1,100 +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.delivery; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.mail.MessagingException; - -import org.apache.commons.logging.Log; -import org.apache.james.mailbox.MailboxManager; -import org.apache.james.transport.mailets.jsieve.CommonsLoggingAdapter; -import org.apache.james.user.api.UsersRepository; -import org.apache.mailet.Mail; -import org.apache.mailet.base.GenericMailet; - -/** - * Receives a Mail from the Queue and takes care to deliver the message - * to a defined folder of the recipient(s). - * - * You have to define the folder name of the recipient(s). - * The flag 'consume' will tell is the mail will be further - * processed by the upcoming processor mailets, or not. - * - * <pre> - * <mailet match="RecipientIsLocal" class="ToRecipientFolder"> - * <folder> <i>Junk</i> </folder> - * <consume> <i>false</i> </consume> - * </mailet> - * </pre> - * - */ -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; - - @Inject - public void setMailboxManager(@Named("mailboxmanager")MailboxManager mailboxManager) { - 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)) { - mailDispatcher.dispatch(mail); - } - } - - @Override - public void init() throws MessagingException { - Log log = CommonsLoggingAdapter.builder() - .mailet(this) - .quiet(getInitParameter("quiet", true)) - .verbose(getInitParameter("verbose", false)) - .build(); - mailDispatcher = MailDispatcher.builder() - .mailStorer(SimpleMailStorer.builder() - .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext())) - .usersRepository(usersRepository) - .folder(getInitParameter(FOLDER_PARAMETER, "INBOX")) - .log(log) - .build()) - .consume(getInitParameter(CONSUME_PARAMETER, false)) - .mailetContext(getMailetContext()) - .log(log) - .build(); - } - - @Override - public String getMailetInfo() { - return ToRecipientFolder.class.getName() + " Mailet"; - } - -} http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveLocalDeliveryTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveLocalDeliveryTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveLocalDeliveryTest.java index 6cb9781..3b081ab 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveLocalDeliveryTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveLocalDeliveryTest.java @@ -48,6 +48,7 @@ import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.rrt.api.RecipientRewriteTable; import org.apache.james.sieverepository.api.SieveRepository; import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; +import org.apache.james.transport.mailets.SieveLocalDelivery; import org.apache.james.user.api.UsersRepository; import org.apache.mailet.Mail; import org.apache.mailet.MailAddress; http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cba9cf/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolderTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolderTest.java index 5de9ab0..dbc7537 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolderTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveToRecipientFolderTest.java @@ -46,6 +46,8 @@ import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageManager; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.sieverepository.api.SieveRepository; +import org.apache.james.transport.mailets.SieveToRecipientFolder; +import org.apache.james.transport.mailets.ToRecipientFolder; import org.apache.james.user.api.UsersRepository; import org.apache.mailet.Mail; import org.apache.mailet.MailAddress; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
