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/04/13 12:40:41 UTC

[isis] branch master updated: ISIS-2604: fixing up issues

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 75dc436  ISIS-2604: fixing up issues
75dc436 is described below

commit 75dc4361d76de2f0c5e594ce21ad546d932b969b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Apr 13 14:40:06 2021 +0200

    ISIS-2604: fixing up issues
---
 .../MethodPrefixBasedFacetFactoryAbstract.java     | 12 ++++--
 .../DomainServiceFacetAnnotationFactory.java       | 45 +++++++++-------------
 .../dflt/ProgrammingModelFacetsJava8.java          | 36 ++++++++---------
 .../validator/MetaModelVisitingValidator.java      |  3 --
 4 files changed, 45 insertions(+), 51 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
index fe3482e..c60b121 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
@@ -106,12 +106,16 @@ implements MethodPrefixBasedFacetFactory {
             }
 
             @Override
-            public void validate(ObjectSpecification objectSpec) {
+            public void validate(ObjectSpecification spec) {
+                
+                if(spec.isManagedBean()) {
+                    return;
+                }
 
                 // as an optimization only checking declared members (skipping inherited ones)  
                 
                 // ensure accepted actions do not have any of the reserved prefixes
-                objectSpec.streamDeclaredActions(MixedIn.EXCLUDED)
+                spec.streamDeclaredActions(MixedIn.EXCLUDED)
                 .forEach(objectAction -> {
 
                     val actionId = objectAction.getId();
@@ -136,10 +140,10 @@ implements MethodPrefixBasedFacetFactory {
                                     + "completely using @Programmatic";
 
                             ValidationFailure.raise(
-                                    objectSpec,
+                                    spec,
                                     String.format(
                                             messageFormat, 
-                                            objectSpec.getIdentifier().getClassName(),
+                                            spec.getIdentifier().getClassName(),
                                             actionId,
                                             prefix,
                                             explanation));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
index c797cf2..f5641f1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
@@ -28,11 +28,8 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelVisitingValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelVisitingValidatorAbstract;
 import org.apache.isis.core.metamodel.specloader.validator.ValidationFailure;
 
 import lombok.val;
@@ -67,33 +64,29 @@ implements MetaModelRefiner {
     @Override
     public void refineProgrammingModel(ProgrammingModel programmingModel) {
         
-        programmingModel.addValidator(new MetaModelVisitingValidatorAbstract() {
+        programmingModel.addVisitingValidatorSkipManagedBeans(spec->{
 
-            @Override
-            public void validate(final ObjectSpecification objectSpec) {
-
-                if(!objectSpec.containsFacet(DomainServiceFacet.class)) {
-                    return;
-                }
-
-                final String associationNames = objectSpec
-                        .streamAssociations(MixedIn.EXCLUDED)
-                        .map(ObjectAssociation::getName)
-                        // it's okay to have an "association" called "Id" (corresponding to getId() method)
-                        .filter(associationName->!"Id".equalsIgnoreCase(associationName))
-                        .collect(Collectors.joining(", "));
+            if(!spec.containsFacet(DomainServiceFacet.class)) {
+                return;
+            }
 
-                if(associationNames.isEmpty()) {
-                    return;
-                }
+            final String associationNames = spec
+                    .streamAssociations(MixedIn.EXCLUDED)
+                    .map(ObjectAssociation::getName)
+                    // it's okay to have an "association" called "Id" (corresponding to getId() method)
+                    .filter(associationName->!"Id".equalsIgnoreCase(associationName))
+                    .collect(Collectors.joining(", "));
 
-                ValidationFailure.raiseFormatted(
-                        objectSpec,
-                        "%s: services can only have actions ('%s' config property), not properties or collections; annotate with @Programmatic if required.  Found: %s",
-                        objectSpec.getFullIdentifier(),
-                        "'isis.core.meta-model.validator.serviceActionsOnly'",
-                        associationNames);
+            if(associationNames.isEmpty()) {
+                return;
             }
+
+            ValidationFailure.raiseFormatted(
+                    spec,
+                    "%s: services can only have actions ('%s' config property), not properties or collections; annotate with @Programmatic if required.  Found: %s",
+                    spec.getFullIdentifier(),
+                    "'isis.core.meta-model.validator.serviceActionsOnly'",
+                    associationNames);
         });
 
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 7b9be93..63f3f78 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -367,25 +367,25 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
                 
                 if(spec.getBeanSort()==BeanSort.UNKNOWN 
                         && !spec.isAbstract()) {
-                    return;
-                }
-                
-                val actions = spec.streamActions(MixedIn.INCLUDED).collect(Collectors.toList());
                 
-                final int numActions = actions.size();
-                if (numActions > 0) {
-
-                    val actionIds = actions.stream()
-                    .map(ObjectAction::getIdentifier)
-                    .map(Identifier::toString)
-                    .collect(Collectors.joining(", "));
-
-                    ValidationFailure.raiseFormatted(
-                            spec,
-                            "%s: is a (concrete) but UNKNOWN sort, yet has %d actions: {%s}",
-                            spec.getCorrespondingClass().getName(),
-                            numActions,
-                            actionIds);
+                    val actions = spec.streamActions(MixedIn.INCLUDED).collect(Collectors.toList());
+                    
+                    final int numActions = actions.size();
+                    if (numActions > 0) {
+
+                        val actionIds = actions.stream()
+                        .map(ObjectAction::getIdentifier)
+                        .map(Identifier::toString)
+                        .collect(Collectors.joining(", "));
+
+                        ValidationFailure.raiseFormatted(
+                                spec,
+                                "%s: is a (concrete) but UNKNOWN sort, yet has %d actions: {%s}",
+                                spec.getCorrespondingClass().getName(),
+                                numActions,
+                                actionIds);
+                    }
+                    
                 }
                 
             }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelVisitingValidator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelVisitingValidator.java
index 2cff685..c5cbe35 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelVisitingValidator.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelVisitingValidator.java
@@ -25,9 +25,6 @@ import lombok.NonNull;
 @FunctionalInterface
 public interface MetaModelVisitingValidator {
 
-//    /**
-//     * @return <tt>true</tt> continue visiting specs.
-//     */
     void validate(@NonNull ObjectSpecification spec);
     
     default void summarize() {