You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/06/28 18:34:02 UTC

[isis] 01/02: ISIS-2734: made the clock service API more consistent, and added a number of overloads.

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

danhaywood pushed a commit to branch ISIS-2734
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 29e78ff66d38b5e404fd1705c091781635a38abb
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jun 28 17:08:54 2021 +0100

    ISIS-2734: made the clock service API more consistent, and added a number of overloads.
    
    Also undeprecated the joda time calls (for now at least)
---
 .../org/apache/isis/applib/clock/VirtualClock.java | 131 ++++++++++++++++-----
 .../isis/applib/clock/VirtualClock_frozen.java     |   4 +-
 .../isis/applib/clock/VirtualClock_system.java     |   4 +-
 .../isis/applib/clock/VirtualClock_withOffset.java |   4 +-
 .../isis/applib/services/clock/ClockService.java   |   2 +-
 .../isis/applib/services/iactn/Execution.java      |   2 +-
 .../core/interaction/session/IsisInteraction.java  |   2 +-
 .../datesql/JavaSqlDateValueSemanticsProvider.java |   2 +-
 .../JavaUtilDateValueSemanticsProvider.java        |   2 +-
 .../timesql/JavaSqlTimeValueSemanticsProvider.java |   2 +-
 .../command/CommandDtoFactoryDefault.java          |   2 +-
 .../command/CommandExecutorServiceDefault.java     |   2 +-
 .../publish/EntityChangesPublisherDefault.java     |   2 +-
 .../EntityPropertyChangePublisherDefault.java      |   2 +-
 .../session/InteractionServiceDefault.java         |   2 +-
 .../changetracking/events/TimestampService.java    |   2 +-
 .../PropertyLayout/PropertyLayoutMenu.java         |   2 +-
 .../commandlog/jdo/ui/CommandServiceMenu.java      |   3 +-
 .../applib/services/calendar/CalendarService.java  |   2 +-
 .../demotodoitem/DemoToDoItemRowHandler.java       |   2 +-
 .../todomodule/dom/ExcelDemoToDoItemMenu.java      |   2 +-
 .../ExcelDemoToDoItem_recreate5_for.java           |   2 +-
 .../fakedata/applib/services/J8DateTimes.java      |   4 +-
 .../fakedata/applib/services/J8LocalDates.java     |   4 +-
 .../fakedata/applib/services/JodaDateTimes.java    |   2 +-
 .../fakedata/applib/services/JodaLocalDates.java   |   2 +-
 .../viewer/restfulobjects/rendering/Responses.java |   2 +-
 .../AuthenticatedWebSessionForIsis.java            |   2 +-
 28 files changed, 131 insertions(+), 65 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java
