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/07/01 07:23:52 UTC

[isis] branch master updated: ISIS-1720: fixes param naming for 'synthetic' actions

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 f606728  ISIS-1720: fixes param naming for 'synthetic' actions
f606728 is described below

commit f606728add593e116bbdb36db7ce1437f236d195
Author: andi-huber <ah...@apache.org>
AuthorDate: Thu Jul 1 09:23:43 2021 +0200

    ISIS-1720: fixes param naming for 'synthetic' actions
---
 .../name/ParameterNameFacetFactoryUsingReflection.java      |  2 +-
 .../specloader/specimpl/FacetedMethodsBuilder.java          | 13 +++++++++++--
 .../isis/testdomain/interact/WrapperInteractionTest3.java   |  3 +--
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
index 7ea05db..edee125 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
@@ -58,7 +58,7 @@ extends FacetFactoryAbstract {
         val parameter = processParameterContext.getParameter();
         val parameterName = parameter.getName();
 
-        // if not compiled with -parameters flag, then ignore
+        // if not compiled with -parameters flag or synthetic, then ignore
         val argXMatcher = argXPattern.matcher(parameterName);
         if (argXMatcher.matches()){
             return;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 799f119..166493a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -30,6 +30,8 @@ import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import javax.annotation.Nullable;
+
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
@@ -40,6 +42,7 @@ import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.reflection._Annotations;
+import org.apache.isis.commons.internal.reflection._Reflect;
 import org.apache.isis.core.metamodel.commons.CanBeVoid;
 import org.apache.isis.core.metamodel.commons.MethodUtil;
 import org.apache.isis.core.metamodel.commons.ToString;
@@ -379,10 +382,16 @@ implements HasMetaModelContext {
             return null;
         }
 
-        // build action
-        return createActionFacetedMethod(actionMethod);
+        // build action (first convert any synthetic method to a regular one)
+
+        return _Reflect
+        .lookupRegularMethodForSynthetic(actionMethod)
+        .map(this::createActionFacetedMethod)
+        .filter(_NullSafe::isPresent)
+        .orElse(null);
     }
 
+    @Nullable
     private FacetedMethod createActionFacetedMethod(
             final Method actionMethod) {
 
diff --git a/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/WrapperInteractionTest3.java b/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/WrapperInteractionTest3.java
index 3537403..02d7560 100644
--- a/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/WrapperInteractionTest3.java
+++ b/regressiontests/stable-interact/src/test/java/org/apache/isis/testdomain/interact/WrapperInteractionTest3.java
@@ -25,7 +25,6 @@ import java.util.stream.Collectors;
 import javax.inject.Inject;
 
 import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.TestPropertySource;
@@ -144,7 +143,7 @@ extends InteractionTestAbstract {
                 .count());
     }
 
-    @Test @Disabled("TODO[ISIS-1720]")
+    @Test
     void mixinActionValidation() {
 
         final Task task = new Task();