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 <gdifo...@linagora.com> Authored: Mon Jan 21 10:12:10 2019 +0100 Committer: Benoit Tellier <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org