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/03/08 11:32:05 UTC
[isis] branch master updated: ISIS-2571: also enforce validation on
services that contribute to the meta-model
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 c1dc28c ISIS-2571: also enforce validation on services that contribute to the meta-model
c1dc28c is described below
commit c1dc28c9934c4288f729c24ac36f97ec4c2df5f2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 8 12:31:49 2021 +0100
ISIS-2571: also enforce validation on services that contribute to the
meta-model
---
.../MethodPrefixBasedFacetFactoryAbstract.java | 2 +-
.../facets/OrphanedSupportingMethodValidator.java | 2 +-
...nChoicesForCollectionParameterFacetFactory.java | 2 +-
.../annotation/HomePageFacetAnnotationFactory.java | 2 +-
.../annotation/SortedByFacetAnnotationFactory.java | 2 +-
.../metamodel/facets/jaxb/JaxbFacetFactory.java | 2 +-
.../BookmarkPolicyFacetFallbackFactory.java | 2 +-
.../DomainObjectAnnotationFacetFactory.java | 2 +-
.../DomainServiceFacetAnnotationFactory.java | 74 ++++++++++------------
.../mixin/MetaModelValidatorForMixinTypes.java | 5 +-
.../NavigableParentAnnotationFacetFactory.java | 2 +-
.../ObjectSpecIdMalformedValidator.java | 10 +--
...jectSpecIdFacetDerivedFromClassNameFactory.java | 2 +-
.../recreatable/RecreatableObjectFacetFactory.java | 2 +-
.../annotation/TitleAnnotationFacetFactory.java | 2 +-
.../core/metamodel/progmodel/ProgrammingModel.java | 14 +++-
.../validator/MetaModelValidatorAbstract.java | 4 +-
.../validator/MetaModelValidatorVisiting.java | 24 +++----
.../SupportingMethodValidatorRefinerFactory.java | 2 +-
.../jdo/metamodel/JdoProgrammingModel.java | 4 +-
.../query/JdoQueryAnnotationFacetFactory.java | 4 +-
.../version/JdoVersionAnnotationFacetFactory.java | 2 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 2 +-
...ndatoryFromJdoColumnAnnotationFacetFactory.java | 2 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 2 +-
25 files changed, 85 insertions(+), 88 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 00d83dd..d5bc08e 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
@@ -98,7 +98,7 @@ implements MethodPrefixBasedFacetFactory {
val noParamsOnly = getConfiguration().getCore().getMetaModel().getValidator().isNoParamsOnly();
- programmingModel.addValidator(new MetaModelValidatorVisiting.Visitor() {
+ programmingModel.addValidatorSkipManagedBeans(new MetaModelValidatorVisiting.Visitor() {
@Override
public String toString() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java
index 41347bb..ef2090f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/OrphanedSupportingMethodValidator.java
@@ -60,7 +60,7 @@ implements MetaModelRefiner {
return; // continue
}
- programmingModel.addValidator((spec, validationFailures) -> {
+ programmingModel.addValidatorSkipManagedBeans((spec, validationFailures) -> {
if(!(spec instanceof ObjectSpecificationAbstract)) {
return true; // continue
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java
index 7c19673..36b40ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionChoicesForCollectionParameterFacetFactory.java
@@ -153,7 +153,7 @@ implements MetaModelRefiner {
}
};
- programmingModel.addValidator(vistingValidator);
+ programmingModel.addValidatorSkipManagedBeans(vistingValidator);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
index 645d85c..6af6905 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
@@ -69,7 +69,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator(newValidatorVisitor());
+ programmingModel.addValidatorSkipManagedBeans(newValidatorVisitor());
}
private Visitor newValidatorVisitor() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
index 9e1b9b8..e23b76b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
@@ -54,7 +54,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator(newValidatorVisitor());
+ programmingModel.addValidatorSkipManagedBeans(newValidatorVisitor());
}
protected MetaModelValidatorVisiting.Visitor newValidatorVisitor() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java
index bc2ea52..f1623aa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/JaxbFacetFactory.java
@@ -170,7 +170,7 @@ implements MetaModelRefiner {
final List<TypeValidator> typeValidators = getTypeValidators(getConfiguration());
final List<PropertyValidator> propertyValidators = getPropertyValidators(getConfiguration());
- programmingModel.addValidator(
+ programmingModel.addValidatorSkipManagedBeans(
new MetaModelValidatorVisiting.Visitor() {
@Override
public boolean visit(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
index 426a16a..2959204 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetFallbackFactory.java
@@ -52,7 +52,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator((objectSpec, validator) -> {
+ programmingModel.addValidatorSkipManagedBeans((objectSpec, validator) -> {
// as an optimization only checking declared members (skipping inherited ones)
objectSpec.streamDeclaredActions(MixedIn.EXCLUDED)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 43ded7d..c810c7c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -532,7 +532,7 @@ implements MetaModelRefiner, PostConstructMethodCache, ObjectSpecIdFacetFactory
};
- pm.addValidator(ensureUniqueObjectIds);
+ pm.addValidatorSkipManagedBeans(ensureUniqueObjectIds);
}
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 de15e67..eefd898 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
@@ -18,7 +18,6 @@
*/
package org.apache.isis.core.metamodel.facets.object.domainservice.annotation;
-
import java.util.stream.Collectors;
import org.apache.isis.applib.annotation.DomainService;
@@ -33,7 +32,6 @@ 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.MetaModelValidator;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
import lombok.val;
@@ -42,9 +40,6 @@ public class DomainServiceFacetAnnotationFactory
extends FacetFactoryAbstract
implements MetaModelRefiner {
- private MetaModelValidatorForValidationFailures mixinOnlyValidator =
- new MetaModelValidatorForValidationFailures();
-
public DomainServiceFacetAnnotationFactory() {
super(FeatureType.OBJECTS_ONLY);
}
@@ -52,7 +47,6 @@ implements MetaModelRefiner {
@Override
public void setMetaModelContext(MetaModelContext metaModelContext) {
super.setMetaModelContext(metaModelContext);
- mixinOnlyValidator.setMetaModelContext(metaModelContext);
}
@Override
@@ -72,48 +66,44 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- val isServiceActionsOnly = true;
- if (isServiceActionsOnly) {
-
- programmingModel.addValidator(new MetaModelValidatorVisiting.Visitor() {
-
- @Override
- public boolean visit(final ObjectSpecification thisSpec, final MetaModelValidator validator) {
- validate(thisSpec, validator);
- return true;
- }
+ programmingModel.addValidatorSkipManagedBeans(new MetaModelValidatorVisiting.Visitor() {
- private void validate(
- final ObjectSpecification thisSpec,
- final MetaModelValidator validator) {
+ @Override
+ public boolean visit(final ObjectSpecification thisSpec, final MetaModelValidator validator) {
+ validate(thisSpec, validator);
+ return true;
+ }
- if(!thisSpec.containsFacet(DomainServiceFacet.class)) {
- return;
- }
+ private void validate(
+ final ObjectSpecification objectSpec,
+ final MetaModelValidator validator) {
- final String associationNames = thisSpec
- .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(associationNames.isEmpty()) {
- return;
- }
+ if(!objectSpec.containsFacet(DomainServiceFacet.class)) {
+ return;
+ }
- validator.onFailure(
- thisSpec,
- thisSpec.getIdentifier(),
- "%s: services can only have actions ('%s' config property), not properties or collections; annotate with @Programmatic if required. Found: %s",
- thisSpec.getFullIdentifier(),
- "'isis.core.meta-model.validator.serviceActionsOnly'",
- associationNames);
+ System.err.println("validate " + objectSpec);
+
+ 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(associationNames.isEmpty()) {
+ return;
}
- });
- }
- programmingModel.addValidator(mixinOnlyValidator);
+ validator.onFailure(
+ objectSpec,
+ objectSpec.getIdentifier(),
+ "%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);
+ }
+ });
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java
index 34ee847..b980eff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mixin/MetaModelValidatorForMixinTypes.java
@@ -22,14 +22,15 @@ import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.commons.internal.reflection._Reflect;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures;
+import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorAbstract;
import static org.apache.isis.commons.internal.reflection._Reflect.Filter.paramCount;
import lombok.NonNull;
import lombok.val;
-public class MetaModelValidatorForMixinTypes extends MetaModelValidatorForValidationFailures {
+public class MetaModelValidatorForMixinTypes
+extends MetaModelValidatorAbstract {
private final String annotation;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
index a501fa2..08344ab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
@@ -109,7 +109,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator((objectSpec, validate) -> {
+ programmingModel.addValidatorSkipManagedBeans((objectSpec, validate) -> {
final Class<?> cls = objectSpec.getCorrespondingClass();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdMalformedValidator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdMalformedValidator.java
index 4368815..8e1d62d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdMalformedValidator.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdMalformedValidator.java
@@ -26,6 +26,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
+import lombok.SneakyThrows;
import lombok.val;
/**
@@ -38,10 +39,10 @@ import lombok.val;
public class ObjectSpecIdMalformedValidator
implements MetaModelRefiner {
- @Override
+ @Override @SneakyThrows
public void refineProgrammingModel(ProgrammingModel programmingModel) {
-
- programmingModel.addValidator(
+
+ programmingModel.addValidatorIncludeManagedBeans(
new MetaModelValidatorVisiting.Visitor() {
@@ -50,7 +51,8 @@ implements MetaModelRefiner {
ObjectSpecification objectSpec,
MetaModelValidator validator) {
- if(objectSpec.isEntityOrViewModel()) {
+ if(objectSpec.isEntityOrViewModel()
+ || objectSpec.isManagedBean() ) {
validate(objectSpec, validator);
}
return true;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
index a55b9e0..3f81a57 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetDerivedFromClassNameFactory.java
@@ -112,7 +112,7 @@ implements MetaModelRefiner, ObjectSpecIdFacetFactory {
return;
}
- programmingModel.addValidator(
+ programmingModel.addValidatorSkipManagedBeans(
new MetaModelValidatorVisiting.Visitor() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
index e048796..acb8c82 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
@@ -96,7 +96,7 @@ implements MetaModelRefiner, PostConstructMethodCache {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator((objectSpec, validate) -> {
+ programmingModel.addValidatorSkipManagedBeans((objectSpec, validate) -> {
val viewModelFacet = objectSpec.getFacet(ViewModelFacet.class);
val underlyingFacet = viewModelFacet != null ? viewModelFacet.getUnderlyingFacet() : null;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
index ebac6ba..1334141 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
@@ -149,7 +149,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator((objectSpec, validate) -> {
+ programmingModel.addValidatorSkipManagedBeans((objectSpec, validate) -> {
final Class<?> cls = objectSpec.getCorrespondingClass();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
index 2490359..46c939c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
@@ -154,10 +154,18 @@ public interface ProgrammingModel {
addValidator(ValidationOrder.A2_AFTER_BUILTIN, supplier.get(), markers);
}
+ /** do not include managed beans */
+ default void addValidatorIncludeManagedBeans(MetaModelValidatorVisiting.Visitor visitor, Marker ... markers) {
+ addValidator(MetaModelValidatorVisiting.of(visitor,
+ spec -> !spec.getBeanSort().isUnknown()),
+ markers);
+ }
- /** shortcut for see {@link #addValidator(MetaModelValidator, Marker...)} */
- default void addValidator(MetaModelValidatorVisiting.Visitor visitor, Marker ... markers) {
- addValidator(MetaModelValidatorVisiting.of(visitor), markers);
+ /** do not include managed beans */
+ default void addValidatorSkipManagedBeans(MetaModelValidatorVisiting.Visitor visitor, Marker ... markers) {
+ addValidator(MetaModelValidatorVisiting.of(visitor,
+ spec -> !spec.isManagedBean() && !spec.getBeanSort().isUnknown()),
+ markers);
}
default void addValidator(final MetaModelValidatorVisiting.Visitor visitor,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java
index d6ca53f..3f0c7d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorAbstract.java
@@ -30,7 +30,9 @@ import lombok.NonNull;
import lombok.Setter;
public abstract class MetaModelValidatorAbstract
-implements MetaModelValidator, MetaModelContextAware {
+implements
+ MetaModelValidator,
+ MetaModelContextAware {
protected final ValidationFailures failures = new ValidationFailures();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorVisiting.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorVisiting.java
index 2176e91..8bcd4e0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorVisiting.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorVisiting.java
@@ -27,7 +27,8 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoaderDefault;
import lombok.NonNull;
import lombok.val;
-public class MetaModelValidatorVisiting extends MetaModelValidatorAbstract {
+public class MetaModelValidatorVisiting
+extends MetaModelValidatorAbstract {
@Override
public String toString() {
@@ -53,11 +54,6 @@ public class MetaModelValidatorVisiting extends MetaModelValidatorAbstract {
// -- IMPLEMENTATION
public static MetaModelValidatorVisiting of(
- final @NonNull Visitor visitor) {
- return new MetaModelValidatorVisiting(visitor);
- }
-
- public static MetaModelValidatorVisiting of(
final @NonNull Visitor visitor,
final @NonNull Predicate<ObjectSpecification> includeIf) {
return new MetaModelValidatorVisiting(visitor, includeIf);
@@ -69,19 +65,12 @@ public class MetaModelValidatorVisiting extends MetaModelValidatorAbstract {
private MetaModelValidatorVisiting(
final @NonNull Visitor visitor,
- final @NonNull Predicate<ObjectSpecification> includeIf) {
+ final @NonNull Predicate<ObjectSpecification> includeIf
+ ) {
this.visitor = visitor;
this.includeIf = includeIf;
}
- private MetaModelValidatorVisiting(
- final @NonNull Visitor visitor) {
- this(visitor,
- // by default, exclude managed beans from validation
- spec -> !spec.isManagedBean() && !spec.getBeanSort().isUnknown()
- );
- }
-
@Override
public void collectFailuresInto(@NonNull ValidationFailures validationFailures) {
validateAll();
@@ -102,9 +91,14 @@ public class MetaModelValidatorVisiting extends MetaModelValidatorAbstract {
return; // in support of @Action not being forced, we need to relax
}
+ if(spec.isManagedBean()) {
+ System.err.printf("%s: (include: %b): %s\n", this.getClass(), includeIf.test(spec), spec);
+ }
+
if(!includeIf.test(spec)) {
return;
}
+
visitor.visit(spec, this);
});
}
diff --git a/extensions/core/model-annotation/src/main/java/org/apache/isis/extensions/modelannotation/metamodel/facets/SupportingMethodValidatorRefinerFactory.java b/extensions/core/model-annotation/src/main/java/org/apache/isis/extensions/modelannotation/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
index 41c05cb..c4b8ee1 100644
--- a/extensions/core/model-annotation/src/main/java/org/apache/isis/extensions/modelannotation/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
+++ b/extensions/core/model-annotation/src/main/java/org/apache/isis/extensions/modelannotation/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
@@ -56,7 +56,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator((spec, validationFailures) -> {
+ programmingModel.addValidatorSkipManagedBeans((spec, validationFailures) -> {
final Class<?> type = spec.getCorrespondingClass();
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/JdoProgrammingModel.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/JdoProgrammingModel.java
index c9cc3c4..574ee89 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/JdoProgrammingModel.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/JdoProgrammingModel.java
@@ -97,7 +97,7 @@ public class JdoProgrammingModel implements MetaModelRefiner {
private void addValidatorToEnsureIdentityType(ProgrammingModel pm) {
- pm.addValidator((objSpec, validation) -> {
+ pm.addValidatorSkipManagedBeans((objSpec, validation) -> {
final JdoPersistenceCapableFacet jpcf = objSpec.getFacet(JdoPersistenceCapableFacet.class);
if(jpcf == null) {
@@ -132,7 +132,7 @@ public class JdoProgrammingModel implements MetaModelRefiner {
private void addValidatorToCheckForUnsupportedAnnotations(ProgrammingModel pm) {
- pm.addValidator((objSpec, validation) -> {
+ pm.addValidatorSkipManagedBeans((objSpec, validation) -> {
if (objSpec.containsNonFallbackFacet(ParentedCollectionFacet.class) && !objSpec.containsNonFallbackFacet(CollectionFacet.class)) {
validation.onFailure(
objSpec,
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
index a0bb773..56144b4 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/JdoQueryAnnotationFacetFactory.java
@@ -74,13 +74,13 @@ implements MetaModelRefiner {
val isValidateFromClause =
getConfiguration().getCore().getMetaModel().getValidator().getJdoql().isFromClause();
if (isValidateFromClause) {
- programmingModel.addValidator(new VisitorForFromClause(this));
+ programmingModel.addValidatorSkipManagedBeans(new VisitorForFromClause(this));
}
val isValidateVariablesClause =
getConfiguration().getCore().getMetaModel().getValidator().getJdoql().isVariablesClause();
if (isValidateVariablesClause) {
- programmingModel.addValidator(new VisitorForVariablesClause(this));
+ programmingModel.addValidatorSkipManagedBeans(new VisitorForVariablesClause(this));
}
}
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
index 91f9c79..6ab874f 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactory.java
@@ -65,7 +65,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator(newValidatorVisitor());
+ programmingModel.addValidatorSkipManagedBeans(newValidatorVisitor());
}
Visitor newValidatorVisitor() {
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
index 5772e47..4f08767 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -103,7 +103,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator(newValidatorVisitor());
+ programmingModel.addValidatorSkipManagedBeans(newValidatorVisitor());
}
private Visitor newValidatorVisitor() {
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
index f3b05bb..a296d38 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
@@ -122,7 +122,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator(newValidatorVisitor());
+ programmingModel.addValidatorSkipManagedBeans(newValidatorVisitor());
}
private Visitor newValidatorVisitor() {
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
index 6a6a7bd..f787d40 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxLengthDerivedFromJdoColumnAnnotationFacetFactory.java
@@ -94,7 +94,7 @@ implements MetaModelRefiner {
@Override
public void refineProgrammingModel(ProgrammingModel programmingModel) {
- programmingModel.addValidator(newValidatorVisitor());
+ programmingModel.addValidatorSkipManagedBeans(newValidatorVisitor());
}
private Visitor newValidatorVisitor() {