You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2021/10/04 08:08:58 UTC

[james-project] branch master updated (1d498d8 -> 5d178d3)

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.


    from 1d498d8  JAMES-3656 Ignore by default failures in non essential feature prior delivery (#677)
     new c4b67f8  JAMES-3658 Interface for LocalResources
     new 5d178d3  JAMES-3658 Interface for MailboxAppender

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../modules/server/MailetContainerModule.java      |   5 +
 .../james/mailetcontainer/api/LocalResources.java} |  18 ++--
 .../mailetcontainer/impl/JamesMailetContext.java   |   1 +
 ...LocalResources.java => LocalResourcesImpl.java} |  19 ++--
 .../META-INF/spring/mailetcontainer-context.xml    |   2 +-
 .../impl/JamesMailetContextTest.java               |   3 +-
 .../james/transport/mailets/LocalDelivery.java     |   4 +-
 .../james/transport/mailets/ToSenderFolder.java    |   6 +-
 .../mailets/delivery/MailboxAppender.java          | 116 +--------------------
 ...ilboxAppender.java => MailboxAppenderImpl.java} |   6 +-
 ...enderTest.java => MailboxAppenderImplTest.java} |   6 +-
 .../mailets/delivery/SimpleMailStoreTest.java      |   4 +-
 12 files changed, 46 insertions(+), 144 deletions(-)
 copy server/mailet/{integration-testing/src/test/java/org/apache/james/mailets/flow/NoneWithNull.java => mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/LocalResources.java} (79%)
 rename server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/{LocalResources.java => LocalResourcesImpl.java} (91%)
 copy server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/{MailboxAppender.java => MailboxAppenderImpl.java} (97%)
 rename server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/{MailboxAppenderTest.java => MailboxAppenderImplTest.java} (97%)

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[james-project] 01/02: JAMES-3658 Interface for LocalResources

Posted by rc...@apache.org.
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 <bt...@linagora.com>
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: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[james-project] 02/02: JAMES-3658 Interface for MailboxAppender

Posted by rc...@apache.org.
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 5d178d34080ee9725cb77bc6e000ce81b97f282b
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Oct 1 14:32:03 2021 +0700

    JAMES-3658 Interface for MailboxAppender
---
 .../james/transport/mailets/LocalDelivery.java     |   4 +-
 .../james/transport/mailets/ToSenderFolder.java    |   6 +-
 .../mailets/delivery/MailboxAppender.java          | 116 +--------------------
 ...ilboxAppender.java => MailboxAppenderImpl.java} |   6 +-
 ...enderTest.java => MailboxAppenderImplTest.java} |   6 +-
 .../mailets/delivery/SimpleMailStoreTest.java      |   4 +-
 6 files changed, 15 insertions(+), 127 deletions(-)

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 168f918..b6ac485 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,7 +27,7 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.transport.mailets.delivery.MailDispatcher;
-import org.apache.james.transport.mailets.delivery.MailboxAppender;
+import org.apache.james.transport.mailets.delivery.MailboxAppenderImpl;
 import org.apache.james.transport.mailets.delivery.SimpleMailStore;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.mailet.Mail;