index 28e18e7..f786bba 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock.java
@@ -61,12 +61,13 @@ public interface VirtualClock extends Serializable {
      * @apiNote This is a universal time difference, that does not depend on
      * where you are (eg. your current timezone), just on when you are.
      */
-    Instant now();
+    Instant nowAsInstant();
+
 
     // -- FACTORIES
 
     /**
-     * Returns a the system's default ticking clock.
+     * Returns the system's default ticking clock.
      */
     static VirtualClock system() {
         return new VirtualClock_system();
@@ -103,73 +104,139 @@ public interface VirtualClock extends Serializable {
      * Returns the (virtual) time as the number of milliseconds since the epoch start.
      *
      * @apiNote This is a universal time difference, that does not depend on
-     * where you are (eg. your current timezone), just on when you are.
+     * where you are (eg your current timezone), just on when you are.
      *
-     * @see {@link Instant}
+     * @see #nowAsInstant()
      */
-    default long getEpochMillis() {
-        return now().toEpochMilli();
+    default long nowAsEpochMilli() {
+        return nowAsInstant().toEpochMilli();
     }
 
     /**
      * Returns the (virtual) time as {@link LocalDate}, using the {@link ZoneId} timezone.
      * @param zoneId - the time-zone, which may be an offset, not null
+     *
+     * @see #nowAsInstant()
+     * @see #nowAsLocalDate()
+     */
+    default LocalDate nowAsLocalDate(final @NonNull ZoneId zoneId) {
+        return nowAsLocalDateTime(zoneId).toLocalDate();
+    }
+
+    /**
+     * Returns the (virtual) time as {@link LocalDate}, using the {@link ZoneId#systemDefault() system default} timezone.
+     *
+     * @see #nowAsInstant()
+     * @see #nowAsLocalDate(ZoneId)
      */
-    default LocalDate localDate(final @NonNull ZoneId zoneId) {
-        return localDateTime(zoneId).toLocalDate();
+    default LocalDate nowAsLocalDate() {
+        return nowAsLocalDate(ZoneId.systemDefault());
     }
 
     /**
      * Returns the (virtual) time as {@link LocalDateTime}, using the {@link ZoneId} timezone.
      * @param zoneId - the time-zone, which may be an offset, not null
+     *
+     * @see #nowAsInstant()
+     * @see #nowAsLocalDateTime()
+     */
+    default LocalDateTime nowAsLocalDateTime(final @NonNull ZoneId zoneId) {
+        return LocalDateTime.ofInstant(nowAsInstant(), zoneId);
+    }
+
+    /**
+     * Returns the (virtual) time as {@link LocalDateTime}, using the {@link ZoneId#systemDefault() system default} timezone.
+     *
+     * @see #nowAsLocalDateTime(ZoneId)
      */
-    default LocalDateTime localDateTime(final @NonNull ZoneId zoneId) {
-        return LocalDateTime.ofInstant(now(), zoneId);
+    default LocalDateTime nowAsLocalDateTime() {
+        return nowAsLocalDateTime(ZoneId.systemDefault());
     }
 
     /**
      * Returns the (virtual) time as {@link OffsetDateTime}, using the {@link ZoneId} timezone.
      * @param zoneId - the time-zone, which may be an offset, not null
+     *
+     * @see #nowAsOffsetDateTime()
      */
-    default OffsetDateTime offsetDateTime(final @NonNull ZoneId zoneId) {
-        return OffsetDateTime.ofInstant(now(), zoneId);
+    default OffsetDateTime nowAsOffsetDateTime(final @NonNull ZoneId zoneId) {
+        return OffsetDateTime.ofInstant(nowAsInstant(), zoneId);
     }
 
-    default java.util.Date javaUtilDate() {
-        return new java.util.Date(getEpochMillis());
+    /**
+     * Returns the (virtual) time as {@link OffsetDateTime}, using the {@link ZoneId#systemDefault() system default} timezone.
+     *
+     * @see #nowAsOffsetDateTime(ZoneId)
+     */
+    default OffsetDateTime nowAsOffsetDateTime() {
+        return nowAsOffsetDateTime(ZoneId.systemDefault());
     }
 
-    default java.sql.Timestamp javaSqlTimestamp() {
-        return new java.sql.Timestamp(getEpochMillis());
+    /**
+     * Returns the (virtual)time as {@link java.util.Date}.
+     */
+    default java.util.Date nowAsJavaUtilDate() {
+        return new java.util.Date(nowAsEpochMilli());
     }
 
-    default XMLGregorianCalendar xmlGregorianCalendar() {
-        return JavaSqlXMLGregorianCalendarMarshalling.toXMLGregorianCalendar(javaSqlTimestamp());
+    /**
+     * Returns the (virtual) time as {@link java.sql.Timestamp}.
+     */
+    default java.sql.Timestamp nowAsJavaSqlTimestamp() {
+        return new java.sql.Timestamp(nowAsEpochMilli());
     }
 
-    // -- DEPRECATIONS
-
     /**
-     * Returns the time as a Joda {@link org.joda.time.DateTime},
-     * using the {@link ZoneId#systemDefault() system default} timezone.
-     * @deprecated please migrate to java.time.*
+     * Returns the (virtual) time as {@link XMLGregorianCalendar}.
      */
-    @Deprecated
-    default org.joda.time.DateTime asJodaDateTime(final @NonNull ZoneId zoneId) {
-        return new org.joda.time.DateTime(getEpochMillis(), DateTimeZone.forID(zoneId.getId()));
+    default XMLGregorianCalendar nowAsXmlGregorianCalendar() {
+        return JavaSqlXMLGregorianCalendarMarshalling.toXMLGregorianCalendar(nowAsJavaSqlTimestamp());
     }
 
+
     /**
-     * Returns the time as a Joda {@link DateTime},
-     * using the {@link ZoneId#systemDefault() system default} timezone.
-     * @deprecated please migrate to java.time.*
+     * Returns the time as a Joda {@link org.joda.time.DateTime}, using the specified {@link ZoneId} timezone.
+     *
+     * @apiNote - we recommend migrating to java.time.*, however this API is not (for the moment) deprecated.
+     *
+     * @see #nowAsJodaDateTime()
      */
-    @Deprecated
-    default org.joda.time.LocalDate asJodaLocalDate(final @NonNull ZoneId zoneId) {
-        return new org.joda.time.LocalDate(getEpochMillis(), DateTimeZone.forID(zoneId.getId()));
+    default org.joda.time.DateTime nowAsJodaDateTime(final @NonNull ZoneId zoneId) {
+        return new org.joda.time.DateTime(nowAsEpochMilli(), DateTimeZone.forID(zoneId.getId()));
     }
 
+    /**
+     * Returns the time as a Joda {@link org.joda.time.DateTime}, using the {@link ZoneId#systemDefault() system default} timezone.
+     *
+     * @apiNote - we recommend migrating to java.time.*, however this API is not (for the moment) deprecated.
+     *
+     * @see #nowAsJodaDateTime(ZoneId)
+     */
+    default org.joda.time.DateTime nowAsJodaDateTime() {
+        return nowAsJodaDateTime(ZoneId.systemDefault());
+    }
 
+    /**
+     * Returns the time as a Joda {@link DateTime}, using the specified {@link ZoneId} timezone.
+     *
+     * @apiNote - we recommend migrating to java.time.*, however this API is not (for the moment) deprecated.
+     * 
+     * @see #nowAsJodaDateTime() 
+     */
+    default org.joda.time.LocalDate nowAsJodaLocalDate(final @NonNull ZoneId zoneId) {
+        return new org.joda.time.LocalDate(nowAsEpochMilli(), DateTimeZone.forID(zoneId.getId()));
+    }
 
+    /**
+     * Returns the time as a Joda {@link DateTime}, using the {@link ZoneId#systemDefault() system default} timezone.
+     *
+     * @apiNote - we recommend migrating to java.time.*, however this API is not (for the moment) deprecated.
+     * 
+     * @see #nowAsJodaLocalDate(ZoneId)
+     */
+    default org.joda.time.LocalDate nowAsJodaLocalDate() {
+        val zoneId = ZoneId.systemDefault();
+        return nowAsJodaLocalDate(zoneId);
+    }
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_frozen.java b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_frozen.java
index b01229e..6c10066 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_frozen.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_frozen.java
@@ -31,7 +31,7 @@ final class VirtualClock_frozen implements VirtualClock {
     private final Instant frozenInstant;
     
     @Override
-    public Instant now() {
+    public Instant nowAsInstant() {
         return frozenInstant;
     }
     
@@ -39,7 +39,7 @@ final class VirtualClock_frozen implements VirtualClock {
     
     @Override
     public String toString() {
-        return String.format("%s: %s", this.getClass().getSimpleName(), xmlGregorianCalendar());
+        return String.format("%s: %s", this.getClass().getSimpleName(), nowAsXmlGregorianCalendar());
     }
     
     @Override
diff --git a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_system.java b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_system.java
index 215eb4c..e395757 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_system.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_system.java
@@ -28,7 +28,7 @@ final class VirtualClock_system implements VirtualClock {
     private static final long serialVersionUID = 4019699893189814294L;
 
     @Override
-    public Instant now() {
+    public Instant nowAsInstant() {
         return Instant.now();
     }
 
@@ -36,7 +36,7 @@ final class VirtualClock_system implements VirtualClock {
     
     @Override
     public String toString() {
-        return String.format("%s: %s", this.getClass().getSimpleName(), xmlGregorianCalendar());
+        return String.format("%s: %s", this.getClass().getSimpleName(), nowAsXmlGregorianCalendar());
     }
     
     @Override
diff --git a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_withOffset.java b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_withOffset.java
index 9f4df40..415b8fd 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_withOffset.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/clock/VirtualClock_withOffset.java
@@ -35,7 +35,7 @@ final class VirtualClock_withOffset implements VirtualClock {
     private final long millisOffset;
     
     @Override
-    public Instant now() {
+    public Instant nowAsInstant() {
         return Instant.now().plusMillis(millisOffset);
     }
     
@@ -43,7 +43,7 @@ final class VirtualClock_withOffset implements VirtualClock {
     
     @Override
     public String toString() {
-        return String.format("%s: %s", this.getClass().getSimpleName(), xmlGregorianCalendar());
+        return String.format("%s: %s", this.getClass().getSimpleName(), nowAsXmlGregorianCalendar());
     }
     
     @Override
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index d82c048d..8b944fc 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -59,7 +59,7 @@ public class ClockService {
     // -- SHORTCUTS
 
     public long getEpochMillis() {
-        return getClock().getEpochMillis();
+        return getClock().nowAsEpochMilli();
     }
 
 //    public java.time.LocalDate now() {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Execution.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Execution.java
index 555647e..9f0acf1 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Execution.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Execution.java
@@ -191,7 +191,7 @@ public abstract class Execution<T extends MemberExecutionDto, E extends Abstract
             final ClockService clockService,
             final MetricsService metricsService) {
 
-        val startedAt = clockService.getClock().javaSqlTimestamp();
+        val startedAt = clockService.getClock().nowAsJavaSqlTimestamp();
         syncMetrics(When.BEFORE, startedAt, metricsService);
         return startedAt;
 
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/IsisInteraction.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/IsisInteraction.java
index bed59cb..f4f0819 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/IsisInteraction.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/IsisInteraction.java
@@ -212,7 +212,7 @@ implements InteractionInternal {
         }
         final Execution<?,?> popped = currentExecution;
 
-        final Timestamp completedAt = clockService.getClock().javaSqlTimestamp();
+        final Timestamp completedAt = clockService.getClock().nowAsJavaSqlTimestamp();
         popped.setCompletedAt(completedAt, metricsService);
 
         moveCurrentTo(currentExecution.getParent());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java
index 43537f2..b47488c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datesql/JavaSqlDateValueSemanticsProvider.java
@@ -173,7 +173,7 @@ extends ValueSemanticsProviderAbstractTemporal<Date> {
     protected Date now() {
         return getServiceRegistry().lookupService(ClockService.class)
                 .map(ClockService::getClock)
-                .map(VirtualClock::getEpochMillis)
+                .map(VirtualClock::nowAsEpochMilli)
                 .map(Date::new)
                 .orElseGet(()->new Date(System.currentTimeMillis())); // fallback to system time
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/dateutil/JavaUtilDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/dateutil/JavaUtilDateValueSemanticsProvider.java
index 756455a..4826049 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/dateutil/JavaUtilDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/dateutil/JavaUtilDateValueSemanticsProvider.java
@@ -169,7 +169,7 @@ extends ValueSemanticsProviderAbstractTemporal<java.util.Date> {
     protected Date now() {
         return getServiceRegistry().lookupService(ClockService.class)
                 .map(ClockService::getClock)
-                .map(VirtualClock::getEpochMillis)
+                .map(VirtualClock::nowAsEpochMilli)
                 .map(Date::new)
                 .orElseGet(Date::new); // fallback to system time
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java
index 3a6718a..43ba64a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java
@@ -161,7 +161,7 @@ extends ValueSemanticsProviderAbstractTemporal<Time> {
     protected Time now() {
         return getServiceRegistry().lookupService(ClockService.class)
                 .map(ClockService::getClock)
-                .map(VirtualClock::getEpochMillis)
+                .map(VirtualClock::nowAsEpochMilli)
                 .map(Time::new)
                 .orElseGet(()->new Time(System.currentTimeMillis())); // fallback to system time
     }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoFactoryDefault.java
index 6b22908..360b29c 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandDtoFactoryDefault.java
@@ -173,7 +173,7 @@ public class CommandDtoFactoryDefault implements CommandDtoFactory {
 
         dto.setInteractionId(interactionId.toString());
         dto.setUser(userService.currentUserNameElseNobody());
-        dto.setTimestamp(clockService.getClock().xmlGregorianCalendar());
+        dto.setTimestamp(clockService.getClock().nowAsXmlGregorianCalendar());
 
         for (val targetHead : targets) {
             final Bookmark bookmark = ManagedObjects.bookmarkElseFail(targetHead.getOwner());
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index 1bd1542..d74e376 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -160,7 +160,7 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
 
         val startedAt = currentExecution != null
                 ? currentExecution.getStartedAt()
-                : clockService.getClock().javaSqlTimestamp();
+                : clockService.getClock().nowAsJavaSqlTimestamp();
 
         commandOutcomeHandler.setStartedAt(startedAt);
     }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
index 50a159b..eb7f120 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityChangesPublisherDefault.java
@@ -87,7 +87,7 @@ public class EntityChangesPublisherDefault implements EntityChangesPublisher {
         return enabledSubscribers.isEmpty()
                 ? Optional.empty()
                 : hasEnlistedEntityChanges.getEntityChanges(
-                        clockService.getClock().javaSqlTimestamp(), // current time
+                        clockService.getClock().nowAsJavaSqlTimestamp(), // current time
                         userService.currentUserNameElseNobody()); // current user
     }
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java
index 082f43a..fae555e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java
@@ -95,7 +95,7 @@ public class EntityPropertyChangePublisherDefault implements EntityPropertyChang
             return Can.empty();
         }
 
-        val currentTime = clockService.getClock().javaSqlTimestamp();
+        val currentTime = clockService.getClock().nowAsJavaSqlTimestamp();
         val currentUser = userService.currentUserNameElseNobody();
         val currentTransactionId = transactionService.currentTransactionId()
                 .orElse(TransactionId.empty());
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java
index 5c18284..c9922fe 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionServiceDefault.java
@@ -384,7 +384,7 @@ implements
                         // the best we can do is to use the current time
 
                         // REVIEW: as for the interaction object, it is left somewhat high-n-dry.
-                         clockService.getClock().javaSqlTimestamp();
+                         clockService.getClock().nowAsJavaSqlTimestamp();
 
             command.updater().setCompletedAt(completedAt);
         }
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/events/TimestampService.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/events/TimestampService.java
index f5a6be7..7bcb02a 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/events/TimestampService.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/events/TimestampService.java
@@ -53,7 +53,7 @@ public class TimestampService {
         }
 
         if(persistableObject instanceof OnUpdatedAt) {
-            ((OnUpdatedAt)persistableObject).setUpdatedAt(clockService.getClock().javaSqlTimestamp());
+            ((OnUpdatedAt)persistableObject).setUpdatedAt(clockService.getClock().nowAsJavaSqlTimestamp());
         }
 
     }
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java
index b656082..8602f08 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/PropertyLayout/PropertyLayoutMenu.java
@@ -143,7 +143,7 @@ public class PropertyLayoutMenu {
     @Action(semantics = SemanticsOf.SAFE)
     @ActionLayout(cssClassFa="fa-step-forward", describedAs = "Inclusive and exclusive date ranges")
     public PropertyLayoutRenderDayVm renderDay(){
-        return new PropertyLayoutRenderDayVm(clockService.getClock().localDate(ZoneId.systemDefault()));
+        return new PropertyLayoutRenderDayVm(clockService.getClock().nowAsLocalDate(ZoneId.systemDefault()));
     }
 
 
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandServiceMenu.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandServiceMenu.java
index 496b505..41b12e6 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandServiceMenu.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandServiceMenu.java
@@ -27,7 +27,6 @@ import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -134,7 +133,7 @@ public class CommandServiceMenu {
 
 
     private LocalDate now() {
-        return clockService.getClock().localDate(ZoneId.systemDefault());
+        return clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java
index f7efe98..ed0a5ab 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java
@@ -85,7 +85,7 @@ public class CalendarService {
     }
 
     private LocalDate nowAsLocalDate() {
-        return clockService.getClock().localDate(ZoneId.systemDefault());
+        return clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
     }
 
 }
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
index 077fb4b..4762b51 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
@@ -93,7 +93,7 @@ public class DemoToDoItemRowHandler implements ExcelFixtureRowHandler {
         if(i == null) {
             return null;
         }
-        final LocalDate date = clockService.getClock().localDate(ZoneId.systemDefault());
+        final LocalDate date = clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
         return date.plusDays(i);
     }
 
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
index aa707d6..7221d8b 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
@@ -208,7 +208,7 @@ public class ExcelDemoToDoItemMenu {
     }
 
     private LocalDate currentDate() {
-        return clockService.getClock().localDate(ZoneId.systemDefault());
+        return clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
     }
 
 
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
index d39e23a..e53e838 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
@@ -99,7 +99,7 @@ public class ExcelDemoToDoItem_recreate5_for extends FixtureScript {
     }
 
     private LocalDate daysFromToday(final int i) {
-        final LocalDate date = clockService.getClock().localDate(ZoneId.systemDefault());
+        final LocalDate date = clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
         return date.plusDays(i);
     }
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
index ee27461..af84075 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
@@ -40,13 +40,13 @@ public class J8DateTimes extends AbstractRandomValueGenerator {
 
     @Programmatic
     public OffsetDateTime before(final Period period) {
-        final OffsetDateTime now = fake.clockService.getClock().offsetDateTime(ZoneId.systemDefault());
+        final OffsetDateTime now = fake.clockService.getClock().nowAsOffsetDateTime(ZoneId.systemDefault());
         return now.minus(period);
     }
 
     @Programmatic
     public OffsetDateTime after(final Period period) {
-        final OffsetDateTime now = fake.clockService.getClock().offsetDateTime(ZoneId.systemDefault());
+        final OffsetDateTime now = fake.clockService.getClock().nowAsOffsetDateTime(ZoneId.systemDefault());
         return now.plus(period);
     }
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
index 96a2691..e9c0fdc 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
@@ -40,13 +40,13 @@ public class J8LocalDates extends AbstractRandomValueGenerator {
 
     @Programmatic
     public LocalDate before(final Period period) {
-        final LocalDate now = fake.clockService.getClock().localDate(ZoneId.systemDefault());
+        final LocalDate now = fake.clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
         return now.minus(period);
     }
 
     @Programmatic
     public LocalDate after(final Period period) {
-        final LocalDate now = fake.clockService.getClock().localDate(ZoneId.systemDefault());
+        final LocalDate now = fake.clockService.getClock().nowAsLocalDate(ZoneId.systemDefault());
         return now.plus(period);
     }
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
index 6b86f18..15a4c0b 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
@@ -56,7 +56,7 @@ public class JodaDateTimes extends AbstractRandomValueGenerator{
     }
 
     private DateTime now() {
-        return fake.clockService.getClock().asJodaDateTime(ZoneId.systemDefault());
+        return fake.clockService.getClock().nowAsJodaDateTime(ZoneId.systemDefault());
     }
 
 }
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
index 52238b4..4f2a7c6 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
@@ -56,6 +56,6 @@ public class JodaLocalDates extends AbstractRandomValueGenerator{
     }
 
     private LocalDate now() {
-        return fake.clockService.getClock().asJodaLocalDate(ZoneId.systemDefault());
+        return fake.clockService.getClock().nowAsJodaLocalDate(ZoneId.systemDefault());
     }
 }
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
index 7ffced6..1e7ed34 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/Responses.java
@@ -89,7 +89,7 @@ public final class Responses {
     private static Date now(final ReprRenderer<?> renderer) {
         if(renderer instanceof ReprRendererAbstract) {
             ((ReprRendererAbstract<?>)renderer).getResourceContext().getMetaModelContext().getServiceRegistry()
-            .lookupServiceElseFail(ClockService.class).getClock().javaUtilDate();
+            .lookupServiceElseFail(ClockService.class).getClock().nowAsJavaUtilDate();
         }
         return new Date();
     }
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
index 07d3b27..b5937ee 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
@@ -242,7 +242,7 @@ implements BreadcrumbModelProvider, BookmarkedPagesModelProvider, HasCommonConte
 
         final Runnable loggingTask = ()->{
 
-            val now = virtualClock().javaUtilDate();
+            val now = virtualClock().nowAsJavaUtilDate();
 
             // use hashcode as session identifier, to avoid re-binding http sessions if using Session#getId()
             int sessionHashCode = System.identityHashCode(AuthenticatedWebSessionForIsis.this);