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/07 19:00:04 UTC

[isis] branch ISIS-2726 created (now 47b1392)

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

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


      at 47b1392  ISIS-2726: just renaming some classes for better consistency

This branch includes the following new commits:

     new 47b1392  ISIS-2726: just renaming some classes for better consistency

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[isis] 01/01: ISIS-2726: just renaming some classes for better consistency

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 47b13920bab387d55ffc51f598e5ff8779c136ec
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jun 7 19:59:13 2021 +0100

    ISIS-2726: just renaming some classes for better consistency
---
 .../applib/services/iactn/ExecutionContext.java    |  7 +-
 .../interaction/integration/IsisRequestCycle.java  |  2 +-
 .../interaction/session/InteractionFactory.java    | 48 +++++++-------
 ...henticationLayer.java => InteractionLayer.java} |  4 +-
 .../interaction/session/InteractionTracker.java    | 32 ++++++----
 .../core/runtime/context/RuntimeContextBase.java   |  2 +-
 .../session/InteractionFactoryDefault.java         | 74 ++++++++++------------
 .../isis/core/runtimeservices/session/_Xray.java   |  6 +-
 .../runtimeservices/sudo/SudoServiceDefault.java   |  2 +-
 .../wrapper/WrapperFactoryDefault.java             |  6 +-
 .../security/authentication/Authentication.java    |  5 ++
 .../authentication/AuthenticationContext.java      |  2 +-
 .../manager/AnonymousInteractionFactory.java       | 13 +++-
 .../apache/isis/core/security/util/XrayUtil.java   |  2 +-
 .../viewer/vaadin/viewer/IsisServletForVaadin.java |  2 +-
 .../applayer/ApplicationLayerTestFactory.java      |  2 +-
 .../applib/IsisInteractionHandler.java             |  2 +-
 .../IsisRestfulObjectsInteractionFilter.java       |  2 +-
 18 files changed, 117 insertions(+), 96 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/ExecutionContext.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/ExecutionContext.java
