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();