You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/07/26 06:39:04 UTC

[isis] branch master updated: ISIS-3085: minor: consolidation of common date/time formatters

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 8da7c6aa22 ISIS-3085: minor: consolidation of common date/time formatters
8da7c6aa22 is described below

commit 8da7c6aa226f7bff839b257b428a3798032be3ce
Author: andi-huber <ah...@apache.org>
AuthorDate: Tue Jul 26 08:38:55 2022 +0200

    ISIS-3085: minor: consolidation of common date/time formatters
---
 .../apache/isis/commons/internal/base/_Times.java  | 17 +++++++++++++
 .../commons/internal/debug/xray/XrayDataModel.java |  6 ++---
 .../audittrail/applib/dom/AuditTrailEntry.java     | 28 ++++++++++------------
 .../sessionlog/applib/dom/SessionLogEntry.java     |  9 ++++---
 4 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Times.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Times.java
index f0f4f6038d..0a282fab2e 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Times.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Times.java
@@ -21,6 +21,7 @@ package org.apache.isis.commons.internal.base;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.sql.Timestamp;
+import java.time.format.DateTimeFormatter;
 import java.util.Optional;
 
 import org.springframework.lang.Nullable;
@@ -42,6 +43,20 @@ import lombok.experimental.UtilityClass;
 @UtilityClass
 public final class _Times {
 
+    /**
+     * The default date/time format (seconds resolution): {@code 'yyyy-MM-dd HH:mm:ss'}.
+     * As used for auditing, session-logging, etc.
+     */
+    public static final DateTimeFormatter DEFAULT_LOCAL_DATETIME_FORMATTER =
+            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+    /**
+     * The default date/time format (milliseconds resolution): {@code 'yyyy-MM-dd HH:mm:ss.SSS'}.
+     * As used eg. for Xray.
+     */
+    public static final DateTimeFormatter DEFAULT_LOCAL_DATETIME_FORMATTER_WITH_MILLIS =
+            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
+
     /**
      * Returns duration between {@code startedAt} and {@code completedAt} in <i>seconds</i>,
      * to 3 decimal places.
@@ -59,6 +74,8 @@ public final class _Times {
 
     // -- HELPER
 
+
+
     private static BigDecimal millisToSeconds(final long millis) {
         return new BigDecimal(millis)
                 .movePointLeft(3)
diff --git a/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/XrayDataModel.java b/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/XrayDataModel.java
index 7fe08a9b23..ab80f30ce7 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/XrayDataModel.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/debug/xray/XrayDataModel.java
@@ -22,7 +22,6 @@ import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Graphics2D;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -37,6 +36,7 @@ import javax.swing.JScrollPane;
 
 import org.apache.isis.commons.functional.IndexedConsumer;
 import org.apache.isis.commons.internal.base._Refs;
+import org.apache.isis.commons.internal.base._Times;
 import org.apache.isis.commons.internal.debug.xray.XrayModel.HasIdAndLabel;
 import org.apache.isis.commons.internal.debug.xray.XrayModel.Stickiness;
 import org.apache.isis.commons.internal.debug.xray.graphics.SequenceDiagram;
@@ -124,9 +124,7 @@ public abstract class XrayDataModel extends HasIdAndLabel {
             logMessagePane.setEditable(false);
             logMessagePane.setText(logMessage);
 
-            val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
-
-            val timestampLabel = new JLabel(timestamp.format(formatter));
+            val timestampLabel = new JLabel(timestamp.format(_Times.DEFAULT_LOCAL_DATETIME_FORMATTER_WITH_MILLIS));
 
             panel2.add(
                     _SwingUtil.verticalBox(
diff --git a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
index 97d8e37fc3..26459342af 100644
--- a/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
+++ b/extensions/security/audittrail/applib/src/main/java/org/apache/isis/extensions/audittrail/applib/dom/AuditTrailEntry.java
@@ -23,7 +23,6 @@ package org.apache.isis.extensions.audittrail.applib.dom;
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
-import java.time.format.DateTimeFormatter;
 import java.util.UUID;
 
 import javax.inject.Named;
@@ -44,8 +43,9 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.TitleBuffer;
-import org.apache.isis.extensions.audittrail.applib.IsisModuleExtAuditTrailApplib;
 import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.base._Times;
+import org.apache.isis.extensions.audittrail.applib.IsisModuleExtAuditTrailApplib;
 
 import lombok.val;
 import lombok.experimental.UtilityClass;
@@ -96,7 +96,7 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
 
 
     @Programmatic
-    public void init(EntityPropertyChange change) {
+    public void init(final EntityPropertyChange change) {
         setTimestamp(change.getTimestamp());
         setUsername(change.getUsername());
         setTarget(change.getTarget());
@@ -108,13 +108,10 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
         setInteractionId(change.getInteractionId());
     }
 
-
-    private static final DateTimeFormatter formatter =
-            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-
     public String title() {
         val buf = new TitleBuffer();
-        buf.append(formatter.format(getTimestamp().toLocalDateTime()));
+        buf.append(_Times.DEFAULT_LOCAL_DATETIME_FORMATTER
+                .format(getTimestamp().toLocalDateTime()));
         buf.append(" ").append(getLogicalMemberIdentifier());
         return buf.toString();
     }
@@ -201,13 +198,6 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
 
 
 
-    /**
-     * The 0-based sequence number of the transaction in which this audit entry was persisted.
-     *
-     * <p>
-     * The combination of (({@link #getInteractionId() interactionId}, {@link #getSequence() sequence}) makes up the unique transaction identifier.
-     * </p>
-     */
     /**
      * The 0-based additional identifier of an execution event within the given {@link #getInteractionId() interaction}.
      *
@@ -215,7 +205,8 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
      * The combination of ({@link #getInteractionId() interactionId}, {@link #getSequence() sequence}) makes up the
      * primary key.
      * </p>
-     */    @Property(
+     */
+    @Property(
             domainEvent = Sequence.DomainEvent.class
     )
     @HasInteractionIdAndSequence.Sequence
@@ -249,6 +240,7 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
         String ALLOWS_NULL = DomainChangeRecord.LogicalMemberIdentifier.ALLOWS_NULL;
 
     }
+    @Override
     @LogicalMemberIdentifier
     public abstract String getLogicalMemberIdentifier();
     public abstract void setLogicalMemberIdentifier(String logicalMemberIdentifier);
@@ -271,6 +263,7 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
         String ALLOWS_NULL = "false";
 
     }
