This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit c4b67f83e34a85b7a8e27e504155561d7c5cd558 Author: Benoit Tellier <[email protected]> AuthorDate: Fri Oct 1 14:21:49 2021 +0700 JAMES-3658 Interface for LocalResources --- .../modules/server/MailetContainerModule.java | 5 ++++ .../james/mailetcontainer/api/LocalResources.java | 35 ++++++++++++++++++++++ .../mailetcontainer/impl/JamesMailetContext.java | 1 + ...LocalResources.java => LocalResourcesImpl.java} | 19 +++++++----- .../META-INF/spring/mailetcontainer-context.xml | 2 +- .../impl/JamesMailetContextTest.java | 3 +- 6 files changed, 56 insertions(+), 9 deletions(-) diff --git a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/MailetContainerModule.java b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/MailetContainerModule.java index 5527c04..4b32fd2 100644 --- a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/MailetContainerModule.java +++ b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/MailetContainerModule.java @@ -34,6 +34,7 @@ import org.apache.commons.configuration2.tree.ImmutableNode; import org.apache.commons.lang3.tuple.Pair; import org.apache.james.lifecycle.api.Startable; import org.apache.james.mailetcontainer.AutomaticallySentMailDetectorImpl; +import org.apache.james.mailetcontainer.api.LocalResources; import org.apache.james.mailetcontainer.api.MailProcessor; import org.apache.james.mailetcontainer.api.MailetLoader; import org.apache.james.mailetcontainer.api.MatcherLoader; @@ -41,6 +42,7 @@ import org.apache.james.mailetcontainer.api.jmx.MailSpoolerMBean; import org.apache.james.mailetcontainer.impl.CompositeProcessorImpl; import org.apache.james.mailetcontainer.impl.JamesMailSpooler; import org.apache.james.mailetcontainer.impl.JamesMailetContext; +import org.apache.james.mailetcontainer.impl.LocalResourcesImpl; import org.apache.james.mailetcontainer.impl.MailetProcessorImpl; import org.apache.james.mailetcontainer.impl.MatcherMailetPair; import org.apache.james.mailrepository.api.MailRepositoryStore; @@ -97,6 +99,9 @@ public class MailetContainerModule extends AbstractModule { bind(JamesMailetContext.class).in(Scopes.SINGLETON); bind(MailetContext.class).to(JamesMailetContext.class); + bind(LocalResourcesImpl.class).in(Scopes.SINGLETON); + bind(LocalResources.class).to(LocalResourcesImpl.class); + bind(AutomaticallySentMailDetectorImpl.class).in(Scopes.SINGLETON); bind(AutomaticallySentMailDetector.class).to(AutomaticallySentMailDetectorImpl.class); diff --git a/server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/LocalResources.java b/server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/LocalResources.java new file mode 100644 index 0000000..71a9dba --- /dev/null +++ b/server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/LocalResources.java @@ -0,0 +1,35 @@ +/**************************************************************** + * 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.mailetcontainer.api; + +import java.util.Collection; + +import org.apache.james.core.Domain; +import org.apache.james.core.MailAddress; + +public interface LocalResources { + boolean isLocalServer(Domain domain); + + boolean isLocalUser(String name); + + boolean isLocalEmail(MailAddress mailAddress); + + Collection<MailAddress> localEmails(Collection<MailAddress> mailAddresses); +} diff --git a/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java index ab557ff..f14224b 100644 --- a/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java +++ b/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java @@ -54,6 +54,7 @@ import org.apache.james.domainlist.api.DomainListException; import org.apache.james.lifecycle.api.Configurable; import org.apache.james.lifecycle.api.Disposable; import org.apache.james.lifecycle.api.LifecycleUtil; +import org.apache.james.mailetcontainer.api.LocalResources; import org.apache.james.queue.api.MailQueue; import org.apache.james.queue.api.MailQueueFactory; import org.apache.james.server.core.MailImpl; diff --git a/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java b/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResourcesImpl.java similarity index 91% rename from server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java rename to server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResourcesImpl.java index d53d0b2..2aff7b3 100644 --- a/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java +++ b/server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResourcesImpl.java @@ -33,6 +33,7 @@ import org.apache.james.core.MailAddress; import org.apache.james.core.Username; import org.apache.james.domainlist.api.DomainList; import org.apache.james.domainlist.api.DomainListException; +import org.apache.james.mailetcontainer.api.LocalResources; import org.apache.james.rrt.api.RecipientRewriteTable; import org.apache.james.rrt.api.RecipientRewriteTableException; import org.apache.james.rrt.lib.Mapping; @@ -45,22 +46,23 @@ import com.github.fge.lambdas.Throwing; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; -class LocalResources { +public class LocalResourcesImpl implements LocalResources { private static final EnumSet<Mapping.Type> ALIAS_TYPES = EnumSet.of(Mapping.Type.Alias, Mapping.Type.DomainAlias); - public static final Logger LOGGER = LoggerFactory.getLogger(LocalResources.class); + public static final Logger LOGGER = LoggerFactory.getLogger(LocalResourcesImpl.class); private final UsersRepository localUsers; private final DomainList domains; private final RecipientRewriteTable recipientRewriteTable; @Inject - LocalResources(UsersRepository localUsers, DomainList domains, RecipientRewriteTable recipientRewriteTable) { + LocalResourcesImpl(UsersRepository localUsers, DomainList domains, RecipientRewriteTable recipientRewriteTable) { this.localUsers = localUsers; this.domains = domains; this.recipientRewriteTable = recipientRewriteTable; } - boolean isLocalServer(Domain domain) { + @Override + public boolean isLocalServer(Domain domain) { try { return domains.containsDomain(domain); } catch (DomainListException e) { @@ -68,7 +70,8 @@ class LocalResources { } } - boolean isLocalUser(String name) { + @Override + public boolean isLocalUser(String name) { if (name == null) { return false; } @@ -82,7 +85,8 @@ class LocalResources { } } - boolean isLocalEmail(MailAddress mailAddress) { + @Override + public boolean isLocalEmail(MailAddress mailAddress) { if (mailAddress != null) { if (!isLocalServer(mailAddress.getDomain())) { return false; @@ -103,7 +107,8 @@ class LocalResources { } } - Collection<MailAddress> localEmails(Collection<MailAddress> mailAddresses) { + @Override + public Collection<MailAddress> localEmails(Collection<MailAddress> mailAddresses) { return addressByDomains(mailAddresses) .flatMap(this::hasLocalDomain) .filter(this::belongsToALocalUser) diff --git a/server/mailet/mailetcontainer-impl/src/main/resources/META-INF/spring/mailetcontainer-context.xml b/server/mailet/mailetcontainer-impl/src/main/resources/META-INF/spring/mailetcontainer-context.xml index 13d90ff..4bd855e 100644 --- a/server/mailet/mailetcontainer-impl/src/main/resources/META-INF/spring/mailetcontainer-context.xml +++ b/server/mailet/mailetcontainer-impl/src/main/resources/META-INF/spring/mailetcontainer-context.xml @@ -33,7 +33,7 @@ it is used - Seems like a Spring bug. --> <bean id="mailetcontext" class="org.apache.james.mailetcontainer.impl.JamesMailetContext" autowire="byType"/> - <bean id="localResources" class="org.apache.james.mailetcontainer.impl.LocalResources" autowire="byType"/> + <bean id="localResources" class="org.apache.james.mailetcontainer.impl.LocalResourcesImpl" autowire="byType"/> <bean id="mailspooler" class="org.apache.james.mailetcontainer.impl.JamesMailSpooler" autowire="byType"/> </beans> diff --git a/server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java b/server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java index 6a0336b..2279365 100644 --- a/server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java +++ b/server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java @@ -44,6 +44,7 @@ import org.apache.james.dnsservice.api.DNSService; import org.apache.james.domainlist.api.DomainListException; import org.apache.james.domainlist.lib.DomainListConfiguration; import org.apache.james.domainlist.memory.MemoryDomainList; +import org.apache.james.mailetcontainer.api.LocalResources; import org.apache.james.queue.api.MailQueue; import org.apache.james.queue.api.MailQueueFactory; import org.apache.james.rrt.api.RecipientRewriteTableException; @@ -89,7 +90,7 @@ class JamesMailetContextTest { spoolMailQueue = mock(MailQueue.class); when(mailQueueFactory.createQueue(MailQueueFactory.SPOOL)).thenReturn(spoolMailQueue); DNSService dnsService = null; - LocalResources localResources = new LocalResources(usersRepository, domainList, recipientRewriteTable); + LocalResources localResources = new LocalResourcesImpl(usersRepository, domainList, recipientRewriteTable); testee = new JamesMailetContext(dnsService, domainList, localResources, mailQueueFactory); testee.configure(new BaseHierarchicalConfiguration()); mailAddress = new MailAddress(USERMAIL.asString()); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