index 4a88c76..ac77e95 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/ExecutionContext.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/ExecutionContext.java
@@ -77,7 +77,12 @@ public class ExecutionContext implements Serializable {
      */
     public static ExecutionContext ofUserWithSystemDefaults(
             final @NonNull UserMemento user) {
-        return new ExecutionContext(user, VirtualClock.system(), Locale.getDefault(), TimeZone.getDefault());
+        return ExecutionContext.builder()
+                .user(user)
+                .clock(VirtualClock.system())
+                .locale(Locale.getDefault())
+                .timeZone(TimeZone.getDefault())
+                .build();
     }
 
 }
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/integration/IsisRequestCycle.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/integration/IsisRequestCycle.java
index 1db3507..01e6a8f 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/integration/IsisRequestCycle.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/integration/IsisRequestCycle.java
@@ -56,7 +56,7 @@ public class IsisRequestCycle {
 
     public void onEndRequest() {
 
-        isisInteractionFactory.closeSessionStack();
+        isisInteractionFactory.closeInteractionLayers();
 
     }
 
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java
index 0254ceb..01c2480 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java
@@ -28,15 +28,12 @@ import org.apache.isis.core.security.authentication.manager.AnonymousInteraction
 import lombok.NonNull;
 
 /**
- * The factory of {@link InteractionSession}(s) and {@link AuthenticationLayer}(s),
- * also holding a reference to the current authentication layer stack using
+ * The factory of {@link Authentication}(s) and {@link InteractionLayer}(s),
+ * holding a reference to the current
+ * {@link InteractionLayer authentication layer} stack using
  * a thread-local.
  *
  * <p>
- * The implementation is a singleton service.
- * </p>
- *
- * <p>
  * @apiNote This is a framework internal class and so does not constitute a formal API.
  * </p>
  *
@@ -46,42 +43,43 @@ public interface InteractionFactory
 extends AnonymousInteractionFactory {
 
     /**
-     * If present, reuses the current top level {@link AuthenticationLayer}, otherwise creates a new
+     * If present, reuses the current top level {@link InteractionLayer}, otherwise creates a new
      * anonymous one.
+     *
      * @see {@link #openInteraction(Authentication)}
      */
-    AuthenticationLayer openInteraction();
+    InteractionLayer openInteraction();
 
     /**
-     * Returns a new or reused {@link AuthenticationLayer} that is a holder of {@link Authentication}
+     * Returns a new or reused {@link InteractionLayer} that is a holder of {@link Authentication}
      * on top of the current thread's authentication layer stack.
      * <p>
-     * If available reuses an existing {@link InteractionSession}, otherwise creates a new one.
+     * If available reuses an existing {@link Authentication}, otherwise creates a new one.
      * <p>
-     * The {@link InteractionSession} represents a user's span of activities interacting with
-     * the application. The session's stack is later closed using {@link #closeSessionStack()}.
+     * The {@link InteractionLayer} represents a user's span of activities interacting with
+     * the application. The session's stack is later closed using {@link #closeInteractionLayers()}.
      *
      * @param authentication - the {@link Authentication} to associate with the new top of
      * the stack (non-null)
      *
-     * @apiNote if the current {@link AuthenticationLayer} (if any) has an {@link Authentication} that
+     * @apiNote if the current {@link InteractionLayer} (if any) has an {@link Authentication} that
      * equals that of the given one, as an optimization, no new layer is pushed onto the stack;
      * instead the current one is returned
      */
-    AuthenticationLayer openInteraction(@NonNull Authentication authentication);
+    InteractionLayer openInteraction(@NonNull Authentication authentication);
 
     /**
-     * @return whether the calling thread is within the context of an open {@link InteractionSession}
+     * @return whether the calling thread is within the context of an open {@link InteractionLayer}
      */
     boolean isInInteraction();
 
     /**
-     * Executes a block of code with a new or reused {@link InteractionSession} using a new or
-     * reused {@link AuthenticationLayer}.
+     * Executes a block of code with a new or reused {@link Authentication} using a new or
+     * reused {@link InteractionLayer}.
      * <p>
-     * If there is currently no {@link InteractionSession} a new one is created.
+     * If there is currently no {@link InteractionLayer} a new one is created.
      * <p>
-     * If there is currently an {@link AuthenticationLayer} that has an equal {@link Authentication}
+     * If there is currently an {@link InteractionLayer} that has an equal {@link Authentication}
      * to the given one, it is reused, otherwise a new one is created.
      *
      * @param authentication - the user details to run under (non-null)
@@ -98,11 +96,11 @@ extends AnonymousInteractionFactory {
     void runAuthenticated(@NonNull Authentication authentication, @NonNull ThrowingRunnable runnable);
 
     /**
-     * Executes a block of code with a new or reused {@link InteractionSession} using a new or
-     * reused {@link AuthenticationLayer}.
+     * Executes a block of code with a new or reused {@link Authentication} using a new or
+     * reused {@link InteractionLayer}.
      * <p>
-     * If there is currently no {@link InteractionSession} a new one is created and a new
-     * anonymous {@link AuthenticationLayer} is returned. Otherwise both, session and layer are reused.
+     * If there is currently no {@link InteractionLayer} a new one is created and a new
+     * anonymous {@link InteractionLayer} is returned. Otherwise both, session and layer are reused.
      *
      * @param <R>
      * @param callable (non-null)
@@ -117,9 +115,9 @@ extends AnonymousInteractionFactory {
     void runAnonymous(@NonNull ThrowingRunnable runnable);
 
     /**
-     * closes all open {@link AuthenticationLayer}(s) as stacked on the current thread
+     * closes all open {@link InteractionLayer}(s) as stacked on the current thread
      */
-    void closeSessionStack();
+    void closeInteractionLayers();
 
 
 }
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/AuthenticationLayer.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionLayer.java
similarity index 96%
rename from core/interaction/src/main/java/org/apache/isis/core/interaction/session/AuthenticationLayer.java
rename to core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionLayer.java
index d4567ab..2195682 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/AuthenticationLayer.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionLayer.java
@@ -32,12 +32,12 @@ import lombok.NonNull;
  * @since 2.0
  *
  */
