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