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