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/11 05:18:49 UTC

[isis] branch ISIS-2726 created (now cd52472)

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 cd52472  ISIS-2726: adds javadoc is all

This branch includes the following new commits:

     new 8ff4407  ISIS-2726: moves InteractionTracker to applib
     new 90125ae  ISIS-2726: moves SudoServiceDefault up to applib
     new 39f3847  ISIS-2726: collapses SudoServiceDefault into SudoServiec
     new fc7f05a  ISIS-2726: javadoc is all
     new 8255534  ISIS-2726: renames InteractionTracker -> InteractionLayerTracker
     new cd52472  ISIS-2726: adds javadoc is all

The 6 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] 03/06: ISIS-2726: collapses SudoServiceDefault into SudoServiec

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 39f38477388e39e61436c4b0ddfd9a129c5a29c1
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 06:07:10 2021 +0100

    ISIS-2726: collapses SudoServiceDefault into SudoServiec
    
    No need to support multiple implementations here
---
 .../org/apache/isis/applib/IsisModuleApplib.java   |  4 +-
 .../isis/applib/services/sudo/SudoService.java     | 57 +++++++++++++++++++---
 .../applib/services/sudo/SudoServiceDefault.java   | 56 ---------------------
 .../applib/services/sudo/SudoServiceListener.java  |  9 +---
 .../isis/applib/services/sudo/package-info.java    | 29 -----------
 .../bootstrapping/builtin-domain-services.list     |  2 +-
 .../bootstrapping/builtin-domain-services.list     |  2 +-
 7 files changed, 55 insertions(+), 104 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
index fa05dfe..41a2972 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
@@ -51,7 +51,7 @@ import org.apache.isis.applib.services.publishing.log.EntityChangesLogger;
 import org.apache.isis.applib.services.publishing.log.EntityPropertyChangeLogger;
 import org.apache.isis.applib.services.publishing.log.ExecutionLogger;
 import org.apache.isis.applib.services.session.SessionLoggingServiceLogging;
-import org.apache.isis.applib.services.sudo.SudoServiceDefault;
+import org.apache.isis.applib.services.sudo.SudoService;
 import org.apache.isis.applib.services.user.ImpersonateMenu;
 import org.apache.isis.applib.services.user.RoleMemento;
 import org.apache.isis.applib.services.user.UserMemento;
@@ -108,7 +108,7 @@ import org.apache.isis.schema.IsisModuleSchema;
         EntityPropertyChangeLogger.class,
         ExecutionLogger.class,
         SessionLoggingServiceLogging.class,
