You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/11/27 07:10:15 UTC

[james-project] 03/05: JAMES-3861 LocalDelivery sets the `isDelivery` to true

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

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

commit 5793e95a63b34d729d18da41208a448c09afba75
Author: Quan Tran <hq...@linagora.com>
AuthorDate: Tue Nov 22 17:30:01 2022 +0700

    JAMES-3861 LocalDelivery sets the `isDelivery` to true
---
 .../james/mailbox/store/StoreMessageManager.java      | 19 ++++++++++++-------
 .../mailets/delivery/MailboxAppenderImpl.java         |  1 +
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index 4beb9e6165..4967109955 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -327,7 +327,8 @@ public class StoreMessageManager implements MessageManager {
             session,
             appendCommand.isRecent(),
             appendCommand.getFlags(),
-            appendCommand.getMaybeParsedMessage()));
+            appendCommand.getMaybeParsedMessage(),
+            appendCommand.isDelivery()));
     }
 
     @Override
@@ -338,7 +339,8 @@ public class StoreMessageManager implements MessageManager {
             session,
             appendCommand.isRecent(),
             appendCommand.getFlags(),
-            appendCommand.getMaybeParsedMessage());
+            appendCommand.getMaybeParsedMessage(),
+            appendCommand.isDelivery());
     }
 
     @Override
@@ -379,7 +381,7 @@ public class StoreMessageManager implements MessageManager {
                             return finalFile.length();
                         }
                     }, propertyBuilder,
-                    getFlags(mailboxSession, isRecent, flagsToBeSet), bodyStartOctet, unparsedMimeMessqage, headers));
+                    getFlags(mailboxSession, isRecent, flagsToBeSet), bodyStartOctet, unparsedMimeMessqage, headers, !IS_DELIVERY));
             }
         } catch (IOException | MimeException e) {
             throw new MailboxException("Unable to parse message", e);
@@ -395,7 +397,8 @@ public class StoreMessageManager implements MessageManager {
         }
     }
 
-    private Mono<AppendResult> appendMessage(Content msgIn, Date internalDate, final MailboxSession mailboxSession, boolean isRecent, Flags flagsToBeSet, Optional<Message> maybeMessage) {
+    private Mono<AppendResult> appendMessage(Content msgIn, Date internalDate, final MailboxSession mailboxSession, boolean isRecent, Flags flagsToBeSet,
+                                             Optional<Message> maybeMessage, boolean isDelivery) {
         return Mono.fromCallable(() -> {
             if (!isWriteable(mailboxSession)) {
                 throw new ReadOnlyException(getMailboxPath());
@@ -411,7 +414,7 @@ public class StoreMessageManager implements MessageManager {
 
                 return createAndDispatchMessage(computeInternalDate(internalDate),
                     mailboxSession, msgIn, propertyBuilder,
-                    getFlags(mailboxSession, isRecent, flagsToBeSet), bodyStartOctet, maybeMessage, headers);
+                    getFlags(mailboxSession, isRecent, flagsToBeSet), bodyStartOctet, maybeMessage, headers, isDelivery);
             } catch (IOException | MimeException e) {
                 throw new MailboxException("Unable to parse message", e);
             }
@@ -513,7 +516,9 @@ public class StoreMessageManager implements MessageManager {
         return bodyStartOctet;
     }
 
-    private Mono<AppendResult> createAndDispatchMessage(Date internalDate, MailboxSession mailboxSession, Content content, PropertyBuilder propertyBuilder, Flags flags, int bodyStartOctet, Optional<Message> maybeMessage, HeaderImpl headers) throws MailboxException {
+    private Mono<AppendResult> createAndDispatchMessage(Date internalDate, MailboxSession mailboxSession, Content content, PropertyBuilder propertyBuilder,
+                                                        Flags flags, int bodyStartOctet, Optional<Message> maybeMessage, HeaderImpl headers,
+                                                        boolean isDelivery) throws MailboxException {
         int size = (int) content.size();
         QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(mailbox);
         return Mono.from(quotaManager.getQuotasReactive(quotaRoot))
@@ -526,7 +531,7 @@ public class StoreMessageManager implements MessageManager {
                             .mailboxSession(mailboxSession)
                             .mailbox(mailbox)
                             .addMetaData(data.getLeft())
-                            .isDelivery(!IS_DELIVERY)
+                            .isDelivery(isDelivery)
                             .build(),
                         new MailboxIdRegistrationKey(mailbox.getMailboxId()))
                         .thenReturn(computeAppendResult(data, mailbox))),
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImpl.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImpl.java
index 0f38b8ae4a..5ab493f0ae 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImpl.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImpl.java
@@ -88,6 +88,7 @@ public class MailboxAppenderImpl implements MailboxAppender {
             .flatMap(mailbox -> Mono.from(mailbox.appendMessageReactive(
                 MessageManager.AppendCommand.builder()
                     .recent()
+                    .delivery()
                     .build(extractContent(mail)),
                 session)));
     }


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