You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/01/23 03:04:56 UTC

[2/2] james-project git commit: JAMES-2578 Fix warning using Mailet new API

JAMES-2578 Fix warning using Mailet new API


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/606ff9c9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/606ff9c9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/606ff9c9

Branch: refs/heads/master
Commit: 606ff9c93dd8733b36a601ef7ab3449c3583b0f0
Parents: bb067a1
Author: Gautier DI FOLCO <gd...@linagora.com>
Authored: Mon Jan 21 10:12:10 2019 +0100
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Jan 23 10:04:20 2019 +0700

----------------------------------------------------------------------
 .../mailets/RemoveMailAttributeTest.java        | 39 +++++++++++---------
 .../org/apache/james/server/core/MailImpl.java  | 13 ++++---
 .../samples/mailets/InstrumentationMailet.java  |  7 ++--
 .../mailets/WithStorageDirectiveTest.java       | 15 +++++---
 .../CassandraMailRepositoryMailDAOTest.java     | 16 +++++---
 5 files changed, 52 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/606ff9c9/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
index 1881dd3..85a0dd3 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
@@ -24,6 +24,9 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import javax.mail.MessagingException;
 
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetException;
@@ -34,12 +37,12 @@ import org.junit.jupiter.api.Test;
 
 class RemoveMailAttributeTest {
 
-    private static final String ATTRIBUTE_1 = "attribute1";
-    private static final String ATTRIBUTE_2 = "attribute2";
-    private static final String ATTRIBUTE_3 = "attribute3";
-    private static final String VALUE_1 = "value1";
-    private static final String VALUE_2 = "value2";
-    private static final String VALUE_3 = "value3";
+    private static final AttributeName ATTRIBUTE_1 = AttributeName.of("attribute1");
+    private static final AttributeName ATTRIBUTE_2 = AttributeName.of("attribute2");
+    private static final AttributeName ATTRIBUTE_3 = AttributeName.of("attribute3");
+    private static final Attribute VALUE_1 = new Attribute(ATTRIBUTE_1, AttributeValue.of("value1"));
+    private static final Attribute VALUE_2 = new Attribute(ATTRIBUTE_2, AttributeValue.of("value2"));
+    private static final Attribute VALUE_3 = new Attribute(ATTRIBUTE_3, AttributeValue.of("value3"));
     private static final String ATTRIBUTE1_ATTRIBUTE2 = "attribute1, attribute2";
     private Mailet removeMailet;
 
@@ -77,7 +80,7 @@ class RemoveMailAttributeTest {
         Mail mail = FakeMail.builder().build();
         removeMailet.service(mail);
 
-        assertThat(mail.getAttributeNames()).isEmpty();
+        assertThat(mail.attributes()).isEmpty();
     }
 
     @Test
@@ -89,29 +92,29 @@ class RemoveMailAttributeTest {
         removeMailet.init(mailetConfig);
 
         Mail mail = FakeMail.builder()
-            .attribute(ATTRIBUTE_3, VALUE_3)
+            .attribute(VALUE_3)
             .build();
         removeMailet.service(mail);
 
-        assertThat(mail.getAttributeNames()).containsExactly(ATTRIBUTE_3);
+        assertThat(mail.attributes()).containsExactly(VALUE_3);
     }
 
     @Test
     void serviceShouldRemoveSpecifiedAttribute() throws MessagingException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty(RemoveMailAttribute.MAILET_NAME_PARAMETER, ATTRIBUTE_1)
+                .setProperty(RemoveMailAttribute.MAILET_NAME_PARAMETER, ATTRIBUTE_1.asString())
                 .build();
         removeMailet.init(mailetConfig);
 
         Mail mail = FakeMail.builder()
-            .attribute(ATTRIBUTE_1, VALUE_1)
-            .attribute(ATTRIBUTE_2, VALUE_2)
-            .attribute(ATTRIBUTE_3, VALUE_3)
+            .attribute(VALUE_1)
+            .attribute(VALUE_2)
+            .attribute(VALUE_3)
             .build();
         removeMailet.service(mail);
 
-        assertThat(mail.getAttributeNames()).containsOnly(ATTRIBUTE_2, ATTRIBUTE_3);
+        assertThat(mail.attributes()).containsOnly(VALUE_2, VALUE_3);
     }
 
     @Test
