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 07:15:01 UTC

[isis] branch master updated: ISIS-2604: simplify mm validation (3)

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 54e0d34  ISIS-2604: simplify mm validation (3)
54e0d34 is described below

commit 54e0d34749c92a41febb80195e81df1e82bd4da1
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Apr 13 09:14:50 2021 +0200

    ISIS-2604: simplify mm validation (3)
---
 .../MethodPrefixBasedFacetFactoryAbstract.java     |  3 +-
 ...nChoicesForCollectionParameterFacetFactory.java |  5 +--
 .../annotation/HomePageFacetAnnotationFactory.java |  2 +-
 .../annotation/SortedByFacetAnnotationFactory.java |  6 ++--
 .../metamodel/facets/jaxb/JaxbFacetFactory.java    | 40 +++++++---------------
 .../DomainObjectAnnotationFacetFactory.java        |  2 +-
 .../DomainServiceFacetAnnotationFactory.java       |  9 ++---
 .../ObjectSpecIdMalformedValidator.java            | 10 ++----
 ...jectSpecIdFacetDerivedFromClassNameFactory.java | 12 ++-----
 .../dflt/ProgrammingModelFacetsJava8.java          |  2 +-
 ...ModelValidatorForAmbiguousMixinAnnotations.java |  9 ++---
 .../validator/MetaModelValidatorVisiting.java      |  4 +--
 .../object/query/VisitorForClauseAbstract.java     | 22 ++++--------
 .../facets/object/query/VisitorForFromClause.java  |  4 +--
 .../object/query/VisitorForVariablesClause.java    |  4 +--
 .../version/JdoVersionAnnotationFacetFactory.java  |  7 ++--
 ...DerivedFromJdoColumnAnnotationFacetFactory.java | 11 +++---
 ...ndatoryFromJdoColumnAnnotationFacetFactory.java | 11 +++---
 ...DerivedFromJdoColumnAnnotationFacetFactory.java |  7 ++--
 ...AnnotationFacetFactoryTest_refineMetaModel.java | 10 +++---
 20 files changed, 65 insertions(+), 115 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 ad8cab1..c964e4d 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
