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

commit 590d59d4fb0042c5bb025f9ecdc34280bd850d66
Author: Andi Huber <[email protected]>
AuthorDate: Thu Aug 4 07:22:09 2022 +0200

    ISIS-3109: prepare InteractionContext to be amended with time-zone info
---
 .../isis/applib/services/iactnlayer/InteractionContext.java      | 9 ++++++++-
 .../core/runtimeservices/user/ImpersonatedUserHolderDefault.java | 2 +-
 .../user/UserCurrentSessionTimeZoneHolderDefault.java            | 5 +++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git 
a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionContext.java
 
b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionContext.java
index 8674074bd7..11b46d703a 100644
--- 
a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionContext.java
+++ 
b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionContext.java
@@ -102,7 +102,14 @@ public class InteractionContext implements Serializable {
 
     @With @Getter @Builder.Default
     final @NonNull ZoneId timeZone = ZoneId.systemDefault();
-
+    /**
+     * Only override if zoneIdIfAny is present, otherwise acts as identity 
operation.
+     */
+    public InteractionContext withTimeZoneIfAny(final Optional<ZoneId> 
zoneIdIfAny) {
+        return zoneIdIfAny
+                .map(this::withTimeZone)
+                .orElse(this);
+    }
 
     /**
      * Convenience method for use with {@link 
org.apache.isis.applib.services.sudo.SudoService}, returning a
diff --git 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/ImpersonatedUserHolderDefault.java
 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/ImpersonatedUserHolderDefault.java
index 1fb34681aa..2e4b64dacf 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/ImpersonatedUserHolderDefault.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/ImpersonatedUserHolderDefault.java
@@ -39,7 +39,7 @@ public class ImpersonatedUserHolderDefault implements 
ImpersonatedUserHolder {
     private static final String SESSION_KEY_IMPERSONATED_USER =
             ImpersonatedUserHolderDefault.class.getName() + "#userMemento";
 
-    @Inject private Optional<KeyValueSessionStore> keyValueSessionStore;
+    @Inject private Optional<KeyValueSessionStore> keyValueSessionStore = 
Optional.empty();
 
     @Override
     public boolean supportsImpersonation() {
diff --git 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.java
 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.java
index 1979cee4a8..cbe3d1c60b 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.java
@@ -36,12 +36,13 @@ import lombok.NonNull;
 @Service
 @Named(IsisModuleCoreRuntimeServices.NAMESPACE + 
".UserCurrentSessionTimeZoneHolderDefault")
 @javax.annotation.Priority(PriorityPrecedence.MIDPOINT)
-public class UserCurrentSessionTimeZoneHolderDefault implements 
UserCurrentSessionTimeZoneHolder {
+public class UserCurrentSessionTimeZoneHolderDefault
+implements UserCurrentSessionTimeZoneHolder {
 
     private static final String SESSION_KEY_ZONE_ID =
             UserCurrentSessionTimeZoneHolderDefault.class.getName() + 
"#zoneId";
 
-    @Inject private Optional<KeyValueSessionStore> keyValueSessionStore;
+    @Inject private Optional<KeyValueSessionStore> keyValueSessionStore = 
Optional.empty();
 
     @Override
     public void setUserTimeZone(final @NonNull ZoneId zoneId) {

Reply via email to