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 ma...@apache.org on 2018/08/01 12:34:23 UTC
[05/14] james-project git commit: JAMES-2502 fix Eclipse Photon build
for mailets, utils and imap
JAMES-2502 fix Eclipse Photon build for mailets, utils and imap
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3dddd7c5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3dddd7c5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3dddd7c5
Branch: refs/heads/master
Commit: 3dddd7c55025c6f91604cccce215873cdef223f1
Parents: 8d22e35
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Fri Jul 27 18:02:03 2018 +0200
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Wed Aug 1 14:20:23 2018 +0200
----------------------------------------------------------------------
backends-common/elasticsearch/pom.xml | 4 +-
core/pom.xml | 3 +-
.../org/apache/james/util/MimeMessageUtil.java | 55 --
mailbox/elasticsearch/pom.xml | 5 +
mailbox/plugin/quota-mailing-cassandra/pom.xml | 5 +
mailbox/plugin/quota-mailing-memory/pom.xml | 5 +
mailbox/plugin/quota-mailing/pom.xml | 3 +-
mailbox/tika/pom.xml | 3 +-
mailet/base/pom.xml | 8 +-
.../apache/mailet/base/MailAddressFixture.java | 56 --
.../org/apache/mailet/base/test/FakeMail.java | 464 --------------
.../mailet/base/test/FakeMailContext.java | 608 -------------------
.../apache/mailet/base/test/FakeMailTest.java | 41 --
.../mailet/base/test/FakeMailetConfig.java | 106 ----
.../mailet/base/test/FakeMatcherConfig.java | 95 ---
.../org/apache/mailet/base/test/MailUtil.java | 92 ---
mailet/icalendar/pom.xml | 3 +-
mailet/pom.xml | 1 +
mailet/standard/pom.xml | 9 +-
mailet/test/pom.xml | 138 +++++
.../apache/mailet/base/MailAddressFixture.java | 56 ++
.../org/apache/mailet/base/test/FakeMail.java | 464 ++++++++++++++
.../mailet/base/test/FakeMailContext.java | 608 +++++++++++++++++++
.../mailet/base/test/FakeMailetConfig.java | 106 ++++
.../mailet/base/test/FakeMatcherConfig.java | 95 +++
.../org/apache/mailet/base/test/MailUtil.java | 92 +++
.../apache/mailet/base/test/FakeMailTest.java | 41 ++
mpt/impl/imap-mailbox/core/pom.xml | 5 -
pom.xml | 5 +
.../decode/ImapRequestStreamLineReader.java | 105 ++++
.../decode/main/ImapRequestStreamHandler.java | 129 ++++
.../main/OutputStreamImapResponseWriter.java | 70 +++
.../james/imap/encode/FakeImapSession.java | 145 +++++
.../decode/ImapRequestStreamLineReader.java | 105 ----
.../decode/main/ImapRequestStreamHandler.java | 129 ----
.../main/OutputStreamImapResponseWriter.java | 70 ---
.../james/imap/encode/FakeImapSession.java | 145 -----
server/container/core/pom.xml | 3 +-
.../metrics/metrics-es-reporter/pom.xml | 3 +-
.../org/apache/james/util/docker/Images.java | 29 -
.../util/docker/SwarmGenericContainer.java | 164 -----
server/container/util/pom.xml | 14 +-
.../org/apache/james/util/MimeMessageUtil.java | 55 ++
.../data/data-ldap-integration-testing/pom.xml | 3 +-
server/mailet/integration-testing/pom.xml | 3 +-
server/pom.xml | 1 -
server/protocols/jmap/pom.xml | 3 +-
.../webadmin/webadmin-mailqueue/pom.xml | 3 +-
.../webadmin/webadmin-mailrepository/pom.xml | 3 +-
server/queue/queue-rabbitmq/pom.xml | 3 +-
server/testing/pom.xml | 3 +-
.../org/apache/james/util/docker/Images.java | 29 +
.../util/docker/SwarmGenericContainer.java | 164 +++++
third-party/spamassassin/pom.xml | 5 +
54 files changed, 2358 insertions(+), 2204 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/backends-common/elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/pom.xml b/backends-common/elasticsearch/pom.xml
index 6d8d071..bf4ba84 100644
--- a/backends-common/elasticsearch/pom.xml
+++ b/backends-common/elasticsearch/pom.xml
@@ -34,9 +34,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>james-server-util-java8</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
+ <artifactId>james-server-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 600c567..0f533dc 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -38,8 +38,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>javax-mail-extension</artifactId>
- <type>test-jar</type>
+ <artifactId>james-server-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/javax-mail-extension/src/test/java/org/apache/james/util/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/javax-mail-extension/src/test/java/org/apache/james/util/MimeMessageUtil.java b/javax-mail-extension/src/test/java/org/apache/james/util/MimeMessageUtil.java
deleted file mode 100644
index 93715f8..0000000
--- a/javax-mail-extension/src/test/java/org/apache/james/util/MimeMessageUtil.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.Properties;
-
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
-
-public class MimeMessageUtil {
-
- public static String asString(MimeMessage mimeMessage) throws Exception {
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- mimeMessage.writeTo(byteArrayOutputStream);
- return new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8);
- }
-
- public static MimeMessage defaultMimeMessage() {
- return new MimeMessage(Session.getDefaultInstance(new Properties()));
- }
-
- public static MimeMessage mimeMessageFromStream(InputStream inputStream) throws MessagingException {
- return new MimeMessage(Session.getDefaultInstance(new Properties()), inputStream);
- }
-
- public static MimeMessage mimeMessageFromBytes(byte[] bytes) throws MessagingException {
- return mimeMessageFromStream(new ByteArrayInputStream(bytes));
- }
-
- public static MimeMessage mimeMessageFromString(String string) throws MessagingException {
- return mimeMessageFromBytes(string.getBytes(StandardCharsets.UTF_8));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailbox/elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/pom.xml b/mailbox/elasticsearch/pom.xml
index f2a2efd..b9563c9 100644
--- a/mailbox/elasticsearch/pom.xml
+++ b/mailbox/elasticsearch/pom.xml
@@ -91,6 +91,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>james-server-testing</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailbox/plugin/quota-mailing-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-mailing-cassandra/pom.xml b/mailbox/plugin/quota-mailing-cassandra/pom.xml
index 849b385..8677f1f 100644
--- a/mailbox/plugin/quota-mailing-cassandra/pom.xml
+++ b/mailbox/plugin/quota-mailing-cassandra/pom.xml
@@ -91,6 +91,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-mailet-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-core</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailbox/plugin/quota-mailing-memory/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-mailing-memory/pom.xml b/mailbox/plugin/quota-mailing-memory/pom.xml
index f28cd55..7ba4274 100644
--- a/mailbox/plugin/quota-mailing-memory/pom.xml
+++ b/mailbox/plugin/quota-mailing-memory/pom.xml
@@ -81,6 +81,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-mailet-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>${james.groupId}</groupId>
<artifactId>james-server-core</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailbox/plugin/quota-mailing/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/plugin/quota-mailing/pom.xml b/mailbox/plugin/quota-mailing/pom.xml
index ec85841..6ad1c19 100644
--- a/mailbox/plugin/quota-mailing/pom.xml
+++ b/mailbox/plugin/quota-mailing/pom.xml
@@ -53,8 +53,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>apache-mailet-base</artifactId>
- <type>test-jar</type>
+ <artifactId>apache-mailet-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailbox/tika/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/tika/pom.xml b/mailbox/tika/pom.xml
index fc595d8..4564b56 100644
--- a/mailbox/tika/pom.xml
+++ b/mailbox/tika/pom.xml
@@ -38,8 +38,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>james-server-util-java8</artifactId>
- <type>test-jar</type>
+ <artifactId>james-server-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/base/pom.xml b/mailet/base/pom.xml
index a094b2e..6b1fd46 100644
--- a/mailet/base/pom.xml
+++ b/mailet/base/pom.xml
@@ -44,6 +44,11 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>apache-mailet-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>apache-mime4j-core</artifactId>
</dependency>
<dependency>
@@ -52,8 +57,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>javax-mail-extension</artifactId>
- <type>test-jar</type>
+ <artifactId>james-server-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/MailAddressFixture.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/MailAddressFixture.java b/mailet/base/src/test/java/org/apache/mailet/base/MailAddressFixture.java
deleted file mode 100644
index 4efe093..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/MailAddressFixture.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.mailet.base;
-
-import javax.mail.internet.AddressException;
-
-import org.apache.james.core.Domain;
-import org.apache.james.core.MailAddress;
-
-public class MailAddressFixture {
- public static final String JAMES_LOCAL = "localhost";
- public static final String JAMES_APACHE_ORG = "james.apache.org";
- public static final String JAMES2_APACHE_ORG = "james2.apache.org";
-
- public static final Domain JAMES_LOCAL_DOMAIN = Domain.of(JAMES_LOCAL);
- public static final Domain JAMES_APACHE_ORG_DOMAIN = Domain.of(JAMES_APACHE_ORG);
- public static final Domain JAMES2_APACHE_ORG_DOMAIN = Domain.of(JAMES2_APACHE_ORG);
-
- public static final MailAddress SENDER = createMailAddress("sender@" + JAMES_LOCAL);
- public static final MailAddress RECIPIENT1 = createMailAddress("recipient1@" + JAMES_LOCAL);
- public static final MailAddress RECIPIENT2 = createMailAddress("recipient2@" + JAMES_LOCAL);
- public static final MailAddress RECIPIENT3 = createMailAddress("recipient3@" + JAMES_LOCAL);
-
- public static final MailAddress ANY_AT_LOCAL = createMailAddress("any@" + JAMES_LOCAL);
- public static final MailAddress OTHER_AT_LOCAL = createMailAddress("other@" + JAMES_LOCAL);
- public static final MailAddress ANY_AT_JAMES = createMailAddress("any@" + JAMES_APACHE_ORG);
- public static final MailAddress POSTMASTER_AT_JAMES = createMailAddress("postmaster@" + JAMES_APACHE_ORG);
- public static final MailAddress OTHER_AT_JAMES = createMailAddress("other@" + JAMES_APACHE_ORG);
- public static final MailAddress ANY_AT_JAMES2 = createMailAddress("any@" + JAMES2_APACHE_ORG);
- public static final MailAddress OTHER_AT_JAMES2 = createMailAddress("other@" + JAMES2_APACHE_ORG);
-
- private static MailAddress createMailAddress(String mailAddress) {
- try {
- return new MailAddress(mailAddress);
- } catch (AddressException e) {
- throw new RuntimeException(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
deleted file mode 100644
index 6791a1f..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
+++ /dev/null
@@ -1,464 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-
-package org.apache.mailet.base.test;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Properties;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-
-import org.apache.james.core.MailAddress;
-import org.apache.james.core.builder.MimeMessageBuilder;
-import org.apache.james.util.MimeMessageUtil;
-import org.apache.mailet.Mail;
-import org.apache.mailet.PerRecipientHeaders;
-import org.apache.mailet.PerRecipientHeaders.Header;
-
-import com.github.fge.lambdas.Throwing;
-import com.github.steveash.guavate.Guavate;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-public class FakeMail implements Mail, Serializable {
-
- private static final String DEFAULT_REMOTE_HOST = "111.222.333.444";
- public static final String DEFAULT_REMOTE_ADDRESS = "127.0.0.1";
-
- public static FakeMail fromMessage(MimeMessageBuilder message) throws MessagingException {
- return FakeMail.builder()
- .mimeMessage(message)
- .build();
- }
-
- public static FakeMail fromMime(String text, String javaEncodingCharset, String javamailDefaultEncodingCharset) throws MessagingException, UnsupportedEncodingException {
- Properties javamailProperties = new Properties();
- javamailProperties.setProperty("mail.mime.charset", javamailDefaultEncodingCharset);
- return FakeMail.builder()
- .mimeMessage(MimeMessageUtil.mimeMessageFromBytes((text.getBytes(javaEncodingCharset))))
- .build();
- }
-
- public static FakeMail fromMail(Mail mail) throws MessagingException {
- return new FakeMail(mail.getMessage(),
- Lists.newArrayList(mail.getRecipients()),
- mail.getName(),
- mail.getSender(),
- mail.getState(),
- mail.getErrorMessage(),
- mail.getLastUpdated(),
- attributes(mail),
- mail.getMessageSize(),
- mail.getRemoteAddr(),
- mail.getRemoteHost(),
- mail.getPerRecipientSpecificHeaders());
- }
-
- public static FakeMail from(MimeMessage message) throws MessagingException {
- return builder()
- .mimeMessage(message)
- .build();
- }
-
- public static FakeMail from(MimeMessageBuilder message) throws MessagingException {
- return from(message.build());
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private Optional<String> fileName;
- private Optional<MimeMessage> mimeMessage;
- private List<MailAddress> recipients;
- private Optional<String> name;
- private Optional<MailAddress> sender;
- private Optional<String> state;
- private Optional<String> errorMessage;
- private Optional<Date> lastUpdated;
- private Map<String, Serializable> attributes;
- private Optional<Long> size;
- private Optional<String> remoteAddr;
- private Optional<String> remoteHost;
- private PerRecipientHeaders perRecipientHeaders;
-
- private Builder() {
- fileName = Optional.empty();
- mimeMessage = Optional.empty();
- recipients = Lists.newArrayList();
- name = Optional.empty();
- sender = Optional.empty();
- state = Optional.empty();
- errorMessage = Optional.empty();
- lastUpdated = Optional.empty();
- attributes = Maps.newHashMap();
- size = Optional.empty();
- remoteAddr = Optional.empty();
- remoteHost = Optional.empty();
- perRecipientHeaders = new PerRecipientHeaders();
- }
-
- public Builder size(long size) {
- this.size = Optional.of(size);
- return this;
- }
-
- public Builder fileName(String fileName) {
- this.fileName = Optional.of(fileName);
- return this;
- }
-
- public Builder mimeMessage(MimeMessage mimeMessage) {
- this.mimeMessage = Optional.of(mimeMessage);
- return this;
- }
-
- public Builder mimeMessage(MimeMessageBuilder mimeMessage) throws MessagingException {
- this.mimeMessage = Optional.of(mimeMessage.build());
- return this;
- }
-
- public Builder recipients() {
- return this;
- }
-
- public Builder recipients(List<MailAddress> recipients) {
- this.recipients.addAll(recipients);
- return this;
- }
-
- public Builder recipients(MailAddress... recipients) {
- return recipients(ImmutableList.copyOf(recipients));
- }
-
- public Builder recipients(String... recipients) {
- return recipients(Arrays.stream(recipients)
- .map(Throwing.function(MailAddress::new))
- .collect(Guavate.toImmutableList()));
- }
-
- public Builder recipient(MailAddress recipient) {
- return recipients(recipient);
- }
-
- public Builder recipient(String recipient) throws AddressException {
- return recipients(recipient);
- }
-
- public Builder name(String name) {
- this.name = Optional.of(name);
- return this;
- }
-
- public Builder sender(MailAddress sender) {
- this.sender = Optional.of(sender);
- return this;
- }
-
- public Builder sender(String sender) throws AddressException {
- return sender(new MailAddress(sender));
- }
-
- public Builder state(String state) {
- this.state = Optional.of(state);
- return this;
- }
-
- public Builder errorMessage(String errorMessage) {
- this.errorMessage = Optional.of(errorMessage);
- return this;
- }
-
- public Builder lastUpdated(Date lastUpdated) {
- this.lastUpdated = Optional.of(lastUpdated);
- return this;
- }
-
- public Builder attribute(String name, Serializable object) {
- this.attributes.put(name, object);
- return this;
- }
-
- public Builder attributes(Map<String, Serializable> attributes) {
- this.attributes.putAll(attributes);
- return this;
- }
-
- public Builder remoteAddr(String remoteAddr) {
- this.remoteAddr = Optional.of(remoteAddr);
- return this;
- }
-
- public Builder remoteHost(String remoteHost) {
- this.remoteHost = Optional.of(remoteHost);
- return this;
- }
-
- public Builder addHeaderForRecipient(Header header, MailAddress recipient) {
- this.perRecipientHeaders.addHeaderForRecipient(header, recipient);
- return this;
- }
-
- public FakeMail build() throws MessagingException {
- return new FakeMail(getMimeMessage(), recipients, name.orElse(null), sender.orElse(null), state.orElse(null), errorMessage.orElse(null), lastUpdated.orElse(null),
- attributes, size.orElse(0L), remoteAddr.orElse(DEFAULT_REMOTE_ADDRESS), remoteHost.orElse(DEFAULT_REMOTE_HOST), perRecipientHeaders);
- }
-
- private MimeMessage getMimeMessage() throws MessagingException {
- Preconditions.checkState(!(fileName.isPresent() && mimeMessage.isPresent()), "You can not specify a MimeMessage object when you alredy set Content from a file");
- if (fileName.isPresent()) {
- return MimeMessageUtil.mimeMessageFromStream(ClassLoader.getSystemResourceAsStream(fileName.get()));
- }
- return mimeMessage.orElse(null);
- }
- }
-
- public static FakeMail defaultFakeMail() throws MessagingException {
- return FakeMail.builder().build();
- }
-
- private static Map<String, Serializable> attributes(Mail mail) {
- ImmutableMap.Builder<String, Serializable> builder = ImmutableMap.builder();
- for (String attributeName: ImmutableList.copyOf(mail.getAttributeNames())) {
- builder.put(attributeName, mail.getAttribute(attributeName));
- }
- return builder.build();
- }
-
- private transient MimeMessage msg;
- private Collection<MailAddress> recipients;
- private String name;
- private MailAddress sender;
- private String state;
- private String errorMessage;
- private Date lastUpdated;
- private Map<String, Serializable> attributes;
- private long size;
- private String remoteAddr;
- private String remoteHost;
- private PerRecipientHeaders perRecipientHeaders;
-
- public FakeMail(MimeMessage msg, List<MailAddress> recipients, String name, MailAddress sender, String state, String errorMessage, Date lastUpdated,
- Map<String, Serializable> attributes, long size, String remoteAddr, String remoteHost, PerRecipientHeaders perRecipientHeaders) {
- this.msg = msg;
- this.recipients = recipients;
- this.name = name;
- this.sender = sender;
- this.state = state;
- this.errorMessage = errorMessage;
- this.lastUpdated = lastUpdated;
- this.attributes = attributes;
- this.size = size;
- this.remoteAddr = remoteAddr;
- this.perRecipientHeaders = perRecipientHeaders;
- this.remoteHost = remoteHost;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public void setName(String newName) {
- this.name = newName;
- }
-
- @Override
- public MimeMessage getMessage() throws MessagingException {
- return msg;
- }
-
- @Override
- public Collection<MailAddress> getRecipients() {
- return recipients;
- }
-
- @Override
- public void setRecipients(Collection<MailAddress> recipients) {
- this.recipients = recipients;
- }
-
- @Override
- public MailAddress getSender() {
- return sender;
- }
-
- @Override
- public String getState() {
- return state;
- }
-
- @Override
- public String getRemoteHost() {
- return remoteHost;
- }
-
- @Override
- public String getRemoteAddr() {
- return remoteAddr;
- }
-
- @Override
- public String getErrorMessage() {
- return errorMessage;
- }
-
- @Override
- public void setErrorMessage(String msg) {
- this.errorMessage = msg;
- }
-
- @Override
- public void setMessage(MimeMessage message) {
- this.msg = message;
- try {
- if (message != null && message.getSender() != null) {
- this.sender = new MailAddress((InternetAddress) message.getSender());
- }
- } catch (MessagingException e) {
- throw new RuntimeException("Exception caught", e);
- }
- }
-
- @Override
- public void setState(String state) {
- this.state = state;
- }
-
- @Override
- public Serializable getAttribute(String name) {
- return attributes.get(name);
- }
-
- @Override
- public Iterator<String> getAttributeNames() {
- return attributes.keySet().iterator();
- }
-
- @Override
- public boolean hasAttributes() {
- return !attributes.isEmpty();
- }
-
- @Override
- public Serializable removeAttribute(String name) {
- return attributes.remove(name);
-
- }
-
- @Override
- public void removeAllAttributes() {
- attributes.clear();
- }
-
- @Override
- public Serializable setAttribute(String name, Serializable object) {
- return attributes.put(name, object);
- }
-
- @Override
- public long getMessageSize() throws MessagingException {
- return size;
- }
-
- @Override
- public Date getLastUpdated() {
- return lastUpdated;
- }
-
- @Override
- public void setLastUpdated(Date lastUpdated) {
- this.lastUpdated = lastUpdated;
- }
-
- public void setMessageSize(long size) {
- this.size = size;
- }
-
- @Override
- public final boolean equals(Object o) {
- if (o instanceof FakeMail) {
- FakeMail that = (FakeMail) o;
-
- return Objects.equal(this.size, that.size)
- && Objects.equal(this.recipients, that.recipients)
- && Objects.equal(this.name, that.name)
- && Objects.equal(this.sender, that.sender)
- && Objects.equal(this.state, that.state)
- && Objects.equal(this.errorMessage, that.errorMessage)
- && Objects.equal(this.lastUpdated, that.lastUpdated)
- && Objects.equal(this.attributes, that.attributes)
- && Objects.equal(this.remoteHost, that.remoteHost)
- && Objects.equal(this.perRecipientHeaders, that.perRecipientHeaders)
- && Objects.equal(this.remoteAddr, that.remoteAddr);
- }
- return false;
- }
-
- @Override
- public final int hashCode() {
- return Objects.hashCode(name, sender, recipients, state, errorMessage, lastUpdated, attributes, size, remoteAddr, remoteHost, perRecipientHeaders);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("msg", msg)
- .add("recipients", recipients)
- .add("name", name)
- .add("sender", sender)
- .add("state", state)
- .add("errorMessage", errorMessage)
- .add("lastUpdated", lastUpdated)
- .add("attributes", attributes)
- .add("size", size)
- .add("remoteAddr", remoteAddr)
- .toString();
- }
-
- @Override
- public PerRecipientHeaders getPerRecipientSpecificHeaders() {
- return perRecipientHeaders;
- }
-
- @Override
- public void addSpecificHeaderForRecipient(Header header, MailAddress recipient) {
- perRecipientHeaders.addHeaderForRecipient(header, recipient);
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
deleted file mode 100644
index eff41c9..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailContext.java
+++ /dev/null
@@ -1,608 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.mailet.base.test;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.TimeUnit;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.MimeMessage;
-
-import org.apache.james.core.Domain;
-import org.apache.james.core.MailAddress;
-import org.apache.james.core.builder.MimeMessageWrapper;
-import org.apache.mailet.HostAddress;
-import org.apache.mailet.LookupException;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailetContext;
-import org.slf4j.Logger;
-
-import com.github.fge.lambdas.Throwing;
-import com.github.fge.lambdas.functions.ThrowingFunction;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-
-@SuppressWarnings("deprecation")
-public class FakeMailContext implements MailetContext {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static SentMail.Builder sentMailBuilder() {
- return new SentMail.Builder();
- }
-
- public static SentMail.Builder fromMail(Mail mail) throws MessagingException {
- return sentMailBuilder()
- .sender(mail.getSender())
- .recipients(mail.getRecipients())
- .message(mail.getMessage())
- .state(mail.getState())
- .attributes(buildAttributesMap(mail))
- .fromMailet();
- }
-
- private static ImmutableMap<String, Serializable> buildAttributesMap(Mail mail) {
- Map<String, Serializable> result = new HashMap<>();
- List<String> attributesNames = Lists.newArrayList(mail.getAttributeNames());
- for (String attributeName: attributesNames) {
- result.put(attributeName, mail.getAttribute(attributeName));
- }
- return ImmutableMap.copyOf(result);
- }
-
- public static FakeMailContext defaultContext() {
- return builder().build();
- }
-
- public static class Builder {
-
- private Logger logger;
- private Optional<MailAddress> postmaster;
-
- private Builder() {
- postmaster = Optional.empty();
- }
-
- public Builder logger(Logger logger) {
- this.logger = logger;
- return this;
- }
-
- public Builder postmaster(MailAddress postmaster) {
- this.postmaster = Optional.of(postmaster);
- return this;
- }
-
- public FakeMailContext build() {
- return new FakeMailContext(Optional.ofNullable(logger), postmaster.orElse(null));
- }
- }
-
- public static class SentMail {
-
- private static MimeMessage tryCopyMimeMessage(MimeMessage msg) throws MessagingException {
- ThrowingFunction<MimeMessage, MimeMessage> throwingFunction = MimeMessageWrapper::wrap;
-
- return Optional.ofNullable(msg)
- .map(Throwing.function(throwingFunction).sneakyThrow())
- .orElse(null);
- }
-
- public static class Builder {
- private MailAddress sender;
- private Optional<Collection<MailAddress>> recipients = Optional.empty();
- private MimeMessage msg;
- private Map<String, Serializable> attributes = new HashMap<>();
- private Optional<String> state = Optional.empty();
- private Optional<Boolean> fromMailet = Optional.empty();
- private Optional<Delay> delay = Optional.empty();
-
- public Builder sender(MailAddress sender) {
- this.sender = sender;
- return this;
- }
-
- public Builder sender(String sender) throws AddressException {
- return sender(new MailAddress(sender));
- }
-
- public Builder recipients(Collection<MailAddress> recipients) {
- this.recipients = Optional.of(recipients);
- return this;
- }
-
- public Builder fromMailet() {
- this.fromMailet = Optional.of(true);
- return this;
- }
-
- public Builder recipients(MailAddress... recipients) {
- this.recipients = Optional.<Collection<MailAddress>>of(ImmutableList.copyOf(recipients));
- return this;
- }
-
- public Builder recipient(MailAddress recipient) {
- Preconditions.checkNotNull(recipient);
- return recipients(ImmutableList.of(recipient));
- }
-
- public Builder recipient(String recipient) throws AddressException {
- Preconditions.checkNotNull(recipient);
- return recipients(new MailAddress(recipient));
- }
-
- public Builder message(MimeMessage mimeMessage) {
- this.msg = mimeMessage;
- return this;
- }
-
- public Builder attributes(Map<String, Serializable> attributes) {
- this.attributes.putAll(attributes);
- return this;
- }
-
- public Builder attribute(String key, Serializable value) {
- this.attributes.put(key, value);
- return this;
- }
-
- public Builder state(String state) {
- this.state = Optional.of(state);
- return this;
- }
-
- public Builder delay(Delay delay) {
- this.delay = Optional.of(delay);
- return this;
- }
-
- public SentMail build() throws MessagingException {
- if (fromMailet.orElse(false)) {
- this.attribute(Mail.SENT_BY_MAILET, "true");
- }
- return new SentMail(sender, recipients.orElse(ImmutableList.<MailAddress>of()), msg,
- ImmutableMap.copyOf(attributes), state.orElse(Mail.DEFAULT), delay);
- }
- }
-
- private final MailAddress sender;
- private final Collection<MailAddress> recipients;
- private final MimeMessage msg;
- private final Optional<String> subject;
- private final Map<String, Serializable> attributes;
- private final String state;
- private final Optional<Delay> delay;
-
- private SentMail(MailAddress sender, Collection<MailAddress> recipients, MimeMessage msg, Map<String, Serializable> attributes, String state, Optional<Delay> delay) throws MessagingException {
- this.sender = sender;
- this.recipients = ImmutableList.copyOf(recipients);
- this.msg = tryCopyMimeMessage(msg);
- this.subject = getSubject(msg);
- this.attributes = ImmutableMap.copyOf(attributes);
- this.state = state;
- this.delay = delay;
- }
-
- private Optional<String> getSubject(MimeMessage msg) {
- try {
- return Optional.ofNullable(msg.getSubject());
- } catch (Exception e) {
- return Optional.empty();
- }
- }
-
- public MailAddress getSender() {
- return sender;
- }
-
- public Collection<MailAddress> getRecipients() {
- return recipients;
- }
-
- public MimeMessage getMsg() {
- return msg;
- }
-
- public String getState() {
- return state;
- }
-
- public Optional<String> getSubject() {
- return subject;
- }
-
-
- public Optional<Delay> getDelay() {
- return delay;
- }
-
- @Override
- public boolean equals(Object o) {
- if (!(o instanceof SentMail)) {
- return false;
- }
-
- SentMail sentMail = (SentMail) o;
-
- return Objects.equals(this.sender, sentMail.sender)
- && Objects.equals(this.recipients, sentMail.recipients)
- && Objects.equals(this.attributes, sentMail.attributes)
- && Objects.equals(this.state, sentMail.state);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(sender, recipients, attributes, state);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("recipients", recipients)
- .add("sender", sender)
- .add("attributeNames", attributes)
- .add("state", state)
- .toString();
- }
- }
-
- public static class Delay {
- private final long duration;
- private final TimeUnit timeUnit;
-
- public Delay(long duration, TimeUnit timeUnit) {
- this.duration = duration;
- this.timeUnit = timeUnit;
- }
-
- public long getDuration() {
- return duration;
- }
-
- public TimeUnit getTimeUnit() {
- return timeUnit;
- }
-
- @Override
- public final boolean equals(Object o) {
- if (o instanceof Delay) {
- Delay delay = (Delay) o;
-
- return Objects.equals(this.duration, delay.duration)
- && Objects.equals(this.timeUnit, delay.timeUnit);
- }
- return false;
- }
-
- @Override
- public final int hashCode() {
- return Objects.hash(duration, timeUnit);
- }
- }
-
- public static class BouncedMail {
- private final SentMail sentMail;
- private final String message;
- private final Optional<MailAddress> bouncer;
-
- public BouncedMail(SentMail sentMail, String message, Optional<MailAddress> bouncer) {
- this.sentMail = sentMail;
- this.message = message;
- this.bouncer = bouncer;
- }
-
- public BouncedMail(SentMail.Builder sentMail, String message, Optional<MailAddress> bouncer) throws MessagingException {
- this(sentMail.build(), message, bouncer);
- }
-
- public SentMail getSentMail() {
- return sentMail;
- }
-
- public String getMessage() {
- return message;
- }
-
- public Optional<MailAddress> getBouncer() {
- return bouncer;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof BouncedMail) {
- BouncedMail that = (BouncedMail) o;
- return Objects.equals(this.sentMail, that.sentMail)
- && Objects.equals(this.message, that.message)
- && Objects.equals(this.bouncer, that.bouncer);
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(sentMail, message, bouncer);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("sentMail", sentMail)
- .add("message", message)
- .add("bouncer", bouncer)
- .toString();
- }
- }
-
- private final HashMap<String, Object> attributes;
- private final Collection<SentMail> sentMails;
- private final Collection<BouncedMail> bouncedMails;
- private final Optional<Logger> logger;
- private final MailAddress postmaster;
-
- private FakeMailContext(Optional<Logger> logger, MailAddress postmaster) {
- attributes = new HashMap<>();
- sentMails = new ConcurrentLinkedQueue<>();
- bouncedMails = new ConcurrentLinkedQueue<>();
- this.logger = logger;
- this.postmaster = postmaster;
- }
-
- @Override
- public void bounce(Mail mail, String message) throws MessagingException {
- bouncedMails.add(new BouncedMail(fromMail(mail), message, Optional.empty()));
- }
-
- @Override
- public void bounce(Mail mail, String message, MailAddress bouncer) throws MessagingException {
- bouncedMails.add(new BouncedMail(fromMail(mail), message, Optional.ofNullable(bouncer)));
- }
-
- /**
- * @deprecated use the generic dnsLookup method
- */
- @Override
- public Collection<String> getMailServers(Domain host) {
- return null; // trivial implementation
- }
-
- @Override
- public MailAddress getPostmaster() {
- return postmaster;
- }
-
- @Override
- public Object getAttribute(String name) {
- return attributes.get(name);
- }
-
- @Override
- public Iterator<String> getAttributeNames() {
- return attributes.keySet().iterator();
- }
-
- @Override
- public int getMajorVersion() {
- return 0; // trivial implementation
- }
-
- @Override
- public int getMinorVersion() {
- return 0; // trivial implementation
- }
-
- @Override
- public String getServerInfo() {
- return "Mock Server";
- }
-
- @Override
- public boolean isLocalServer(Domain domain) {
- return domain.equals(Domain.LOCALHOST);
- }
-
- /**
- * @deprecated use {@link #isLocalEmail(MailAddress)} instead
- */
- @Override
- public boolean isLocalUser(String userAccount) {
- return false; // trivial implementation
- }
-
- @Override
- public boolean isLocalEmail(MailAddress mailAddress) {
- return false; // trivial implementation
- }
-
- /**
- * @deprecated use {@link #log(LogLevel level, String message)}
- */
- @Override
- public void log(String message) {
- System.out.println(message);
- }
-
- /**
- * @deprecated use {@link #log(LogLevel level, String message, Throwable t)}
- */
- @Override
- public void log(String message, Throwable t) {
- System.out.println(message);
- t.printStackTrace(System.out);
- }
-
- @Override
- public void removeAttribute(String name) {
- // trivial implementation
- }
-
- @Override
- public void sendMail(MimeMessage mimemessage) throws MessagingException {
- sentMails.add(sentMailBuilder()
- .message(mimemessage)
- .fromMailet()
- .build());
- }
-
- @Override
- public void sendMail(MailAddress sender, Collection<MailAddress> recipients, MimeMessage msg) throws MessagingException {
- sentMails.add(sentMailBuilder()
- .recipients(recipients)
- .sender(sender)
- .message(msg)
- .fromMailet()
- .build());
- }
-
- @Override
- public void sendMail(MailAddress sender, Collection<MailAddress> recipients, MimeMessage msg, String state) throws MessagingException {
- sentMails.add(sentMailBuilder()
- .recipients(recipients)
- .message(msg)
- .state(state)
- .sender(sender)
- .fromMailet()
- .build());
- }
-
- @Override
- public void sendMail(Mail mail) throws MessagingException {
- sendMail(mail, Mail.DEFAULT);
- }
-
- @Override
- public void sendMail(Mail mail, long delay, TimeUnit unit) throws MessagingException {
- sendMail(mail, Mail.DEFAULT, delay, unit);
- }
-
- @Override
- public void sendMail(Mail mail, String state) throws MessagingException {
- mail.setState(state);
- sentMails.add(fromMail(mail).build());
- }
-
- @Override
- public void sendMail(Mail mail, String state, long delay, TimeUnit unit) throws MessagingException {
- mail.setState(state);
- sentMails.add(
- fromMail(mail)
- .delay(new Delay(delay, unit))
- .build());
- }
-
- public void setAttribute(String name, Serializable object) {
- attributes.put(name,object);
- }
-
- public void storeMail(MailAddress sender, MailAddress recipient, MimeMessage msg) throws MessagingException {
- // trivial implementation
- }
-
- /**
- * @deprecated use the generic dnsLookup method
- */
- @Override
- public Iterator<HostAddress> getSMTPHostAddresses(Domain domainName) {
- return null; // trivial implementation
- }
-
- @Override
- public void setAttribute(String name, Object value) {
- throw new UnsupportedOperationException("MOCKed method");
- }
-
- @Override
- public void log(LogLevel level, String message) {
- if (logger.isPresent()) {
- switch (level) {
- case INFO:
- logger.get().info(message);
- break;
- case WARN:
- logger.get().warn(message);
- break;
- case ERROR:
- logger.get().error(message);
- break;
- default:
- logger.get().debug(message);
- }
- } else {
- System.out.println("[" + level + "]" + message);
- }
- }
-
- @Override
- public void log(LogLevel level, String message, Throwable t) {
- if (logger.isPresent()) {
- switch (level) {
- case INFO:
- logger.get().info(message, t);
- break;
- case WARN:
- logger.get().warn(message, t);
- break;
- case ERROR:
- logger.get().error(message, t);
- break;
- default:
- logger.get().debug(message, t);
- }
- } else {
- System.out.println("[" + level + "]" + message);
- t.printStackTrace(System.out);
- }
- }
-
- @Override
- public List<String> dnsLookup(String name, RecordType type) throws LookupException {
- return null; // trivial implementation
- }
-
- public List<SentMail> getSentMails() {
- return ImmutableList.copyOf(sentMails);
- }
-
- public void resetSentMails() {
- sentMails.clear();
- }
-
- public List<BouncedMail> getBouncedMails() {
- return ImmutableList.copyOf(bouncedMails);
- }
-
- @Override
- public Logger getLogger() {
- return logger.orElse(null);
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailTest.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailTest.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailTest.java
deleted file mode 100644
index fc0c03c..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.mailet.base.test;
-
-import static org.mockito.Mockito.mock;
-
-import javax.mail.internet.MimeMessage;
-
-import org.junit.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-public class FakeMailTest {
-
- @Test
- public void beanShouldRespectBeanContract() {
- EqualsVerifier.forClass(FakeMail.class)
- .suppress(Warning.NONFINAL_FIELDS)
- .withPrefabValues(MimeMessage.class, mock(MimeMessage.class), mock(MimeMessage.class))
- .verify();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
deleted file mode 100644
index 73289d7..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMailetConfig.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.mailet.base.test;
-
-import java.util.Iterator;
-import java.util.Optional;
-import java.util.Properties;
-
-import org.apache.mailet.MailetConfig;
-import org.apache.mailet.MailetContext;
-
-/**
- * MailetConfig over Properties
- */
-public class FakeMailetConfig implements MailetConfig {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private static final String DEFAULT_MAILET_NAME = "A Mailet";
- private Optional<String> mailetName;
- private Optional<MailetContext> mailetContext;
- private Properties properties;
-
- private Builder() {
- mailetName = Optional.empty();
- mailetContext = Optional.empty();
- properties = new Properties();
- }
-
- public Builder mailetName(String mailetName) {
- this.mailetName = Optional.ofNullable(mailetName);
- return this;
- }
-
- public Builder mailetContext(MailetContext mailetContext) {
- this.mailetContext = Optional.ofNullable(mailetContext);
- return this;
- }
-
- public Builder mailetContext(FakeMailContext.Builder mailetContext) {
- return mailetContext(mailetContext.build());
- }
-
- public Builder setProperty(String key, String value) {
- this.properties.setProperty(key, value);
- return this;
- }
-
- public FakeMailetConfig build() {
- return new FakeMailetConfig(mailetName.orElse(DEFAULT_MAILET_NAME),
- mailetContext.orElse(FakeMailContext.defaultContext()),
- properties);
- }
- }
-
- private final String mailetName;
- private final MailetContext mailetContext;
- private final Properties properties;
-
- private FakeMailetConfig(String mailetName, MailetContext mailetContext, Properties properties) {
- this.mailetName = mailetName;
- this.mailetContext = mailetContext;
- this.properties = properties;
- }
-
- @Override
- public String getInitParameter(String name) {
- return properties.getProperty(name);
- }
-
- @Override
- public Iterator<String> getInitParameterNames() {
- return properties.stringPropertyNames().iterator();
- }
-
- @Override
- public MailetContext getMailetContext() {
- return mailetContext;
- }
-
- @Override
- public String getMailetName() {
- return mailetName;
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMatcherConfig.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMatcherConfig.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMatcherConfig.java
deleted file mode 100644
index 1917c3d..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMatcherConfig.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.mailet.base.test;
-
-import java.util.Optional;
-
-import org.apache.mailet.MailetContext;
-import org.apache.mailet.MatcherConfig;
-
-import com.google.common.base.Preconditions;
-
-/**
- * MatcherConfig
- */
-public class FakeMatcherConfig implements MatcherConfig {
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private String matcherName;
- private Optional<MailetContext> mailetContext;
- private Optional<String> condition;
-
- private Builder() {
- condition = Optional.empty();
- mailetContext = Optional.empty();
- }
-
- public Builder matcherName(String matcherName) {
- this.matcherName = matcherName;
- return this;
- }
-
- public Builder mailetContext(MailetContext mailetContext) {
- Preconditions.checkNotNull(mailetContext);
- this.mailetContext = Optional.of(mailetContext);
- return this;
- }
-
- public Builder condition(String condition) {
- this.condition = Optional.ofNullable(condition);
- return this;
- }
-
- public FakeMatcherConfig build() {
- Preconditions.checkNotNull(matcherName, "'matcherName' is mandatory");
- return new FakeMatcherConfig(matcherName, mailetContext.orElse(FakeMailContext.defaultContext()), condition);
- }
- }
-
- private final String matcherName;
- private final MailetContext mailetContext;
- private final Optional<String> condition;
-
- private FakeMatcherConfig(String matcherName, MailetContext mailetContext, Optional<String> condition) {
- this.matcherName = matcherName;
- this.mailetContext = mailetContext;
- this.condition = condition;
- }
-
- @Override
- public String getMatcherName() {
- return matcherName;
- }
-
- @Override
- public MailetContext getMailetContext() {
- return mailetContext;
- }
-
- @Override
- public String getCondition() {
- return condition.orElse(null);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
deleted file mode 100644
index ecbee4f..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.mailet.base.test;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
-import org.apache.james.core.MailAddress;
-import org.apache.james.core.builder.MimeMessageBuilder;
-import org.apache.mailet.Mail;
-
-/**
- * some utilities for James unit testing
- */
-public class MailUtil {
-
- public static final String SENDER = "test@james.apache.org";
- public static final String RECIPIENT = "test2@james.apache.org";
- private static int m_counter = 0;
-
- public static String newId() {
- m_counter++;
- return "MockMailUtil-ID-" + m_counter;
- }
-
- public static FakeMail createMockMail2Recipients() throws MessagingException {
- return FakeMail.builder()
- .name(newId())
- .recipients(new MailAddress("test@james.apache.org"), new MailAddress("test2@james.apache.org"))
- .build();
- }
-
- public static FakeMail createMockMail2Recipients(MimeMessage message) throws MessagingException {
- return FakeMail.builder()
- .name(newId())
- .mimeMessage(message)
- .recipients(new MailAddress("test@james.apache.org"), new MailAddress("test2@james.apache.org"))
- .build();
- }
-
- public static MimeMessage createMimeMessage() throws MessagingException {
- return createMimeMessage(null, null);
- }
-
- public static MimeMessage createMimeMessageWithSubject(String subject) throws MessagingException {
- return createMimeMessage(null, null, subject);
- }
-
- public static MimeMessage createMimeMessage(String headerName, String headerValue) throws MessagingException {
- return createMimeMessage(headerName, headerValue, "testmail");
- }
-
- private static MimeMessage createMimeMessage(String headerName, String headerValue, String subject) throws MessagingException {
- MimeMessageBuilder mimeMessageBuilder = MimeMessageBuilder.mimeMessageBuilder()
- .addToRecipient(RECIPIENT)
- .addFrom(SENDER)
- .setSubject(subject);
- if (headerName != null) {
- mimeMessageBuilder.addHeader(headerName, headerValue);
- }
- return mimeMessageBuilder.build();
- }
-
- public static String toString(Mail mail, String charset) throws IOException, MessagingException {
- ByteArrayOutputStream rawMessage = new ByteArrayOutputStream();
- mail.getMessage().writeTo(
- rawMessage,
- new String[] { "Bcc", "Content-Length", "Message-ID" });
- return rawMessage.toString(charset);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/icalendar/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/icalendar/pom.xml b/mailet/icalendar/pom.xml
index b11e5cb..767e9fb 100644
--- a/mailet/icalendar/pom.xml
+++ b/mailet/icalendar/pom.xml
@@ -36,8 +36,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>apache-mailet-base</artifactId>
- <type>test-jar</type>
+ <artifactId>apache-mailet-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/pom.xml b/mailet/pom.xml
index 37cc224..722fc87 100644
--- a/mailet/pom.xml
+++ b/mailet/pom.xml
@@ -52,6 +52,7 @@
<module>icalendar</module>
<module>mailetdocs-maven-plugin</module>
<module>standard</module>
+ <module>test</module>
</modules>
<issueManagement>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/standard/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/standard/pom.xml b/mailet/standard/pom.xml
index cd49a33..d0dc22b 100644
--- a/mailet/standard/pom.xml
+++ b/mailet/standard/pom.xml
@@ -43,9 +43,7 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
- <artifactId>apache-mailet-base</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
+ <artifactId>apache-mailet-test</artifactId>
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
@@ -54,6 +52,11 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-server-util</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>james-server-util-java8</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/test/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/test/pom.xml b/mailet/test/pom.xml
new file mode 100644
index 0000000..80f5e64
--- /dev/null
+++ b/mailet/test/pom.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-mailet</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <artifactId>apache-mailet-test</artifactId>
+ <packaging>bundle</packaging>
+
+ <name>Apache James :: Test helpers for Mailet</name>
+ <description>Apache James Mailet Test is a collection of utilities to help testing mailets.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>apache-mailet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>apache-mime4j-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>james-server-util</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>javax-mail-extension</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.mail</groupId>
+ <artifactId>javax.mail</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>nl.jqno.equalsverifier</groupId>
+ <artifactId>equalsverifier</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-guava</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Export-Package>org.apache.mailet.base.*</Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>${james.groupId}</groupId>
+ <artifactId>maven-mailetdocs-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/3dddd7c5/mailet/test/src/main/java/org/apache/mailet/base/MailAddressFixture.java
----------------------------------------------------------------------
diff --git a/mailet/test/src/main/java/org/apache/mailet/base/MailAddressFixture.java b/mailet/test/src/main/java/org/apache/mailet/base/MailAddressFixture.java
new file mode 100644
index 0000000..4efe093
--- /dev/null
+++ b/mailet/test/src/main/java/org/apache/mailet/base/MailAddressFixture.java
@@ -0,0 +1,56 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.mailet.base;
+
+import javax.mail.internet.AddressException;
+
+import org.apache.james.core.Domain;
+import org.apache.james.core.MailAddress;
+
+public class MailAddressFixture {
+ public static final String JAMES_LOCAL = "localhost";
+ public static final String JAMES_APACHE_ORG = "james.apache.org";
+ public static final String JAMES2_APACHE_ORG = "james2.apache.org";
+
+ public static final Domain JAMES_LOCAL_DOMAIN = Domain.of(JAMES_LOCAL);
+ public static final Domain JAMES_APACHE_ORG_DOMAIN = Domain.of(JAMES_APACHE_ORG);
+ public static final Domain JAMES2_APACHE_ORG_DOMAIN = Domain.of(JAMES2_APACHE_ORG);
+
+ public static final MailAddress SENDER = createMailAddress("sender@" + JAMES_LOCAL);
+ public static final MailAddress RECIPIENT1 = createMailAddress("recipient1@" + JAMES_LOCAL);
+ public static final MailAddress RECIPIENT2 = createMailAddress("recipient2@" + JAMES_LOCAL);
+ public static final MailAddress RECIPIENT3 = createMailAddress("recipient3@" + JAMES_LOCAL);
+
+ public static final MailAddress ANY_AT_LOCAL = createMailAddress("any@" + JAMES_LOCAL);
+ public static final MailAddress OTHER_AT_LOCAL = createMailAddress("other@" + JAMES_LOCAL);
+ public static final MailAddress ANY_AT_JAMES = createMailAddress("any@" + JAMES_APACHE_ORG);
+ public static final MailAddress POSTMASTER_AT_JAMES = createMailAddress("postmaster@" + JAMES_APACHE_ORG);
+ public static final MailAddress OTHER_AT_JAMES = createMailAddress("other@" + JAMES_APACHE_ORG);
+ public static final MailAddress ANY_AT_JAMES2 = createMailAddress("any@" + JAMES2_APACHE_ORG);
+ public static final MailAddress OTHER_AT_JAMES2 = createMailAddress("other@" + JAMES2_APACHE_ORG);
+
+ private static MailAddress createMailAddress(String mailAddress) {
+ try {
+ return new MailAddress(mailAddress);
+ } catch (AddressException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org