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