-        SudoServiceDefault.class,
+        SudoService.class,
 
 })
 public class IsisModuleApplib {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
index 652b49c..2a1e880 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
@@ -18,15 +18,29 @@
  */
 package org.apache.isis.applib.services.sudo;
 
+import java.util.List;
 import java.util.concurrent.Callable;
 import java.util.function.UnaryOperator;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.ThrowingRunnable;
 import org.apache.isis.applib.services.user.RoleMemento;
 import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.applib.services.iactnlayer.ThrowingRunnable;
 
 import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+import lombok.val;
 
 /**
  * Allows a block of code to be executed within an arbitrary
@@ -35,7 +49,7 @@ import lombok.NonNull;
  *
  * <p>
  * Most typically this service is used to temporarily change the
- * &qout;who&quot;, that is the user reported by the {@link UserService}'s
+ * &quot;who&quot;, that is the user reported by the {@link UserService}'s
  * {@link UserService#currentUser() getUser()} - hence the name SudoService.
  * But the user's locale and timezome can also be changed, as well as the time
  * reported by {@link org.apache.isis.applib.services.clock.ClockService}.
@@ -48,17 +62,27 @@ import lombok.NonNull;
  *
  * @since 1.x revised for 2.0 {@index}
  */
-public interface SudoService {
+@Service
+@Named("isis.applib.SudoService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
+@RequiredArgsConstructor(onConstructor_ = {@Inject})
+public class SudoService {
 
     /**
      * If included in the list of roles, then will disable security checks (can view and use all object members).
      */
-    RoleMemento ACCESS_ALL_ROLE =
+    public static RoleMemento ACCESS_ALL_ROLE =
             new RoleMemento(
                     SudoService.class.getName() + "#accessAll",
                     "Sudo, can view and use all object members.");
 
 
+    private final InteractionService interactionService;
+    private final InteractionTracker interactionTracker;
+    private final List<SudoServiceListener> sudoListeners;
+
     /**
      * Executes the supplied {@link Callable} block, within the provided
      * {@link InteractionContext}.
@@ -66,9 +90,27 @@ public interface SudoService {
      * @param sudoMapper - maps the current {@link InteractionContext} to the sudo one
      * @since 2.0
      */
-    <T> T call(
+    public <T> T call(
             final @NonNull UnaryOperator<InteractionContext> sudoMapper,
-            final @NonNull Callable<T> supplier);
+            final @NonNull Callable<T> callable) {
+
+        val currentInteractionLayer = interactionTracker.currentInteractionLayerElseFail();
+        val currentInteractionContext = currentInteractionLayer.getInteractionContext();
+        val sudoInteractionContext = sudoMapper.apply(currentInteractionContext);
+
+        try {
+            for (val sudoListener : sudoListeners) {
+                sudoListener.beforeCall(currentInteractionContext, sudoInteractionContext);
+            }
+
+            return interactionService.call(sudoInteractionContext, callable);
+
+        } finally {
+            for (val sudoListener : sudoListeners) {
+                sudoListener.afterCall(sudoInteractionContext, currentInteractionContext);
+            }
+        }
+    }
 
     /**
      * Executes the supplied {@link Callable} block, within the provided
@@ -77,11 +119,10 @@ public interface SudoService {
      * @param sudoMapper - maps the current {@link InteractionContext} to the sudo one
      * @since 2.0
      */
-    default void run(
+    public void run(
             final @NonNull UnaryOperator<InteractionContext> sudoMapper,
             final @NonNull ThrowingRunnable runnable) {
         call(sudoMapper, ThrowingRunnable.toCallable(runnable));
     }
 
-
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
index 2024e1b..fb1b63d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
@@ -45,64 +45,8 @@ import lombok.val;
 
 import jakarta.annotation.PostConstruct;
 
-@Service
-@Named("isis.applib.SudoServiceDefault")
-@Order(OrderPrecedence.MIDPOINT)
-@Primary
-@Qualifier("Default")
-@RequiredArgsConstructor(onConstructor_ = {@Inject})
 public class SudoServiceDefault implements SudoService {
 
-    private final InteractionService interactionService;
-    private final InteractionTracker interactionTracker;
-
-    // -- LISTENERS
-
-    private Can<SudoServiceListener> sudoListeners = Can.empty();
-
-    @PostConstruct @Inject
-    public void init(final ServiceRegistry serviceRegistry) {
-        this.sudoListeners = serviceRegistry.select(SudoServiceListener.class);
-    }
-
-    // -- IMPLEMENTATION
-
-    @Override
-    public <T> T call(
-            final @NonNull UnaryOperator<InteractionContext> sudoMapper,
-            final @NonNull Callable<T> callable) {
-
-        val currentInteractionLayer = interactionTracker.currentInteractionLayerElseFail();
-        val currentInteractionContext = currentInteractionLayer.getInteractionContext();
-        val sudoInteractionContext = sudoMapper.apply(currentInteractionContext);
-
-        try {
-            beforeCall(currentInteractionContext, sudoInteractionContext);
-
-            return interactionService
-                    .call(sudoInteractionContext, callable);
-        } finally {
-            afterCall(sudoInteractionContext, currentInteractionContext);
-        }
-    }
-
-    // -- HELPER
-
-    private void beforeCall(
-            final @NonNull InteractionContext before,
-            final @NonNull InteractionContext after) {
-        for (val sudoListener : sudoListeners) {
-            sudoListener.beforeCall(before, after);
-        }
-    }
-
-    private void afterCall(
-            final @NonNull InteractionContext before,
-            final @NonNull InteractionContext after) {
-        for (val sudoListener : sudoListeners) {
-            sudoListener.afterCall(before, after);
-        }
-    }
 
 
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceListener.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceListener.java
index 2d4c08e..d7b6fd9 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceListener.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceListener.java
@@ -23,13 +23,8 @@ import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import lombok.NonNull;
 
 /**
- * Allows the {@link SudoService} to notify other services/components that
- * the effective user has been changed.
- *
- * <p>
- * The subscribing domain service need only implement this interface,
- * there is no need to explicitly register as a subscriber.
- * </p>
+ * Allows the {@link SudoService} to notify other {@link org.springframework.stereotype.Service}s or
+ * {@link org.springframework.stereotype.Component}s that the effective user has been changed.
  *
  * @since 2.0
  */
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/package-info.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/package-info.java
deleted file mode 100644
index 8d64ee6..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/package-info.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-/**
- * The {@link org.apache.isis.applib.services.sudo.SudoService} allows the current user reported by the
- * {@link org.apache.isis.applib.services.user.UserService} to be temporarily changed to some other user. This is
- * useful both for integration testing (eg if testing a workflow system whereby objects are moved from one user to
- * another) and while running fixture scripts (eg setting up objects that would normally require several users to have
- * acted upon the objects).
- *
- *
- */
-package org.apache.isis.applib.services.sudo;
\ No newline at end of file
diff --git a/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list b/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
index e155084..20b36a5 100644
--- a/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
+++ b/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
@@ -35,6 +35,6 @@ org.apache.isis.core.runtimeservices.confmenu.ConfigurationViewServiceDefault
 org.apache.isis.core.runtimeservices.email.EmailServiceDefault
 org.apache.isis.core.runtimeservices.i18n.po.TranslationServicePoMenu
 org.apache.isis.core.runtimeservices.ixn.InteractionDtoServiceInternalDefault
-org.apache.isis.applib.services.sudo.SudoServiceDefault
+org.apache.isis.applib.services.sudo.SudoService
 org.apache.isis.core.runtimeservices.userprof.UserProfileServiceDefault
 org.apache.isis.core.runtimeservices.userreg.EmailNotificationServiceDefault
diff --git a/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list b/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
index e155084..20b36a5 100644
--- a/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
+++ b/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
@@ -35,6 +35,6 @@ org.apache.isis.core.runtimeservices.confmenu.ConfigurationViewServiceDefault
 org.apache.isis.core.runtimeservices.email.EmailServiceDefault
 org.apache.isis.core.runtimeservices.i18n.po.TranslationServicePoMenu
 org.apache.isis.core.runtimeservices.ixn.InteractionDtoServiceInternalDefault
-org.apache.isis.applib.services.sudo.SudoServiceDefault
+org.apache.isis.applib.services.sudo.SudoService
 org.apache.isis.core.runtimeservices.userprof.UserProfileServiceDefault
 org.apache.isis.core.runtimeservices.userreg.EmailNotificationServiceDefault

[isis] 05/06: ISIS-2726: renames InteractionTracker -> InteractionLayerTracker

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 8255534ff2c5cc7a4e5d7a31e73b80ae73673cb5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 06:11:24 2021 +0100

    ISIS-2726: renames InteractionTracker -> InteractionLayerTracker
---
 .../transaction/TransactionServiceSpring.adoc      |  2 +-
 ...onTracker.java => InteractionLayerTracker.java} |  2 +-
 .../isis/applib/services/sudo/SudoService.java     |  8 +++----
 .../applib/services/sudo/SudoServiceDefault.java   | 26 ----------------------
 .../core/interaction/scope/InteractionScope.java   | 10 ++++-----
 .../core/runtime/context/IsisAppCommonContext.java |  4 ++--
 .../isis/core/runtime/context/RuntimeContext.java  |  4 ++--
 .../core/runtime/context/RuntimeContextBase.java   | 10 ++++-----
 .../runtime/events/TransactionEventEmitter.java    |  8 +++----
 .../org/apache/isis/core/runtime/events/_Xray.java |  6 ++---
 .../runtimeservices/clock/ClockServiceDefault.java |  6 ++---
 .../command/CommandExecutorServiceDefault.java     |  4 ++--
 .../executor/MemberExecutorServiceDefault.java     | 10 ++++-----
 .../isis/core/runtimeservices/executor/_Xray.java  |  8 +++----
 .../publish/CommandPublisherDefault.java           |  4 ++--
 .../publish/EntityChangesPublisherDefault.java     |  4 ++--
 .../EntityPropertyChangePublisherDefault.java      |  4 ++--
 .../publish/ExecutionPublisherDefault.java         |  4 ++--
 .../isis/core/runtimeservices/publish/_Xray.java   | 10 ++++-----
 .../session/InteractionServiceDefault.java         |  4 ++--
 .../transaction/TransactionServiceSpring.java      | 10 ++++-----
 .../runtimeservices/user/UserServiceDefault.java   |  6 ++---
 .../wrapper/WrapperFactoryDefault.java             |  6 ++---
 .../java/demoapp/web/linebreaker/LineBreaker.java  |  6 ++---
 .../metamodel/facets/entity/JdoEntityFacet.java    |  4 ++--
 .../applayer/ApplicationLayerTestFactory.java      |  6 ++---
 ..._ensureCompatibleAcceptHeader_ContractTest.java |  6 ++---
 .../resources/DomainObjectResourceServerside.java  |  6 ++---
 .../resources/DomainServiceResourceServerside.java |  6 ++---
 .../resources/DomainTypeResourceServerside.java    |  6 ++---
 .../resources/HomePageResourceServerside.java      |  6 ++---
 .../viewer/resources/ImageResourceServerside.java  |  6 ++---
 .../resources/MenuBarsResourceServerside.java      |  6 ++---
 .../viewer/resources/ResourceAbstract.java         | 10 ++++-----
 .../viewer/resources/UserResourceServerside.java   |  6 ++---
 .../resources/VersionResourceServerside.java       |  6 ++---
 .../context/ResourceContext_getArg_Test.java       |  6 ++---
 .../wicket/ui/app/logout/LogoutHandlerWkt.java     |  8 +++----
 .../ajaxtable/PrototypingMessageProvider.java      |  2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  2 +-
 .../AuthenticatedWebSessionForIsis.java            |  2 +-
 .../viewer/integration/LocalizerForIsis.java       |  6 ++---
 .../viewer/integration/WebRequestCycleForIsis.java |  2 +-
 ...uthenticatedWebSessionForIsis_Authenticate.java | 10 ++++-----
 44 files changed, 126 insertions(+), 152 deletions(-)

diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/transaction/TransactionServiceSpring.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/transaction/TransactionServiceSpring.adoc
index 47441f2..17827f1 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/transaction/TransactionServiceSpring.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/transaction/TransactionServiceSpring.adoc
@@ -7,7 +7,7 @@
 .TransactionServiceSpring.java
 ----
 class TransactionServiceSpring {
-  TransactionServiceSpring(final List<PlatformTransactionManager> platformTransactionManagers, final List<PersistenceExceptionTranslator> persistenceExceptionTranslators, final InteractionTracker interactionTracker)
+  TransactionServiceSpring(final List<PlatformTransactionManager> platformTransactionManagers, final List<PersistenceExceptionTranslator> persistenceExceptionTranslators, final InteractionTracker interactionLayerTracker)
   Result<T> callTransactional(TransactionDefinition def, Callable<T> callable)
   void nextTransaction()
   void flushTransaction()
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java
similarity index 98%
rename from api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java
index 087209d..b67a423 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java
@@ -28,7 +28,7 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
  *
  * @since 2.0
  */
-public interface InteractionTracker
+public interface InteractionLayerTracker
 extends InteractionProvider {
 
     /** @return the AuthenticationLayer that sits on top of the current
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
index 9e34622..961d31d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
@@ -32,8 +32,8 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.applib.services.iactnlayer.ThrowingRunnable;
 import org.apache.isis.applib.services.user.RoleMemento;
 import org.apache.isis.applib.services.user.UserService;
@@ -61,7 +61,7 @@ import lombok.val;
  * </p>
  *
  * @see InteractionService
- * @see InteractionTracker
+ * @see InteractionLayerTracker
  *
  * @since 1.x revised for 2.0 {@index}
  */
@@ -83,7 +83,7 @@ public class SudoService {
 
 
     private final InteractionService interactionService;
-    private final InteractionTracker interactionTracker;
+    private final InteractionLayerTracker interactionLayerTracker;
     private final List<SudoServiceListener> sudoListeners;
 
     /**
@@ -97,7 +97,7 @@ public class SudoService {
             final @NonNull UnaryOperator<InteractionContext> sudoMapper,
             final @NonNull Callable<T> callable) {
 
-        val currentInteractionLayer = interactionTracker.currentInteractionLayerElseFail();
+        val currentInteractionLayer = interactionLayerTracker.currentInteractionLayerElseFail();
         val currentInteractionContext = currentInteractionLayer.getInteractionContext();
         val sudoInteractionContext = sudoMapper.apply(currentInteractionContext);
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
index fb1b63d..8f3aa90 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
@@ -19,32 +19,6 @@
 
 package org.apache.isis.applib.services.sudo;
 
-import java.util.concurrent.Callable;
-import java.util.function.UnaryOperator;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.applib.services.sudo.SudoService;
-import org.apache.isis.applib.services.sudo.SudoServiceListener;
-import org.apache.isis.commons.collections.Can;
-
-import lombok.NonNull;
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-
-import jakarta.annotation.PostConstruct;
-
 public class SudoServiceDefault implements SudoService {
 
 
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java
index b6ee31d..446dde3 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java
@@ -29,7 +29,7 @@ import org.springframework.beans.factory.config.Scope;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 
 import lombok.Data;
 import lombok.val;
@@ -41,7 +41,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 class InteractionScope implements Scope, InteractionScopeLifecycleHandler {
 
-    @Inject private InteractionTracker isisInteractionTracker;
+    @Inject private InteractionLayerTracker iInteractionLayerTracker;
 
     @Data(staticConstructor = "of")
     private static class ScopedObject {
@@ -61,12 +61,12 @@ class InteractionScope implements Scope, InteractionScopeLifecycleHandler {
     @Override
     public Object get(String name, ObjectFactory<?> objectFactory) {
 
-        if(isisInteractionTracker==null) {
+        if(iInteractionLayerTracker ==null) {
             throw _Exceptions.illegalState("Creation of bean %s with @InteractionScope requires the "
                     + "InteractionScopeBeanFactoryPostProcessor registered and initialized.", name);
         }
 
-        if(!isisInteractionTracker.isInInteraction()) {
+        if(!iInteractionLayerTracker.isInInteraction()) {
             throw _Exceptions.illegalState("Creation of bean %s with @InteractionScope requires the "
                     + "calling %s to have an open Interaction on the thread-local stack. Running into "
                     + "this issue might be caused by use of ... @Inject MyScopedBean bean ..., instead of "
@@ -110,7 +110,7 @@ class InteractionScope implements Scope, InteractionScopeLifecycleHandler {
     @Override
     public String getConversationId() {
         // null by convention if not supported
-        return isisInteractionTracker.getInteractionId()
+        return iInteractionLayerTracker.getInteractionId()
                 .map(UUID::toString)
                 .orElse(null);
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java
index cfcd236..ba14e8f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java
@@ -23,12 +23,12 @@ import java.util.function.Function;
 import java.util.function.Supplier;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.viewer.wicket.WebAppContextPath;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.MessageBroker;
 import org.apache.isis.core.metamodel.context.HasMetaModelContext;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -69,7 +69,7 @@ public class IsisAppCommonContext implements HasMetaModelContext {
     private final MenuBarsService menuBarsService = lookupServiceElseFail(MenuBarsService.class);
 
     @Getter(lazy = true)
-    private final InteractionTracker interactionTracker = lookupServiceElseFail(InteractionTracker.class);
+    private final InteractionLayerTracker interactionLayerTracker = lookupServiceElseFail(InteractionLayerTracker.class);
 
     @Getter(lazy = true, value = AccessLevel.PRIVATE)
     private final ObjectMementoService mementoService = lookupServiceElseFail(ObjectMementoService.class);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
index dd60c5d..ed366df 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.runtime.context;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
@@ -35,7 +35,7 @@ public interface RuntimeContext {
 
     MetaModelContext getMetaModelContext();
 
-    InteractionTracker getInteractionTracker();
+    InteractionLayerTracker getInteractionTracker();
     IsisConfiguration getConfiguration();
     SpecificationLoader getSpecificationLoader();
     ServiceInjector getServiceInjector();
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 9a22dcf..a3b36ba 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
@@ -21,12 +21,12 @@ package org.apache.isis.core.runtime.context;
 import java.util.function.Supplier;
 
 import org.apache.isis.applib.services.iactn.InteractionProvider;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -49,7 +49,7 @@ public abstract class RuntimeContextBase implements RuntimeContext {
     @Getter(onMethod = @__(@Override)) protected final ServiceInjector serviceInjector;
     @Getter(onMethod = @__(@Override)) protected final ServiceRegistry serviceRegistry;
     @Getter(onMethod = @__(@Override)) protected final SpecificationLoader specificationLoader;
-    @Getter(onMethod = @__(@Override)) protected final InteractionTracker interactionTracker;
+    @Getter(onMethod = @__(@Override)) protected final InteractionLayerTracker interactionLayerTracker;
 
     @Getter protected final InteractionService interactionService;
     @Getter protected final AuthenticationManager authenticationManager;
@@ -70,13 +70,13 @@ public abstract class RuntimeContextBase implements RuntimeContext {
         this.homePageSupplier = mmc::getHomePageAdapter;
         this.interactionService = serviceRegistry.lookupServiceElseFail(InteractionService.class);
         this.authenticationManager = serviceRegistry.lookupServiceElseFail(AuthenticationManager.class);
-        this.interactionTracker = serviceRegistry.lookupServiceElseFail(InteractionTracker.class);
+        this.interactionLayerTracker = serviceRegistry.lookupServiceElseFail(InteractionLayerTracker.class);
     }
 
     // -- AUTH
 
     public InteractionProvider getInteractionProvider() {
-        return interactionTracker;
+        return interactionLayerTracker;
     }
 
     @Override
@@ -84,7 +84,7 @@ public abstract class RuntimeContextBase implements RuntimeContext {
         // we do the logout (removes this session from those valid)
         // similar code in wicket viewer (AuthenticatedWebSessionForIsis#onInvalidate())
 
-        interactionTracker
+        interactionLayerTracker
         .currentInteractionContext()
         .ifPresent(authentication->{
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java
index 3009c71..2c47e0e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java
@@ -27,7 +27,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
 import org.apache.isis.applib.services.eventbus.EventBusService;
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.core.interaction.scope.InteractionScopeAware;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.transaction.events.TransactionAfterCompletionEvent;
 import org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent;
 
@@ -40,11 +40,11 @@ public class TransactionEventEmitter
 implements TransactionSynchronization, InteractionScopeAware {
 
     private final EventBusService eventBusService;
-    private final InteractionTracker interactionTracker;
+    private final InteractionLayerTracker interactionLayerTracker;
 
     @Override
     public void beforeCompletion() {
-        _Xray.txBeforeCompletion(interactionTracker, "tx: beforeCompletion");
+        _Xray.txBeforeCompletion(interactionLayerTracker, "tx: beforeCompletion");
         eventBusService.post(TransactionBeforeCompletionEvent.instance());
     }
 
@@ -52,7 +52,7 @@ implements TransactionSynchronization, InteractionScopeAware {
     public void afterCompletion(int status) {
         val event = TransactionAfterCompletionEvent.forStatus(status);
         eventBusService.post(event);
-        _Xray.txAfterCompletion(interactionTracker, String.format("tx: afterCompletion (%s)", event.name()));
+        _Xray.txAfterCompletion(interactionLayerTracker, String.format("tx: afterCompletion (%s)", event.name()));
     }
 
     @Override
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
index de389d9..be0ca98 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
@@ -19,9 +19,9 @@
 package org.apache.isis.core.runtime.events;
 
 import org.apache.isis.applib.services.confview.ConfigurationViewService;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.commons.internal.debug.xray.XrayDataModel;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.security.util.XrayUtil;
 
 import lombok.val;
@@ -48,7 +48,7 @@ final class _Xray {
 
     }
 
-    public static void txBeforeCompletion(InteractionTracker iaTracker, String txInfo) {
+    public static void txBeforeCompletion(InteractionLayerTracker iaTracker, String txInfo) {
         // append to the current interaction if any
 
         if(!XrayUi.isXrayEnabled()) {
@@ -84,7 +84,7 @@ final class _Xray {
 
     }
 
-    public static void txAfterCompletion(InteractionTracker iaTracker, String txInfo) {
+    public static void txAfterCompletion(InteractionLayerTracker iaTracker, String txInfo) {
         // append to the current interaction if any
 
         if(!XrayUi.isXrayEnabled()) {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java
index 0db3c23..18729d5 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.clock.VirtualClock;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 
 import lombok.RequiredArgsConstructor;
 
@@ -42,11 +42,11 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
 public class ClockServiceDefault implements ClockService {
 
-    private final InteractionTracker interactionTracker;
+    private final InteractionLayerTracker interactionLayerTracker;
 
     @Override
     public VirtualClock getClock() {
-        return interactionTracker.currentInteractionContext()
+        return interactionLayerTracker.currentInteractionContext()
         .map(InteractionContext::getClock)
         .orElseGet(VirtualClock::system);
     }
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 68a71ea..3de5535 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
@@ -53,7 +53,7 @@ import org.apache.isis.commons.functional.Result;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.interactions.InteractionHead;
@@ -98,7 +98,7 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
     @Inject final SudoService sudoService;
     @Inject final ClockService clockService;
     @Inject final TransactionService transactionService;
-    @Inject final InteractionTracker isisInteractionTracker;
+    @Inject final InteractionLayerTracker iInteractionLayerTracker;
     @Inject final Provider<InteractionProvider> interactionProviderProvider;
 
     @Inject @Getter final InteractionService interactionService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java
index 5f31c35..c1b46a6 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java
@@ -37,6 +37,7 @@ import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.iactn.ActionInvocation;
 import org.apache.isis.applib.services.iactn.Execution;
 import org.apache.isis.applib.services.iactn.PropertyEdit;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.metrics.MetricsService;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.collections.Can;
@@ -45,7 +46,6 @@ import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.execution.InteractionInternal;
 import org.apache.isis.core.metamodel.execution.MemberExecutorService;
@@ -83,7 +83,7 @@ import lombok.extern.log4j.Log4j2;
 public class MemberExecutorServiceDefault
 implements MemberExecutorService {
 
-    private final @Getter InteractionTracker interactionTracker;
+    private final @Getter InteractionLayerTracker interactionLayerTracker;
     private final @Getter IsisConfiguration configuration;
     private final @Getter ObjectManager objectManager;
     private final @Getter ClockService clockService;
@@ -95,7 +95,7 @@ implements MemberExecutorService {
 
     @Override
     public Optional<InteractionInternal> getInteraction() {
-        return interactionTracker.currentInteraction()
+        return interactionLayerTracker.currentInteraction()
                 .map(InteractionInternal.class::cast);
     }
 
@@ -119,7 +119,7 @@ implements MemberExecutorService {
         CommandPublishingFacet.ifPublishingEnabledForCommand(
                 command, owningAction, facetHolder, ()->command.updater().setPublishingEnabled(true));
 
-        val xrayHandle = _Xray.enterActionInvocation(interactionTracker, interaction, owningAction, head, argumentAdapters);
+        val xrayHandle = _Xray.enterActionInvocation(interactionLayerTracker, interaction, owningAction, head, argumentAdapters);
 
         val actionId = owningAction.getIdentifier();
         log.debug("about to invoke action {}", actionId);
@@ -200,7 +200,7 @@ implements MemberExecutorService {
         CommandPublishingFacet.ifPublishingEnabledForCommand(
                 command, owningProperty, facetHolder, ()->command.updater().setPublishingEnabled(true));
 
-        val xrayHandle = _Xray.enterPropertyEdit(interactionTracker, interaction, owningProperty, head, newValueAdapter);
+        val xrayHandle = _Xray.enterPropertyEdit(interactionLayerTracker, interaction, owningProperty, head, newValueAdapter);
 
         val propertyId = owningProperty.getIdentifier();
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
index 31afb1a..ff1a3a4 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
@@ -24,7 +24,7 @@ import javax.annotation.Nullable;
 
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.execution.InteractionInternal;
 import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -40,7 +40,7 @@ import lombok.val;
 final class _Xray {
 
     static SequenceHandle enterActionInvocation(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final @NonNull InteractionInternal interaction,
             final @NonNull ObjectAction owningAction,
             final @NonNull InteractionHead head,
@@ -64,7 +64,7 @@ final class _Xray {
     }
 
     public static SequenceHandle enterPropertyEdit(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final @NonNull InteractionInternal interaction,
             final @NonNull OneToOneAssociation owningProperty,
             final @NonNull InteractionHead head,
@@ -82,7 +82,7 @@ final class _Xray {
     }
 
     private static SequenceHandle enterInvocation(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final InteractionInternal interaction,
             final String participantLabel,
             final String enteringLabel) {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java
index 293c4be..087737f 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java
@@ -32,10 +32,10 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.command.Command;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.publishing.spi.CommandSubscriber;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.services.publishing.CommandPublisher;
 
 import lombok.NonNull;
@@ -53,7 +53,7 @@ import lombok.extern.log4j.Log4j2;
 public class CommandPublisherDefault implements CommandPublisher {
 
     private final List<CommandSubscriber> subscribers;
-    private final InteractionTracker iaTracker;
+    private final InteractionLayerTracker iaTracker;
 
     private Can<CommandSubscriber> enabledSubscribers = Can.empty();
 
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 5a461d1..f50d8d8 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
@@ -38,7 +38,7 @@ import org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.transaction.changetracking.EntityChangesPublisher;
 import org.apache.isis.core.transaction.changetracking.HasEnlistedEntityChanges;
 
@@ -58,7 +58,7 @@ public class EntityChangesPublisherDefault implements EntityChangesPublisher {
     private final List<EntityChangesSubscriber> subscribers;
     private final ClockService clockService;
     private final UserService userService;
-    private final InteractionTracker iaTracker;
+    private final InteractionLayerTracker iaTracker;
 
     private Can<EntityChangesSubscriber> enabledSubscribers = Can.empty();
 
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 d9e33c9..50fb39e 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
@@ -32,6 +32,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.clock.ClockService;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.publishing.spi.EntityPropertyChange;
 import org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscriber;
 import org.apache.isis.applib.services.user.UserService;
@@ -39,7 +40,6 @@ import org.apache.isis.applib.services.xactn.TransactionId;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher;
 import org.apache.isis.core.transaction.changetracking.HasEnlistedEntityPropertyChanges;
 
@@ -60,7 +60,7 @@ public class EntityPropertyChangePublisherDefault implements EntityPropertyChang
     private final UserService userService;
     private final ClockService clockService;
     private final TransactionService transactionService;
-    private final InteractionTracker iaTracker;
+    private final InteractionLayerTracker iaTracker;
 
     private Can<EntityPropertyChangeSubscriber> enabledSubscribers = Can.empty();
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java
index 95eb00b..d9b855c 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.services.iactn.Execution;
 import org.apache.isis.applib.services.publishing.spi.ExecutionSubscriber;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.services.publishing.ExecutionPublisher;
 
 import lombok.RequiredArgsConstructor;
@@ -57,7 +57,7 @@ public class ExecutionPublisherDefault
 implements ExecutionPublisher {
 
     private final List<ExecutionSubscriber> subscribers;
-    private final InteractionTracker iaTracker;
+    private final InteractionLayerTracker iaTracker;
 
     private Can<ExecutionSubscriber> enabledSubscribers = Can.empty();
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
index 3b0a28e..efe5a8b 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
@@ -27,6 +27,7 @@ import javax.annotation.Nullable;
 
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.iactn.Execution;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.publishing.spi.CommandSubscriber;
 import org.apache.isis.applib.services.publishing.spi.EntityChanges;
 import org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber;
@@ -36,7 +37,6 @@ import org.apache.isis.applib.services.publishing.spi.ExecutionSubscriber;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Text;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.security.util.XrayUtil;
 import org.apache.isis.core.security.util.XrayUtil.SequenceHandle;
 
@@ -48,7 +48,7 @@ final class _Xray {
     // -- COMMAND
 
     static SequenceHandle enterCommandPublishing(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final @Nullable Command command,
             final @NonNull Can<CommandSubscriber> enabledSubscribers,
             final @NonNull Supplier<String> cannotPublishReasonSupplier) {
@@ -91,7 +91,7 @@ final class _Xray {
     // -- EXECUTION
 
     public static SequenceHandle enterExecutionPublishing(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final @Nullable Execution<?, ?> execution,
             final @NonNull Can<ExecutionSubscriber> enabledSubscribers,
             final @NonNull Supplier<String> cannotPublishReasonSupplier) {
@@ -134,7 +134,7 @@ final class _Xray {
     // -- ENTITY CHANGES
 
     public static SequenceHandle enterEntityChangesPublishing(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final @NonNull Optional<EntityChanges> payload,
             final @NonNull Can<EntityChangesSubscriber> enabledSubscribers,
             final @NonNull Supplier<String> cannotPublishReasonSupplier) {
@@ -177,7 +177,7 @@ final class _Xray {
     // -- ENTITY PROPERTY CHANGES
 
     public static SequenceHandle enterEntityPropertyChangePublishing(
-            final @NonNull InteractionTracker iaTracker,
+            final @NonNull InteractionLayerTracker iaTracker,
             final @NonNull Can<EntityPropertyChange> payload,
             final @NonNull Can<EntityPropertyChangeSubscriber> enabledSubscribers,
             final @NonNull Supplier<String> cannotPublishReasonSupplier) {
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 67c01fa..abff986 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
@@ -61,7 +61,7 @@ import org.apache.isis.core.interaction.integration.InteractionAwareTransactiona
 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.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 import org.apache.isis.core.metamodel.services.publishing.CommandPublisher;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
@@ -90,7 +90,7 @@ import lombok.extern.log4j.Log4j2;
 public class InteractionServiceDefault
 implements
     InteractionService,
-    InteractionTracker {
+        InteractionLayerTracker {
 
     @Inject AuthenticationManager authenticationManager;
     @Inject MetamodelEventService runtimeEventService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java
index 1a0feeb..c6571bb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java
@@ -49,7 +49,7 @@ import org.apache.isis.commons.functional.Result;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.interaction.scope.InteractionScopeAware;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.transaction.events.TransactionAfterCompletionEvent;
 
 import lombok.val;
@@ -75,7 +75,7 @@ implements
     InteractionScopeAware {
 
     private final Can<PlatformTransactionManager> platformTransactionManagers;
-    private final InteractionTracker interactionTracker;
+    private final InteractionLayerTracker interactionLayerTracker;
     private final Can<PersistenceExceptionTranslator> persistenceExceptionTranslators;
 
 
@@ -83,7 +83,7 @@ implements
     public TransactionServiceSpring(
             final List<PlatformTransactionManager> platformTransactionManagers,
             final List<PersistenceExceptionTranslator> persistenceExceptionTranslators,
-            final InteractionTracker interactionTracker) {
+            final InteractionLayerTracker interactionLayerTracker) {
 
         this.platformTransactionManagers = Can.ofCollection(platformTransactionManagers);
         log.info("PlatformTransactionManagers: {}", platformTransactionManagers);
@@ -91,7 +91,7 @@ implements
         this.persistenceExceptionTranslators = Can.ofCollection(persistenceExceptionTranslators);
         log.info("PersistenceExceptionTranslators: {}", persistenceExceptionTranslators);
 
-        this.interactionTracker = interactionTracker;
+        this.interactionLayerTracker = interactionLayerTracker;
     }
 
     // -- SPRING INTEGRATION
@@ -198,7 +198,7 @@ implements
 
     @Override
     public Optional<TransactionId> currentTransactionId() {
-        return interactionTracker.getInteractionId()
+        return interactionLayerTracker.getInteractionId()
                 .map(uuid->{
                     //XXX get current transaction's persistence context (once we support multiple contexts)
                     val persistenceContext = "";
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
index 9687414..4b85432 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
@@ -31,10 +31,10 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.user.ImpersonatedUserHolder;
 import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
@@ -51,7 +51,7 @@ import lombok.val;
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
 public class UserServiceDefault implements UserService {
 
-    private final InteractionTracker isisInteractionTracker;
+    private final InteractionLayerTracker iInteractionLayerTracker;
     private final List<ImpersonatedUserHolder> impersonatedUserHolders;
 
     /**
@@ -62,7 +62,7 @@ public class UserServiceDefault implements UserService {
         Optional<UserMemento> optional = getImpersonatedUser();
         return optional.isPresent()
                 ? optional
-                : isisInteractionTracker.currentInteractionContext().map(InteractionContext::getUser);
+                : iInteractionLayerTracker.currentInteractionContext().map(InteractionContext::getUser);
     }
 
     @Override
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 75ecd68..1519b26 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
@@ -50,6 +50,7 @@ import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.iactn.InteractionProvider;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import org.apache.isis.applib.services.iactnlayer.InteractionLayer;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
@@ -83,7 +84,6 @@ 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.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.interactions.InteractionHead;
@@ -119,7 +119,7 @@ import lombok.val;
 //@Log4j2
 public class WrapperFactoryDefault implements WrapperFactory {
 
-    @Inject InteractionTracker interactionTracker;
+    @Inject InteractionLayerTracker interactionLayerTracker;
     @Inject FactoryService factoryService;
     @Inject MetaModelContext metaModelContext;
     @Inject SpecificationLoader specificationLoader;
@@ -571,7 +571,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
     private InteractionLayer currentInteractionLayer() {
-        return interactionTracker.currentInteractionLayerElseFail();
+        return interactionLayerTracker.currentInteractionLayerElseFail();
     }
 
     private ObjectManager currentObjectManager() {
diff --git a/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java b/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java
index a40f166..1729c69 100644
--- a/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java
+++ b/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java
@@ -24,7 +24,7 @@ import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 
 import lombok.RequiredArgsConstructor;
@@ -40,14 +40,14 @@ import lombok.extern.log4j.Log4j2;
 @RequiredArgsConstructor(onConstructor_ = { @Inject })
 public class LineBreaker {
 
-    final InteractionTracker isisInteractionTracker;
+    final InteractionLayerTracker iInteractionLayerTracker;
 
     @Action(semantics = SemanticsOf.SAFE)
     public void shutdown() {
         log.info("about to shutdown the JVM");
 
         // allow for current interaction to complete gracefully
-        isisInteractionTracker.currentInteraction()
+        iInteractionLayerTracker.currentInteraction()
         .map(IsisInteraction.class::cast)
         .ifPresent(interaction->{
             interaction.setOnClose(()->System.exit(0));
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
index 9b0472b..c1b2587 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
@@ -325,8 +325,8 @@ implements EntityFacet {
     // -- INTERACTION TRACKER LAZY LOOKUP
 
     // memoizes the lookup, just an optimization
-//    private final _Lazy<InteractionTracker> isisInteractionTrackerLazy = _Lazy.threadSafe(
-//            ()->getServiceRegistry().lookupServiceElseFail(InteractionTracker.class));
+//    private final _Lazy<InteractionLayerTracker> isisInteractionTrackerLazy = _Lazy.threadSafe(
+//            ()->getServiceRegistry().lookupServiceElseFail(InteractionLayerTracker.class));
 
     // -- DEPENDENCIES
 
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 b7a15cd..5f93b59 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
@@ -58,7 +58,7 @@ 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.commons.internal.functions._Functions.CheckedConsumer;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.interactions.managed.PropertyInteraction;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -90,7 +90,7 @@ public class ApplicationLayerTestFactory {
     private final FixtureScripts fixtureScripts;
     private final PreCommitListener preCommitListener;
     private final InteractionService interactionService;
-    private final InteractionTracker interactionTracker;
+    private final InteractionLayerTracker interactionLayerTracker;
 
     @Named("transaction-aware-pmf-proxy")
     private final PersistenceManagerFactory pmf;
@@ -181,7 +181,7 @@ public class ApplicationLayerTestFactory {
             assert_no_initial_tx_context();
 
             final boolean isSuccesfulRun = interactionService.callAnonymous(()->{
-                val currentInteraction = interactionTracker.currentInteraction();
+                val currentInteraction = interactionLayerTracker.currentInteraction();
                 xrayEnterInteraction(currentInteraction);
                 val result = interactionTestRunner.run(given, verifier);
                 xrayExitInteraction();
diff --git a/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java b/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
index cdfc435..33a89e8 100644
--- a/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
+++ b/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
@@ -41,7 +41,7 @@ import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -72,7 +72,7 @@ public abstract class ResourceContext_ensureCompatibleAcceptHeader_ContractTest
     @Mock Interaction mockInteraction;
     @Mock SpecificationLoader mockSpecificationLoader;
     @Mock WebApplicationContext webApplicationContext;
-    @Mock InteractionTracker mockIsisInteractionTracker;
+    @Mock InteractionLayerTracker mockInteractionLayerTracker;
     @Mock AuthenticationManager mockAuthenticationManager;
 
     MetaModelContext metaModelContext;
@@ -86,7 +86,7 @@ public abstract class ResourceContext_ensureCompatibleAcceptHeader_ContractTest
                 .specificationLoader(mockSpecificationLoader)
                 .authentication(iaContext)
                 .singleton(mockAuthenticationManager)
-                .singleton(mockIsisInteractionTracker)
+                .singleton(mockInteractionLayerTracker)
                 .singleton(mockInteractionService)
                 .build();
 
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
index d7f65aa..39aada8 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
@@ -50,7 +50,7 @@ import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
 import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
@@ -85,8 +85,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
     public DomainObjectResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
         log.debug("<init>");
     }
 
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
index b7e2462..6b7a346 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
@@ -38,9 +38,9 @@ import javax.ws.rs.core.Response;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -70,8 +70,8 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
     public DomainServiceResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @Override
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
index 1494137..edab97f 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
@@ -31,9 +31,9 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.grid.Grid;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -80,8 +80,8 @@ public class DomainTypeResourceServerside extends ResourceAbstract implements Do
     public DomainTypeResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @Override
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java
index 185fc3c..4a29329 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java
@@ -28,8 +28,8 @@ import javax.ws.rs.core.Response;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -51,8 +51,8 @@ public class HomePageResourceServerside extends ResourceAbstract implements Home
     public HomePageResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @Override
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java
index 75ef54a..7fa84d6 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java
@@ -32,7 +32,7 @@ import org.springframework.stereotype.Component;
 import org.apache.isis.commons.internal.base._Bytes;
 import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 
 @Component
@@ -43,8 +43,8 @@ public class ImageResourceServerside extends ResourceAbstract {
     public ImageResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @GET
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java
index 8adea86..3647a1c 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java
@@ -30,9 +30,9 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
 import org.apache.isis.applib.layout.links.Link;
 import org.apache.isis.applib.layout.menubars.MenuBars;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -54,8 +54,8 @@ public class MenuBarsResourceServerside extends ResourceAbstract implements Menu
     public MenuBarsResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @Override
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
index 2612c29..772dfdd 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
@@ -33,9 +33,9 @@ import javax.ws.rs.ext.Providers;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -54,7 +54,7 @@ public abstract class ResourceAbstract {
 
     protected final MetaModelContext metaModelContext;
     protected final IsisConfiguration isisConfiguration;
-    protected final InteractionTracker isisInteractionTracker;
+    protected final InteractionLayerTracker iInteractionLayerTracker;
 
     @Context HttpHeaders httpHeaders;
     @Context UriInfo uriInfo;
@@ -68,11 +68,11 @@ public abstract class ResourceAbstract {
     protected ResourceAbstract(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
+            final InteractionLayerTracker iInteractionLayerTracker) {
 
         this.metaModelContext = metaModelContext;
         this.isisConfiguration = isisConfiguration;
-        this.isisInteractionTracker = isisInteractionTracker;
+        this.iInteractionLayerTracker = iInteractionLayerTracker;
     }
 
     // -- FACTORIES
@@ -102,7 +102,7 @@ public abstract class ResourceAbstract {
             final ResourceDescriptor resourceDescriptor,
             final String urlUnencodedQueryString) {
 
-        if (!isisInteractionTracker.isInInteraction()) {
+        if (!iInteractionLayerTracker.isInInteraction()) {
             throw RestfulObjectsApplicationException.create(HttpStatusCode.UNAUTHORIZED);
         }
 
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
index 1207ce5..6befc61 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
@@ -29,8 +29,8 @@ import javax.ws.rs.core.Response;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -52,8 +52,8 @@ public class UserResourceServerside extends ResourceAbstract implements UserReso
     public UserResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @Override
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java
index f41ff41..5eda597 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java
@@ -31,8 +31,8 @@ import javax.ws.rs.core.Response;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -61,8 +61,8 @@ public class VersionResourceServerside extends ResourceAbstract implements Versi
     public VersionResourceServerside(
             final MetaModelContext metaModelContext,
             final IsisConfiguration isisConfiguration,
-            final InteractionTracker isisInteractionTracker) {
-        super(metaModelContext, isisConfiguration, isisInteractionTracker);
+            final InteractionLayerTracker iInteractionLayerTracker) {
+        super(metaModelContext, isisConfiguration, iInteractionLayerTracker);
     }
 
     @Override
diff --git a/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java b/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
index c488a71..f556cf5 100644
--- a/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
+++ b/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
@@ -31,9 +31,9 @@ import org.springframework.web.context.WebApplicationContext;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -55,7 +55,7 @@ public class ResourceContext_getArg_Test {
     @Mock private ServletContext mockServletContext;
     @Mock private IsisInteraction mockIsisInteraction;
     @Mock private InteractionService mockInteractionService;
-    @Mock private InteractionTracker mockIsisInteractionTracker;
+    @Mock private InteractionLayerTracker mockInteractionLayerTracker;
     @Mock private AuthenticationManager mockAuthenticationManager;
     @Mock private SpecificationLoader mockSpecificationLoader;
     @Mock private WebApplicationContext webApplicationContext;
@@ -72,7 +72,7 @@ public class ResourceContext_getArg_Test {
                 .specificationLoader(mockSpecificationLoader)
                 .singleton(mockInteractionService)
                 .singleton(mockAuthenticationManager)
-                .singleton(mockIsisInteractionTracker)
+                .singleton(mockInteractionLayerTracker)
                 //                .serviceInjector(mockServiceInjector)
                 //                .serviceRegistry(mockServiceRegistry)
                 //                .translationService(mockTranslationService)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java
index 3d3d774..7bc4045 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java
@@ -24,7 +24,7 @@ import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 import org.apache.isis.core.security.authentication.logout.LogoutHandler;
 
@@ -33,7 +33,7 @@ import lombok.val;
 @Service
 public class LogoutHandlerWkt implements LogoutHandler {
 
-    @Inject InteractionTracker isisInteractionTracker;
+    @Inject InteractionLayerTracker iInteractionLayerTracker;
 
     @Override
     public void logout() {
@@ -43,8 +43,8 @@ public class LogoutHandlerWkt implements LogoutHandler {
             return;
         }
 
-        if(isisInteractionTracker.isInInteraction()) {
-            isisInteractionTracker.currentInteraction()
+        if(iInteractionLayerTracker.isInInteraction()) {
+            iInteractionLayerTracker.currentInteraction()
             .map(IsisInteraction.class::cast)
             .ifPresent(interaction->
                 interaction.setOnClose(currentWktSession::invalidateNow));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
index 76edac3..aa2a5e9 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
@@ -60,7 +60,7 @@ class PrototypingMessageProvider {
 
         final StringBuilder tookTimingMessage = new StringBuilder();
 
-        commonContext().getInteractionTracker().currentInteraction()
+        commonContext().getInteractionLayerTracker().currentInteraction()
         .map(IsisInteraction.class::cast)
         .ifPresent(interaction->{
             val stopWatch = _Timing.atSystemNanos(interaction.getStartedAtSystemNanos());
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index d837b6a..2661171 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -135,7 +135,7 @@ implements FormExecutor {
                 ? ((ActionModel) model).getMetaModel().getFacet(RedirectFacet.class)
                 : null;
 
-            if(commonContext.getInteractionTracker().isInInteraction()) {
+            if(commonContext.getInteractionLayerTracker().isInInteraction()) {
 
                 // flush any queued changes; any concurrency or violation exceptions will actually be thrown here
                 commonContext.getTransactionService().flushTransaction();
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 a52b6c7..07d3b27 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
@@ -142,7 +142,7 @@ implements BreadcrumbModelProvider, BookmarkedPagesModelProvider, HasCommonConte
 
     public synchronized InteractionContext getAuthentication() {
 
-        commonContext.getInteractionTracker().currentInteractionContext()
+        commonContext.getInteractionLayerTracker().currentInteractionContext()
         .ifPresent(currentAuthentication->{
 
             if (getAuthenticationManager().isSessionValid(currentAuthentication)) {
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
index 2a1e6b3..b19258c 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
@@ -37,7 +37,7 @@ import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 
 import lombok.val;
@@ -48,7 +48,7 @@ import lombok.val;
  */
 public class LocalizerForIsis extends Localizer {
 
-    @Inject private InteractionTracker interactionTracker;
+    @Inject private InteractionLayerTracker interactionLayerTracker;
     @Inject private InteractionService interactionService;
     @Inject private TranslationService translationService;
 
@@ -76,7 +76,7 @@ public class LocalizerForIsis extends Localizer {
     protected String translate(final String key, final Component component) {
         final Class<?> contextClass = determineContextClassElse(component, IsisWicketApplication.class);
         final TranslationContext context = TranslationContext.forClassName(contextClass);
-        if(interactionTracker.isInInteraction()) {
+        if(interactionLayerTracker.isInInteraction()) {
             return translate(key, context);
         } else {
             return interactionService.callAnonymous(()->translate(key, context));
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
index 378dff6..d1b53c9 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java
@@ -493,7 +493,7 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
     }
 
     private boolean isInInteraction() {
-        return getCommonContext().getInteractionTracker().isInInteraction();
+        return getCommonContext().getInteractionLayerTracker().isInInteraction();
     }
 
     private Optional<MessageBroker> getMessageBroker() {
diff --git a/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java b/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
index ad76559..bd6c98f 100644
--- a/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
+++ b/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.services.iactnlayer.ThrowingRunnable;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.session.SessionLoggingService;
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionLayerTracker;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.runtime.context.IsisAppCommonContext;
 import org.apache.isis.core.security._testing.InteractionService_forTesting;
@@ -63,7 +63,7 @@ public class AuthenticatedWebSessionForIsis_Authenticate {
     @Mock protected Authenticator mockAuthenticator;
     @Mock protected IsisAppCommonContext mockCommonContext;
     @Mock protected InteractionService mockInteractionService;
-    @Mock protected InteractionTracker mockInteractionTracker;
+    @Mock protected InteractionLayerTracker mockInteractionLayerTracker;
     @Mock protected ServiceRegistry mockServiceRegistry;
 
     protected AuthenticatedWebSessionForIsis webSession;
@@ -86,10 +86,10 @@ public class AuthenticatedWebSessionForIsis_Authenticate {
                 allowing(mockCommonContext).lookupServiceElseFail(InteractionService.class);
                 will(returnValue(mockInteractionService));
 
-                allowing(mockCommonContext).getInteractionTracker();
-                will(returnValue(mockInteractionTracker));
+                allowing(mockCommonContext).getInteractionLayerTracker();
+                will(returnValue(mockInteractionLayerTracker));
 
-                allowing(mockInteractionTracker).currentInteractionContext();
+                allowing(mockInteractionLayerTracker).currentInteractionContext();
                 will(returnValue(Optional.of(InteractionContextFactory.testing())));
 
                 allowing(mockInteractionService)

[isis] 06/06: ISIS-2726: adds javadoc is all

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 cd524721a30e463e15e93ee19b51a487801e2b10
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 06:13:01 2021 +0100

    ISIS-2726: adds javadoc is all
---
 .../isis/applib/services/iactnlayer/InteractionLayerTracker.java      | 4 +++-
 .../apache/isis/applib/services/iactnlayer/InteractionService.java    | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java
index b67a423..3982018 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionLayerTracker.java
@@ -25,8 +25,10 @@ import org.apache.isis.applib.services.iactn.InteractionProvider;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 
 /**
+ * Provides access to the current {@link InteractionLayer}.
  *
- * @since 2.0
+ * @see InteractionService
+ * @since 2.0 {@index}
  */
 public interface InteractionLayerTracker
 extends InteractionProvider {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java
index 39039fa..9b07f5f 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java
@@ -30,6 +30,7 @@ import lombok.NonNull;
  * </p>
  *
  * @see org.apache.isis.applib.services.sudo.SudoService
+ * @see InteractionLayerTracker
  * @since 2.x {@index}
  */
 public interface InteractionService {

[isis] 02/06: ISIS-2726: moves SudoServiceDefault up to applib

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 90125aea16001ca0b5ebd043fc6c20d665759cbd
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 05:56:00 2021 +0100

    ISIS-2726: moves SudoServiceDefault up to applib
---
 .../src/main/java/org/apache/isis/applib/IsisModuleApplib.java | 10 ++++++----
 .../apache/isis/applib/services}/sudo/SudoServiceDefault.java  |  2 +-
 .../core/runtimeservices/IsisModuleCoreRuntimeServices.java    |  3 +--
 .../isis/testdomain/bootstrapping/builtin-domain-services.list |  2 +-
 .../isis/testdomain/bootstrapping/builtin-domain-services.list |  2 +-
 5 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
index fa7458d..fa05dfe 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
@@ -25,11 +25,11 @@ import org.apache.isis.applib.domain.DomainObjectList;
 import org.apache.isis.applib.mixins.dto.Dto_downloadXml;
 import org.apache.isis.applib.mixins.dto.Dto_downloadXsd;
 import org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml;
-import org.apache.isis.applib.mixins.rest.Object_openRestApi;
-import org.apache.isis.applib.mixins.metamodel.Object_rebuildMetamodel;
 import org.apache.isis.applib.mixins.metamodel.Object_downloadMetamodelXml;
-import org.apache.isis.applib.mixins.metamodel.Object_objectIdentifier;
 import org.apache.isis.applib.mixins.metamodel.Object_logicalTypeName;
+import org.apache.isis.applib.mixins.metamodel.Object_objectIdentifier;
+import org.apache.isis.applib.mixins.metamodel.Object_rebuildMetamodel;
+import org.apache.isis.applib.mixins.rest.Object_openRestApi;
 import org.apache.isis.applib.services.appfeatui.ApplicationFeatureMenu;
 import org.apache.isis.applib.services.appfeatui.ApplicationNamespace;
 import org.apache.isis.applib.services.appfeatui.ApplicationType;
@@ -51,9 +51,10 @@ import org.apache.isis.applib.services.publishing.log.EntityChangesLogger;
 import org.apache.isis.applib.services.publishing.log.EntityPropertyChangeLogger;
 import org.apache.isis.applib.services.publishing.log.ExecutionLogger;
 import org.apache.isis.applib.services.session.SessionLoggingServiceLogging;
+import org.apache.isis.applib.services.sudo.SudoServiceDefault;
+import org.apache.isis.applib.services.user.ImpersonateMenu;
 import org.apache.isis.applib.services.user.RoleMemento;
 import org.apache.isis.applib.services.user.UserMemento;
-import org.apache.isis.applib.services.user.ImpersonateMenu;
 import org.apache.isis.schema.IsisModuleSchema;
 
 /**
@@ -107,6 +108,7 @@ import org.apache.isis.schema.IsisModuleSchema;
         EntityPropertyChangeLogger.class,
         ExecutionLogger.class,
         SessionLoggingServiceLogging.class,
+        SudoServiceDefault.class,
 
 })
 public class IsisModuleApplib {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
similarity index 98%
rename from core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
index 58c14ea..2024e1b 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoServiceDefault.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.core.runtimeservices.sudo;
+package org.apache.isis.applib.services.sudo;
 
 import java.util.concurrent.Callable;
 import java.util.function.UnaryOperator;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
index 4eef5f1..17c24c3 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
@@ -55,7 +55,7 @@ import org.apache.isis.core.runtimeservices.repository.RepositoryServiceDefault;
 import org.apache.isis.core.runtimeservices.routing.RoutingServiceDefault;
 import org.apache.isis.core.runtimeservices.scratchpad.ScratchpadDefault;
 import org.apache.isis.core.runtimeservices.session.InteractionServiceDefault;
-import org.apache.isis.core.runtimeservices.sudo.SudoServiceDefault;
+import org.apache.isis.applib.services.sudo.SudoServiceDefault;
 import org.apache.isis.core.runtimeservices.transaction.TransactionServiceSpring;
 import org.apache.isis.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression;
 import org.apache.isis.core.runtimeservices.user.ImpersonateMenuAdvisorDefault;
@@ -99,7 +99,6 @@ import org.apache.isis.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefaul
         MessageServiceDefault.class,
         QueryResultsCacheDefault.class,
         ScratchpadDefault.class,
-        SudoServiceDefault.class,
         TransactionServiceSpring.class,
         UrlEncodingServiceWithCompression.class,
         UserServiceDefault.class,
diff --git a/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list b/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
index d47e452..e155084 100644
--- a/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
+++ b/regressiontests/stable-bootstrapping/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
@@ -35,6 +35,6 @@ org.apache.isis.core.runtimeservices.confmenu.ConfigurationViewServiceDefault
 org.apache.isis.core.runtimeservices.email.EmailServiceDefault
 org.apache.isis.core.runtimeservices.i18n.po.TranslationServicePoMenu
 org.apache.isis.core.runtimeservices.ixn.InteractionDtoServiceInternalDefault
-org.apache.isis.core.runtimeservices.sudo.SudoServiceDefault
+org.apache.isis.applib.services.sudo.SudoServiceDefault
 org.apache.isis.core.runtimeservices.userprof.UserProfileServiceDefault
 org.apache.isis.core.runtimeservices.userreg.EmailNotificationServiceDefault
diff --git a/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list b/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
index d47e452..e155084 100644
--- a/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
+++ b/regressiontests/stable-rest/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
@@ -35,6 +35,6 @@ org.apache.isis.core.runtimeservices.confmenu.ConfigurationViewServiceDefault
 org.apache.isis.core.runtimeservices.email.EmailServiceDefault
 org.apache.isis.core.runtimeservices.i18n.po.TranslationServicePoMenu
 org.apache.isis.core.runtimeservices.ixn.InteractionDtoServiceInternalDefault
-org.apache.isis.core.runtimeservices.sudo.SudoServiceDefault
+org.apache.isis.applib.services.sudo.SudoServiceDefault
 org.apache.isis.core.runtimeservices.userprof.UserProfileServiceDefault
 org.apache.isis.core.runtimeservices.userreg.EmailNotificationServiceDefault

[isis] 04/06: ISIS-2726: javadoc is all

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 fc7f05aa1431637b3d39342ad8b3b4572d17a7d8
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 06:08:51 2021 +0100

    ISIS-2726: javadoc is all
---
 .../apache/isis/applib/services/iactnlayer/InteractionService.java  | 1 +
 .../apache/isis/applib/services/iactnlayer/InteractionTracker.java  | 6 ++----
 .../main/java/org/apache/isis/applib/services/sudo/SudoService.java | 3 +++
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java
index 5fa5a9e..39039fa 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionService.java
@@ -29,6 +29,7 @@ import lombok.NonNull;
  *     This is what is used by {@link org.apache.isis.applib.services.sudo.SudoService}, for example.
  * </p>
  *
+ * @see org.apache.isis.applib.services.sudo.SudoService
  * @since 2.x {@index}
  */
 public interface InteractionService {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
index c836825..087209d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
@@ -22,8 +22,6 @@ import java.util.Optional;
 
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.services.iactn.InteractionProvider;
-import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.applib.services.iactnlayer.InteractionLayer;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 
 /**
@@ -47,7 +45,7 @@ extends InteractionProvider {
 
     /**
      * Returns the {@link InteractionContext} wrapped by the {@link #currentInteractionLayer()}
-     * (if within an interaction layer).
+     * (if within an {@link InteractionLayer}).
      */
     @Override
     default Optional<InteractionContext> currentInteractionContext() {
@@ -60,7 +58,7 @@ extends InteractionProvider {
 
     /**
      * Returns the {@link Interaction} wrapped by the {@link #currentInteractionLayer()}
-     * (if within an interaction layer).
+     * (if within an {@link InteractionLayer}).
      */
     @Override
     default Optional<Interaction> currentInteraction(){
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
index 2a1e880..9e34622 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
@@ -60,6 +60,9 @@ import lombok.val;
  * integration tests.
  * </p>
  *
+ * @see InteractionService
+ * @see InteractionTracker
+ *
  * @since 1.x revised for 2.0 {@index}
  */
 @Service

[isis] 01/06: ISIS-2726: moves InteractionTracker to applib

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 8ff4407cc3e4a3f110120d1ecf43f28b99e0a81f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jun 11 05:54:15 2021 +0100

    ISIS-2726: moves InteractionTracker to applib
    
    ... there's no reason not to expose this functionality, and it enables simplifying SudoService
---
 .../apache/isis/applib/services/iactnlayer}/InteractionTracker.java   | 2 +-
 .../java/org/apache/isis/core/interaction/scope/InteractionScope.java | 2 +-
 .../org/apache/isis/core/runtime/context/IsisAppCommonContext.java    | 2 +-
 .../java/org/apache/isis/core/runtime/context/RuntimeContext.java     | 2 +-
 .../java/org/apache/isis/core/runtime/context/RuntimeContextBase.java | 2 +-
 .../org/apache/isis/core/runtime/events/TransactionEventEmitter.java  | 2 +-
 .../src/main/java/org/apache/isis/core/runtime/events/_Xray.java      | 2 +-
 .../apache/isis/core/runtimeservices/clock/ClockServiceDefault.java   | 2 +-
 .../core/runtimeservices/command/CommandExecutorServiceDefault.java   | 2 +-
 .../core/runtimeservices/executor/MemberExecutorServiceDefault.java   | 2 +-
 .../java/org/apache/isis/core/runtimeservices/executor/_Xray.java     | 2 +-
 .../isis/core/runtimeservices/publish/CommandPublisherDefault.java    | 2 +-
 .../core/runtimeservices/publish/EntityChangesPublisherDefault.java   | 2 +-
 .../runtimeservices/publish/EntityPropertyChangePublisherDefault.java | 2 +-
 .../isis/core/runtimeservices/publish/ExecutionPublisherDefault.java  | 2 +-
 .../main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java | 2 +-
 .../isis/core/runtimeservices/session/InteractionServiceDefault.java  | 2 +-
 .../org/apache/isis/core/runtimeservices/sudo/SudoServiceDefault.java | 4 ++--
 .../core/runtimeservices/transaction/TransactionServiceSpring.java    | 2 +-
 .../org/apache/isis/core/runtimeservices/user/UserServiceDefault.java | 2 +-
 .../isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java      | 2 +-
 .../demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java   | 2 +-
 .../apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java  | 2 +-
 .../ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java    | 2 +-
 .../viewer/resources/DomainObjectResourceServerside.java              | 2 +-
 .../viewer/resources/DomainServiceResourceServerside.java             | 2 +-
 .../restfulobjects/viewer/resources/DomainTypeResourceServerside.java | 4 ++--
 .../restfulobjects/viewer/resources/HomePageResourceServerside.java   | 4 ++--
 .../restfulobjects/viewer/resources/ImageResourceServerside.java      | 2 +-
 .../restfulobjects/viewer/resources/MenuBarsResourceServerside.java   | 2 +-
 .../isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java | 2 +-
 .../restfulobjects/viewer/resources/UserResourceServerside.java       | 2 +-
 .../restfulobjects/viewer/resources/VersionResourceServerside.java    | 4 ++--
 .../restfulobjects/viewer/context/ResourceContext_getArg_Test.java    | 2 +-
 .../org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java | 2 +-
 .../isis/viewer/wicket/viewer/integration/LocalizerForIsis.java       | 2 +-
 .../integration/AuthenticatedWebSessionForIsis_Authenticate.java      | 2 +-
 37 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
similarity index 97%
rename from core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
index e8d070c..c836825 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactnlayer/InteractionTracker.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.interaction.session;
+package org.apache.isis.applib.services.iactnlayer;
 
 import java.util.Optional;
 
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java
index d3abc0a..b6ee31d 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/scope/InteractionScope.java
@@ -29,7 +29,7 @@ import org.springframework.beans.factory.config.Scope;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 
 import lombok.Data;
 import lombok.val;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java
index 042d8e9..cfcd236 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/IsisAppCommonContext.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.viewer.wicket.WebAppContextPath;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.MessageBroker;
 import org.apache.isis.core.metamodel.context.HasMetaModelContext;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
index f3d1704..dd60c5d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/RuntimeContext.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.runtime.context;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
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 785e293..9a22dcf 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
@@ -26,7 +26,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java
index 295fceb..3009c71 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/TransactionEventEmitter.java
@@ -27,7 +27,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
 import org.apache.isis.applib.services.eventbus.EventBusService;
 import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.core.interaction.scope.InteractionScopeAware;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.transaction.events.TransactionAfterCompletionEvent;
 import org.apache.isis.core.transaction.events.TransactionBeforeCompletionEvent;
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
index b1ce546..de389d9 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/events/_Xray.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.runtime.events;
 import org.apache.isis.applib.services.confview.ConfigurationViewService;
 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.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.security.util.XrayUtil;
 
 import lombok.val;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java
index aa20237..0db3c23 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/clock/ClockServiceDefault.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.clock.VirtualClock;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 
 import lombok.RequiredArgsConstructor;
 
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 ceb3a90..68a71ea 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
@@ -53,7 +53,7 @@ import org.apache.isis.commons.functional.Result;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.interactions.InteractionHead;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java
index 979023e..5f31c35 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/MemberExecutorServiceDefault.java
@@ -45,7 +45,7 @@ import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.execution.InteractionInternal;
 import org.apache.isis.core.metamodel.execution.MemberExecutorService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
index a168f7b..31afb1a 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/executor/_Xray.java
@@ -24,7 +24,7 @@ import javax.annotation.Nullable;
 
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.execution.InteractionInternal;
 import org.apache.isis.core.metamodel.interactions.InteractionHead;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java
index f207777..293c4be 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/CommandPublisherDefault.java
@@ -35,7 +35,7 @@ import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.publishing.spi.CommandSubscriber;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.services.publishing.CommandPublisher;
 
 import lombok.NonNull;
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 da6b681..5a461d1 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
@@ -38,7 +38,7 @@ import org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.transaction.changetracking.EntityChangesPublisher;
 import org.apache.isis.core.transaction.changetracking.HasEnlistedEntityChanges;
 
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 794da31..d9e33c9 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
@@ -39,7 +39,7 @@ import org.apache.isis.applib.services.xactn.TransactionId;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.transaction.changetracking.EntityPropertyChangePublisher;
 import org.apache.isis.core.transaction.changetracking.HasEnlistedEntityPropertyChanges;
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java
index 6b4e0e2..95eb00b 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/ExecutionPublisherDefault.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.services.iactn.Execution;
 import org.apache.isis.applib.services.publishing.spi.ExecutionSubscriber;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.having.HasEnabling;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.services.publishing.ExecutionPublisher;
 
 import lombok.RequiredArgsConstructor;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
index 2364052..3b0a28e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/_Xray.java
@@ -36,7 +36,7 @@ import org.apache.isis.applib.services.publishing.spi.ExecutionSubscriber;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Text;
 import org.apache.isis.commons.internal.debug.xray.XrayUi;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.security.util.XrayUtil;
 import org.apache.isis.core.security.util.XrayUtil.SequenceHandle;
 
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 cab8e1a..67c01fa 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
@@ -61,7 +61,7 @@ import org.apache.isis.core.interaction.integration.InteractionAwareTransactiona
 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.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 import org.apache.isis.core.metamodel.services.publishing.CommandPublisher;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
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 7109942..58c14ea 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
@@ -33,11 +33,11 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.sudo.SudoService;
 import org.apache.isis.applib.services.sudo.SudoServiceListener;
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.interaction.session.InteractionTracker;
 
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
@@ -46,7 +46,7 @@ import lombok.val;
 import jakarta.annotation.PostConstruct;
 
 @Service
-@Named("isis.runtimeservices.SudoServiceDefault")
+@Named("isis.applib.SudoServiceDefault")
 @Order(OrderPrecedence.MIDPOINT)
 @Primary
 @Qualifier("Default")
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java
index 659fdc9..1a0feeb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/transaction/TransactionServiceSpring.java
@@ -49,7 +49,7 @@ import org.apache.isis.commons.functional.Result;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.interaction.scope.InteractionScopeAware;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.transaction.events.TransactionAfterCompletionEvent;
 
 import lombok.val;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
index 82b8ede..9687414 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
@@ -34,7 +34,7 @@ import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import org.apache.isis.applib.services.user.ImpersonatedUserHolder;
 import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 
 import lombok.RequiredArgsConstructor;
 import lombok.val;
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 e3f841f..75ecd68 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
@@ -83,7 +83,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.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.interactions.InteractionHead;
diff --git a/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java b/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java
index 22bde95..a40f166 100644
--- a/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java
+++ b/examples/demo/web/src/main/java/demoapp/web/linebreaker/LineBreaker.java
@@ -24,7 +24,7 @@ import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 
 import lombok.RequiredArgsConstructor;
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 2021946..b7a15cd 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
@@ -58,7 +58,7 @@ 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.commons.internal.functions._Functions.CheckedConsumer;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.interactions.managed.PropertyInteraction;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java b/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
index 76faa08..cdfc435 100644
--- a/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
+++ b/viewers/restfulobjects/testing/src/main/java/org/apache/isis/viewer/restfulobjects/testing/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
@@ -41,7 +41,7 @@ import org.apache.isis.applib.services.iactn.Interaction;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
index b63d25f..d7f65aa 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
@@ -50,7 +50,7 @@ import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
 import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
index 05dbe04..b7e2462 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainServiceResourceServerside.java
@@ -40,7 +40,7 @@ import org.springframework.stereotype.Component;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
index d274727..1494137 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainTypeResourceServerside.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.grid.Grid;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -356,4 +356,4 @@ public class DomainTypeResourceServerside extends ResourceAbstract implements Do
         return arguments.getLink(paramName).getHref();
     }
 
-}
\ No newline at end of file
+}
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java
index 2bcaeed..185fc3c 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/HomePageResourceServerside.java
@@ -29,7 +29,7 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -93,4 +93,4 @@ public class HomePageResourceServerside extends ResourceAbstract implements Home
         throw RestfulObjectsApplicationException.create(HttpStatusCode.UNAUTHORIZED);
     }
 
-}
\ No newline at end of file
+}
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java
index 662b2d4..75ef54a 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ImageResourceServerside.java
@@ -32,7 +32,7 @@ import org.springframework.stereotype.Component;
 import org.apache.isis.commons.internal.base._Bytes;
 import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 
 @Component
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java
index e609d9d..8adea86 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/MenuBarsResourceServerside.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.layout.links.Link;
 import org.apache.isis.applib.layout.menubars.MenuBars;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
index e5a73da..2612c29 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
@@ -35,7 +35,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
index 6db4ada..1207ce5 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/UserResourceServerside.java
@@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java
index 99a8209..f41ff41 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/VersionResourceServerside.java
@@ -32,7 +32,7 @@ import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -103,4 +103,4 @@ public class VersionResourceServerside extends ResourceAbstract implements Versi
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java b/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
index ad3610f..c488a71 100644
--- a/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
+++ b/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
@@ -33,7 +33,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.codec._UrlDecoderUtil;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2.Mode;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java
index e55c0e5..3d3d774 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/logout/LogoutHandlerWkt.java
@@ -24,7 +24,7 @@ import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.interaction.session.IsisInteraction;
 import org.apache.isis.core.security.authentication.logout.LogoutHandler;
 
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
index a80b12a..2a1e6b3 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/LocalizerForIsis.java
@@ -37,7 +37,7 @@ import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.viewer.wicket.viewer.wicketapp.IsisWicketApplication;
 
 import lombok.val;
diff --git a/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java b/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
index 08ed729..ad76559 100644
--- a/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
+++ b/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis_Authenticate.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.services.iactnlayer.ThrowingRunnable;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.session.SessionLoggingService;
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.core.interaction.session.InteractionTracker;
+import org.apache.isis.applib.services.iactnlayer.InteractionTracker;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.runtime.context.IsisAppCommonContext;
 import org.apache.isis.core.security._testing.InteractionService_forTesting;