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 2020/01/08 12:05:59 UTC

[isis] branch master updated: ISIS-2158: validation: be more verbose on invalid contributed 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 9eb89a4  ISIS-2158: validation: be more verbose on invalid contributed actions
9eb89a4 is described below

commit 9eb89a4217742c091dc1064556b74b804fa91cd8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Jan 8 13:05:48 2020 +0100

    ISIS-2158: validation: be more verbose on invalid contributed actions
---
 .../dflt/ProgrammingModelFacetsJava8.java          | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 77fb34d..bc5ca80 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -17,13 +17,12 @@
 
 package org.apache.isis.metamodel.progmodels.dflt;
 
-import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.ioc.BeanSort;
 import org.apache.isis.metamodel.authorization.standard.AuthorizationFacetFactory;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facets.OrphanedSupportingMethodValidator;
 import org.apache.isis.metamodel.facets.actions.action.ActionAnnotationFacetFactory;
 import org.apache.isis.metamodel.facets.actions.action.ActionChoicesForCollectionParameterFacetFactory;
@@ -150,12 +149,10 @@ import org.apache.isis.metamodel.facets.value.uuid.UUIDValueFacetUsingSemanticsP
 import org.apache.isis.metamodel.postprocessors.param.DeriveFacetsPostProcessor;
 import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract;
 import org.apache.isis.metamodel.services.title.TitlesAndTranslationsValidator;
-import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.Contributed;
-import org.apache.isis.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.metamodel.specloader.validator.MetaModelValidatorVisiting;
+import org.apache.isis.metamodel.spec.feature.ObjectAction;
 
-import lombok.NonNull;
+import lombok.val;
 
 public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract {
 
@@ -369,11 +366,18 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
 
         addValidator((objectSpec, validator) -> {
             final long numActions = objectSpec.streamObjectActions(Contributed.INCLUDED).count();
-            if (numActions > 0) {
+            if (numActions > 0L) {
+                
+                val actionIds = objectSpec.streamObjectActions(Contributed.INCLUDED)
+                .map(ObjectAction::getIdentifier)
+                .map(Identifier::toString)
+                .collect(Collectors.joining(", "));
+                
                 validator.onFailure(objectSpec, objectSpec.getIdentifier(),
-                        "%s: is a (concrete) but UNKNOWN sort, yet has %d actions",
+                        "%s: is a (concrete) but UNKNOWN sort, yet has %d actions: {%s}",
                         objectSpec.getCorrespondingClass().getName(),
-                        numActions);
+                        numActions,
+                        actionIds);
             }
             return false;
         }, objectSpec -> objectSpec.getBeanSort() == BeanSort.UNKNOWN && ! objectSpec.isAbstract());