JAMES-2486 Drop joda-time
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1c69d370 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1c69d370 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1c69d370 Branch: refs/heads/master Commit: 1c69d3708503d7d1481e690f3a378b1c7d58d924 Parents: c4e0467 Author: Gautier DI FOLCO <[email protected]> Authored: Thu Jul 19 11:31:00 2018 +0200 Committer: benwa <[email protected]> Committed: Tue Jul 31 09:25:23 2018 +0700 ---------------------------------------------------------------------- pom.xml | 6 ----- server/data/data-api/pom.xml | 4 --- .../sieverepository/api/SieveRepository.java | 4 +-- .../cassandra/CassandraActiveScriptDAO.java | 4 ++- .../cassandra/CassandraSieveRepository.java | 4 +-- .../sieve/cassandra/model/ActiveScriptInfo.java | 11 ++++---- .../file/SieveDefaultRepository.java | 8 +++--- .../file/SieveFileRepository.java | 8 +++--- .../lib/AbstractSieveRepositoryTest.java | 6 +++-- server/mailet/mailets/pom.xml | 4 --- .../transport/mailets/jsieve/ActionContext.java | 6 ++--- .../mailets/jsieve/ResourceLocator.java | 14 +++++----- .../mailets/jsieve/SieveMailAdapter.java | 12 ++++----- .../mailets/jsieve/VacationAction.java | 8 ++++-- .../james/transport/mailets/DSNBounceTest.java | 28 +++++++++++--------- .../mailets/delivery/SieveIntegrationTest.java | 15 +++++------ .../redirect/NotifyMailetsMessageTest.java | 5 ++-- 17 files changed, 72 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b453fec..8180a56 100644 --- a/pom.xml +++ b/pom.xml @@ -634,7 +634,6 @@ <jetty.version>9.4.7.v20170914</jetty.version> <testcontainers.version>1.8.1</testcontainers.version> <metrics.version>3.2.6</metrics.version> - <joda.version>2.9.4</joda.version> <assertj.version>3.3.0</assertj.version> <es.version>2.2.1</es.version> <es-reporter.version>2.2.0</es-reporter.version> @@ -1949,11 +1948,6 @@ <version>1.1.0</version> </dependency> <dependency> - <groupId>joda-time</groupId> - <artifactId>joda-time</artifactId> - <version>${joda.version}</version> - </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-api/pom.xml ---------------------------------------------------------------------- diff --git a/server/data/data-api/pom.xml b/server/data/data-api/pom.xml index cfbd462..36f68bd 100644 --- a/server/data/data-api/pom.xml +++ b/server/data/data-api/pom.xml @@ -59,10 +59,6 @@ <artifactId>javax.mail</artifactId> </dependency> <dependency> - <groupId>joda-time</groupId> - <artifactId>joda-time</artifactId> - </dependency> - <dependency> <groupId>nl.jqno.equalsverifier</groupId> <artifactId>equalsverifier</artifactId> <scope>test</scope> http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepository.java b/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepository.java index ea50969..f9d8c0b 100644 --- a/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepository.java +++ b/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepository.java @@ -21,6 +21,7 @@ package org.apache.james.sieverepository.api; import java.io.InputStream; +import java.time.ZonedDateTime; import java.util.List; import org.apache.james.core.User; @@ -29,7 +30,6 @@ import org.apache.james.sieverepository.api.exception.IsActiveException; import org.apache.james.sieverepository.api.exception.QuotaExceededException; import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; import org.apache.james.sieverepository.api.exception.StorageException; -import org.joda.time.DateTime; /** @@ -56,7 +56,7 @@ public interface SieveRepository extends SieveQuotaRepository { List<ScriptSummary> listScripts(User user) throws StorageException; - DateTime getActivationDateForActiveScript(User user) throws StorageException, ScriptNotFoundException; + ZonedDateTime getActivationDateForActiveScript(User user) throws StorageException, ScriptNotFoundException; InputStream getActive(User user) throws ScriptNotFoundException, StorageException; http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAO.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAO.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAO.java index b3773f9..47c598d 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAO.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAO.java @@ -29,6 +29,8 @@ import static org.apache.james.sieve.cassandra.tables.CassandraSieveActiveTable. import static org.apache.james.sieve.cassandra.tables.CassandraSieveActiveTable.TABLE_NAME; import static org.apache.james.sieve.cassandra.tables.CassandraSieveActiveTable.USER_NAME; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import java.util.Date; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -70,7 +72,7 @@ public class CassandraActiveScriptDAO { .setString(USER_NAME, user.asString())) .thenApply(rowOptional -> rowOptional.map(row -> new ActiveScriptInfo( new ScriptName(row.getString(SCRIPT_NAME)), - row.getTimestamp(DATE)))); + ZonedDateTime.ofInstant(row.getTimestamp(DATE).toInstant(), ZoneOffset.UTC)))); } public CompletableFuture<Void> unactivate(User user) { http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java index 56a7563..a3874ee 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java @@ -21,6 +21,7 @@ package org.apache.james.sieve.cassandra; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.time.ZonedDateTime; import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -43,7 +44,6 @@ import org.apache.james.sieverepository.api.exception.QuotaExceededException; import org.apache.james.sieverepository.api.exception.QuotaNotFoundException; import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; import org.apache.james.util.CompletableFutureUtil; -import org.joda.time.DateTime; public class CassandraSieveRepository implements SieveRepository { @@ -59,7 +59,7 @@ public class CassandraSieveRepository implements SieveRepository { } @Override - public DateTime getActivationDateForActiveScript(User user) throws ScriptNotFoundException { + public ZonedDateTime getActivationDateForActiveScript(User user) throws ScriptNotFoundException { return cassandraActiveScriptDAO.getActiveSctiptInfo(user).join() .orElseThrow(ScriptNotFoundException::new) .getActivationDate(); http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/ActiveScriptInfo.java ---------------------------------------------------------------------- diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/ActiveScriptInfo.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/ActiveScriptInfo.java index 051d7a4..6f975ef 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/ActiveScriptInfo.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/ActiveScriptInfo.java @@ -19,26 +19,25 @@ package org.apache.james.sieve.cassandra.model; -import java.util.Date; +import java.time.ZonedDateTime; import org.apache.james.sieverepository.api.ScriptName; -import org.joda.time.DateTime; public class ActiveScriptInfo { private final ScriptName name; - private final DateTime activationDate; + private final ZonedDateTime activationDate; - public ActiveScriptInfo(ScriptName name, Date date) { + public ActiveScriptInfo(ScriptName name, ZonedDateTime activationDate) { this.name = name; - this.activationDate = new DateTime(date); + this.activationDate = activationDate; } public ScriptName getName() { return name; } - public DateTime getActivationDate() { + public ZonedDateTime getActivationDate() { return activationDate; } } http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveDefaultRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveDefaultRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveDefaultRepository.java index bfa8f64..8155bc8 100644 --- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveDefaultRepository.java +++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveDefaultRepository.java @@ -24,6 +24,9 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; +import java.time.Instant; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import java.util.List; import javax.inject.Inject; @@ -41,7 +44,6 @@ import org.apache.james.sieverepository.api.exception.QuotaExceededException; import org.apache.james.sieverepository.api.exception.QuotaNotFoundException; import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; import org.apache.james.sieverepository.api.exception.StorageException; -import org.joda.time.DateTime; /** * <code>SieveFileRepository</code> manages sieve scripts stored on the file system. @@ -83,8 +85,8 @@ public class SieveDefaultRepository implements SieveRepository { } @Override - public DateTime getActivationDateForActiveScript(User user) throws StorageException, ScriptNotFoundException { - return new DateTime(retrieveUserFile(user).lastModified()); + public ZonedDateTime getActivationDateForActiveScript(User user) throws StorageException, ScriptNotFoundException { + return ZonedDateTime.ofInstant(Instant.ofEpochMilli(retrieveUserFile(user).lastModified()), ZoneOffset.UTC); } public File retrieveUserFile(User user) throws ScriptNotFoundException { http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java index b544ef5..d856dcd 100644 --- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java +++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java @@ -29,6 +29,9 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.Writer; +import java.time.Instant; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -51,7 +54,6 @@ import org.apache.james.sieverepository.api.exception.QuotaExceededException; import org.apache.james.sieverepository.api.exception.QuotaNotFoundException; import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; import org.apache.james.sieverepository.api.exception.StorageException; -import org.joda.time.DateTime; /** * <code>SieveFileRepository</code> manages sieve scripts stored on the file system. @@ -272,8 +274,8 @@ public class SieveFileRepository implements SieveRepository { } @Override - public DateTime getActivationDateForActiveScript(User user) throws StorageException, ScriptNotFoundException { - return new DateTime(getActiveFile(user).lastModified()); + public ZonedDateTime getActivationDateForActiveScript(User user) throws StorageException, ScriptNotFoundException { + return ZonedDateTime.ofInstant(Instant.ofEpochMilli(getActiveFile(user).lastModified()), ZoneOffset.UTC); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java b/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java index a057d3a..266d8b8 100644 --- a/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java +++ b/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java @@ -23,6 +23,9 @@ import static org.assertj.core.api.Assertions.assertThat; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.time.Instant; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; import org.apache.commons.io.IOUtils; import org.apache.james.core.User; @@ -36,7 +39,6 @@ import org.apache.james.sieverepository.api.exception.IsActiveException; import org.apache.james.sieverepository.api.exception.QuotaExceededException; import org.apache.james.sieverepository.api.exception.QuotaNotFoundException; import org.apache.james.sieverepository.api.exception.ScriptNotFoundException; -import org.joda.time.DateTime; import org.junit.Test; public abstract class AbstractSieveRepositoryTest { @@ -72,7 +74,7 @@ public abstract class AbstractSieveRepositoryTest { sieveRepository.putScript(USER, SCRIPT_NAME, SCRIPT_CONTENT); sieveRepository.setActive(USER, SCRIPT_NAME); assertThat(sieveRepository.getActivationDateForActiveScript(USER)).isNotNull(); - assertThat(sieveRepository.getActivationDateForActiveScript(USER)).isNotEqualTo(new DateTime(0L)); + assertThat(sieveRepository.getActivationDateForActiveScript(USER)).isNotEqualTo(ZonedDateTime.ofInstant(Instant.ofEpochMilli(0L), ZoneOffset.UTC)); } @Test(expected = ScriptNotFoundException.class) http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/pom.xml ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml index 9e65f80..5a3f3cc 100644 --- a/server/mailet/mailets/pom.xml +++ b/server/mailet/mailets/pom.xml @@ -205,10 +205,6 @@ <artifactId>javax.inject</artifactId> </dependency> <dependency> - <groupId>joda-time</groupId> - <artifactId>joda-time</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java index e21d0ed..062772e 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java @@ -18,6 +18,7 @@ ****************************************************************/ package org.apache.james.transport.mailets.jsieve; +import java.time.ZonedDateTime; import java.util.Collection; import javax.mail.MessagingException; @@ -25,7 +26,6 @@ import javax.mail.internet.MimeMessage; import org.apache.james.core.MailAddress; import org.apache.mailet.Mail; -import org.joda.time.DateTime; /** * Provides context for action execution. @@ -35,12 +35,12 @@ public interface ActionContext { /** * @return Date the script was activated */ - DateTime getScriptActivationDate(); + ZonedDateTime getScriptActivationDate(); /** * @return Date the script is currently interpreted */ - DateTime getScriptInterpretationDate(); + ZonedDateTime getScriptInterpretationDate(); /** * @return Recipient receiving the given eMail http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ResourceLocator.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ResourceLocator.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ResourceLocator.java index cdb310c..68c306b 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ResourceLocator.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ResourceLocator.java @@ -19,32 +19,32 @@ package org.apache.james.transport.mailets.jsieve; import java.io.InputStream; +import java.time.ZonedDateTime; import org.apache.james.core.MailAddress; import org.apache.james.core.User; import org.apache.james.sieverepository.api.SieveRepository; import org.apache.james.user.api.UsersRepository; import org.apache.james.user.api.UsersRepositoryException; -import org.joda.time.DateTime; public class ResourceLocator { public static class UserSieveInformation { - private DateTime scriptActivationDate; - private DateTime scriptInterpretationDate; + private ZonedDateTime scriptActivationDate; + private ZonedDateTime scriptInterpretationDate; private InputStream scriptContent; - public UserSieveInformation(DateTime scriptActivationDate, DateTime scriptInterpretationDate, InputStream scriptContent) { + public UserSieveInformation(ZonedDateTime scriptActivationDate, ZonedDateTime scriptInterpretationDate, InputStream scriptContent) { this.scriptActivationDate = scriptActivationDate; this.scriptInterpretationDate = scriptInterpretationDate; this.scriptContent = scriptContent; } - public DateTime getScriptActivationDate() { + public ZonedDateTime getScriptActivationDate() { return scriptActivationDate; } - public DateTime getScriptInterpretationDate() { + public ZonedDateTime getScriptInterpretationDate() { return scriptInterpretationDate; } @@ -63,7 +63,7 @@ public class ResourceLocator { public UserSieveInformation get(MailAddress mailAddress) throws Exception { User username = retrieveUsername(mailAddress); - return new UserSieveInformation(sieveRepository.getActivationDateForActiveScript(username), DateTime.now(), sieveRepository.getActive(username)); + return new UserSieveInformation(sieveRepository.getActivationDateForActiveScript(username), ZonedDateTime.now(), sieveRepository.getActive(username)); } private User retrieveUsername(MailAddress mailAddress) { http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java index 82b236d..ed0feba 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java @@ -18,6 +18,7 @@ ****************************************************************/ package org.apache.james.transport.mailets.jsieve; +import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -51,7 +52,6 @@ import org.apache.jsieve.mail.SieveMailException; import org.apache.jsieve.mail.optional.EnvelopeAccessors; import org.apache.mailet.Mail; import org.apache.mailet.MailetContext; -import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -82,8 +82,8 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC private final ActionDispatcher dispatcher; private final Poster poster; - private final DateTime scriptActivationDate; - private final DateTime scriptInterpretationDate; + private final ZonedDateTime scriptActivationDate; + private final ZonedDateTime scriptInterpretationDate; private final MailAddress recipient; /** @@ -93,7 +93,7 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC * @param aMailetContext */ public SieveMailAdapter(final Mail aMail, final MailetContext aMailetContext, final ActionDispatcher dispatcher, final Poster poster, - DateTime scriptActivationDate, DateTime scriptInterpretationDate, MailAddress recipient) { + ZonedDateTime scriptActivationDate, ZonedDateTime scriptInterpretationDate, MailAddress recipient) { this.poster = poster; this.dispatcher = dispatcher; this.scriptInterpretationDate = scriptInterpretationDate; @@ -104,12 +104,12 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC } @Override - public DateTime getScriptActivationDate() { + public ZonedDateTime getScriptActivationDate() { return scriptActivationDate; } @Override - public DateTime getScriptInterpretationDate() { + public ZonedDateTime getScriptInterpretationDate() { return scriptInterpretationDate; } http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java index 7fe9f3a..b3847b9 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java @@ -19,6 +19,7 @@ package org.apache.james.transport.mailets.jsieve; +import java.time.temporal.ChronoUnit; import java.util.Enumeration; import java.util.Set; @@ -29,7 +30,6 @@ import org.apache.james.core.MailAddress; import org.apache.jsieve.mail.Action; import org.apache.jsieve.mail.optional.ActionVacation; import org.apache.mailet.Mail; -import org.joda.time.Days; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,7 +43,11 @@ public class VacationAction implements MailAction { @Override public void execute(Action action, Mail mail, ActionContext context) throws MessagingException { ActionVacation actionVacation = (ActionVacation) action; - int dayDifference = Days.daysBetween(context.getScriptActivationDate(), context.getScriptInterpretationDate()).getDays(); + int dayDifference = Long.valueOf( + ChronoUnit.DAYS.between( + context.getScriptActivationDate().toLocalDate(), + context.getScriptInterpretationDate().toLocalDate())) + .intValue(); if (isStillInVacation(actionVacation, dayDifference)) { if (isValidForReply(mail, actionVacation, context)) { if (!isMailingList(mail)) { http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java index def7677..002c0d6 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java @@ -26,6 +26,9 @@ import static org.mockito.Mockito.when; import java.net.InetAddress; import java.nio.charset.StandardCharsets; +import java.text.DateFormat; +import java.time.Instant; +import java.util.Date; import java.util.List; import java.util.TimeZone; @@ -49,7 +52,6 @@ import org.apache.mailet.base.test.FakeMail; import org.apache.mailet.base.test.FakeMailContext; import org.apache.mailet.base.test.FakeMailContext.SentMail; import org.apache.mailet.base.test.FakeMailetConfig; -import org.joda.time.DateTime; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -131,7 +133,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); @@ -162,7 +164,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); @@ -203,7 +205,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); @@ -242,7 +244,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .remoteAddr("remoteHost") .build(); @@ -281,7 +283,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .remoteAddr("remoteHost") .build(); @@ -304,7 +306,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .remoteAddr("remoteHost") .build(); @@ -328,7 +330,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .remoteAddr("remoteHost") .build(); @@ -353,7 +355,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); @@ -385,7 +387,7 @@ public class DSNBounceTest { .sender(senderMailAddress) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .mimeMessage(mimeMessage) .build(); MimeMessage mimeMessageCopy = new MimeMessage(mimeMessage); @@ -423,7 +425,7 @@ public class DSNBounceTest { .setSubject("mySubject")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); @@ -458,7 +460,7 @@ public class DSNBounceTest { .setText("My content")) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); @@ -489,7 +491,7 @@ public class DSNBounceTest { .addHeader(RFC2822Headers.DATE, expectedDate)) .name(MAILET_NAME) .recipient("[email protected]") - .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()) + .lastUpdated(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))) .build(); dsnBounce.service(mail); http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java index faad032..66ac1cb 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java @@ -24,6 +24,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.io.IOException; +import java.time.ZonedDateTime; import javax.mail.MessagingException; import javax.mail.internet.MimeBodyPart; @@ -41,9 +42,6 @@ import org.apache.mailet.Mail; import org.apache.mailet.base.test.FakeMail; import org.apache.mailet.base.test.FakeMailContext; import org.apache.mailet.base.test.FakeMailetConfig; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; import org.junit.Before; import org.junit.Test; import org.slf4j.Logger; @@ -53,11 +51,10 @@ public class SieveIntegrationTest { public static final String LOCAL_PART = "receiver"; public static final String RECEIVER_DOMAIN_COM = LOCAL_PART + "@domain.com"; - public static DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-mm-dd HH:mm:ss"); - public static final DateTime DATE_CLOSE = formatter.parseDateTime("2016-01-16 00:00:00"); - public static final DateTime DATE_DEFAULT = formatter.parseDateTime("2016-01-14 00:00:00"); - public static final DateTime DATE_NEW = formatter.parseDateTime("2016-01-18 00:00:00"); - public static final DateTime DATE_OLD = formatter.parseDateTime("2011-01-18 00:00:00"); + public static final ZonedDateTime DATE_CLOSE = ZonedDateTime.parse("2016-01-16T00:00:00Z"); + public static final ZonedDateTime DATE_DEFAULT = ZonedDateTime.parse("2016-01-14T00:00:00Z"); + public static final ZonedDateTime DATE_NEW = ZonedDateTime.parse("2016-01-18T00:00:00Z"); + public static final ZonedDateTime DATE_OLD = ZonedDateTime.parse("2011-01-18T00:00:00Z"); public static final MailboxPath NOT_SELECTED_MAILBOX = MailboxPath.forUser(LOCAL_PART, "INBOX.not.selected"); public static final MailboxPath SELECTED_MAILBOX = MailboxPath.forUser(LOCAL_PART, "INBOX.select"); public static final MailboxPath INBOX = MailboxPath.forUser(LOCAL_PART, "INBOX"); @@ -932,7 +929,7 @@ public class SieveIntegrationTest { prepareTestUsingScriptAndDates(script, DATE_DEFAULT, DATE_DEFAULT); } - private void prepareTestUsingScriptAndDates(String script, DateTime scriptCreationDate, DateTime scriptExecutionDate) throws Exception { + private void prepareTestUsingScriptAndDates(String script, ZonedDateTime scriptCreationDate, ZonedDateTime scriptExecutionDate) throws Exception { when(usersRepository.supportVirtualHosting()).thenReturn(false); when(usersRepository.getUser(new MailAddress(LOCAL_PART + "@localhost"))).thenReturn(LOCAL_PART); when(usersRepository.getUser(new MailAddress(LOCAL_PART + "@domain.com"))).thenReturn(LOCAL_PART); http://git-wip-us.apache.org/repos/asf/james-project/blob/1c69d370/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java index 3cb08d7..235d65e 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java @@ -23,6 +23,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.time.Instant; +import java.util.Date; import java.util.Optional; import java.util.TimeZone; @@ -34,7 +36,6 @@ import org.apache.james.core.builder.MimeMessageBuilder; import org.apache.james.util.MimeMessageUtil; import org.apache.mailet.Mail; import org.apache.mailet.base.test.FakeMail; -import org.joda.time.DateTime; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -94,7 +95,7 @@ public class NotifyMailetsMessageTest { @Test public void generateMessageShouldAddSentDateWhenMimeMessageAsSome() throws Exception { MimeMessage message = MimeMessageUtil.defaultMimeMessage(); - message.setSentDate(DateTime.parse("2016-09-08T14:25:52.000Z").toDate()); + message.setSentDate(Date.from(Instant.parse("2016-09-08T14:25:52.000Z"))); FakeMail mail = FakeMail.from(message); String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