@@ -71,7 +71,7 @@ public class LocalDelivery extends GenericMailet {
     public void init() throws MessagingException {
         mailDispatcher = MailDispatcher.builder()
             .mailStore(SimpleMailStore.builder()
-                .mailboxAppender(new MailboxAppender(mailboxManager))
+                .mailboxAppender(new MailboxAppenderImpl(mailboxManager))
                 .usersRepository(usersRepository)
                 .folder(MailboxConstants.INBOX)
                 .metric(metricFactory.generate(LOCAL_DELIVERED_MAILS_METRIC_NAME))
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
index 0c3423b..bdd55a8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
@@ -25,7 +25,7 @@ import javax.mail.MessagingException;
 import org.apache.james.core.MailAddress;
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.transport.mailets.delivery.MailboxAppender;
+import org.apache.james.transport.mailets.delivery.MailboxAppenderImpl;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.Experimental;
@@ -58,7 +58,7 @@ public class ToSenderFolder extends GenericMailet {
     private final MailboxManager mailboxManager;
     private String folder;
     private boolean consume;
-    private MailboxAppender mailboxAppender;
+    private MailboxAppenderImpl mailboxAppender;
 
     @Inject
     public ToSenderFolder(UsersRepository usersRepository, @Named("mailboxmanager") MailboxManager mailboxManager) {
@@ -102,7 +102,7 @@ public class ToSenderFolder extends GenericMailet {
     public void init() throws MessagingException {
         folder = getInitParameter("folder", "Sent");
         consume = getInitParameter("consume", false);
-        mailboxAppender = new MailboxAppender(mailboxManager);
+        mailboxAppender = new MailboxAppenderImpl(mailboxManager);
     }
 
     @Override
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 4ee113f..2641dc7 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
@@ -19,124 +19,12 @@
 
 package org.apache.james.transport.mailets.delivery;
 
-import java.io.IOException;
-import java.io.InputStream;
-
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.Username;
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.MessageManager.AppendResult;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.exception.MailboxExistsException;
-import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.ComposedMessageId;
-import org.apache.james.mailbox.model.Content;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.server.core.MimeMessageInputStream;
-import org.apache.james.server.core.MimeMessageUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Strings;
-
-public class MailboxAppender {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxAppender.class);
-
-    private final MailboxManager mailboxManager;
-
-    public MailboxAppender(MailboxManager mailboxManager) {
-        this.mailboxManager = mailboxManager;
-    }
-
-    public ComposedMessageId append(MimeMessage mail, Username user, String folder) throws MessagingException {
-        MailboxSession session = createMailboxSession(user);
-        return append(mail, user, useSlashAsSeparator(folder, session), session)
-            .getId();
-    }
-
-    private String useSlashAsSeparator(String urlPath, MailboxSession session) throws MessagingException {
-        String destination = urlPath.replace('/', session.getPathDelimiter());
-        if (Strings.isNullOrEmpty(destination)) {
-            throw new MessagingException("Mail can not be delivered to empty folder");
-        }
-        if (destination.charAt(0) == session.getPathDelimiter()) {
-            destination = destination.substring(1);
-        }
-        return destination;
-    }
-
-    private AppendResult append(MimeMessage mail, Username user, String folder, MailboxSession session) throws MessagingException {
-        mailboxManager.startProcessingRequest(session);
-        try {
-            MailboxPath mailboxPath = MailboxPath.forUser(user, folder);
-            return appendMessageToMailbox(mail, session, mailboxPath);
-        } catch (MailboxException e) {
-            throw new MessagingException("Unable to access mailbox.", e);
-        } finally {
-            closeProcessing(session);
-        }
-    }
-
-    private AppendResult appendMessageToMailbox(MimeMessage mail, MailboxSession session, MailboxPath path) throws MailboxException, MessagingException {
-        MessageManager mailbox = createMailboxIfNotExist(session, path);
-        if (mailbox == null) {
-            throw new MessagingException("Mailbox " + path + " for user " + session.getUser().asString() + " was not found on this server.");
-        }
-        Content content = new Content() {
-            @Override
-            public InputStream getInputStream() throws IOException {
-                try {
-                    return new MimeMessageInputStream(mail);
-                } catch (MessagingException e) {
-                    throw new IOException(e);
-                }
-            }
-
-            @Override
-            public long size() throws MailboxException {
-                try {
-                    return MimeMessageUtil.getMessageSize(mail);
-                } catch (MessagingException e) {
-                    throw new MailboxException("Cannot compute message size", e);
-                }
-            }
-        };
-        return mailbox.appendMessage(
-            MessageManager.AppendCommand.builder()
-                .recent()
-                .build(content),
-            session);
-    }
-
-    private MessageManager createMailboxIfNotExist(MailboxSession session, MailboxPath path) throws MailboxException {
-        try {
-            return mailboxManager.getMailbox(path, session);
-        } catch (MailboxNotFoundException e) {
-            try {
-                mailboxManager.createMailbox(path, session);
-                return mailboxManager.getMailbox(path, session);
-            } catch (MailboxExistsException exist) {
-                LOGGER.info("Mailbox {} have been created concurrently", path);
-                return mailboxManager.getMailbox(path, session);
-            }
-        }
-    }
-
-    public MailboxSession createMailboxSession(Username user) {
-        return mailboxManager.createSystemSession(user);
-    }
-
-    private void closeProcessing(MailboxSession session) throws MessagingException {
-        session.close();
-        try {
-            mailboxManager.logout(session);
-        } finally {
-            mailboxManager.endProcessingRequest(session);
-        }
-    }
 
+public interface MailboxAppender {
+    ComposedMessageId append(MimeMessage mail, Username user, String folder) throws MessagingException;
 }
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/MailboxAppenderImpl.java
similarity index 97%
copy from server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
copy to server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImpl.java
index 4ee113f..a2d4979 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/MailboxAppenderImpl.java
@@ -43,12 +43,12 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Strings;
 
-public class MailboxAppender {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxAppender.class);
+public class MailboxAppenderImpl implements MailboxAppender {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxAppenderImpl.class);
 
     private final MailboxManager mailboxManager;
 
-    public MailboxAppender(MailboxManager mailboxManager) {
+    public MailboxAppenderImpl(MailboxManager mailboxManager) {
         this.mailboxManager = mailboxManager;
     }
 
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImplTest.java
similarity index 97%
rename from server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
rename to server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImplTest.java
index 72461e2..f489215 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImplTest.java
@@ -41,13 +41,13 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.RepeatedTest;
 import org.junit.jupiter.api.Test;
 
-public class MailboxAppenderTest {
+public class MailboxAppenderImplTest {
 
     public static final Username USER = Username.of("user");
     public static final String FOLDER = "folder";
     public static final String EMPTY_FOLDER = "";
 
-    private MailboxAppender testee;
+    private MailboxAppenderImpl testee;
     private MailboxManager mailboxManager;
     private MimeMessage mimeMessage;
     private MailboxSession session;
@@ -61,7 +61,7 @@ public class MailboxAppenderTest {
             .build();
 
         mailboxManager = InMemoryIntegrationResources.defaultResources().getMailboxManager();
-        testee = new MailboxAppender(mailboxManager);
+        testee = new MailboxAppenderImpl(mailboxManager);
 
         session = mailboxManager.createSystemSession(USER);
     }
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 d6d707c..7f35c2c 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
@@ -41,13 +41,13 @@ import org.junit.jupiter.api.Test;
 class SimpleMailStoreTest {
     public static final String FOLDER = "FOLDER";
     private SimpleMailStore testee;
-    private MailboxAppender mailboxAppender;
+    private MailboxAppenderImpl mailboxAppender;
     private UsersRepository usersRepository;
     private MimeMessage mimeMessage;
 
     @BeforeEach
     void setUp() throws Exception {
-        mailboxAppender = mock(MailboxAppender.class);
+        mailboxAppender = mock(MailboxAppenderImpl.class);
         usersRepository = mock(UsersRepository.class);
         testee = SimpleMailStore.builder()
             .usersRepository(usersRepository)

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org