You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/03/31 07:08:45 UTC

[isis] 01/02: ISIS-2573: house keeping

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 0e0a67687d00f4a8c50365605b8f8a7dd0ba69e2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Mar 31 08:33:39 2021 +0200

    ISIS-2573: house keeping
---
 .../core/interaction/scope/InteractionScope.java   |  2 +-
 .../interaction/session/InteractionFactory.java    |  2 +-
 .../interaction/session/InteractionTracker.java    |  2 +-
 .../apache/isis/core/runtime/util/XrayUtil.java    |  2 +-
 .../session/InteractionFactoryDefault.java         |  6 ++--
 .../changetracking/EntityChangeTrackerDefault.java | 32 ++++++++---------
 ...erAndProperty.java => _AdapterAndProperty.java} | 10 +++---
 ...sFactory.java => _ChangingEntitiesFactory.java} |  6 ++--
 ...tory.java => _EntityPropertyChangeFactory.java} |  8 ++---
 ...reAndPostValues.java => _PreAndPostValues.java} | 22 +++++++-----
 ...hangeRecord.java => _PropertyChangeRecord.java} |  8 ++---
 ...gEntities.java => _SimpleChangingEntities.java} |  5 ++-
 .../{PropertyChangeRecord.java => _Xray.java}      | 40 +++++++++++++++++-----
 .../PreAndPostValues_shouldAudit_Test.java         | 10 +++---
 .../javafx/ui/components/object/ObjectViewFx.java  |  2 +-
 .../vaadin/ui/components/object/ObjectViewVaa.java |  2 +-
 .../viewer/vaadin/viewer/IsisServletForVaadin.java |  2 +-
 .../applayer/ApplicationLayerTestFactory.java      |  4 +--
 .../viewer/resources/ResourceAbstract.java         |  2 +-
 .../wicket/ui/app/logout/LogoutHandlerWkt.java     |  2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  2 +-
 .../viewer/integration/LocalizerForIsis.java       |  2 +-
 .../viewer/integration/WebRequestCycleForIsis.java |  2 +-
 23 files changed, 94 insertions(+), 81 deletions(-)

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 6746274..d73ec8b 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
@@ -66,7 +66,7 @@ class InteractionScope implements Scope, InteractionScopeLifecycleHandler {
                     + "InteractionScopeBeanFactoryPostProcessor registered and initialized.", name);
         }
         
