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 2020/12/05 07:10:19 UTC
[james-project] 12/17: JAMES-3431 MailQueue should test
DsnParameters invariance
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 162431c9932e22da82e0b5bb11006e871e4a75b7
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Dec 3 11:25:33 2020 +0700
JAMES-3431 MailQueue should test DsnParameters invariance
The use of collections for attribute values is not compatible with the use of Java serialization the File and JMS mailQueues actively rely on.
---
.../queue/activemq/ActiveMQMailQueueBlobTest.java | 6 ++++++
.../queue/activemq/ActiveMQMailQueueTest.java | 6 ++++++
.../apache/james/queue/api/MailQueueContract.java | 22 ++++++++++++++++++++++
.../queue/file/FileCacheableMailQueueTest.java | 6 ++++++
.../james/queue/jms/JMSCacheableMailQueueTest.java | 6 ++++++
5 files changed, 46 insertions(+)
diff --git a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
index 1a68b89..71a970e 100644
--- a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
+++ b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
@@ -98,6 +98,12 @@ public class ActiveMQMailQueueBlobTest implements DelayedManageableMailQueueCont
return mailQueue;
}
+ @Override
+ @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
+ public void queueShouldPreserveDsnParameters() {
+
+ }
+
@Test
@Override
@Disabled("JAMES-2295 Disabled as test was dead-locking")
diff --git a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
index b90c1a1..8884645 100644
--- a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
+++ b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
@@ -77,6 +77,12 @@ public class ActiveMQMailQueueTest implements DelayedManageableMailQueueContract
return mailQueue;
}
+ @Override
+ @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
+ public void queueShouldPreserveDsnParameters() {
+
+ }
+
@Test
@Override
@Disabled("JAMES-2295 Disabled as test was dead-locking")
diff --git a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
index 9252f62..3533f46 100644
--- a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
+++ b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
@@ -31,6 +31,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.io.Serializable;
import java.time.Duration;
import java.util.Date;
+import java.util.EnumSet;
import java.util.Iterator;
import java.util.Objects;
import java.util.concurrent.ConcurrentLinkedDeque;
@@ -47,6 +48,7 @@ import org.apache.james.core.MaybeSender;
import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.util.concurrency.ConcurrentTestRunner;
import org.apache.mailet.Attribute;
+import org.apache.mailet.DsnParameters;
import org.apache.mailet.Mail;
import org.apache.mailet.PerRecipientHeaders;
import org.apache.mailet.base.test.FakeMail;
@@ -70,6 +72,26 @@ public interface MailQueueContract {
}
@Test
+ default void queueShouldPreserveDsnParameters() throws Exception {
+ DsnParameters dsnParameters = DsnParameters.builder()
+ .envId(DsnParameters.EnvId.of("434554-55445-33443"))
+ .ret(DsnParameters.Ret.FULL)
+ .addRcptParameter(new MailAddress("bob@apache.org"), DsnParameters.RecipientDsnParameters.of(new MailAddress("andy@apache.org")))
+ .addRcptParameter(new MailAddress("cedric@apache.org"), DsnParameters.RecipientDsnParameters.of(EnumSet.of(DsnParameters.Notify.SUCCESS)))
+ .addRcptParameter(new MailAddress("domi@apache.org"), DsnParameters.RecipientDsnParameters.of(EnumSet.of(DsnParameters.Notify.FAILURE), new MailAddress("eric@apache.org")))
+ .build().get();
+ Mail mail = defaultMail()
+ .name("mail")
+ .build();
+ mail.setDsnParameters(dsnParameters);
+ enQueue(mail);
+
+ MailQueue.MailQueueItem mailQueueItem = Flux.from(getMailQueue().deQueue()).blockFirst();
+ assertThat(mailQueueItem.getMail().dsnParameters())
+ .contains(dsnParameters);
+ }
+
+ @Test
default void queueShouldSupportBigMail() throws Exception {
String name = "name1";
// 12 MB of text
diff --git a/server/queue/queue-file/src/test/java/org/apache/james/queue/file/FileCacheableMailQueueTest.java b/server/queue/queue-file/src/test/java/org/apache/james/queue/file/FileCacheableMailQueueTest.java
index 8fe07cc..a1b6f0a 100644
--- a/server/queue/queue-file/src/test/java/org/apache/james/queue/file/FileCacheableMailQueueTest.java
+++ b/server/queue/queue-file/src/test/java/org/apache/james/queue/file/FileCacheableMailQueueTest.java
@@ -53,6 +53,12 @@ public class FileCacheableMailQueueTest implements DelayedManageableMailQueueCon
}
@Override
+ @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
+ public void queueShouldPreserveDsnParameters() {
+
+ }
+
+ @Override
public MailQueue getMailQueue() {
return mailQueue;
}
diff --git a/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java b/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
index fb0e189..6d75f0d 100644
--- a/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
+++ b/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
@@ -75,6 +75,12 @@ public class JMSCacheableMailQueueTest implements DelayedManageableMailQueueCont
}
@Override
+ @Disabled("JAMES-3431 No support for Attribute collection Java serialization yet")
+ public void queueShouldPreserveDsnParameters() {
+
+ }
+
+ @Override
@Disabled("JAMES-2295 Disabled as test was dead-locking")
public void dequeueCanBeChainedBeforeAck() {
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org