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 rc...@apache.org on 2020/05/04 10:01:54 UTC

[james-project] 07/14: [Refactoring] replace a lang3.time.FastDateFormat with a java.time.format.DateTimeFormatter

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 42f7bc9064fa27c032cc301554abdb0b7829a49f
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Tue Apr 28 22:59:04 2020 +0200

    [Refactoring] replace a lang3.time.FastDateFormat with a java.time.format.DateTimeFormatter
---
 .../main/java/org/apache/mailet/base/DateFormats.java    | 16 ++++------------
 .../org/apache/james/transport/mailets/DSNBounce.java    | 13 ++++++++-----
 .../apache/james/transport/mailets/WhiteListManager.java |  3 ++-
 .../james/transport/mailets/redirect/MailModifier.java   |  4 ++--
 .../apache/james/transport/mailets/DSNBounceTest.java    |  4 ++--
 5 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/mailet/base/src/main/java/org/apache/mailet/base/DateFormats.java b/mailet/base/src/main/java/org/apache/mailet/base/DateFormats.java
index 90abbb1..53d99d0 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/DateFormats.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/DateFormats.java
@@ -20,20 +20,12 @@
 
 package org.apache.mailet.base;
 
+import java.time.format.DateTimeFormatter;
 import java.util.Locale;
-import java.util.TimeZone;
 
-import org.apache.commons.lang3.time.FastDateFormat;
+public interface DateFormats {
 
-public class DateFormats {
-
-    public static FastDateFormat getRFC822FormatForTimeZone(TimeZone timeZone) {
-        return FastDateFormat.getInstance("EEE, d MMM yyyy HH:mm:ss 'XXXXX' (z)", timeZone, Locale.US);
-    }
-
-    public static FastDateFormat RFC822_DATE_FORMAT = FastDateFormat.getInstance("EEE, d MMM yyyy HH:mm:ss 'XXXXX' (z)", Locale.US);
-    public static FastDateFormat RFC977_SHORT_DATE_FORMAT = FastDateFormat.getInstance("yyMMdd HHmmss", Locale.US);
-    public static FastDateFormat RFC977_LONG_DATE_FORMAT = FastDateFormat.getInstance("yyyyMMdd HHmmss", Locale.US);
-    public static FastDateFormat RFC2980_LONG_DATE_FORMAT = FastDateFormat.getInstance("yyyyMMddHHmmss", Locale.US);
+    DateTimeFormatter RFC822_DATE_FORMAT =
+        DateTimeFormatter.ofPattern("EEE, d MMM yyyy HH:mm:ss 'XXXXX' (z)", Locale.US);
 }
 
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
index b916db0..423da7b 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
@@ -21,6 +21,10 @@ package org.apache.james.transport.mailets;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
@@ -33,7 +37,6 @@ import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.james.core.MailAddress;
 import org.apache.james.core.MaybeSender;
 import org.apache.james.dnsservice.api.DNSService;
@@ -119,7 +122,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
     private static final AttributeName DELIVERY_ERROR = AttributeName.of("delivery-error");
 
     private final DNSService dns;
-    private final FastDateFormat dateFormatter;
+    private final DateTimeFormatter dateFormatter;
     private String messageString = null;
 
     @Inject
@@ -127,7 +130,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
         this(dns, DateFormats.RFC822_DATE_FORMAT);
     }
 
-    public DSNBounce(DNSService dns, FastDateFormat dateFormatter) {
+    public DSNBounce(DNSService dns, DateTimeFormatter dateFormatter) {
         this.dns = dns;
         this.dateFormatter = dateFormatter;
     }
@@ -295,7 +298,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
     private String getDateHeader(Mail originalMail) throws MessagingException {
         String[] date = originalMail.getMessage().getHeader(RFC2822Headers.DATE);
         if (date == null) {
-            return dateFormatter.format(new Date());
+            return dateFormatter.format(LocalDateTime.now());
         }
         return date[0];
     }
@@ -415,7 +418,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
         buffer.append("Action: failed").append(LINE_BREAK);
         buffer.append("Status: " + deliveryError).append(LINE_BREAK);
         buffer.append("Diagnostic-Code: " + getDiagnosticType(deliveryError) + "; " + deliveryError).append(LINE_BREAK);
-        buffer.append("Last-Attempt-Date: " + dateFormatter.format(lastUpdated))
+        buffer.append("Last-Attempt-Date: " + dateFormatter.format(ZonedDateTime.ofInstant(lastUpdated.toInstant(), ZoneId.systemDefault())))
             .append(LINE_BREAK);
     }
 
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
index 4e78ea1..2d17c4a 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
@@ -28,6 +28,7 @@ import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -687,7 +688,7 @@ public class WhiteListManager extends GenericMailet {
 
             // Set additional headers
             if (reply.getHeader(RFC2822Headers.DATE) == null) {
-                reply.setHeader(RFC2822Headers.DATE, DateFormats.RFC822_DATE_FORMAT.format(new java.util.Date()));
+                reply.setHeader(RFC2822Headers.DATE, DateFormats.RFC822_DATE_FORMAT.format(LocalDateTime.now()));
             }
             String subject = message.getSubject();
             if (subject == null) {
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
index cdad611..aa2b79e 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
@@ -19,7 +19,7 @@
 package org.apache.james.transport.mailets.redirect;
 
 import java.net.UnknownHostException;
-import java.util.Date;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Optional;
 
@@ -213,7 +213,7 @@ public class MailModifier {
 
     public void initializeDateIfNotPresent() throws MessagingException {
         if (mail.getMessage().getHeader(RFC2822Headers.DATE) == null) {
-            mail.getMessage().setHeader(RFC2822Headers.DATE, DateFormats.RFC822_DATE_FORMAT.format(new Date()));
+            mail.getMessage().setHeader(RFC2822Headers.DATE, DateFormats.RFC822_DATE_FORMAT.format(LocalDateTime.now()));
         }
     }
 
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 e3dcd68..176eb60 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
@@ -27,9 +27,9 @@ import static org.mockito.Mockito.when;
 import java.net.InetAddress;
 import java.nio.charset.StandardCharsets;
 import java.time.Instant;
+import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
-import java.util.TimeZone;
 
 import javax.mail.BodyPart;
 import javax.mail.MessagingException;
@@ -74,7 +74,7 @@ public class DSNBounceTest {
         postmaster = new MailAddress("postmaster@domain.com");
         
         DNSService dnsService = mock(DNSService.class);
-        dsnBounce = new DSNBounce(dnsService, DateFormats.getRFC822FormatForTimeZone(TimeZone.getTimeZone("UTC")));
+        dsnBounce = new DSNBounce(dnsService, DateFormats.RFC822_DATE_FORMAT.withZone(ZoneId.of("UTC")));
         fakeMailContext = FakeMailContext.builder().postmaster(postmaster).build();
 
         InetAddress localHost = InetAddress.getLocalHost();


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