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);