-        if(!isisInteractionTracker.isInInteractionSession()) {
+        if(!isisInteractionTracker.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 "
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java
index 6ef50df..dab91be 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionFactory.java
@@ -71,7 +71,7 @@ public interface InteractionFactory {
     /**
      * @return whether the calling thread is within the context of an open {@link InteractionSession}
      */
-    boolean isInInteractionSession();
+    boolean isInInteraction();
 
     /**
      * Executes a block of code with a new or reused {@link InteractionSession} using a new or
diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
index ce63677..6ebe17d 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionTracker.java
@@ -36,7 +36,7 @@ import org.apache.isis.core.security.authentication.AuthenticationContext;
 public interface InteractionTracker 
 extends InteractionContext, AuthenticationContext {
 
-    boolean isInInteractionSession();
+    boolean isInInteraction();
     
     /** @return the AuthenticationLayer that sits on top of the current 
      * request- or test-scoped InteractionSession's stack*/
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java
index 4d11ddb..e47e425 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/util/XrayUtil.java
@@ -67,7 +67,7 @@ public final class XrayUtil {
             final @NonNull InteractionTracker iaTracker,
             final String ... callees) {
 
-        if(!iaTracker.isInInteractionSession()) {
+        if(!iaTracker.isInInteraction()) {
             return Optional.empty();
         }
         
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java
index e46b9ac..373c8c4 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/session/InteractionFactoryDefault.java
@@ -230,7 +230,7 @@ implements
     }
 
     @Override
-    public boolean isInInteractionSession() {
+    public boolean isInInteraction() {
         return !authenticationStack.get().isEmpty();
     }
 
@@ -276,7 +276,7 @@ implements
     
     @SneakyThrows
     public <R> R callAnonymous(@NonNull final Callable<R> callable) {
-        if(isInInteractionSession()) {
+        if(isInInteraction()) {
             serviceInjector.injectServicesInto(callable);
             return callable.call(); // reuse existing session
         }
@@ -289,7 +289,7 @@ implements
      */
     @SneakyThrows
     public void runAnonymous(@NonNull final ThrowingRunnable runnable) {
-        if(isInInteractionSession()) {
+        if(isInInteraction()) {
             serviceInjector.injectServicesInto(runnable);
             runnable.run(); // reuse existing session
             return;
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java
index 711a0ac..acf573c 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTrackerDefault.java
@@ -107,14 +107,14 @@ implements
      * When {@link #getEntityAuditEntries()} is called, then this is cleared out and
      * {@link #changedObjectProperties} is non-null, containing the actual differences.
      */
-    private final Map<AdapterAndProperty, PreAndPostValues> enlistedEntityPropertiesForAuditing = _Maps.newLinkedHashMap();
+    private final Map<_AdapterAndProperty, _PreAndPostValues> enlistedEntityPropertiesForAuditing = _Maps.newLinkedHashMap();
 
     /**
      * Used for auditing; contains the pre- and post- values of every property of every object that actually changed.
      * <p>
      * Will be null until {@link #getEntityAuditEntries()} is called, thereafter contains the actual changes.
      */
-    private final _Lazy<Set<PropertyChangeRecord>> changedObjectPropertiesRef = _Lazy.threadSafe(this::capturePostValuesAndDrain);
+    private final _Lazy<Set<_PropertyChangeRecord>> changedObjectPropertiesRef = _Lazy.threadSafe(this::capturePostValuesAndDrain);
 
     @Getter(AccessLevel.PACKAGE)
     private final Map<ManagedObject, EntityChangeKind> changeKindByEnlistedAdapter = _Maps.newLinkedHashMap();
@@ -128,7 +128,7 @@ implements
             return;
         }
         enlistForChangeKindAuditing(adapter, EntityChangeKind.CREATE);
-        enlistForPreAndPostValueAuditing(adapter, aap->PreAndPostValues.pre(IsisTransactionPlaceholder.NEW));
+        enlistForPreAndPostValueAuditing(adapter, aap->_PreAndPostValues.pre(IsisTransactionPlaceholder.NEW));
     }
 
     private void enlistUpdatingInternal(final @NonNull ManagedObject adapter) {
@@ -136,7 +136,7 @@ implements
             return;
         }
         enlistForChangeKindAuditing(adapter, EntityChangeKind.UPDATE);
-        enlistForPreAndPostValueAuditing(adapter, aap->PreAndPostValues.pre(aap.getPropertyValue()));
+        enlistForPreAndPostValueAuditing(adapter, aap->_PreAndPostValues.pre(aap.getPropertyValue()));
     }
 
     private void enlistDeletingInternal(final @NonNull ManagedObject adapter) {
@@ -147,10 +147,10 @@ implements
         if(!enlisted) {
             return;
         }
-        enlistForPreAndPostValueAuditing(adapter, aap->PreAndPostValues.pre(aap.getPropertyValue()));
+        enlistForPreAndPostValueAuditing(adapter, aap->_PreAndPostValues.pre(aap.getPropertyValue()));
     }
 
-    private Set<PropertyChangeRecord> getPropertyChangeRecords() {
+    private Set<_PropertyChangeRecord> getPropertyChangeRecords() {
         // this code path has side-effects, it locks the result for this transaction,
         // such that cannot enlist on top of it
         return changedObjectPropertiesRef.get();
@@ -210,7 +210,7 @@ implements
     public Optional<EntityChanges> getEntityChanges(
             final java.sql.Timestamp timestamp,
             final String userName) {
-        return ChangingEntitiesFactory.createChangingEntities(timestamp, userName, this);
+        return _ChangingEntitiesFactory.createChangingEntities(timestamp, userName, this);
     }
 
     Interaction currentInteraction() {
@@ -219,10 +219,6 @@ implements
 
     // -- HELPER
 
-    static String asString(Object object) {
-        return object != null? object.toString(): null;
-    }
-
     /**
      * @return <code>true</code> if successfully enlisted, <code>false</code> if was already enlisted
      */
@@ -263,13 +259,13 @@ implements
 
     private void enlistForPreAndPostValueAuditing(
             final ManagedObject entity,
-            final Function<AdapterAndProperty, PreAndPostValues> pre) {
+            final Function<_AdapterAndProperty, _PreAndPostValues> pre) {
 
         log.debug("enlist entity's property changes for auditing {}", entity);
 
         entity.getSpecification().streamProperties(MixedIn.EXCLUDED)
         .filter(property->!property.isNotPersisted())
-        .map(property->AdapterAndProperty.of(entity, property))
+        .map(property->_AdapterAndProperty.of(entity, property))
         .filter(aap->!enlistedEntityPropertiesForAuditing.containsKey(aap)) // already enlisted, so ignore
         .forEach(aap->{
             enlistedEntityPropertiesForAuditing.put(aap, pre.apply(aap));
@@ -280,12 +276,12 @@ implements
      * For any enlisted Object Properties collects those, that are meant for auditing,
      * then clears enlisted objects.
      */
-    private Set<PropertyChangeRecord> capturePostValuesAndDrain() {
+    private Set<_PropertyChangeRecord> capturePostValuesAndDrain() {
 
         val postValues = enlistedEntityPropertiesForAuditing.entrySet().stream()
                 .peek(this::updatePostOn) // set post values of audits, which have been left empty up to now
-                .filter(PreAndPostValues::shouldAudit)
-                .map(entry->PropertyChangeRecord.of(entry.getKey(), entry.getValue()))
+                .filter(_PreAndPostValues::shouldAudit)
+                .map(entry->_PropertyChangeRecord.of(entry.getKey(), entry.getValue()))
                 .collect(_Sets.toUnmodifiable());
 
         enlistedEntityPropertiesForAuditing.clear();
@@ -294,7 +290,7 @@ implements
 
     }
 
-    private final void updatePostOn(Map.Entry<AdapterAndProperty, PreAndPostValues> enlistedEntry) {
+    private final void updatePostOn(Map.Entry<_AdapterAndProperty, _PreAndPostValues> enlistedEntry) {
         val adapterAndProperty = enlistedEntry.getKey();
         val preAndPostValues = enlistedEntry.getValue();
         val entity = adapterAndProperty.getAdapter();
@@ -412,7 +408,7 @@ implements
             final TransactionId txId) {
 
         return getPropertyChangeRecords().stream()
-                .map(propertyChangeRecord->EntityPropertyChangeFactory
+                .map(propertyChangeRecord->_EntityPropertyChangeFactory
                         .createEntityPropertyChange(timestamp, userName, txId, propertyChangeRecord))
                 .collect(Can.toCan());
     }
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/AdapterAndProperty.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_AdapterAndProperty.java
similarity index 89%
rename from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/AdapterAndProperty.java
rename to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_AdapterAndProperty.java
index de45c5a..0a44b97 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/AdapterAndProperty.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_AdapterAndProperty.java
@@ -29,12 +29,10 @@ import lombok.Getter;
 import lombok.NonNull;
 import lombok.ToString;
 import lombok.val;
-import lombok.experimental.PackagePrivate;
 
 @EqualsAndHashCode(of = {"bookmarkStr", "propertyId"})
-@PackagePrivate
 @ToString(of = {"bookmarkStr", "propertyId"})
-final class AdapterAndProperty {
+final class _AdapterAndProperty {
 
     @Getter private final ManagedObject adapter;
     @Getter private final ObjectAssociation property;
@@ -43,13 +41,13 @@ final class AdapterAndProperty {
     
     private final String bookmarkStr;
 
-    public static AdapterAndProperty of(
+    public static _AdapterAndProperty of(
             final @NonNull ManagedObject adapter, 
             final @NonNull ObjectAssociation property) {
-        return new AdapterAndProperty(adapter, property);
+        return new _AdapterAndProperty(adapter, property);
     }
 
-    private AdapterAndProperty(ManagedObject adapter, ObjectAssociation property) {
+    private _AdapterAndProperty(ManagedObject adapter, ObjectAssociation property) {
         
         this.adapter = adapter;
         this.property = property;
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/ChangingEntitiesFactory.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_ChangingEntitiesFactory.java
similarity index 97%
rename from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/ChangingEntitiesFactory.java
rename to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_ChangingEntitiesFactory.java
index 12c0110..db0d04b 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/ChangingEntitiesFactory.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_ChangingEntitiesFactory.java
@@ -40,10 +40,8 @@ import org.apache.isis.schema.chg.v2.ObjectsDto;
 import org.apache.isis.schema.common.v2.OidsDto;
 
 import lombok.val;
-import lombok.experimental.UtilityClass;
 
-@UtilityClass
-class ChangingEntitiesFactory {
+final class _ChangingEntitiesFactory {
 
     public static Optional<EntityChanges> createChangingEntities(
             final java.sql.Timestamp completedAt,
@@ -84,7 +82,7 @@ class ChangingEntitiesFactory {
         val interactionId = interaction.getInteractionId();
         final int nextEventSequence = interaction.next(SequenceType.TRANSACTION);
 
-        return new SimpleChangingEntities(
+        return new _SimpleChangingEntities(
                     interactionId, nextEventSequence,
                     userName, completedAt,
                     numberEntitiesLoaded,
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityPropertyChangeFactory.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_EntityPropertyChangeFactory.java
similarity index 90%
rename from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityPropertyChangeFactory.java
rename to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_EntityPropertyChangeFactory.java
index 2a8a554..7c320c7 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityPropertyChangeFactory.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_EntityPropertyChangeFactory.java
@@ -26,16 +26,14 @@ import org.apache.isis.applib.services.xactn.TransactionId;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 
 import lombok.val;
-import lombok.experimental.UtilityClass;
 
-@UtilityClass
-class EntityPropertyChangeFactory {
+final class _EntityPropertyChangeFactory {
 
     public static EntityPropertyChange createEntityPropertyChange(
             final java.sql.Timestamp timestamp,
             final String user,
             final TransactionId txId,
-            final PropertyChangeRecord propertyChangeRecord) {
+            final _PropertyChangeRecord propertyChangeRecord) {
 
         val adapterAndProperty = propertyChangeRecord.getAdapterAndProperty();
         val spec = adapterAndProperty.getAdapter().getSpecification();
@@ -44,7 +42,7 @@ class EntityPropertyChangeFactory {
         final String propertyId = adapterAndProperty.getPropertyId();
         final String memberId = adapterAndProperty.getMemberId();
 
-        final PreAndPostValues papv = propertyChangeRecord.getPreAndPostValues();
+        final _PreAndPostValues papv = propertyChangeRecord.getPreAndPostValues();
         final String preValue = papv.getPreString();
         final String postValue = papv.getPostString();
 
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_PreAndPostValues.java
similarity index 85%
rename from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues.java
rename to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_PreAndPostValues.java
index 2994850..f8c3527 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_PreAndPostValues.java
@@ -24,10 +24,8 @@ import java.util.Objects;
 import org.apache.isis.core.transaction.changetracking.events.IsisTransactionPlaceholder;
 
 import lombok.val;
-import lombok.experimental.PackagePrivate;
 
-@PackagePrivate
-final class PreAndPostValues {
+final class _PreAndPostValues {
 
     private final Object pre;
     /**
@@ -44,14 +42,14 @@ final class PreAndPostValues {
      */
     private String postString;
 
-    public static PreAndPostValues pre(Object preValue) {
-        return new PreAndPostValues(preValue, null);
+    public static _PreAndPostValues pre(Object preValue) {
+        return new _PreAndPostValues(preValue, null);
     }
 
-    private PreAndPostValues(Object pre, Object post) {
+    private _PreAndPostValues(Object pre, Object post) {
         this.pre = pre;
         this.post = post;
-        this.preString = EntityChangeTrackerDefault.asString(pre);
+        this.preString = asString(pre);
     }
 
     /**
@@ -79,7 +77,7 @@ final class PreAndPostValues {
 
     public void setPost(Object post) {
         this.post = post;
-        this.postString = EntityChangeTrackerDefault.asString(post);
+        this.postString = asString(post);
     }
 
     @Override
@@ -100,9 +98,15 @@ final class PreAndPostValues {
         return !Objects.equals(getPre(), getPost());
     }
     
-    public static boolean shouldAudit(Map.Entry<?, PreAndPostValues> input) { 
+    public static boolean shouldAudit(Map.Entry<?, _PreAndPostValues> input) { 
         val preAndPostValues = input.getValue();
         return preAndPostValues.shouldAudit();
     }
     
+    // -- HELPER
+    
+    private static String asString(Object object) {
+        return object != null? object.toString(): null;
+    }
+    
 }
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PropertyChangeRecord.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_PropertyChangeRecord.java
similarity index 81%
copy from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PropertyChangeRecord.java
copy to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_PropertyChangeRecord.java
index 096b6fe..9c1ad1e 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PropertyChangeRecord.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_PropertyChangeRecord.java
@@ -20,13 +20,11 @@ package org.apache.isis.core.transaction.changetracking;
 
 import lombok.NonNull;
 import lombok.Value;
-import lombok.experimental.PackagePrivate;
 
 @Value(staticConstructor = "of")
-@PackagePrivate
-final class PropertyChangeRecord {
+final class _PropertyChangeRecord {
 
-    private final @NonNull AdapterAndProperty adapterAndProperty;
-    private final @NonNull PreAndPostValues preAndPostValues;
+    private final @NonNull _AdapterAndProperty adapterAndProperty;
+    private final @NonNull _PreAndPostValues preAndPostValues;
     
 }
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/SimpleChangingEntities.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_SimpleChangingEntities.java
similarity index 95%
rename from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/SimpleChangingEntities.java
rename to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_SimpleChangingEntities.java
index 76dcbc8..a1673a2 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/SimpleChangingEntities.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_SimpleChangingEntities.java
@@ -23,7 +23,6 @@ import java.sql.Timestamp;
 import java.util.UUID;
 import java.util.function.Supplier;
 
-import org.apache.isis.applib.mixins.system.HasTransactionId;
 import org.apache.isis.applib.services.publishing.spi.EntityChanges;
 import org.apache.isis.schema.chg.v2.ChangesDto;
 
@@ -34,7 +33,7 @@ import lombok.ToString;
  * Captures which objects were created, updated or deleted in the course of a transaction.
  */
 @ToString
-class SimpleChangingEntities implements EntityChanges {
+final class _SimpleChangingEntities implements EntityChanges {
 
     private UUID transactionUuid;
     private final int sequence;
@@ -44,7 +43,7 @@ class SimpleChangingEntities implements EntityChanges {
     private final int numberEntityPropertiesModified;
     private final Supplier<ChangesDto> changesDtoSupplier;
 
-    public SimpleChangingEntities(
+    public _SimpleChangingEntities(
             final @NonNull UUID transactionUuid,
             final int sequence,
             final @NonNull String userName,
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PropertyChangeRecord.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_Xray.java
similarity index 52%
rename from core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PropertyChangeRecord.java
rename to core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_Xray.java
index 096b6fe..fae5f40 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/PropertyChangeRecord.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/_Xray.java
@@ -18,15 +18,37 @@
  */
 package org.apache.isis.core.transaction.changetracking;
 
-import lombok.NonNull;
-import lombok.Value;
-import lombok.experimental.PackagePrivate;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
 
-@Value(staticConstructor = "of")
-@PackagePrivate
-final class PropertyChangeRecord {
+final class _Xray {
+
+    public static void enlistCreated(ManagedObject entity) {
+        // TODO Auto-generated method stub
+    }
+
+    public static void enlistDeleting(ManagedObject entity) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public static void enlistUpdating(ManagedObject entity) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public static void recognizeLoaded(ManagedObject entity) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public static void recognizePersisting(ManagedObject entity) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public static void recognizeUpdating(ManagedObject entity) {
+        // TODO Auto-generated method stub
+        
+    }
 
-    private final @NonNull AdapterAndProperty adapterAndProperty;
-    private final @NonNull PreAndPostValues preAndPostValues;
-    
 }
diff --git a/core/transaction/src/test/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues_shouldAudit_Test.java b/core/transaction/src/test/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues_shouldAudit_Test.java
index aeb748f..61672e4 100644
--- a/core/transaction/src/test/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues_shouldAudit_Test.java
+++ b/core/transaction/src/test/java/org/apache/isis/core/transaction/changetracking/PreAndPostValues_shouldAudit_Test.java
@@ -29,35 +29,35 @@ public class PreAndPostValues_shouldAudit_Test {
 
     @Test
     public void just_created() {
-        final PreAndPostValues papv = PreAndPostValues.pre(IsisTransactionPlaceholder.NEW);
+        final _PreAndPostValues papv = _PreAndPostValues.pre(IsisTransactionPlaceholder.NEW);
         papv.setPost("Foo");
 
         assertTrue(papv.shouldAudit());
     }
     @Test
     public void just_deleted() {
-        final PreAndPostValues papv = PreAndPostValues.pre("Foo");
+        final _PreAndPostValues papv = _PreAndPostValues.pre("Foo");
         papv.setPost(IsisTransactionPlaceholder.DELETED);
 
         assertTrue(papv.shouldAudit());
     }
     @Test
     public void changed() {
-        final PreAndPostValues papv = PreAndPostValues.pre("Foo");
+        final _PreAndPostValues papv = _PreAndPostValues.pre("Foo");
         papv.setPost("Bar");
 
         assertTrue(papv.shouldAudit());
     }
     @Test
     public void unchanged() {
-        final PreAndPostValues papv = PreAndPostValues.pre("Foo");
+        final _PreAndPostValues papv = _PreAndPostValues.pre("Foo");
         papv.setPost("Foo");
 
         assertFalse(papv.shouldAudit());
     }
     @Test
     public void created_and_then_deleted() {
-        final PreAndPostValues papv = PreAndPostValues.pre(IsisTransactionPlaceholder.NEW);
+        final _PreAndPostValues papv = _PreAndPostValues.pre(IsisTransactionPlaceholder.NEW);
         papv.setPost(IsisTransactionPlaceholder.DELETED);
 
         assertFalse(papv.shouldAudit());
diff --git a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java
index 85f6a72..166f922 100644
--- a/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java
+++ b/incubator/viewers/javafx/ui/src/main/java/org/apache/isis/incubator/viewer/javafx/ui/components/object/ObjectViewFx.java
@@ -77,7 +77,7 @@ public class ObjectViewFx extends VBox {
             final ManagedObject managedObject) {
 
         log.info("binding object interaction to owner {}", managedObject.getSpecification().getIdentifier());
-        _Assert.assertTrue(uiContext.getIsisInteractionFactory().isInInteractionSession(), "requires an active interaction");
+        _Assert.assertTrue(uiContext.getIsisInteractionFactory().isInInteraction(), "requires an active interaction");
 
         val objectTitle = ManagedObjects.titleOf(managedObject);
 
diff --git a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java
index 333c022..c54464e 100644
--- a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java
+++ b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectViewVaa.java
@@ -85,7 +85,7 @@ public class ObjectViewVaa extends VerticalLayout {
             final ManagedObject managedObject) {
 
         log.info("binding object interaction to owner {}", managedObject.getSpecification().getIdentifier());
-        _Assert.assertTrue(uiContext.getIsisInteractionFactory().isInInteractionSession(), "requires an active interaction");
+        _Assert.assertTrue(uiContext.getIsisInteractionFactory().isInInteraction(), "requires an active interaction");
         
         val objectTitle = ManagedObjects.titleOf(managedObject);
 
diff --git a/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java b/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java
index c528de4..c6ab4d1 100644
--- a/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java
+++ b/incubator/viewers/vaadin/viewer/src/main/java/org/apache/isis/incubator/viewer/vaadin/viewer/IsisServletForVaadin.java
@@ -79,7 +79,7 @@ extends SpringServlet {
         
         log.debug("request was successfully serviced (authentication={})", authentication);
         
-        if(isisInteractionFactory.isInInteractionSession()) {
+        if(isisInteractionFactory.isInInteraction()) {
             isisInteractionFactory.closeSessionStack();
             log.warn("after servicing current request some interactions have been closed forcefully (authentication={})", authentication);
         }
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/ApplicationLayerTestFactory.java
index 62d9bcb..563c995 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
@@ -20,6 +20,7 @@ package org.apache.isis.testdomain.applayer;
 
 import static org.apache.isis.applib.services.wrapper.control.AsyncControl.returningVoid;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.junit.jupiter.api.DynamicTest.dynamicTest;
@@ -70,7 +71,6 @@ import org.apache.isis.testdomain.jdo.entities.JdoInventory;
 import org.apache.isis.testdomain.jdo.entities.JdoProduct;
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
 
-import io.smallrye.common.constraint.Assert;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.val;
@@ -176,7 +176,7 @@ public class ApplicationLayerTestFactory {
 
             xrayAddTest(displayName);
             
-            Assert.assertFalse(interactionFactory.isInInteractionSession());
+            assertFalse(interactionFactory.isInInteraction());
             assert_no_initial_tx_context();
             
             final boolean isSuccesfulRun = interactionFactory.callAnonymous(()->{
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 a5682a0..8f5aa47 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
@@ -104,7 +104,7 @@ public abstract class ResourceAbstract {
             final ResourceDescriptor resourceDescriptor,
             final String urlUnencodedQueryString) {
         
-        if (!isisInteractionTracker.isInInteractionSession()) {
+        if (!isisInteractionTracker.isInInteraction()) {
             throw RestfulObjectsApplicationException.create(HttpStatusCode.UNAUTHORIZED);
         }
 
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 eb438c3..bbaa780 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
@@ -42,7 +42,7 @@ public class LogoutHandlerWkt implements LogoutHandler {
             return;
         }
         
-        if(isisInteractionTracker.isInInteractionSession()) {
+        if(isisInteractionTracker.isInInteraction()) {
             isisInteractionTracker.currentInteractionSession()
             .ifPresent(interaction->
                 interaction.setOnClose(currentWktSession::invalidateNow));
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 1a44f66..f7cb7dc 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
@@ -136,7 +136,7 @@ implements FormExecutor {
             val resultAdapter = obtainResultAdapter();
             
             // flush any queued changes; any concurrency or violation exceptions will actually be thrown here
-            if(commonContext.getInteractionTracker().isInInteractionSession()) {
+            if(commonContext.getInteractionTracker().isInInteraction()) {
                 commonContext.getTransactionService().flushTransaction();
 
                 if(EntityUtil.isDestroyed(targetAdapter)) {
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 654cae9..3993fc7 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
@@ -75,7 +75,7 @@ public class LocalizerForIsis extends Localizer {
     protected String translate(final String key, final Component component) {
         final Class<?> contextClass = determineContextClassElse(component, IsisWicketApplication.class);
         final String context = contextClass.getName();
-        if(isisInteractionTracker.isInInteractionSession()) {
+        if(isisInteractionTracker.isInInteraction()) {
             return translate(key, context);
         } else {
             return isisInteractionFactory.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 2ecb12b..548fd89 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
@@ -479,7 +479,7 @@ public class WebRequestCycleForIsis implements IRequestCycleListener {
     }
 
     private boolean isInInteraction() {
-        return getCommonContext().getInteractionTracker().isInInteractionSession();
+        return getCommonContext().getInteractionTracker().isInInteraction();
     }
 
     private Optional<MessageBroker> getMessageBroker() {