@@ -123,12 +126,12 @@ class RemoveMailAttributeTest {
         removeMailet.init(mailetConfig);
 
         Mail mail = FakeMail.builder()
-            .attribute(ATTRIBUTE_1, VALUE_1)
-            .attribute(ATTRIBUTE_2, VALUE_2)
-            .attribute(ATTRIBUTE_3, VALUE_3)
+            .attribute(VALUE_1)
+            .attribute(VALUE_2)
+            .attribute(VALUE_3)
             .build();
         removeMailet.service(mail);
 
-        assertThat(mail.getAttributeNames()).containsExactly(ATTRIBUTE_3);
+        assertThat(mail.attributes()).containsExactly(VALUE_3);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/606ff9c9/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java b/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java
index 6b48478..9d97f30 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java
@@ -64,6 +64,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.fge.lambdas.Throwing;
+import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
@@ -442,12 +443,12 @@ public class MailImpl implements Disposable, Mail {
             if (mail instanceof MailImpl) {
                 setAttributesRaw((Map<String, Object>) cloneSerializableObject(((MailImpl) mail).getAttributesRaw()));
             } else {
-                HashMap<String, Object> attribs = new HashMap<>();
-                for (Iterator<String> i = mail.getAttributeNames(); i.hasNext(); ) {
-                    String hashKey = i.next();
-                    attribs.put(hashKey, cloneSerializableObject(mail.getAttribute(hashKey)));
-                }
-                setAttributesRaw(attribs);
+                ImmutableMap<String, Object> attributesMap = mail.attributes()
+                    .collect(Guavate.toImmutableMap(
+                            attribute -> attribute.getName().asString(),
+                            Throwing.function(attribute -> cloneSerializableObject(attribute.getValue().getValue()))));
+
+                setAttributesRaw(attributesMap);
             }
         } catch (IOException | ClassNotFoundException e) {
             LOGGER.error("Error while deserializing attributes", e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/606ff9c9/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
index 05aa60f..4a68bb2 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
@@ -79,10 +79,9 @@ public class InstrumentationMailet implements Mailet {
         if (LOGGER.isInfoEnabled()) {
             LOGGER.info("Mail named: " + mail.getName());
 
-            for (Iterator<String> it = mail.getAttributeNames(); it.hasNext();) {
-                String attributeName = it.next();
-                LOGGER.info("Attribute " + attributeName);
-            }
+            mail.attributeNames()
+                .forEach(attributeName -> LOGGER.info("Attribute " + attributeName));
+
             LOGGER.info("Message size: " + mail.getMessageSize());
             LOGGER.info("Last updated: " + mail.getLastUpdated());
             LOGGER.info("Remote Address: " + mail.getRemoteAddr());

http://git-wip-us.apache.org/repos/asf/james-project/blob/606ff9c9/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithStorageDirectiveTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithStorageDirectiveTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithStorageDirectiveTest.java
index 9fcebe5..2f61236 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithStorageDirectiveTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithStorageDirectiveTest.java
@@ -23,6 +23,9 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import org.apache.james.user.memory.MemoryUsersRepository;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
@@ -71,10 +74,12 @@ public class WithStorageDirectiveTest {
 
         testee.service(mail);
 
-        softly.assertThat(mail.getAttributeNames())
-            .containsOnly("DeliveryPath_recipient2@localhost", "DeliveryPath_recipient1@localhost");
-        softly.assertThat(mail.getAttribute("DeliveryPath_recipient1@localhost")).isEqualTo(targetFolderName);
-        softly.assertThat(mail.getAttribute("DeliveryPath_recipient2@localhost")).isEqualTo(targetFolderName);
+        AttributeName recipient1 = AttributeName.of("DeliveryPath_recipient1@localhost");
+        AttributeName recipient2 = AttributeName.of("DeliveryPath_recipient2@localhost");
+        softly.assertThat(mail.attributes())
+            .containsOnly(
+                new Attribute(recipient1, AttributeValue.of(targetFolderName)),
+                new Attribute(recipient2, AttributeValue.of(targetFolderName)));
     }
 
     @Test
@@ -90,7 +95,7 @@ public class WithStorageDirectiveTest {
 
         testee.service(mail);
 
-        assertThat(mail.getAttributeNames())
+        assertThat(mail.attributes())
             .isEmpty();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/606ff9c9/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
index c187823..2377b6b 100644
--- a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
+++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
@@ -29,6 +29,8 @@ import javax.mail.MessagingException;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.CassandraClusterExtension;
+import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
 import org.apache.james.blob.api.BlobId;
 import org.apache.james.blob.api.TestBlobId;
 import org.apache.james.mailrepository.api.MailKey;
@@ -52,8 +54,12 @@ class CassandraMailRepositoryMailDAOTest {
     static final MailKey KEY_1 = new MailKey("key1");
     static final TestBlobId.Factory BLOB_ID_FACTORY = new TestBlobId.Factory();
 
+    public static final CassandraModule MODULE = CassandraModule.aggregateModules(
+            CassandraMailRepositoryModule.MODULE,
+            CassandraSchemaVersionModule.MODULE);
+
     @RegisterExtension
-    static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(CassandraMailRepositoryModule.MODULE);
+    static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(MODULE);
 
 
     abstract class TestSuite {
@@ -206,9 +212,9 @@ class CassandraMailRepositoryMailDAOTest {
             String remoteAddr = "remoteAddr";
             String remoteHost = "remoteHost";
             PerRecipientHeaders.Header header = PerRecipientHeaders.Header.builder().name("headerName").value("headerValue").build();
-            String attributeName = "att1";
+            AttributeName attributeName = AttributeName.of("att1");
             List<AttributeValue<?>> attributeValue = ImmutableList.of(AttributeValue.of("value1"), AttributeValue.of("value2"));
-            Attribute attribute = new Attribute(AttributeName.of(attributeName), AttributeValue.of(attributeValue));
+            Attribute attribute = new Attribute(attributeName, AttributeValue.of(attributeValue));
             List<Attribute> attributes = ImmutableList.of(attribute);
 
             testee.store(URL,
@@ -238,8 +244,8 @@ class CassandraMailRepositoryMailDAOTest {
                 softly.assertThat(partialMail.getState()).isEqualTo(state);
                 softly.assertThat(partialMail.getRemoteAddr()).isEqualTo(remoteAddr);
                 softly.assertThat(partialMail.getRemoteHost()).isEqualTo(remoteHost);
-                softly.assertThat(partialMail.getAttributeNames()).containsOnly(attributeName);
-                softly.assertThat(partialMail.getAttribute(AttributeName.of(attributeName))).contains(attribute);
+                softly.assertThat(partialMail.attributeNames()).containsOnly(attributeName);
+                softly.assertThat(partialMail.getAttribute(attributeName)).contains(attribute);
                 softly.assertThat(partialMail.getPerRecipientSpecificHeaders().getRecipientsWithSpecificHeaders())
                     .containsOnly(MailAddressFixture.RECIPIENT1);
                 softly.assertThat(partialMail.getPerRecipientSpecificHeaders().getHeadersForRecipient(MailAddressFixture.RECIPIENT1))


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