@@ -27,7 +27,6 @@ import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 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.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.Getter;
@@ -107,7 +106,7 @@ implements MethodPrefixBasedFacetFactory {
             }
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator metaModelValidator) {
+            public boolean visit(ObjectSpecification objectSpec) {
 
                 // as an optimization only checking declared members (skipping inherited ones)  
                 
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 505bdec..10ddf87 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
@@ -34,7 +34,6 @@ import org.apache.isis.core.metamodel.spec.feature.MixedIn;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.val;
@@ -67,9 +66,7 @@ implements MetaModelRefiner {
         val vistingValidator = new MetaModelValidatorVisiting.Visitor() {
             
             @Override
-            public boolean visit(
-                    final ObjectSpecification objectSpec,
-                    final MetaModelValidator validator) {
+            public boolean visit(final ObjectSpecification objectSpec) {
                 
                 validate(objectSpec);
                 return true;
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 32e88f5..bc59d4e 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
@@ -79,7 +79,7 @@ implements MetaModelRefiner {
             private final Map<String, ObjectAction> actionsHavingHomePageFacet = _Maps.newHashMap();
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
+            public boolean visit(ObjectSpecification objectSpec) {
                 
                 // 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/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/sortedby/annotation/SortedByFacetAnnotationFactory.java
index b82dcac..d503895 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
@@ -31,7 +31,6 @@ 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.OneToManyAssociation;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 /**
@@ -62,8 +61,9 @@ implements MetaModelRefiner {
         return new MetaModelValidatorVisiting.Visitor() {
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
-                final Stream<OneToManyAssociation> objectCollections = objectSpec.streamCollections(MixedIn.EXCLUDED);
+            public boolean visit(ObjectSpecification objectSpec) {
+                final Stream<OneToManyAssociation> objectCollections = 
+                        objectSpec.streamCollections(MixedIn.EXCLUDED);
 
                 objectCollections.forEach(objectCollection->{
                     final SortedByFacet facet = objectCollection.getFacet(SortedByFacet.class);
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 e258291..06048a8 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
@@ -50,7 +50,6 @@ 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.OneToOneAssociation;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import static org.apache.isis.commons.internal.reflection._Reflect.Filter.isPublic;
@@ -174,17 +173,13 @@ implements MetaModelRefiner {
         programmingModel.addValidatorSkipManagedBeans(
                 new MetaModelValidatorVisiting.Visitor() {
                     @Override
-                    public boolean visit(
-                            final ObjectSpecification objectSpec,
-                            final MetaModelValidator validator) {
+                    public boolean visit(final ObjectSpecification objectSpec) {
 
-                        validate(objectSpec, validator);
+                        validate(objectSpec);
                         return true;
                     }
 
-                    private void validate(
-                            final ObjectSpecification objectSpec,
-                            final MetaModelValidator validator) {
+                    private void validate(final ObjectSpecification objectSpec) {
 
                         final boolean viewModel = objectSpec.isViewModel();
                         if(!viewModel) {
@@ -197,7 +192,7 @@ implements MetaModelRefiner {
                         }
 
                         for (final TypeValidator typeValidator : typeValidators) {
-                            typeValidator.validate(objectSpec, validator);
+                            typeValidator.validate(objectSpec);
                         }
 
                         final Stream<OneToOneAssociation> properties = objectSpec
@@ -208,7 +203,7 @@ implements MetaModelRefiner {
                         .filter(property->property.containsNonFallbackFacet(PropertySetterFacet.class))
                         .forEach(property->{
                             for (final PropertyValidator adapterValidator : propertyValidators) {
-                                adapterValidator.validate(objectSpec, property, validator);
+                                adapterValidator.validate(objectSpec, property);
                             }
                         });
 
@@ -253,17 +248,14 @@ implements MetaModelRefiner {
     }
 
     private static abstract class TypeValidator {
-        abstract void validate(
-                final ObjectSpecification objectSpec,
-                final MetaModelValidator validator);
+        abstract void validate(ObjectSpecification objectSpec);
 
     }
 
     private static abstract class PropertyValidator {
         abstract void validate(
-                final ObjectSpecification objectSpec,
-                final OneToOneAssociation property,
-                final MetaModelValidator validator);
+                ObjectSpecification objectSpec,
+                OneToOneAssociation property);
 
     }
 
@@ -272,8 +264,7 @@ implements MetaModelRefiner {
         @Override
         void validate(
                 final ObjectSpecification objectSpec,
-                final OneToOneAssociation property,
-                final MetaModelValidator validator) {
+                final OneToOneAssociation property) {
 
             final ObjectSpecification propertyTypeSpec = property.getSpecification();
             if (!propertyTypeSpec.isEntity()) {
@@ -306,8 +297,7 @@ implements MetaModelRefiner {
         @Override
         void validate(
                 final ObjectSpecification objectSpec,
-                final OneToOneAssociation property,
-                final MetaModelValidator validator) {
+                final OneToOneAssociation property) {
 
             final ObjectSpecification propertyTypeSpec = property.getSpecification();
             final Class<?> propertyType = propertyTypeSpec.getCorrespondingClass();
@@ -340,8 +330,7 @@ implements MetaModelRefiner {
     private static class JaxbViewModelNotAbstractValidator extends TypeValidator {
         @Override
         void validate(
-                final ObjectSpecification objectSpec,
-                final MetaModelValidator validator) {
+                final ObjectSpecification objectSpec) {
 
             if(objectSpec.isAbstract()) {
                 DeficiencyFacet.appendTo(
@@ -355,8 +344,7 @@ implements MetaModelRefiner {
     private static class JaxbViewModelNotInnerClassValidator extends TypeValidator {
         @Override
         void validate(
-                final ObjectSpecification objectSpec,
-                final MetaModelValidator validator) {
+                final ObjectSpecification objectSpec) {
 
             final Class<?> correspondingClass = objectSpec.getCorrespondingClass();
             if(correspondingClass.isAnonymousClass()) {
@@ -380,9 +368,7 @@ implements MetaModelRefiner {
 
     private static class JaxbViewModelPublicNoArgConstructorValidator extends TypeValidator {
         @Override
-        void validate(
-                final ObjectSpecification objectSpec,
-                final MetaModelValidator validator) {
+        void validate(final ObjectSpecification objectSpec) {
 
             val correspondingClass = objectSpec.getCorrespondingClass();
             
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 b48c6b7..939c960 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
@@ -501,7 +501,7 @@ implements MetaModelRefiner, PostConstructMethodCache, ObjectSpecIdFacetFactory
                 new MetaModelValidatorVisiting.SummarizingVisitor(){
 
                     @Override
-                    public boolean visit(ObjectSpecification objSpec, MetaModelValidator validator) {
+                    public boolean visit(ObjectSpecification objSpec) {
                         collidingSpecsByLogicalTypeName.putElement(objSpec.getLogicalTypeName() , objSpec);
                         return true;
                     }
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 2abec56..83c6639 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
@@ -32,7 +32,6 @@ 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.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.val;
@@ -70,14 +69,12 @@ implements MetaModelRefiner {
         programmingModel.addValidatorSkipManagedBeans(new MetaModelValidatorVisiting.Visitor() {
 
             @Override
-            public boolean visit(final ObjectSpecification thisSpec, final MetaModelValidator validator) {
-                validate(thisSpec, validator);
+            public boolean visit(final ObjectSpecification thisSpec) {
+                validate(thisSpec);
                 return true;
             }
 
-            private void validate(
-                    final ObjectSpecification objectSpec,
-                    final MetaModelValidator validator) {
+            private void validate(final ObjectSpecification objectSpec) {
 
                 if(!objectSpec.containsFacet(DomainServiceFacet.class)) {
                     return;
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 a1f3a24..c9140ae 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
@@ -24,7 +24,6 @@ import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 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.val;
@@ -47,20 +46,17 @@ implements MetaModelRefiner {
             new MetaModelValidatorVisiting.Visitor() {
                 
                 @Override
-                public boolean visit(
-                        ObjectSpecification objectSpec,
-                        MetaModelValidator validator) {
+                public boolean visit(ObjectSpecification objectSpec) {
                     
                     if(objectSpec.isEntityOrViewModel()
                             || objectSpec.isManagedBean() ) {
-                        validate(objectSpec, validator);    
+                        validate(objectSpec);    
                     }
                     return true;
                 }
     
                 private void validate(
-                        ObjectSpecification objectSpec,
-                        MetaModelValidator validator) {
+                        ObjectSpecification objectSpec) {
                     
                     val objectSpecIdFacet = objectSpec.getFacet(ObjectSpecIdFacet.class);
                     if(objectSpecIdFacet == null) {
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 fb2e076..339da6f 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
@@ -38,7 +38,6 @@ import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutor
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.val;
@@ -118,17 +117,12 @@ implements MetaModelRefiner, ObjectSpecIdFacetFactory {
             new MetaModelValidatorVisiting.Visitor() {
                 
                 @Override
-                public boolean visit(
-                        ObjectSpecification objectSpec,
-                        MetaModelValidator validator) {
-                    
-                    validate(objectSpec, validator);
+                public boolean visit(ObjectSpecification objectSpec) {
+                    validate(objectSpec);
                     return true;
                 }
     
-                private void validate(
-                        ObjectSpecification objectSpec,
-                        MetaModelValidator validator) {
+                private void validate(ObjectSpecification objectSpec) {
                     
                     if(skip(objectSpec)) {
                         return;
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 c09bb7a..77ce49f 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
@@ -357,7 +357,7 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
         addPostProcessor(PostProcessingOrder.A1_BUILTIN, DeriveFacetsPostProcessor.class);
         addValidator(new TitlesAndTranslationsValidator());
 
-        addValidator((objectSpec, validator) -> {
+        addValidator(objectSpec -> {
             
             val actions = objectSpec.streamActions(MixedIn.INCLUDED).collect(Collectors.toList());
             
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForAmbiguousMixinAnnotations.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForAmbiguousMixinAnnotations.java
index ce26fad..b2de637 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForAmbiguousMixinAnnotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorForAmbiguousMixinAnnotations.java
@@ -21,8 +21,7 @@ package org.apache.isis.core.metamodel.specloader.validator;
 import java.lang.annotation.Annotation;
 
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
-
-import lombok.val;
+import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 
 public class MetaModelValidatorForAmbiguousMixinAnnotations 
 extends MetaModelValidatorAbstract {
@@ -32,15 +31,13 @@ extends MetaModelValidatorAbstract {
             final Class<A> annotationType) {
         
         final String annotationLiteral = "@" + annotationType.getSimpleName();
-        val identifier = holder.getIdentifier();
         
-        super.onFailure(
+        DeficiencyFacet.appendToWithFormat(
                 holder, 
-                identifier, 
                 "Annotation %s on both method and type level is not allowed, "
                 + "it must be one or the other. Found with mixin: %s", 
                 annotationLiteral, 
-                identifier.getFullIdentityString());
+                holder.getIdentifier().getFullIdentityString());
     }
 
     
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 3763108..f5901b9 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
@@ -44,7 +44,7 @@ extends MetaModelValidatorAbstract {
         /**
          * @return <tt>true</tt> continue visiting specs.
          */
-        boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator);
+        boolean visit(ObjectSpecification spec);
     }
     
     public interface SummarizingVisitor extends Visitor {
@@ -95,7 +95,7 @@ extends MetaModelValidatorAbstract {
                 return;
             }
             
-            visitor.visit(spec, this);
+            visitor.visit(spec);
         });
     }
 
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForClauseAbstract.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForClauseAbstract.java
index 898659a..324e282 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForClauseAbstract.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForClauseAbstract.java
@@ -26,7 +26,6 @@ import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.persistence.jdo.provider.metamodel.facets.object.query.JdoQueryFacet;
 
@@ -46,17 +45,12 @@ abstract class VisitorForClauseAbstract implements MetaModelValidatorVisiting.Vi
     }
 
     @Override
-    public boolean visit(
-            final ObjectSpecification objectSpec,
-            final MetaModelValidator validator) {
-        
-        validate(objectSpec, validator);
+    public boolean visit(final ObjectSpecification objectSpec) {
+        validate(objectSpec);
         return true;
     }
 
-    private void validate(
-            final ObjectSpecification objectSpec,
-            final MetaModelValidator validator) {
+    private void validate(final ObjectSpecification objectSpec) {
         
         val jdoQueryFacet = objectSpec.getFacet(JdoQueryFacet.class);
         if(jdoQueryFacet == null) {
@@ -66,7 +60,7 @@ abstract class VisitorForClauseAbstract implements MetaModelValidatorVisiting.Vi
             if(namedQuery.getLanguage().equals("JDOQL")) {
                 final String query = namedQuery.getQuery();
                 final String fromClassName = deriveClause(query);
-                interpretJdoql(fromClassName, objectSpec, query, validator);
+                interpretJdoql(fromClassName, objectSpec, query);
             }
         }
     }
@@ -74,8 +68,7 @@ abstract class VisitorForClauseAbstract implements MetaModelValidatorVisiting.Vi
     private void interpretJdoql(
             final String classNameFromClause,
             final ObjectSpecification objectSpec,
-            final String query,
-            final MetaModelValidator validator) {
+            final String query) {
 
         if (_Strings.isNullOrEmpty(classNameFromClause)) {
             return;
@@ -101,7 +94,7 @@ abstract class VisitorForClauseAbstract implements MetaModelValidatorVisiting.Vi
             return;
         }
 
-        postInterpretJdoql(classNameFromClause, objectSpec, query, validator);
+        postInterpretJdoql(classNameFromClause, objectSpec, query);
     }
 
     abstract String deriveClause(final String query);
@@ -109,8 +102,7 @@ abstract class VisitorForClauseAbstract implements MetaModelValidatorVisiting.Vi
     abstract void postInterpretJdoql(
             final String classNameFromClause,
             final ObjectSpecification objectSpec,
-            final String query,
-            final MetaModelValidator validator);
+            final String query);
 
 
     SpecificationLoader getSpecificationLoader() {
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForFromClause.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForFromClause.java
index 31a018e..38a6582 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForFromClause.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForFromClause.java
@@ -27,7 +27,6 @@ import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 import org.apache.isis.core.metamodel.spec.Hierarchical;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 
 import lombok.val;
 
@@ -47,8 +46,7 @@ class VisitorForFromClause extends VisitorForClauseAbstract {
     void postInterpretJdoql(
             final String classNameFromClause,
             final ObjectSpecification objectSpec,
-            final String query,
-            final MetaModelValidator validator) {
+            final String query) {
 
         val cls = objectSpec.getCorrespondingClass();
         if (Objects.equals(classNameFromClause, cls.getName())) {
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForVariablesClause.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForVariablesClause.java
index cfc3ec5..ba19232 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForVariablesClause.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/query/VisitorForVariablesClause.java
@@ -23,7 +23,6 @@ import org.apache.isis.applib.id.LogicalType;
 import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.specimpl.IntrospectionState;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 import org.apache.isis.persistence.jdo.provider.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
 
 import lombok.val;
@@ -43,8 +42,7 @@ class VisitorForVariablesClause extends VisitorForClauseAbstract {
     void postInterpretJdoql(
             final String classNameFromClause,
             final ObjectSpecification objectSpec,
-            final String query,
-            final MetaModelValidator validator) {
+            final String query) {
 
 
         val cls = objectSpec.getCorrespondingClass();
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 60c94fe..9848d32 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
@@ -30,7 +30,6 @@ import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.all.deficiencies.DeficiencyFacet;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 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 org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting.Visitor;
 import org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext;
@@ -73,12 +72,12 @@ implements MetaModelRefiner {
         return new MetaModelValidatorVisiting.Visitor() {
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
-                validate(objectSpec, validator);
+            public boolean visit(ObjectSpecification objectSpec) {
+                validate(objectSpec);
                 return true;
             }
 
-            private void validate(ObjectSpecification objectSpec, MetaModelValidator validator) {
+            private void validate(ObjectSpecification objectSpec) {
                 if(!declaresVersionAnnotation(objectSpec)) {
                     return;
                 }
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 c090ed5..843e877 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
@@ -35,7 +35,6 @@ 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.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting.Visitor;
 import org.apache.isis.persistence.jdo.provider.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
@@ -111,12 +110,12 @@ implements MetaModelRefiner {
         return new MetaModelValidatorVisiting.Visitor() {
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
-                validate(objectSpec, validator);
+            public boolean visit(ObjectSpecification objectSpec) {
+                validate(objectSpec);
                 return true;
             }
 
-            private void validate(ObjectSpecification objectSpec, MetaModelValidator validator) {
+            private void validate(ObjectSpecification objectSpec) {
 
                 // only consider persistent entities
                 final JdoPersistenceCapableFacet pcFacet = objectSpec.getFacet(JdoPersistenceCapableFacet.class);
@@ -128,12 +127,12 @@ implements MetaModelRefiner {
                 // skip checks if annotated with JDO @NotPersistent
                 .filter(association->!association.containsNonFallbackFacet(JdoNotPersistentFacet.class))
                 .forEach(association->{
-                    validateBigDecimalValueFacet(association, validator);
+                    validateBigDecimalValueFacet(association);
                 });
 
             }
 
-            private void validateBigDecimalValueFacet(ObjectAssociation association, MetaModelValidator validator) {
+            private void validateBigDecimalValueFacet(ObjectAssociation association) {
                 BigDecimalValueFacet facet = association.getFacet(BigDecimalValueFacet.class);
                 if(facet == null) {
                     return;
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 4688d9f..befdcaf 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
@@ -38,7 +38,6 @@ 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.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting.Visitor;
 import org.apache.isis.persistence.jdo.metamodel.facets.prop.primarykey.OptionalFacetDerivedFromJdoPrimaryKeyAnnotation;
@@ -130,12 +129,12 @@ implements MetaModelRefiner {
         return new MetaModelValidatorVisiting.Visitor() {
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
-                validate(objectSpec, validator);
+            public boolean visit(ObjectSpecification objectSpec) {
+                validate(objectSpec);
                 return true;
             }
 
-            private void validate(ObjectSpecification objectSpec, MetaModelValidator validator) {
+            private void validate(ObjectSpecification objectSpec) {
 
                 final JdoPersistenceCapableFacet pcFacet = objectSpec.getFacet(JdoPersistenceCapableFacet.class);
                 if(pcFacet==null || pcFacet.getIdentityType() == IdentityType.NONDURABLE) {
@@ -149,10 +148,10 @@ implements MetaModelRefiner {
                 associations
                 // skip checks if annotated with JDO @NotPersistent
                 .filter(association->!association.containsNonFallbackFacet(JdoNotPersistentFacet.class))
-                .forEach(association->validateMandatoryFacet(association, validator));
+                .forEach(association->validateMandatoryFacet(association));
             }
 
-            private void validateMandatoryFacet(ObjectAssociation association, MetaModelValidator validator) {
+            private void validateMandatoryFacet(ObjectAssociation association) {
                 MandatoryFacet facet = association.getFacet(MandatoryFacet.class);
 
                 MandatoryFacet underlying = (MandatoryFacet) facet.getUnderlyingFacet();
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 cb1e5b8..96b6667 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
@@ -36,7 +36,6 @@ 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.MetaModelValidator;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting.Visitor;
 import org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext;
@@ -102,12 +101,12 @@ implements MetaModelRefiner {
         return new MetaModelValidatorVisiting.Visitor() {
 
             @Override
-            public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
-                validate(objectSpec, validator);
+            public boolean visit(ObjectSpecification objectSpec) {
+                validate(objectSpec);
                 return true;
             }
 
-            private void validate(ObjectSpecification objectSpec, MetaModelValidator validator) {
+            private void validate(ObjectSpecification objectSpec) {
 
                 final JdoPersistenceCapableFacet pcFacet = objectSpec.getFacet(JdoPersistenceCapableFacet.class);
                 if(pcFacet==null || pcFacet.getIdentityType() == IdentityType.NONDURABLE) {
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java
index 02d6d0b..e75ff44 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java
@@ -93,7 +93,7 @@ public class JdoVersionAnnotationFacetFactoryTest_refineMetaModel {
             }
         });
 
-        newValidatorVisitor.visit(mockChildType, validator);
+        newValidatorVisitor.visit(mockChildType);
         
         val failures = new ValidationFailures();
         ((MetaModelValidatorAbstract)validator).collectFailuresInto(failures);
@@ -119,7 +119,7 @@ public class JdoVersionAnnotationFacetFactoryTest_refineMetaModel {
             }
         });
 
-        newValidatorVisitor.visit(mockChildType, validator);
+        newValidatorVisitor.visit(mockChildType);
 
         val failures = new ValidationFailures();
         ((MetaModelValidatorAbstract)validator).collectFailuresInto(failures);
@@ -155,7 +155,7 @@ public class JdoVersionAnnotationFacetFactoryTest_refineMetaModel {
             }
         });
 
-        newValidatorVisitor.visit(mockChildType, validator);
+        newValidatorVisitor.visit(mockChildType);
 
         val failures = new ValidationFailures();
         ((MetaModelValidatorAbstract)validator).collectFailuresInto(failures);
@@ -206,7 +206,7 @@ public class JdoVersionAnnotationFacetFactoryTest_refineMetaModel {
             }
         });
 
-        newValidatorVisitor.visit(mockChildType, validator);
+        newValidatorVisitor.visit(mockChildType);
 
         val failures = new ValidationFailures();
         ((MetaModelValidatorAbstract)validator).collectFailuresInto(failures);
@@ -268,7 +268,7 @@ public class JdoVersionAnnotationFacetFactoryTest_refineMetaModel {
             }
         });
 
-        newValidatorVisitor.visit(mockChildType, validator);
+        newValidatorVisitor.visit(mockChildType);
 
         val failures = new ValidationFailures();
         ((MetaModelValidatorAbstract)validator).collectFailuresInto(failures);