+    @Override
     @PropertyId
     public abstract String getPropertyId();
     public abstract void setPropertyId(String propertyId);
@@ -294,6 +287,7 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
         String ALLOWS_NULL = "true";
 
     }
+    @Override
     @PreValue
     public abstract String getPreValue();
     public abstract void setPreValue(String preValue);
@@ -316,6 +310,7 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
         String ALLOWS_NULL = "true";
 
     }
+    @Override
     @PostValue
     public abstract String getPostValue();
     public abstract void setPostValue(String postValue);
@@ -335,6 +330,7 @@ public abstract class AuditTrailEntry implements DomainChangeRecord, Comparable<
         return contract.toString(AuditTrailEntry.this);
     }
 
+    @Override
     public int compareTo(final AuditTrailEntry other) {
         return contract.compare(this, other);
     }
diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.java
index df740afc52..5c3d05cf65 100644
--- a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.java
+++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.java
@@ -25,7 +25,6 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.sql.Timestamp;
-import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.UUID;
 
@@ -49,6 +48,7 @@ import org.apache.isis.applib.layout.component.CssClassFaPosition;
 import org.apache.isis.applib.mixins.security.HasUsername;
 import org.apache.isis.applib.services.session.SessionSubscriber;
 import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.commons.internal.base._Times;
 import org.apache.isis.extensions.sessionlog.applib.IsisModuleExtSessionLogApplib;
 
 import lombok.experimental.UtilityClass;
@@ -114,13 +114,11 @@ public abstract class SessionLogEntry implements HasUsername, Comparable<Session
         setLoginTimestamp(loginTimestamp);
     }
 
-    private static final DateTimeFormatter formatter =
-            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-
     public String title() {
 
         return String.format("%s: %s logged %s %s",
-                formatter.format(getLoginTimestamp().toLocalDateTime()),
+                _Times.DEFAULT_LOCAL_DATETIME_FORMATTER
+                    .format(getLoginTimestamp().toLocalDateTime()),
                 getUsername(),
                 getLogoutTimestamp() == null ? "in": "out",
                 getCausedBy() == SessionSubscriber.CausedBy.SESSION_EXPIRATION ? "(session expired)" : "");
@@ -205,6 +203,7 @@ public abstract class SessionLogEntry implements HasUsername, Comparable<Session
         boolean NULLABLE = HasUsername.Username.NULLABLE;
         String ALLOWS_NULL = HasUsername.Username.ALLOWS_NULL;
     }
+    @Override
     @Username
     public abstract String getUsername();
     public abstract void setUsername(String username);