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 2022/10/13 08:18:06 UTC

[isis] branch master updated: ISIS-3226: implement pass-through property setting

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


The following commit(s) were added to refs/heads/master by this push:
     new b30e10ba56 ISIS-3226: implement pass-through property setting
b30e10ba56 is described below

commit b30e10ba56fa22418985637c3f7489cb120fbebb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Oct 13 10:17:57 2022 +0200

    ISIS-3226: implement pass-through property setting
---
 .../viewmodel/ViewModelFacetForDomainObjectAnnotation.java       | 1 -
 .../modify/PropertySetterOrClearFacetForDomainEventAbstract.java | 9 +++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/ViewModelFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/ViewModelFacetForDomainObjectAnnotation.java
index 30a0fc2bfb..c7183b3e98 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/ViewModelFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/viewmodel/ViewModelFacetForDomainObjectAnnotation.java
@@ -122,7 +122,6 @@ extends ViewModelFacetAbstract {
                     : ManagedObject.empty(propertySpec);
 
             property.set(viewmodel, propertyValue, InteractionInitiatedBy.PASS_THROUGH);
-
         });
 
         return viewmodel;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index 42a5369b9c..fe65a1c910 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -255,12 +255,17 @@ implements
 
         // similar code in ActionInvocationFacetFDEA
 
+        val domainObject = head.getTarget();
+
         if(!editingVariant.hasCorrespondingFacet(this)) {
-            return head.getTarget();
+            return domainObject;
         }
 
         if(interactionInitiatedBy.isPassThrough()) {
-
+            /* directly access property setter to prevent triggering of domain events
+             * or change tracking, eg. when called in the context of serialization */
+            editingVariant.invoke(this, owningProperty, domainObject, newValueAdapter, interactionInitiatedBy);
+            return domainObject;
         }
 
         return getMemberExecutor().setOrClearProperty(