-public class AuthenticationLayer {
+public class InteractionLayer {
 
 	@Getter private final IsisInteraction interaction;
 	@Getter private final Authentication authentication;
 
-	public AuthenticationLayer(
+	public InteractionLayer(
 			final @NonNull IsisInteraction interaction,
 			final @NonNull Authentication authentication) {
 
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
index ada229b..4e2779c 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
@@ -30,38 +30,46 @@ import org.apache.isis.core.security.authentication.AuthenticationContext;
 /**
  *
  * @since 2.0
- *
  */
 public interface InteractionTracker
 extends InteractionContext, AuthenticationContext {
 
     /** @return the AuthenticationLayer that sits on top of the current
      * request- or test-scoped InteractionSession's stack*/
-    Optional<AuthenticationLayer> currentAuthenticationLayer();
+    Optional<InteractionLayer> currentInteractionLayer();
 
-    default AuthenticationLayer currentAuthenticationLayerElseFail() {
-        return currentAuthenticationLayer()
-        .orElseThrow(()->_Exceptions.illegalState("No InteractionSession available on current thread"));
+    default InteractionLayer currentInteractionLayerElseFail() {
+        return currentInteractionLayer()
+        .orElseThrow(()->_Exceptions.illegalState("No InteractionLayer available on current thread"));
     }
 
+    /**
+     * Returns the {@link ExecutionContext} wrapped by the {@link #currentInteractionLayer()} (if within an interaction layer).
+     */
     default Optional<ExecutionContext> currentExecutionContext() {
-        return currentAuthenticationLayer().map(AuthenticationLayer::getExecutionContext);
+        return currentInteractionLayer().map(InteractionLayer::getExecutionContext);
     }
 
-    // -- AUTHENTICATION CONTEXT
 
+    // -- AUTHENTICATION
+
+    /**
+     * Returns the {@link Authentication} wrapped by the {@link #currentInteractionLayer()} (if within an interaction layer).
+     */
     @Override
     default Optional<Authentication> currentAuthentication() {
-        return currentAuthenticationLayer().map(AuthenticationLayer::getAuthentication);
+        return currentInteractionLayer().map(InteractionLayer::getAuthentication);
     }
 
-    // -- INTERACTION CONTEXT
 
+    // -- INTERACTION
+
+    /**
+     * Returns the {@link Interaction} wrapped by the {@link #currentInteractionLayer()} (if within an interaction layer).
+     */
     @Override
     default Optional<Interaction> currentInteraction(){
-    	return currentAuthenticationLayer().map(AuthenticationLayer::getInteraction);
+    	return currentInteractionLayer().map(InteractionLayer::getInteraction);
     }
 
-
-
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java
index 7017257..3e151e5 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContextBase.java
@@ -89,7 +89,7 @@ public abstract class RuntimeContextBase implements RuntimeContext {
         .ifPresent(authentication->{
 
             authenticationManager.closeSession(authentication);
-            interactionFactory.closeSessionStack();
+            interactionFactory.closeInteractionLayers();
 
         });
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java
index 85bb842..815280a 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java
@@ -55,16 +55,14 @@ import org.apache.isis.commons.internal.concurrent._ConcurrentTaskList;
 import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.interaction.integration.InteractionAwareTransactionalBoundaryHandler;
 import org.apache.isis.core.interaction.scope.InteractionScopeAware;
 import org.apache.isis.core.interaction.scope.InteractionScopeBeanFactoryPostProcessor;
 import org.apache.isis.core.interaction.scope.InteractionScopeLifecycleHandler;
-import org.apache.isis.core.interaction.session.AuthenticationLayer;
+import org.apache.isis.core.interaction.session.InteractionLayer;
 import org.apache.isis.core.interaction.session.InteractionFactory;
 import org.apache.isis.core.interaction.session.InteractionTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.services.publishing.CommandPublisher;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.events.MetamodelEventService;
@@ -95,8 +93,6 @@ implements
     @Inject AuthenticationManager authenticationManager;
     @Inject MetamodelEventService runtimeEventService;
     @Inject SpecificationLoader specificationLoader;
-    @Inject MetaModelContext metaModelContext;
-    @Inject IsisConfiguration configuration;
     @Inject ServiceInjector serviceInjector;
 
     @Inject InteractionAwareTransactionalBoundaryHandler txBoundaryHandler;
@@ -150,25 +146,25 @@ implements
 
     }
 
-    private final ThreadLocal<Stack<AuthenticationLayer>> authenticationStack =
+    private final ThreadLocal<Stack<InteractionLayer>> interactionLayerStack =
             ThreadLocal.withInitial(Stack::new);
 
     @Override
-    public int getAuthenticationLayerCount() {
-        return authenticationStack.get().size();
+    public int getInteractionLayerCount() {
+        return interactionLayerStack.get().size();
     }
 
     @Override
-    public AuthenticationLayer openInteraction() {
-        return currentAuthenticationLayer()
+    public InteractionLayer openInteraction() {
+        return currentInteractionLayer()
                 // or else create an anonymous authentication layer
-                .orElseGet(()->openInteraction(new AnonymousSession()));
+                .orElseGet(()-> openInteraction(new AnonymousSession()));
     }
 
     @Override
-    public AuthenticationLayer openInteraction(final @NonNull Authentication authToUse) {
+    public InteractionLayer openInteraction(final @NonNull Authentication authToUse) {
 
-        val interactionSession = getOrCreateInteractionSession();
+        val isisInteraction = getOrCreateIsisInteraction();
 
         // check whether we should reuse any current authenticationLayer,
         // that is, if current authentication and authToUse are equal
@@ -179,51 +175,51 @@ implements
 
         if(reuseCurrentLayer) {
             // we are done, just return the stack's top
-            return authenticationStack.get().peek();
+            return interactionLayerStack.get().peek();
         }
 
-        val authenticationLayer = new AuthenticationLayer(interactionSession, authToUse);
+        val authenticationLayer = new InteractionLayer(isisInteraction, authToUse);
 
-        authenticationStack.get().push(authenticationLayer);
+        interactionLayerStack.get().push(authenticationLayer);
 
         if(isInBaseLayer()) {
-        	postSessionOpened(interactionSession);
+        	postSessionOpened(isisInteraction);
         }
 
         if(log.isDebugEnabled()) {
-            log.debug("new authentication layer created (conversation-id={}, total-layers-on-stack={}, {})",
+            log.debug("new interaction layer created (conversation-id={}, total-layers-on-stack={}, {})",
                     interactionId.get(),
-                    authenticationStack.get().size(),
+                    interactionLayerStack.get().size(),
                     _Probe.currentThreadId());
         }
 
         if(XrayUi.isXrayEnabled()) {
-            _Xray.newAuthenticationLayer(authenticationStack.get());
+            _Xray.newInteractionLayer(interactionLayerStack.get());
         }
 
         return authenticationLayer;
     }
 
-    private IsisInteraction getOrCreateInteractionSession() {
+    private IsisInteraction getOrCreateIsisInteraction() {
 
-    	return authenticationStack.get().isEmpty()
+    	return interactionLayerStack.get().isEmpty()
     			? new IsisInteraction(UUID.randomUUID())
-				: authenticationStack.get().firstElement().getInteraction();
+				: interactionLayerStack.get().firstElement().getInteraction();
     }
 
     @Override
-    public void closeSessionStack() {
+    public void closeInteractionLayers() {
         log.debug("about to close the authentication stack (conversation-id={}, total-layers-on-stack={}, {})",
                 interactionId.get(),
-                authenticationStack.get().size(),
+                interactionLayerStack.get().size(),
                 _Probe.currentThreadId());
 
-        closeSessionStackDownToStackSize(0);
+        closeInteractionLayerStackDownToStackSize(0);
     }
 
 	@Override
-    public Optional<AuthenticationLayer> currentAuthenticationLayer() {
-    	val stack = authenticationStack.get();
+    public Optional<InteractionLayer> currentInteractionLayer() {
+    	val stack = interactionLayerStack.get();
     	return stack.isEmpty()
     	        ? Optional.empty()
                 : Optional.of(stack.lastElement());
@@ -231,7 +227,7 @@ implements
 
     @Override
     public boolean isInInteraction() {
-        return !authenticationStack.get().isEmpty();
+        return !interactionLayerStack.get().isEmpty();
     }
 
     // -- AUTHENTICATED EXECUTION
@@ -242,14 +238,14 @@ implements
             @NonNull final Authentication authentication,
             @NonNull final Callable<R> callable) {
 
-        final int stackSizeWhenEntering = authenticationStack.get().size();
+        final int stackSizeWhenEntering = interactionLayerStack.get().size();
         openInteraction(authentication);
 
         try {
             serviceInjector.injectServicesInto(callable);
             return callable.call();
         } finally {
-            closeSessionStackDownToStackSize(stackSizeWhenEntering);
+            closeInteractionLayerStackDownToStackSize(stackSizeWhenEntering);
         }
 
     }
@@ -260,14 +256,14 @@ implements
             @NonNull final Authentication authentication,
             @NonNull final ThrowingRunnable runnable) {
 
-        final int stackSizeWhenEntering = authenticationStack.get().size();
+        final int stackSizeWhenEntering = interactionLayerStack.get().size();
         openInteraction(authentication);
 
         try {
             serviceInjector.injectServicesInto(runnable);
             runnable.run();
         } finally {
-            closeSessionStackDownToStackSize(stackSizeWhenEntering);
+            closeInteractionLayerStackDownToStackSize(stackSizeWhenEntering);
         }
 
     }
@@ -311,7 +307,7 @@ implements
     // -- HELPER
 
     private boolean isInBaseLayer() {
-    	return authenticationStack.get().size()==1;
+    	return interactionLayerStack.get().size()==1;
     }
 
     private void postSessionOpened(IsisInteraction interaction) {
@@ -333,26 +329,26 @@ implements
         interaction.close(); // do this last
     }
 
-    private void closeSessionStackDownToStackSize(int downToStackSize) {
+    private void closeInteractionLayerStackDownToStackSize(int downToStackSize) {
 
         log.debug("about to close authenication stack down to size {} (conversation-id={}, total-sessions-on-stack={}, {})",
                 downToStackSize,
                 interactionId.get(),
-                authenticationStack.get().size(),
+                interactionLayerStack.get().size(),
                 _Probe.currentThreadId());
 
-        val stack = authenticationStack.get();
+        val stack = interactionLayerStack.get();
         while(stack.size()>downToStackSize) {
         	if(isInBaseLayer()) {
         		// keep the stack unmodified yet, to allow for callbacks to properly operate
         		preSessionClosed(stack.peek().getInteraction());
         	}
-        	_Xray.closeAuthenticationLayer(stack);
+        	_Xray.closeInteractionLayer(stack);
             stack.pop();
         }
         if(downToStackSize == 0) {
             // cleanup thread-local
-            authenticationStack.remove();
+            interactionLayerStack.remove();
             interactionId.remove();
         }
     }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java
index ac376b2..f32cbfc 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/_Xray.java
@@ -22,7 +22,7 @@ import java.util.Stack;
 
 import org.apache.isis.commons.internal.debug.xray.XrayDataModel;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.core.interaction.session.AuthenticationLayer;
+import org.apache.isis.core.interaction.session.InteractionLayer;
 import org.apache.isis.core.security.util.XrayUtil;
 
 import lombok.val;
@@ -30,7 +30,7 @@ import lombok.val;
 //@Log4j2
 final class _Xray {
 
-    static void newAuthenticationLayer(Stack<AuthenticationLayer> afterEnter) {
+    static void newInteractionLayer(Stack<InteractionLayer> afterEnter) {
 
         if(!XrayUi.isXrayEnabled()) {
             return;
@@ -85,7 +85,7 @@ final class _Xray {
 
     }
 
-    public static void closeAuthenticationLayer(Stack<AuthenticationLayer> beforeClose) {
+    public static void closeInteractionLayer(Stack<InteractionLayer> beforeClose) {
 
         if(!XrayUi.isXrayEnabled()) {
             return;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java
index 49f4d7b..ae8a37f 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java
@@ -72,7 +72,7 @@ public class SudoServiceDefault implements SudoService {
             final @NonNull UnaryOperator<ExecutionContext> sudoMapper,
             final @NonNull Callable<T> callable) {
 
-        val currentInteractionLayer = interactionTracker.currentAuthenticationLayerElseFail();
+        val currentInteractionLayer = interactionTracker.currentInteractionLayerElseFail();
         val currentExecutionContext = currentInteractionLayer.getExecutionContext();
         val sudoExecutionContext = sudoMapper.apply(currentExecutionContext);
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 4df2ff9..bb154b7 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -81,7 +81,7 @@ import org.apache.isis.commons.collections.ImmutableEnumSet;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.commons.internal.proxy._ProxyFactoryService;
-import org.apache.isis.core.interaction.session.AuthenticationLayer;
+import org.apache.isis.core.interaction.session.InteractionLayer;
 import org.apache.isis.core.interaction.session.InteractionFactory;
 import org.apache.isis.core.interaction.session.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -576,8 +576,8 @@ public class WrapperFactoryDefault implements WrapperFactory {
         dispatchersByEventClass.put(type, dispatcher);
     }
 
-    private AuthenticationLayer currentInteractionLayer() {
-        return interactionTracker.currentAuthenticationLayerElseFail();
+    private InteractionLayer currentInteractionLayer() {
+        return interactionTracker.currentInteractionLayerElseFail();
     }
 
     private ObjectManager currentObjectManager() {
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/Authentication.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/Authentication.java
index 134a575..b133cb1 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/Authentication.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/Authentication.java
@@ -28,6 +28,11 @@ import org.apache.isis.applib.services.user.UserMemento;
 /**
  * An immutable, serializable value type, that holds details about a user's authentication.
  *
+ * <p>
+ *     This is really little more than a thin wrapper around {@link ExecutionContext},
+ *     surfaces a number of the security-specific attributes of that field.
+ * </p>
+ *
  * @apiNote This is a framework internal class and so does not constitute a formal API.
  *
  * @since 2.0 {@index}
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java
index 4d85b59..d8fad65 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationContext.java
@@ -49,6 +49,6 @@ public interface AuthenticationContext {
     }
 
     /** authentication-layer-stack size */
-    int getAuthenticationLayerCount();
+    int getInteractionLayerCount();
 
 }
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AnonymousInteractionFactory.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AnonymousInteractionFactory.java
index e84cc88..0691ecb 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AnonymousInteractionFactory.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AnonymousInteractionFactory.java
@@ -38,10 +38,19 @@ import lombok.SneakyThrows;
  */
 public interface AnonymousInteractionFactory {
 
-    // for java-doc see InteractionFactory
+    /**
+     * Executes a block of code with anonymous credentials.
+     *
+     * @param runnable
+     */
     void runAnonymous(@NonNull ThrowingRunnable runnable);
 
-    // for java-doc see InteractionFactory
+    /**
+     * Executes a block of code with anonymous credentials.
+     *
+     * @param <R>
+     * @param callable (non-null)
+     */
     <R> R callAnonymous(@NonNull Callable<R> callable);
 
 
diff --git a/core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java b/core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java
index c8a3ba6..246f2a4 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/util/XrayUtil.java
@@ -73,7 +73,7 @@ public final class XrayUtil {
             return Optional.empty();
         }
 
-        final int authStackSize = authContext.getAuthenticationLayerCount();
+        final int authStackSize = authContext.getInteractionLayerCount();
         val interactionId = iaContext.getInteractionId().orElseThrow(_Exceptions::unexpectedCodeReach);
 
         val handle = SequenceHandle.builder()
diff --git a/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java b/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java
index 9292796..6d206a4 100644
--- a/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java
+++ b/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java
@@ -80,7 +80,7 @@ extends SpringServlet {
         log.debug("request was successfully serviced (authentication={})", authentication);
 
         if(isisInteractionFactory.isInInteraction()) {
-            isisInteractionFactory.closeSessionStack();
+            isisInteractionFactory.closeInteractionLayers();
             log.warn("after servicing current request some interactions have been closed forcefully (authentication={})", authentication);
         }
 
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
index 58d6d82..7d33ac7 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
@@ -187,7 +187,7 @@ public class ApplicationLayerTestFactory {
                 return result;
             });
 
-            interactionFactory.closeSessionStack();
+            interactionFactory.closeInteractionLayers();
 
             if(isSuccesfulRun) {
                 verifier.accept(onSuccess);
diff --git a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisInteractionHandler.java b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisInteractionHandler.java
index 90fa6f7..83a7160 100644
--- a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisInteractionHandler.java
+++ b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisInteractionHandler.java
@@ -38,7 +38,7 @@ public class IsisInteractionHandler implements BeforeEachCallback, AfterEachCall
     @Override
     public void afterEach(ExtensionContext extensionContext) throws Exception {
         _Helper.getInteractionFactory(extensionContext)
-        .ifPresent(InteractionFactory::closeSessionStack);
+        .ifPresent(InteractionFactory::closeInteractionLayers);
     }
 
 
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/IsisRestfulObjectsInteractionFilter.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/IsisRestfulObjectsInteractionFilter.java
index 2d6c335..ccfb3a8 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/IsisRestfulObjectsInteractionFilter.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/IsisRestfulObjectsInteractionFilter.java
@@ -406,7 +406,7 @@ public class IsisRestfulObjectsInteractionFilter implements Filter {
             }
 
         } finally {
-            isisInteractionFactory.closeSessionStack();
+            isisInteractionFactory.closeInteractionLayers();
         }
 
     }