You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/12/03 12:28:41 UTC

[isis] branch master updated (3a9dd8a -> a3cbd17)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 3a9dd8a  ISIS-2188: cosmetic change for FixtureResult layout
     new 949a3bb  ISIS-2148: fixes site.yml, accidentally committed with incorrect antora ui bundle
     new cdd4077  ISIS-2158: fixes sign-in page, which showed bad img link if no image was configured
     new e8d374d  ISIS-2195: adds further short-circuit when loading actions
     new f2feee1  ISIS-2196: removes facet factories that look for static methods
     new 11daa74  ISIS-2196: now ignores static methods during introspection
     new a35521c  ISIS-2196: removes duplication by introducing MethodUtil.isPublic(...)
     new a3cbd17  ISIS-2199: reinstates code that had been commented out.

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../isis/viewer/wicket/ui/WebAppConfiguration.java |   2 +-
 .../apache/isis/metamodel/commons/MethodUtil.java  |  59 ++++++------
 .../isis/metamodel/facetapi/MethodRemover.java     |  14 +--
 .../apache/isis/metamodel/facets/Annotations.java  |   6 +-
 .../apache/isis/metamodel/facets/FacetFactory.java |  17 ++--
 .../isis/metamodel/facets/MethodFinderUtils.java   |  98 ++++++--------------
 .../MethodPrefixBasedFacetFactoryAbstract.java     | 103 ++++++++++-----------
 .../metamodel/facets/MethodRemoverConstants.java   |   5 +-
 .../ActionDefaultsFacetViaMethodFactory.java       |   3 +-
 .../ActionValidationFacetViaMethodFactory.java     |  11 +--
 .../CollectionAccessorFacetViaAccessorFactory.java |   2 -
 .../clear/CollectionClearFacetFactory.java         |   3 +-
 ...tionAddToRemoveFromAndValidateFacetFactory.java |   9 +-
 .../metamodel/facets/jaxb/JaxbFacetFactory.java    |   6 +-
 .../forsession/DisableForSessionFacet.java         |  40 --------
 .../forsession/DisableForSessionFacetAbstract.java |  44 ---------
 .../forsession/DisableForSessionFacetNone.java     |  42 ---------
 .../DisableForSessionFacetViaMethod.java           |  83 -----------------
 .../DisableForSessionFacetViaMethodFactory.java    |  82 ----------------
 .../DisableForContextFacetViaMethodFactory.java    |   5 +-
 .../hidden/forsession/HideForSessionFacet.java     |  37 --------
 .../forsession/HideForSessionFacetAbstract.java    |  50 ----------
 .../hidden/forsession/HideForSessionFacetNone.java |  45 ---------
 .../forsession/HideForSessionFacetViaMethod.java   |  84 -----------------
 .../HideForSessionFacetViaMethodFactory.java       |  79 ----------------
 .../HideForContextFacetViaMethodFactory.java       |   5 +-
 .../callbacks/CreatedCallbackFacetFactory.java     |   3 +-
 .../object/callbacks/LoadCallbackFacetFactory.java |   5 +-
 .../callbacks/PersistCallbackFacetFactory.java     |   5 +-
 .../PersistCallbackViaSaveMethodFacetFactory.java  |   5 +-
 .../callbacks/RemoveCallbackFacetFactory.java      |   5 +-
 .../RemoveCallbackViaDeleteMethodFacetFactory.java |   5 +-
 .../callbacks/UpdateCallbackFacetFactory.java      |   5 +-
 .../choices/enums/EnumValueSemanticsProvider.java  |   4 +-
 .../method/CssClassFacetMethodFactory.java         |   3 +-
 .../DisabledObjectFacetViaMethodFactory.java       |   3 +-
 .../method/HiddenObjectFacetViaMethodFactory.java  |   3 +-
 .../object/icon/method/IconFacetMethodFactory.java |   3 +-
 ...oveDatanucleusPersistableTypesFacetFactory.java |   3 +-
 .../RemoveStaticGettersAndSettersFacetFactory.java |  43 ---------
 .../javalang/IteratorFilteringFacetFactory.java    |   3 +-
 .../ignore/javalang/RemoveMethodsFacetFactory.java |   5 +-
 .../jdo/RemoveJdoEnhancementTypesFacetFactory.java |   3 +-
 .../facets/object/layout/LayoutFacetFactory.java   |   3 +-
 .../annotation/TitleAnnotationFacetFactory.java    |   5 +-
 .../title/methods/TitleFacetViaMethodsFactory.java |   5 +-
 .../method/ValidateObjectFacetMethodFactory.java   |   3 +-
 ...ParameterAutoCompleteFacetViaMethodFactory.java |   6 +-
 .../method/ActionChoicesFacetViaMethodFactory.java |   5 +-
 ...ctionParameterChoicesFacetViaMethodFactory.java |   3 +-
 ...tionParameterDefaultsFacetViaMethodFactory.java |   6 +-
 ...tionParameterDisabledFacetViaMethodFactory.java |   8 +-
 ...ActionParameterHiddenFacetViaMethodFactory.java |   8 +-
 ...onParameterValidationFacetViaMethodFactory.java |   8 +-
 .../PropertyAccessorFacetViaAccessorFactory.java   |   3 +-
 .../PropertyAutoCompleteFacetMethodFactory.java    |   3 +-
 .../PropertyChoicesFacetViaMethodFactory.java      |   3 +-
 .../PropertyDefaultFacetViaMethodFactory.java      |   3 +-
 .../update/PropertyModifyFacetFactory.java         |   3 +-
 .../update/PropertySetAndClearFacetFactory.java    |   5 +-
 .../PropertyValidateFacetViaMethodFactory.java     |   3 +-
 .../isis/metamodel/methodutils/MethodScope.java    |  57 ------------
 .../dflt/ProgrammingModelFacetsJava8.java          |  14 +--
 .../metamodel/specloader/SpecificationLoader.java  |  14 ++-
 .../specloader/SpecificationLoaderDefault.java     |  15 +++
 .../specloader/specimpl/FacetedMethodsBuilder.java |  61 ++++--------
 .../metamodel/facets/MethodRemoverForTesting.java  |  20 +---
 .../actions/ActionMethodsFacetFactoryTest.java     |  95 +------------------
 .../CollectionFieldMethodsFacetFactoryTest.java    |  86 +----------------
 .../PropertyMethodsFacetFactoryTest.java           | 102 +-------------------
 .../runtime/system/ObjectMemberAbstractTest.java   |  60 ++----------
 .../isis/runtime/system/MethodFinderUtilsTest.java |  88 ------------------
 .../ui/components/widgets/navbar/BrandLogo.java    |   1 +
 .../wicket/ui/pages/login/IsisSignInPanel.java     |   1 +
 .../SupportingMethodValidatorRefinerFactory.java   |   4 +-
 site.yml                                           |   4 +-
 76 files changed, 258 insertions(+), 1487 deletions(-)
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.java
 delete mode 100644 core/metamodel/src/main/java/org/apache/isis/metamodel/methodutils/MethodScope.java
 delete mode 100644 core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java


[isis] 06/07: ISIS-2196: removes duplication by introducing MethodUtil.isPublic(...)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a35521c3a224f81f84f7143de2bfa74c12f406c7
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 11:22:03 2019 +0000

    ISIS-2196: removes duplication by introducing MethodUtil.isPublic(...)
---
 .../apache/isis/metamodel/commons/MethodUtil.java  | 18 ++++--
 .../isis/metamodel/facets/MethodFinderUtils.java   | 72 ++++++----------------
 .../metamodel/facets/jaxb/JaxbFacetFactory.java    |  6 +-
 .../SupportingMethodValidatorRefinerFactory.java   |  4 +-
 4 files changed, 36 insertions(+), 64 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java
index 7535b73..a5908c9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java
@@ -21,6 +21,7 @@ package org.apache.isis.metamodel.commons;
 
 import lombok.val;
 
+import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Collection;
@@ -82,10 +83,7 @@ public class MethodUtil {
             final Class<?> returnType,
             final Class<?>[] paramTypes) {
         
-        final int modifiers = method.getModifiers();
-
-        // check for public modifier
-        if (!Modifier.isPublic(modifiers)) {
+        if (!isPublic(method)) {
             return false;
         }
 
@@ -188,9 +186,17 @@ public class MethodUtil {
     }
 
 
+    public static boolean isNotStatic(final Method method) {
+        return !isStatic(method);
+    }
+
     public static boolean isStatic(final Method method) {
         final int modifiers = method.getModifiers();
-        final boolean isStatic = Modifier.isStatic(modifiers);
-        return isStatic;
+        return Modifier.isStatic(modifiers);
+    }
+
+    public static boolean isPublic(Member method) {
+        final int modifiers = method.getModifiers();
+        return Modifier.isPublic(modifiers);
     }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java
index 440ced1..3179f85 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java
@@ -20,11 +20,10 @@ package org.apache.isis.metamodel.facets;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;import org.apache.isis.applib.services.i18n.TranslatableString;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.commons.internal.reflection._MethodCache;
 import org.apache.isis.metamodel.commons.MethodUtil;
 import org.apache.isis.metamodel.facetapi.MethodRemover;
@@ -36,14 +35,6 @@ public final class MethodFinderUtils {
     private MethodFinderUtils() {
     }
 
-    public static Method findMethodWithOrWithoutParameters(final Class<?> type, final String name, final Class<?> returnType, final Class<?>[] paramTypes) {
-        Method method = MethodFinderUtils.findMethod(type, name, returnType, paramTypes);
-        if (method == null) {
-            method = MethodFinderUtils.findMethod(type, name, returnType, MethodPrefixBasedFacetFactoryAbstract.NO_PARAMETERS_TYPES);
-        }
-        return method;
-    }
-    
     /**
      * Returns a specific public methods that: have the specified prefix; have
      * the specified return type (or some subtype), and has the
@@ -69,9 +60,7 @@ public final class MethodFinderUtils {
             return null;
         }
 
-        final int modifiers = method.getModifiers();
-
-        if (!Modifier.isPublic(modifiers)) {
+        if (!MethodUtil.isPublic(method)) {
             return null;
         }
 
@@ -102,7 +91,8 @@ public final class MethodFinderUtils {
 
         return method;
     }
-    
+
+
     public static Method findMethod_returningAnyOf(
             final Class<?>[] returnTypes,
             final Class<?> type,
@@ -121,56 +111,32 @@ public final class MethodFinderUtils {
     public static Method findMethod(final Class<?> type, final String name, final Class<?> returnType) {
         try {
             final Method[] methods = type.getMethods();
-            for (final Method method2 : methods) {
-                final Method method = method2;
-                final int modifiers = method.getModifiers();
-                // check for public modifier
-                if (!Modifier.isPublic(modifiers)) {
-                    continue;
-                }
-
-                if(MethodUtil.isStatic(method)) {
-                    continue;
-                }
+            return Arrays.stream(methods)
+                    .filter(MethodUtil::isPublic)
+                    .filter(MethodUtil::isNotStatic)
+                    .filter(method -> method.getName().equals(name))
+                    .filter(method -> returnType == null ||
+                                      returnType == method.getReturnType())
+                    .findFirst()
+                    .orElse(null);
 
-                // check for name
-                if (!method.getName().equals(name)) {
-                    continue;
-                }
-
-                // check for return type
-                if (returnType != null && returnType != method.getReturnType()) {
-                    continue;
-                }
-                return method;
-            }
         } catch (final SecurityException e) {
             return null;
         }
-        return null;
     }
 
     public static List<Method> findMethodsWithAnnotation(final Class<?> type, final Class<? extends Annotation> annotationClass) {
 
-        final List<Method> methods = new ArrayList<Method>();
-
         // Validate arguments
         if (type == null || annotationClass == null) {
             throw new IllegalArgumentException("One or more arguments are 'null' valued");
         }
 
         // Find methods annotated with the specified annotation
-        for (final Method method : type.getMethods()) {
-            if(MethodUtil.isStatic(method)) {
-                continue;
-            }
-
-            if (method.isAnnotationPresent(annotationClass)) {
-                methods.add(method);
-            }
-        }
-
-        return methods;
+        return Arrays.stream(type.getMethods())
+                .filter(method -> !MethodUtil.isStatic(method))
+                .filter(method -> method.isAnnotationPresent(annotationClass))
+                .collect(Collectors.toList());
     }
 
     public static void removeMethod(final MethodRemover methodRemover, final Method method) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java
index 77d59eb..7c5997e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java
@@ -32,6 +32,7 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.config.IsisConfiguration;
+import org.apache.isis.metamodel.commons.MethodUtil;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
@@ -378,9 +379,8 @@ implements MetaModelRefiner {
             final Constructor<?>[] constructors = correspondingClass.getDeclaredConstructors();
             for (Constructor<?> constructor : constructors) {
                 if(constructor.getParameterCount() == 0) {
-                    if (!Modifier.isPublic(constructor.getModifiers())) {
-                        validator
-                        .onFailure(
+                    if (!MethodUtil.isPublic(constructor)) {
+                        validator.onFailure(
                                 objectSpec,
                                 objectSpec.getIdentifier(),
                                 "JAXB view model '%s' has a no-arg constructor, however it is not public",
diff --git a/extensions/other/incubator/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java b/extensions/other/incubator/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java
index 5a7d55a..c26a47f 100644
--- a/extensions/other/incubator/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java
+++ b/extensions/other/incubator/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
 import org.apache.isis.applib.annotation.Model;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
+import org.apache.isis.metamodel.commons.MethodUtil;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
@@ -114,8 +115,7 @@ implements MetaModelRefiner {
         //val type = spec.getCorrespondingClass();
         val unmetContraints = _Lists.<String>newArrayList();
 
-        final int modifiers = method.getModifiers();
-        if (!Modifier.isPublic(modifiers)) {
+        if (!MethodUtil.isPublic(method)) {
             unmetContraints.add("method must be 'public'");
             return unmetContraints; // don't check any further
         } 


[isis] 03/07: ISIS-2195: adds further short-circuit when loading actions

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit e8d374d04fd2cb64a142a2a6ff5ebbf6e73fa530
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 10:20:32 2019 +0000

    ISIS-2195: adds further short-circuit when loading actions
    
    ... either load the specifications for all of the action parameter types, or none.
---
 .../metamodel/specloader/SpecificationLoader.java   | 14 ++++++++++----
 .../specloader/SpecificationLoaderDefault.java      | 15 +++++++++++++++
 .../specloader/specimpl/FacetedMethodsBuilder.java  | 21 +--------------------
 3 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
index 12b3c04..55d12cb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
@@ -94,15 +94,21 @@ public interface SpecificationLoader {
      *
      * <p>
      * It is possible for this method to return <tt>null</tt>, for example if
-     * the configured {@link ClassSubstitutor}
-     * has filtered out the class.
+     * the configured {@link ClassSubstitutor} has filtered out the class.
      * 
-     * @return {@code null} if {@code domainType==null}
+     * @return {@code null} if {@code domainType==null}, or if the type should be ignored.
      */
     ObjectSpecification loadSpecification(@Nullable Class<?> domainType, IntrospectionState upTo);
-    
+
+    /**
+     * @param domainTypes
+     * @return true if a specification could be loaded for all types, false otherwise
+     */
+    boolean loadSpecifications(final Class<?>... domainTypes);
+
     Class<?> lookupType(ObjectSpecId objectSpecId);
 
+
     // -- SHORTCUTS
 
     default ObjectSpecification loadSpecification(@Nullable final Class<?> domainType) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index d27e63a..a0e53d2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -18,7 +18,9 @@
  */
 package org.apache.isis.metamodel.specloader;
 
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Objects;
 import java.util.function.Consumer;
 
 import javax.annotation.Nullable;
@@ -272,6 +274,18 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
         loadSpecification(domainType, IntrospectionState.TYPE_AND_MEMBERS_INTROSPECTED);
     }
 
+    @Override
+    public boolean loadSpecifications(Class<?>... domainTypes) {
+        // ensure that all types are loadable
+        if (Arrays.stream(domainTypes)
+                .map(domainType -> classSubstitutor.getClass(domainType))
+                .anyMatch(Objects::isNull)) {
+            return false;
+        }
+        Arrays.stream(domainTypes).forEach(this::loadSpecification);
+        return true;
+    }
+
     @Override @Nullable
     public ObjectSpecification loadSpecification(@Nullable final Class<?> type, final IntrospectionState upTo) {
 
@@ -333,6 +347,7 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
         return cache.resolveType(objectSpecId);
     }
 
+
     // -- HELPER
     
     /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 7d7ea38..d35f94e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -45,7 +45,6 @@ import org.apache.isis.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.metamodel.facets.object.facets.FacetsFacet;
 import org.apache.isis.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.metamodel.methodutils.MethodScope;
-import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.metamodel.services.classsubstitutor.ClassSubstitutor;
 import org.apache.isis.metamodel.specloader.facetprocessor.FacetProcessor;
@@ -187,12 +186,6 @@ public class FacetedMethodsBuilder {
     // ////////////////////////////////////////////////////////////////////////////
 
 
-    public void introspectObjectSpecId() {
-        if (log.isDebugEnabled()) {
-            log.debug("introspecting {}: objectSpecId", getClassName());
-        }
-        getFacetProcessor().processObjectSpecId(introspectedClass, inspectedTypeSpec);
-    }
     public void introspectClass() {
         if (log.isDebugEnabled()) {
             log.debug("introspecting {}: class-level details", getClassName());
@@ -514,19 +507,7 @@ public class FacetedMethodsBuilder {
     }
 
     private boolean loadParamSpecs(final Method actionMethod) {
-        final Class<?>[] parameterTypes = actionMethod.getParameterTypes();
-        return loadParamSpecs(parameterTypes);
-    }
-
-    private boolean loadParamSpecs(final Class<?>[] parameterTypes) {
-        final int numParameters = parameterTypes.length;
-        for (int j = 0; j < numParameters; j++) {
-            final ObjectSpecification paramSpec = getSpecificationLoader().loadSpecification(parameterTypes[j]);
-            if (paramSpec == null) {
-                return false;
-            }
-        }
-        return true;
+        return getSpecificationLoader().loadSpecifications(actionMethod.getParameterTypes());
     }
 
 


[isis] 05/07: ISIS-2196: now ignores static methods during introspection

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 11daa74f767000eaeb501bd40a8435cd281e473c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 11:07:19 2019 +0000

    ISIS-2196: now ignores static methods during introspection
    
    ... allowing MethodScope enum to be removed
---
 .../apache/isis/metamodel/commons/MethodUtil.java  | 47 ++++++-----------
 .../isis/metamodel/facetapi/MethodRemover.java     | 14 +----
 .../apache/isis/metamodel/facets/Annotations.java  |  6 +--
 .../apache/isis/metamodel/facets/FacetFactory.java | 17 +++---
 .../isis/metamodel/facets/MethodFinderUtils.java   | 36 +++++--------
 .../metamodel/facets/MethodRemoverConstants.java   |  5 +-
 .../ActionDefaultsFacetViaMethodFactory.java       |  3 +-
 .../ActionValidationFacetViaMethodFactory.java     | 11 ++--
 .../CollectionAccessorFacetViaAccessorFactory.java |  2 -
 .../clear/CollectionClearFacetFactory.java         |  3 +-
 ...tionAddToRemoveFromAndValidateFacetFactory.java |  9 ++--
 .../DisableForContextFacetViaMethodFactory.java    |  5 +-
 .../HideForContextFacetViaMethodFactory.java       |  5 +-
 .../callbacks/CreatedCallbackFacetFactory.java     |  3 +-
 .../object/callbacks/LoadCallbackFacetFactory.java |  5 +-
 .../callbacks/PersistCallbackFacetFactory.java     |  5 +-
 .../PersistCallbackViaSaveMethodFacetFactory.java  |  5 +-
 .../callbacks/RemoveCallbackFacetFactory.java      |  5 +-
 .../RemoveCallbackViaDeleteMethodFacetFactory.java |  5 +-
 .../callbacks/UpdateCallbackFacetFactory.java      |  5 +-
 .../choices/enums/EnumValueSemanticsProvider.java  |  4 +-
 .../method/CssClassFacetMethodFactory.java         |  3 +-
 .../DisabledObjectFacetViaMethodFactory.java       |  3 +-
 .../method/HiddenObjectFacetViaMethodFactory.java  |  3 +-
 .../object/icon/method/IconFacetMethodFactory.java |  3 +-
 ...oveDatanucleusPersistableTypesFacetFactory.java |  3 +-
 .../javalang/IteratorFilteringFacetFactory.java    |  3 +-
 .../ignore/javalang/RemoveMethodsFacetFactory.java |  5 +-
 .../jdo/RemoveJdoEnhancementTypesFacetFactory.java |  3 +-
 .../facets/object/layout/LayoutFacetFactory.java   |  3 +-
 .../annotation/TitleAnnotationFacetFactory.java    |  5 +-
 .../title/methods/TitleFacetViaMethodsFactory.java |  5 +-
 .../method/ValidateObjectFacetMethodFactory.java   |  3 +-
 ...ParameterAutoCompleteFacetViaMethodFactory.java |  6 +--
 .../method/ActionChoicesFacetViaMethodFactory.java |  5 +-
 ...ctionParameterChoicesFacetViaMethodFactory.java |  3 +-
 ...tionParameterDefaultsFacetViaMethodFactory.java |  6 +--
 ...tionParameterDisabledFacetViaMethodFactory.java |  8 ++-
 ...ActionParameterHiddenFacetViaMethodFactory.java |  8 ++-
 ...onParameterValidationFacetViaMethodFactory.java |  8 ++-
 .../PropertyAccessorFacetViaAccessorFactory.java   |  3 +-
 .../PropertyAutoCompleteFacetMethodFactory.java    |  3 +-
 .../PropertyChoicesFacetViaMethodFactory.java      |  3 +-
 .../PropertyDefaultFacetViaMethodFactory.java      |  3 +-
 .../update/PropertyModifyFacetFactory.java         |  3 +-
 .../update/PropertySetAndClearFacetFactory.java    |  5 +-
 .../PropertyValidateFacetViaMethodFactory.java     |  3 +-
 .../isis/metamodel/methodutils/MethodScope.java    | 57 --------------------
 .../specloader/specimpl/FacetedMethodsBuilder.java | 38 +++++---------
 .../metamodel/facets/MethodRemoverForTesting.java  | 20 ++------
 .../runtime/system/ObjectMemberAbstractTest.java   | 60 +++-------------------
 .../isis/runtime/system/MethodFinderUtilsTest.java | 53 -------------------
 52 files changed, 137 insertions(+), 400 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java
index 186c9cb..7535b73 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/MethodUtil.java
@@ -19,17 +19,14 @@
 
 package org.apache.isis.metamodel.commons;
 
+import lombok.val;
+
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.Collection;
-import java.util.List;
 import java.util.Set;
 import java.util.function.Consumer;
 
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-import lombok.val;
-
 public class MethodUtil {
 
     private MethodUtil(){}
@@ -46,22 +43,17 @@ public class MethodUtil {
      * <p>
      * Any methods that do not meet the search criteria are left in the array of
      * methods.
-     *
-     * <p>
-     * The search algorithm is as specified in
-     * {@link MethodUtil#findMethodIndex(List, MethodScope, String, Class, Class[])}.
      */
     public static Method removeMethod(
-            final Set<Method> methods, 
-            final MethodScope methodScope, 
-            final String name, 
-            final Class<?> returnType, 
+            final Set<Method> methods,
+            final String name,
+            final Class<?> returnType,
             final Class<?>[] paramTypes) {
         
         val methodIterator = methods.iterator();
         while(methodIterator.hasNext()) {
             val method = methodIterator.next();
-            if(matches(method, methodScope, name, returnType, paramTypes)){
+            if(matches(method, name, returnType, paramTypes)){
                 methodIterator.remove();
                 return method;
             }
@@ -85,10 +77,9 @@ public class MethodUtil {
      * If the returnType is specified as null then the return type is ignored.
      */
     private static boolean matches(
-            final Method method, 
-            final MethodScope methodScope, 
-            final String name, 
-            final Class<?> returnType, 
+            final Method method,
+            final String name,
+            final Class<?> returnType,
             final Class<?>[] paramTypes) {
         
         final int modifiers = method.getModifiers();
@@ -98,8 +89,7 @@ public class MethodUtil {
             return false;
         }
 
-        // check for static modifier
-        if (!inScope(method, methodScope)) {
+        if (isStatic(method)) {
             return false;
         }
 
@@ -130,10 +120,6 @@ public class MethodUtil {
         return true;
     }
 
-    public static boolean inScope(final Method extendee, final MethodScope methodScope) {
-        final boolean isStatic = MethodExtensions.isStatic(extendee);
-        return isStatic && methodScope == MethodScope.CLASS || !isStatic && methodScope == MethodScope.OBJECT;
-    }
 
     /**
      * Searches the supplied array of methods for all specific methods and
@@ -158,14 +144,12 @@ public class MethodUtil {
      * @param paramTypes
      *            the set of parameters the method should have, if null then is
      *            ignored
-     * @param forClass
      * @param returnType
      * @param canBeVoid
      * @return Method
      */
     public static void removeMethods(
             Set<Method> methods,
-            MethodScope forClass,
             String prefix,
             Class<?> returnType,
             CanBeVoid canBeVoid,
@@ -173,20 +157,19 @@ public class MethodUtil {
             Consumer<Method> onMatch) {
 
         methods.removeIf(method -> 
-            matches(method, forClass, prefix, returnType, canBeVoid, paramCount, onMatch));
+            matches(method, prefix, returnType, canBeVoid, paramCount, onMatch));
         
     }
 
     private static boolean matches(
             Method method,
-            MethodScope forClass,
             String prefix,
             Class<?> returnType,
             CanBeVoid canBeVoid,
             int paramCount,
             Consumer<Method> onMatch) {
 
-        if (!inScope(method, forClass)) {
+        if (isStatic(method)) {
             return false;
         }
 
@@ -205,5 +188,9 @@ public class MethodUtil {
     }
 
 
-
+    public static boolean isStatic(final Method method) {
+        final int modifiers = method.getModifiers();
+        final boolean isStatic = Modifier.isStatic(modifiers);
+        return isStatic;
+    }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/MethodRemover.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/MethodRemover.java
index 493c025..3796eb6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/MethodRemover.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/MethodRemover.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
 import java.util.function.Consumer;
 
 import org.apache.isis.metamodel.commons.CanBeVoid;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 /**
  * Removes the methods from further processing by subsequent {@link Facet}s.
@@ -34,14 +33,10 @@ public interface MethodRemover {
      * Locate all methods (that the implementation should somehow know about)
      * that match the criteria and remove them from the implementation's list so
      * that they are not considered for subsequent scans.
-     * @param methodScope
-     *            - whether looking for <tt>static</tt> (class) or
-     *            instance-level methods.
      * @param canBeVoid
      * @param onRemoval receives any methods that were removed
      */
     void removeMethods(
-            MethodScope methodScope,
             String prefix,
             Class<?> returnType,
             CanBeVoid canBeVoid,
@@ -51,13 +46,12 @@ public interface MethodRemover {
 
     /*variant with noop consumer*/
     default void removeMethods(
-            MethodScope methodScope,
             String prefix,
             Class<?> returnType,
             CanBeVoid canBeVoid,
             int paramCount) {
         
-        removeMethods(methodScope, prefix, returnType, canBeVoid, paramCount, removedMethod -> {});
+        removeMethods(prefix, returnType, canBeVoid, paramCount, removedMethod -> {});
     }
     
     
@@ -66,13 +60,9 @@ public interface MethodRemover {
      * that match the criteria and remove them from the implementation's list so
      * that they are not considered for subsequent scans.
      *
-     * @param methodScope
-     *            - whether looking for <tt>static</tt> (class) or
-     *            instance-level methods.
      */
     void removeMethod(
-            MethodScope methodScope, 
-            String methodName, 
+            String methodName,
             Class<?> returnType,
             Class<?>[] parameterTypes);
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java
index a3160ae..80b939e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java
@@ -49,9 +49,9 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.reflection._Annotations;
 import org.apache.isis.commons.internal.reflection._Reflect;
+import org.apache.isis.metamodel.commons.MethodUtil;
 import org.apache.isis.metamodel.commons.ThrowableExtensions;
 import org.apache.isis.metamodel.exceptions.MetaModelException;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
@@ -415,8 +415,8 @@ public final class Annotations  {
             final Consumer<Evaluator<T>> visitor) {
 
         for (Method method : cls.getDeclaredMethods()) {
-            if(MethodScope.OBJECT.matchesScopeOf(method) &&
-                    method.getParameterTypes().length == 0) {
+            if(! MethodUtil.isStatic(method) &&
+                 method.getParameterTypes().length == 0) {
                 final Annotation annotation = method.getAnnotation(annotationClass);
                 if(annotation != null) {
                     visitor.accept(new MethodEvaluator(method, annotation));
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java
index eeb6f73..7a02c39 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java
@@ -34,7 +34,6 @@ import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MethodRemover;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.Getter;
 
@@ -114,13 +113,13 @@ public interface FacetFactory {
 
 
         @Override
-        public void removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
-            methodRemover.removeMethods(methodScope, prefix, returnType, canBeVoid, paramCount, onRemoval);
+        public void removeMethods(final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
+            methodRemover.removeMethods(prefix, returnType, canBeVoid, paramCount, onRemoval);
         }
 
         @Override
-        public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
-            methodRemover.removeMethod(methodScope, methodName, returnType, parameterTypes);
+        public void removeMethod(final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
+            methodRemover.removeMethod(methodName, returnType, parameterTypes);
         }
 
         @Override
@@ -172,13 +171,13 @@ public interface FacetFactory {
         }
 
         @Override
-        public void removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
-            methodRemover.removeMethods(methodScope, prefix, returnType, canBeVoid, paramCount, onRemoval);
+        public void removeMethods(final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
+            methodRemover.removeMethods(prefix, returnType, canBeVoid, paramCount, onRemoval);
         }
 
         @Override
-        public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
-            methodRemover.removeMethod(methodScope, methodName, returnType, parameterTypes);
+        public void removeMethod(final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
+            methodRemover.removeMethod(methodName, returnType, parameterTypes);
         }
 
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java
index 6cc31d7..440ced1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodFinderUtils.java
@@ -26,8 +26,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.commons.internal.reflection._MethodCache;
+import org.apache.isis.metamodel.commons.MethodUtil;
 import org.apache.isis.metamodel.facetapi.MethodRemover;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.val;
 
@@ -36,10 +36,10 @@ public final class MethodFinderUtils {
     private MethodFinderUtils() {
     }
 
-    public static Method findMethodWithOrWithoutParameters(final Class<?> type, final MethodScope classMethod, final String name, final Class<?> returnType, final Class<?>[] paramTypes) {
-        Method method = MethodFinderUtils.findMethod(type, classMethod, name, returnType, paramTypes);
+    public static Method findMethodWithOrWithoutParameters(final Class<?> type, final String name, final Class<?> returnType, final Class<?>[] paramTypes) {
+        Method method = MethodFinderUtils.findMethod(type, name, returnType, paramTypes);
         if (method == null) {
-            method = MethodFinderUtils.findMethod(type, classMethod, name, returnType, MethodPrefixBasedFacetFactoryAbstract.NO_PARAMETERS_TYPES);
+            method = MethodFinderUtils.findMethod(type, name, returnType, MethodPrefixBasedFacetFactoryAbstract.NO_PARAMETERS_TYPES);
         }
         return method;
     }
@@ -58,12 +58,10 @@ public final class MethodFinderUtils {
      */
     public static Method findMethod(
             final Class<?> type,
-            final MethodScope methodScope,
             final String name,
             final Class<?> returnType,
             final Class<?>[] paramTypes) {
-        
-        
+
         val methodCache = _MethodCache.getInstance();
         
         val method = methodCache.lookupMethod(type, name, paramTypes);
@@ -77,8 +75,7 @@ public final class MethodFinderUtils {
             return null;
         }
 
-        // check for scope modifier
-        if (!methodScope.matchesScopeOf(method)) {
+        if(MethodUtil.isStatic(method)) {
             return null;
         }
 
@@ -109,12 +106,11 @@ public final class MethodFinderUtils {
     public static Method findMethod_returningAnyOf(
             final Class<?>[] returnTypes,
             final Class<?> type,
-            final MethodScope methodScope,
             final String name,
             final Class<?>[] paramTypes) {
         
         for (val returnType : returnTypes) {
-            val method = findMethod(type, methodScope, name, returnType, paramTypes);
+            val method = findMethod(type, name, returnType, paramTypes);
             if(method != null) {
                 return method;
             }
@@ -122,11 +118,7 @@ public final class MethodFinderUtils {
         return null;
     }
 
-    protected static boolean doesNotMatchScope(final MethodScope methodScope, final Method method) {
-        return methodScope.doesNotMatchScope(method);
-    }
-
-    public static Method findMethod(final Class<?> type, final MethodScope methodScope, final String name, final Class<?> returnType) {
+    public static Method findMethod(final Class<?> type, final String name, final Class<?> returnType) {
         try {
             final Method[] methods = type.getMethods();
             for (final Method method2 : methods) {
@@ -137,8 +129,7 @@ public final class MethodFinderUtils {
                     continue;
                 }
 
-                // check correct scope (static vs instance)
-                if (!methodScope.matchesScopeOf(method)) {
+                if(MethodUtil.isStatic(method)) {
                     continue;
                 }
 
@@ -159,18 +150,18 @@ public final class MethodFinderUtils {
         return null;
     }
 
-    public static List<Method> findMethodsWithAnnotation(final Class<?> type, final MethodScope methodScope, final Class<? extends Annotation> annotationClass) {
+    public static List<Method> findMethodsWithAnnotation(final Class<?> type, final Class<? extends Annotation> annotationClass) {
 
         final List<Method> methods = new ArrayList<Method>();
 
         // Validate arguments
-        if ((type == null) || (methodScope == null) || (annotationClass == null)) {
+        if (type == null || annotationClass == null) {
             throw new IllegalArgumentException("One or more arguments are 'null' valued");
         }
 
         // Find methods annotated with the specified annotation
         for (final Method method : type.getMethods()) {
-            if (!methodScope.matchesScopeOf(method)) {
+            if(MethodUtil.isStatic(method)) {
                 continue;
             }
 
@@ -244,10 +235,9 @@ public final class MethodFinderUtils {
     
     public static Method findMethod_returningText(
             final Class<?> type,
-            final MethodScope methodScope,
             final String name,
             final Class<?>[] paramTypes) {
-        return findMethod_returningAnyOf(TEXT_TYPES, type, methodScope, name, paramTypes);
+        return findMethod_returningAnyOf(TEXT_TYPES, type, name, paramTypes);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodRemoverConstants.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodRemoverConstants.java
index 7a29d84..90364b7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodRemoverConstants.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodRemoverConstants.java
@@ -24,17 +24,16 @@ import java.util.function.Consumer;
 
 import org.apache.isis.metamodel.commons.CanBeVoid;
 import org.apache.isis.metamodel.facetapi.MethodRemover;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class MethodRemoverConstants {
 
     public static MethodRemover NOOP = new MethodRemover() {
         @Override
-        public void removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
+        public void removeMethods(final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
         }
 
         @Override
-        public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
+        public void removeMethod(final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
         }
 
         @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
index ba06ee0..2331e6b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/defaults/method/ActionDefaultsFacetViaMethodFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 /**
  * Sets up all the {@link Facet}s for an action in a single shot.
@@ -82,7 +81,7 @@ public class ActionDefaultsFacetViaMethodFactory extends MethodPrefixBasedFacetF
         final String name = MethodLiteralConstants.DEFAULT_PREFIX + capitalizedName;
 
         final Class<?> cls = processMethodContext.getCls();
-        return MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, name, returnType, _Constants.emptyClasses);
+        return MethodFinderUtils.findMethod(cls, name, returnType, _Constants.emptyClasses);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
index 55e023c..a951854 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.metamodel.facets.actions.validate.method;
 
+import lombok.val;
+
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
@@ -30,9 +32,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.actions.validate.ActionValidationFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-import lombok.val;
 
 /**
  * Sets up {@link ActionValidationFacet}.
@@ -66,10 +65,9 @@ public class ActionValidationFacetViaMethodFactory extends MethodPrefixBasedFace
 
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
         final Class<?>[] paramTypes = actionMethod.getParameterTypes();
-        final MethodScope onClass = MethodScope.scopeFor(actionMethod);
 
         final Method validateMethod = MethodFinderUtils.findMethod_returningText(
-                cls, onClass,
+                cls,
                 MethodLiteralConstants.VALIDATE_PREFIX + capitalizedName,
                 paramTypes);
         if (validateMethod == null) {
@@ -94,11 +92,10 @@ public class ActionValidationFacetViaMethodFactory extends MethodPrefixBasedFace
         final IdentifiedHolder facetHolder = processParameterContext.getFacetHolder();
 
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
-        final MethodScope onClass = MethodScope.scopeFor(actionMethod);
 
         final String validateName = MethodLiteralConstants.VALIDATE_PREFIX + paramNum + capitalizedName;
         final Method validateMethod = MethodFinderUtils.findMethod_returningText(
-                cls, onClass,
+                cls,
                 validateName,
                 new Class<?>[]{paramType});
         if (validateMethod == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
index 1ea5042..4ba2d0e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.metamodel.facetapi.MethodRemover;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.PropertyOrCollectionIdentifyingFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.collparam.semantics.CollectionSemanticsFacetDefault;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 
 public class CollectionAccessorFacetViaAccessorFactory
@@ -96,7 +95,6 @@ extends PropertyOrCollectionIdentifyingFacetFactoryAbstract {
             final List<Method> methodListToAppendTo) {
 
         methodRemover.removeMethods(
-                MethodScope.OBJECT, 
                 MethodLiteralConstants.GET_PREFIX,
                 Collection.class,
                 CanBeVoid.FALSE,
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/clear/CollectionClearFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
index 94e4986..93dd8b9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/clear/CollectionClearFacetFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.collections.modify.CollectionClearFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -51,7 +50,7 @@ public class CollectionClearFacetFactory extends MethodPrefixBasedFacetFactoryAb
         final String capitalizedName = StringExtensions.asJavaBaseName(getMethod.getName());
 
         final Class<?> cls = processMethodContext.getCls();
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.CLEAR_PREFIX + capitalizedName, void.class, null);
+        final Method method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.CLEAR_PREFIX + capitalizedName, void.class, null);
         processMethodContext.removeMethod(method);
 
         final FacetHolder collection = processMethodContext.getFacetHolder();
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
index ad28498..cd21d10 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/modify/CollectionAddToRemoveFromAndValidateFacetFactory.java
@@ -33,7 +33,6 @@ import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateAddToFacetViaMethod;
 import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacetViaMethod;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 /**
  * TODO: should probably split out into two {@link FacetFactory}s, one for
@@ -64,11 +63,11 @@ public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPref
         final Class<?> cls = processMethodContext.getCls();
 
         // add
-        final Method addToMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.ADD_TO_PREFIX + capitalizedName, void.class);
+        final Method addToMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.ADD_TO_PREFIX + capitalizedName, void.class);
         processMethodContext.removeMethod(addToMethod);
 
         // remove
-        final Method removeFromMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.REMOVE_FROM_PREFIX + capitalizedName, void.class);
+        final Method removeFromMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.REMOVE_FROM_PREFIX + capitalizedName, void.class);
         processMethodContext.removeMethod(removeFromMethod);
 
         // add facets
@@ -133,7 +132,7 @@ public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPref
         final Class<?> cls = processMethodContext.getCls();
         final Class<?>[] paramTypes = MethodFinderUtils.paramTypesOrNull(collectionType);
         Method validateAddToMethod = MethodFinderUtils.findMethod_returningText(
-                cls, MethodScope.OBJECT,
+                cls,
                 MethodLiteralConstants.VALIDATE_ADD_TO_PREFIX + capitalizedName,
                 paramTypes);
         if (validateAddToMethod == null) {
@@ -158,7 +157,7 @@ public class CollectionAddToRemoveFromAndValidateFacetFactory extends MethodPref
         final Class<?> cls = processMethodContext.getCls();
         final Class<?>[] paramTypes = MethodFinderUtils.paramTypesOrNull(collectionType);
         Method validateRemoveFromMethod = MethodFinderUtils.findMethod_returningText(
-                cls, MethodScope.OBJECT,
+                cls,
                 MethodLiteralConstants.VALIDATE_REMOVE_FROM_PREFIX + capitalizedName,
                 paramTypes);
         if (validateRemoveFromMethod == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
index 6c7ef36..957addc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethodFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class DisableForContextFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract  {
 
@@ -68,14 +67,14 @@ public class DisableForContextFacetViaMethodFactory extends MethodPrefixBasedFac
         if(searchExactMatch) {
             // search for exact match
             disableMethod = MethodFinderUtils.findMethod_returningText(
-                    cls, MethodScope.OBJECT,
+                    cls,
                     MethodLiteralConstants.DISABLE_PREFIX + capitalizedName,
                     method.getParameterTypes());
         }
         if (disableMethod == null) {
             // search for no-arg version
             disableMethod = MethodFinderUtils.findMethod_returningText(
-                    cls, MethodScope.OBJECT,
+                    cls,
                     MethodLiteralConstants.DISABLE_PREFIX + capitalizedName,
                     new Class<?>[0]);
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
index 2565b2d..4dd6f31 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/method/HideForContextFacetViaMethodFactory.java
@@ -29,7 +29,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class HideForContextFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -59,13 +58,13 @@ public class HideForContextFacetViaMethodFactory extends MethodPrefixBasedFacetF
         final String capitalizedName = StringExtensions.asJavaBaseNameStripAccessorPrefixIfRequired(getMethod.getName());
 
         final Class<?> cls = processMethodContext.getCls();
-        Method hideMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.HIDE_PREFIX + capitalizedName, boolean.class, new Class[] {});
+        Method hideMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.HIDE_PREFIX + capitalizedName, boolean.class, new Class[] {});
         if (hideMethod == null) {
 
             boolean noParamsOnly = getConfiguration().getReflector().getValidator().isNoParamsOnly();
             boolean searchExactMatch = !noParamsOnly;
             if(searchExactMatch) {
-                hideMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.HIDE_PREFIX + capitalizedName, boolean.class, getMethod.getParameterTypes());
+                hideMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.HIDE_PREFIX + capitalizedName, boolean.class, getMethod.getParameterTypes());
             }
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java
index 57afb92..ab0f17b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/CreatedCallbackFacetFactory.java
@@ -23,7 +23,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.val;
 
@@ -40,7 +39,7 @@ public class CreatedCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAb
         val cls = processClassContext.getCls();
         val facetHolder = processClassContext.getFacetHolder();
 
-        val method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.CREATED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        val method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.CREATED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             super.addFacet(new CreatedCallbackFacetViaMethod(method, facetHolder));
             processClassContext.removeMethod(method);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java
index 58b04c2..77a39e0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/LoadCallbackFacetFactory.java
@@ -24,7 +24,6 @@ import java.lang.reflect.Method;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.LOADED_PREFIX;
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.LOADING_PREFIX;
@@ -45,13 +44,13 @@ public class LoadCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbstr
         val facetHolder = processClassContext.getFacetHolder();
 
         Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, LOADING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, LOADING_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             super.addFacet(new LoadingCallbackFacetViaMethod(method, facetHolder));
         }
 
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, LOADED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, LOADED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             super.addFacet(new LoadedCallbackFacetViaMethod(method, facetHolder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackFacetFactory.java
index 7bac20c..01d329f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackFacetFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.val;
 
@@ -47,7 +46,7 @@ public class PersistCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAb
         val facets = new ArrayList<Facet>();
 
         Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.PERSISTING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.PERSISTING_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             val facet = facetHolder.getFacet(PersistingCallbackFacet.class);
@@ -58,7 +57,7 @@ public class PersistCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAb
             }
         }
 
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.PERSISTED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.PERSISTED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             val facet = facetHolder.getFacet(PersistedCallbackFacet.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackViaSaveMethodFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackViaSaveMethodFacetFactory.java
index 60a15a0..7c3ba46 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackViaSaveMethodFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/PersistCallbackViaSaveMethodFacetFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.val;
 
@@ -47,7 +46,7 @@ public class PersistCallbackViaSaveMethodFacetFactory extends MethodPrefixBasedF
         val facets = new ArrayList<Facet>();
 
         Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.SAVING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.SAVING_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             val facet = facetHolder.getFacet(PersistingCallbackFacet.class);
@@ -58,7 +57,7 @@ public class PersistCallbackViaSaveMethodFacetFactory extends MethodPrefixBasedF
             }
         }
 
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.SAVED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.SAVED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             val facet = facetHolder.getFacet(PersistedCallbackFacet.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
index 96ccaa1..685ba8b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackFacetFactory.java
@@ -27,7 +27,6 @@ import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.REMOVED_PREFIX;
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.REMOVING_PREFIX;
@@ -49,7 +48,7 @@ public class RemoveCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbs
         val facets = new ArrayList<Facet>();
 
         Method method = MethodFinderUtils
-                .findMethod(cls, MethodScope.OBJECT, REMOVING_PREFIX, void.class,
+                .findMethod(cls, REMOVING_PREFIX, void.class,
                         NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
@@ -61,7 +60,7 @@ public class RemoveCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbs
             }
         }
 
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, REMOVED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, REMOVED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             val facet = facetHolder.getFacet(RemovedCallbackFacet.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java
index 52482be..516e577 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/RemoveCallbackViaDeleteMethodFacetFactory.java
@@ -27,7 +27,6 @@ import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.DELETED_PREFIX;
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.DELETING_PREFIX;
@@ -49,7 +48,7 @@ public class RemoveCallbackViaDeleteMethodFacetFactory extends MethodPrefixBased
         val facets = new ArrayList<Facet>();
 
         Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, DELETING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, DELETING_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             final RemovingCallbackFacet facet = facetHolder.getFacet(RemovingCallbackFacet.class);
@@ -60,7 +59,7 @@ public class RemoveCallbackViaDeleteMethodFacetFactory extends MethodPrefixBased
             }
         }
 
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, DELETED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, DELETED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             val facet = facetHolder.getFacet(RemovedCallbackFacet.class);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java
index eef6c3d..2baad94 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/callbacks/UpdateCallbackFacetFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.val;
 
@@ -47,13 +46,13 @@ public class UpdateCallbackFacetFactory extends MethodPrefixBasedFacetFactoryAbs
         val facets = new ArrayList<Facet>();
 
         Method method = null;
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.UPDATING_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.UPDATING_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             facets.add(new UpdatingCallbackFacetViaMethod(method, facetHolder));
         }
 
-        method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.UPDATED_PREFIX, void.class, NO_PARAMETERS_TYPES);
+        method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.UPDATED_PREFIX, void.class, NO_PARAMETERS_TYPES);
         if (method != null) {
             processClassContext.removeMethod(method);
             facets.add(new UpdatedCallbackFacetViaMethod(method, facetHolder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java
index bb766ea..d1e479d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java
@@ -33,7 +33,6 @@ import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
 import org.apache.isis.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class EnumValueSemanticsProvider<T extends Enum<T>> extends ValueSemanticsProviderAndFacetAbstract<T> implements EnumFacet {
 
@@ -77,8 +76,7 @@ public class EnumValueSemanticsProvider<T extends Enum<T>> extends ValueSemantic
                 defaultFor(adaptedClass));
 
         titleMethod = MethodFinderUtils.findMethod_returningText(
-                getAdaptedClass(), 
-                MethodScope.OBJECT,
+                getAdaptedClass(),
                 TITLE,
                 null);
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java
index 3a04f51..a3385a4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/cssclass/method/CssClassFacetMethodFactory.java
@@ -25,7 +25,6 @@ import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class CssClassFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -42,7 +41,7 @@ public class CssClassFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbs
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, CSS_CLASS_PREFIX, String.class, NO_PARAMETERS_TYPES);
+        final Method method = MethodFinderUtils.findMethod(cls, CSS_CLASS_PREFIX, String.class, NO_PARAMETERS_TYPES);
         if (method == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
index 5552ddc..e88aaaa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/disabled/method/DisabledObjectFacetViaMethodFactory.java
@@ -27,7 +27,6 @@ import org.apache.isis.metamodel.facets.FacetedMethod;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.object.disabled.DisabledObjectFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectMember;
 
@@ -61,7 +60,7 @@ public class DisabledObjectFacetViaMethodFactory extends MethodPrefixBasedFacetF
         val paramTypes = new Class<?>[] {Identifier.Type.class};
 
         val method = MethodFinderUtils.findMethod_returningText(
-                cls, MethodScope.OBJECT, DISABLED,
+                cls, DISABLED,
                 paramTypes);
         if (method == null) {
             return;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
index 3dc115b..1432dee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/hidden/method/HiddenObjectFacetViaMethodFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facets.FacetedMethod;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.object.hidden.HiddenObjectFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectMember;
 
@@ -78,7 +77,7 @@ public class HiddenObjectFacetViaMethodFactory extends MethodPrefixBasedFacetFac
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, HIDDEN_PREFIX, returnType, NO_PARAMETERS_TYPES);
+        final Method method = MethodFinderUtils.findMethod(cls, HIDDEN_PREFIX, returnType, NO_PARAMETERS_TYPES);
         if (method == null) {
             return false;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/icon/method/IconFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/icon/method/IconFacetMethodFactory.java
index a9f8e41..7604dbe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/icon/method/IconFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/icon/method/IconFacetMethodFactory.java
@@ -26,7 +26,6 @@ import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class IconFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -43,7 +42,7 @@ public class IconFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstrac
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, ICON_NAME_PREFIX, String.class, NO_PARAMETERS_TYPES);
+        final Method method = MethodFinderUtils.findMethod(cls, ICON_NAME_PREFIX, String.class, NO_PARAMETERS_TYPES);
         if (method == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java
index 8f67909..a0f8840 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/datanucleus/RemoveDatanucleusPersistableTypesFacetFactory.java
@@ -26,7 +26,6 @@ import org.apache.isis.commons.internal.factory.InstanceUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 /**
  * Removes all methods inherited from <tt>org.datanucleus.enhancement.Persistable</tt> (if datanucleus 4.1.x is on the classpath).
@@ -58,7 +57,7 @@ public class RemoveDatanucleusPersistableTypesFacetFactory extends FacetFactoryA
     @Override
     public void process(final ProcessClassContext processClassContext) {
         for (final RemoveMethodsFacetFactory.MethodAndParameterTypes mapt : datanucleusPersistableMethodsToIgnore) {
-            processClassContext.removeMethod(MethodScope.OBJECT, mapt.methodName, null, mapt.methodParameters);
+            processClassContext.removeMethod(mapt.methodName, null, mapt.methodParameters);
         }
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/IteratorFilteringFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/IteratorFilteringFacetFactory.java
index 8dc9921..0e7e1dc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/IteratorFilteringFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/IteratorFilteringFacetFactory.java
@@ -25,7 +25,6 @@ import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodFilteringFacetFactory;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 /**
  * Designed to simply filter out {@link Iterable#iterator()} method if it
@@ -42,7 +41,7 @@ public class IteratorFilteringFacetFactory extends FacetFactoryAbstract implemen
 
     @Override
     public void process(final ProcessClassContext processClassContext) {
-        processClassContext.removeMethod(MethodScope.OBJECT, "iterator", java.util.Iterator.class, new Class[] {});
+        processClassContext.removeMethod("iterator", java.util.Iterator.class, new Class[] {});
     }
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java
index 8c9a824..7323b1f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/javalang/RemoveMethodsFacetFactory.java
@@ -29,7 +29,6 @@ import org.apache.isis.metamodel.commons.ClassExtensions;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.spec.InjectorMethodEvaluator;
 import org.apache.isis.metamodel.specloader.InjectorMethodEvaluatorDefault;
 
@@ -106,11 +105,11 @@ public class RemoveMethodsFacetFactory extends FacetFactoryAbstract {
 
         // removeJavaLangObjectMethods(processClassContext);
         for (final MethodAndParameterTypes mapt : javaLangObjectMethodsToIgnore) {
-            processClassContext.removeMethod(MethodScope.OBJECT, mapt.methodName, null, mapt.methodParameters);
+            processClassContext.removeMethod(mapt.methodName, null, mapt.methodParameters);
         }
 
         // removeInitMethod(processClassContext);
-        processClassContext.removeMethod(MethodScope.OBJECT, "init", void.class, _Constants.emptyClasses);
+        processClassContext.removeMethod("init", void.class, _Constants.emptyClasses);
     }
 
     private void removeSuperclassMethods(Class<?> type, final ProcessClassContext processClassContext) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/jdo/RemoveJdoEnhancementTypesFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/jdo/RemoveJdoEnhancementTypesFacetFactory.java
index fc075c6..4392d7f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/jdo/RemoveJdoEnhancementTypesFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/jdo/RemoveJdoEnhancementTypesFacetFactory.java
@@ -27,7 +27,6 @@ import org.apache.isis.commons.internal.factory.InstanceUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 /**
  * Removes all methods inherited from <tt>javax.jdo.spi.PersistenceCapable</tt> (if JDO is on the classpath).
@@ -59,7 +58,7 @@ public class RemoveJdoEnhancementTypesFacetFactory extends FacetFactoryAbstract
     @Override
     public void process(final ProcessClassContext processClassContext) {
         for (final RemoveMethodsFacetFactory.MethodAndParameterTypes mapt : jdoEnhancementmethodsToIgnore) {
-            processClassContext.removeMethod(MethodScope.OBJECT, mapt.methodName, null, mapt.methodParameters);
+            processClassContext.removeMethod(mapt.methodName, null, mapt.methodParameters);
         }
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/layout/LayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/layout/LayoutFacetFactory.java
index 41c63c6..da62878 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/layout/LayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/layout/LayoutFacetFactory.java
@@ -25,7 +25,6 @@ import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class LayoutFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -42,7 +41,7 @@ public class LayoutFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, LAYOUT_METHOD_NAME, String.class, NO_PARAMETERS_TYPES);
+        final Method method = MethodFinderUtils.findMethod(cls, LAYOUT_METHOD_NAME, String.class, NO_PARAMETERS_TYPES);
 
         final LayoutFacet facet;
         if (method == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
index 5aa2e59..0367f12 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
@@ -36,7 +36,6 @@ import org.apache.isis.metamodel.facets.Annotations;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.fallback.FallbackFacetFactory;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.progmodel.ProgrammingModel;
 
 public class TitleAnnotationFacetFactory extends FacetFactoryAbstract
@@ -153,7 +152,7 @@ implements MetaModelRefiner {
 
             final Class<?> cls = objectSpec.getCorrespondingClass();
 
-            final Method titleMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, TITLE_METHOD_NAME, String.class, null);
+            final Method titleMethod = MethodFinderUtils.findMethod(cls, TITLE_METHOD_NAME, String.class, null);
             if (titleMethod == null) {
                 return true;
             }
@@ -182,7 +181,7 @@ implements MetaModelRefiner {
     }
 
     private static List<Method> methodsWithTitleAnnotation(final Class<?> cls) {
-        return MethodFinderUtils.findMethodsWithAnnotation(cls, MethodScope.OBJECT, Title.class);
+        return MethodFinderUtils.findMethodsWithAnnotation(cls, Title.class);
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java
index a3d22be..37f1606 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/title/methods/TitleFacetViaMethodsFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.fallback.FallbackFacetFactory;
 import org.apache.isis.metamodel.facets.object.title.TitleFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.TITLE;
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.TO_STRING;
@@ -53,7 +52,7 @@ public class TitleFacetViaMethodsFactory extends MethodPrefixBasedFacetFactoryAb
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
         Method method = MethodFinderUtils.findMethod_returningText(
-                cls, MethodScope.OBJECT,
+                cls,
                 TITLE,
                 NO_PARAMETERS_TYPES);
         if (method != null) {
@@ -74,7 +73,7 @@ public class TitleFacetViaMethodsFactory extends MethodPrefixBasedFacetFactoryAb
         }
 
         try {
-            method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, TO_STRING, String.class, null);
+            method = MethodFinderUtils.findMethod(cls, TO_STRING, String.class, null);
             if (method == null) {
                 return;
             }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
index ee31f2d..1490b7e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/validating/validateobject/method/ValidateObjectFacetMethodFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.VALIDATE_PREFIX;
 
@@ -46,7 +45,7 @@ public class ValidateObjectFacetMethodFactory extends MethodPrefixBasedFacetFact
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
         final Method method = MethodFinderUtils.findMethod_returningText(
-                cls, MethodScope.OBJECT,
+                cls,
                 VALIDATE_PREFIX,
                 NO_PARAMETERS_TYPES);
         if (method != null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index 88ffa4e..5eada6d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -32,7 +32,6 @@ import org.apache.isis.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -97,9 +96,8 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
         final String name = MethodLiteralConstants.AUTO_COMPLETE_PREFIX + paramNum + capitalizedName;
         return MethodFinderUtils.findMethod_returningAnyOf(
                 returnTypes,
-                cls, 
-                MethodScope.OBJECT, 
-                name, 
+                cls,
+                name,
                 new Class[]{String.class});
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
index 4e3c225..4549da3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethodFactory.java
@@ -26,12 +26,10 @@ import org.apache.isis.commons.internal._Constants;
 import org.apache.isis.metamodel.commons.StringExtensions;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class ActionChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -91,11 +89,10 @@ public class ActionChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFa
         final Class<?> cls = processMethodContext.getCls();
 
         final Method actionMethod = processMethodContext.getMethod();
-        final MethodScope methodScope = MethodScope.scopeFor(actionMethod);
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
 
         final String name = MethodLiteralConstants.CHOICES_PREFIX + capitalizedName;
-        choicesMethod = MethodFinderUtils.findMethod(cls, methodScope, name, returnType2, _Constants.emptyClasses);
+        choicesMethod = MethodFinderUtils.findMethod(cls, name, returnType2, _Constants.emptyClasses);
         return choicesMethod;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
index 0ce6a24..b92a0cc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
@@ -35,7 +35,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.param.choices.ActionChoicesFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class ActionParameterChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -135,7 +134,7 @@ public class ActionParameterChoicesFacetViaMethodFactory extends MethodPrefixBas
         final Method actionMethod = processMethodContext.getMethod();
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
         final String name = MethodLiteralConstants.CHOICES_PREFIX + n + capitalizedName;
-        return MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, name, returnType, paramTypes);
+        return MethodFinderUtils.findMethod(cls, name, returnType, paramTypes);
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index bc51967..83f78fd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -33,7 +33,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.actions.defaults.ActionDefaultsFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.val;
 
@@ -111,9 +110,8 @@ public class ActionParameterDefaultsFacetViaMethodFactory extends MethodPrefixBa
 
         for(;;) {
             val method = MethodFinderUtils.findMethod(
-                    cls, 
-                    MethodScope.OBJECT, 
-                    capitalizedName, 
+                    cls,
+                    capitalizedName,
                     returnType, 
                     paramTypes);
             
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
index c29d5d1..88a6343 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.metamodel.facets.param.disable.method;
 
+import lombok.val;
+
 import java.lang.reflect.Method;
 import java.util.List;
 
@@ -32,9 +34,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.param.disable.ActionParameterDisabledFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-import lombok.val;
 
 /**
  * Sets up {@link ActionParameterDisabledFacet}.
@@ -58,7 +57,6 @@ public class ActionParameterDisabledFacetViaMethodFactory extends MethodPrefixBa
 
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
         final List<Class<?>> paramTypes = ListExtensions.mutableCopy(actionMethod.getParameterTypes());
-        final MethodScope onClass = MethodScope.scopeFor(actionMethod);
 
         final String hideName = MethodLiteralConstants.DISABLE_PREFIX + paramNum + capitalizedName;
 
@@ -68,7 +66,7 @@ public class ActionParameterDisabledFacetViaMethodFactory extends MethodPrefixBa
 
         for(int i=0; i< numParamTypes+1; i++) {
             val disableMethod = MethodFinderUtils.findMethod_returningText(
-                    cls, onClass,
+                    cls,
                     hideName,
                     NO_PARAMETERS_TYPES);
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
index 9cb1c54..9b4918e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.metamodel.facets.param.hide.method;
 
+import lombok.val;
+
 import java.lang.reflect.Method;
 import java.util.List;
 
@@ -31,9 +33,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.param.hide.ActionParameterHiddenFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-import lombok.val;
 
 /**
  * Sets up {@link ActionParameterHiddenFacet}.
@@ -57,7 +56,6 @@ public class ActionParameterHiddenFacetViaMethodFactory extends MethodPrefixBase
 
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
         final List<Class<?>> paramTypes = ListExtensions.mutableCopy(actionMethod.getParameterTypes());
-        final MethodScope onClass = MethodScope.scopeFor(actionMethod);
 
         final String hideName = MethodLiteralConstants.HIDE_PREFIX + paramNum + capitalizedName;
 
@@ -65,7 +63,7 @@ public class ActionParameterHiddenFacetViaMethodFactory extends MethodPrefixBase
 
         for(int i=0; i< numParamTypes+1; i++) {
             val hideMethod = MethodFinderUtils.findMethod(
-                    cls, onClass,
+                    cls,
                     hideName,
                     boolean.class,
                     NO_PARAMETERS_TYPES);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
index 0d75f62..9828be0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.metamodel.facets.param.validate.method;
 
+import lombok.val;
+
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
@@ -29,9 +31,6 @@ import org.apache.isis.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-import lombok.val;
 
 /**
  * Sets up {@link org.apache.isis.metamodel.facets.param.validate.ActionParameterValidationFacet}.
@@ -59,11 +58,10 @@ public class ActionParameterValidationFacetViaMethodFactory extends MethodPrefix
         final IdentifiedHolder facetHolder = processParameterContext.getFacetHolder();
 
         final String capitalizedName = StringExtensions.asCapitalizedName(actionMethod.getName());
-        final MethodScope onClass = MethodScope.scopeFor(actionMethod);
 
         final String validateName = MethodLiteralConstants.VALIDATE_PREFIX + paramNum + capitalizedName;
         final Method validateMethod = MethodFinderUtils.findMethod_returningText(
-                cls, onClass,
+                cls,
                 validateName,
                 new Class<?>[]{paramType});
         if (validateMethod == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java
index b51f3e8..5e7c117 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessorFactory.java
@@ -29,7 +29,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MethodRemover;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.PropertyOrCollectionIdentifyingFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 
 public class PropertyAccessorFacetViaAccessorFactory extends PropertyOrCollectionIdentifyingFacetFactoryAbstract {
@@ -99,7 +98,7 @@ public class PropertyAccessorFacetViaAccessorFactory extends PropertyOrCollectio
     }
 
     private static void appendMatchingMethods(final MethodRemover methodRemover, final String prefix, final Class<?> returnType, final List<Method> methodListToAppendTo) {
-        methodRemover.removeMethods(MethodScope.OBJECT, prefix, returnType, CanBeVoid.FALSE, 0, methodListToAppendTo::add);
+        methodRemover.removeMethods(prefix, returnType, CanBeVoid.FALSE, 0, methodListToAppendTo::add);
     }
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
index eb513f7..671b266 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethodFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class PropertyAutoCompleteFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -52,7 +51,7 @@ public class PropertyAutoCompleteFacetMethodFactory extends MethodPrefixBasedFac
 
         final Class<?> cls = processMethodContext.getCls();
         final Class<?> returnType = getMethod.getReturnType();
-        final Method autoCompleteMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.AUTO_COMPLETE_PREFIX + capitalizedName, (Class<?>)null, new Class[]{String.class});
+        final Method autoCompleteMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.AUTO_COMPLETE_PREFIX + capitalizedName, (Class<?>)null, new Class[]{String.class});
         if (autoCompleteMethod == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
index 77b90a5..ad36b1c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethodFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -51,7 +50,7 @@ public class PropertyChoicesFacetViaMethodFactory extends MethodPrefixBasedFacet
 
         final Class<?> cls = processMethodContext.getCls();
         final Class<?> returnType = getMethod.getReturnType();
-        final Method choicesMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.CHOICES_PREFIX + capitalizedName, (Class<?>)null, NO_PARAMETERS_TYPES);
+        final Method choicesMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.CHOICES_PREFIX + capitalizedName, (Class<?>)null, NO_PARAMETERS_TYPES);
         if (choicesMethod == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
index 7f61109..9ba40f5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethodFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -52,7 +51,7 @@ public class PropertyDefaultFacetViaMethodFactory extends MethodPrefixBasedFacet
 
         final Class<?> cls = processMethodContext.getCls();
         final Class<?> returnType = getMethod.getReturnType();
-        final Method method = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.DEFAULT_PREFIX + capitalizedName, returnType, NO_PARAMETERS_TYPES);
+        final Method method = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.DEFAULT_PREFIX + capitalizedName, returnType, NO_PARAMETERS_TYPES);
         if (method == null) {
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertyModifyFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertyModifyFacetFactory.java
index 5e4a9b6..6f1fa25 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertyModifyFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertyModifyFacetFactory.java
@@ -29,7 +29,6 @@ import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
 import org.apache.isis.metamodel.facets.MethodLiteralConstants;
 import org.apache.isis.metamodel.facets.properties.update.modify.PropertySetterFacetViaModifyMethod;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class PropertyModifyFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -54,7 +53,7 @@ public class PropertyModifyFacetFactory extends MethodPrefixBasedFacetFactoryAbs
         final Class<?>[] paramTypes = new Class[] { returnType };
 
         final Class<?> cls = processMethodContext.getCls();
-        final Method modifyMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.MODIFY_PREFIX + capitalizedName, void.class, paramTypes);
+        final Method modifyMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.MODIFY_PREFIX + capitalizedName, void.class, paramTypes);
 
         if (modifyMethod == null) {
             return;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java
index a103808..1123777 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/update/PropertySetAndClearFacetFactory.java
@@ -33,7 +33,6 @@ import org.apache.isis.metamodel.facets.properties.update.clear.PropertyClearFac
 import org.apache.isis.metamodel.facets.properties.update.clear.PropertyClearFacetViaSetterMethod;
 import org.apache.isis.metamodel.facets.properties.update.init.PropertyInitializationFacetViaSetterMethod;
 import org.apache.isis.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 public class PropertySetAndClearFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
 
@@ -66,7 +65,7 @@ public class PropertySetAndClearFacetFactory extends MethodPrefixBasedFacetFacto
         final Class<?> cls = processMethodContext.getCls();
         final Class<?> returnType = getMethod.getReturnType();
         final Class<?>[] paramTypes = new Class[] { returnType };
-        final Method setMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.SET_PREFIX + capitalizedName, void.class, paramTypes);
+        final Method setMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.SET_PREFIX + capitalizedName, void.class, paramTypes);
         processMethodContext.removeMethod(setMethod);
 
         final FacetHolder property = processMethodContext.getFacetHolder();
@@ -92,7 +91,7 @@ public class PropertySetAndClearFacetFactory extends MethodPrefixBasedFacetFacto
         final FacetHolder property = processMethodContext.getFacetHolder();
 
         final String capitalizedName = StringExtensions.asJavaBaseName(getMethod.getName());
-        final Method clearMethod = MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, MethodLiteralConstants.CLEAR_PREFIX + capitalizedName, void.class, NO_PARAMETERS_TYPES);
+        final Method clearMethod = MethodFinderUtils.findMethod(cls, MethodLiteralConstants.CLEAR_PREFIX + capitalizedName, void.class, NO_PARAMETERS_TYPES);
 
         if (clearMethod == null) {
             return null;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
index dea22a0..4348772 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/validating/method/PropertyValidateFacetViaMethodFactory.java
@@ -27,7 +27,6 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.FacetedMethod;
 import org.apache.isis.metamodel.facets.MethodFinderUtils;
 import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import static org.apache.isis.metamodel.facets.MethodLiteralConstants.VALIDATE_PREFIX;
 
@@ -55,7 +54,7 @@ public class PropertyValidateFacetViaMethodFactory extends MethodPrefixBasedFace
 
         final Class<?> cls = processMethodContext.getCls();
         final Method method = MethodFinderUtils.findMethod_returningText(
-                cls, MethodScope.OBJECT,
+                cls,
                 VALIDATE_PREFIX + capitalizedName,
                 paramTypes);
         if (method == null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/methodutils/MethodScope.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/methodutils/MethodScope.java
deleted file mode 100644
index 372b8d4..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/methodutils/MethodScope.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.methodutils;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-
-/**
- * As used in the <tt>findAndRemove...</tt> methods.
- */
-public enum MethodScope {
-    CLASS, OBJECT;
-
-    public boolean isClass() {
-        return this == CLASS;
-    }
-
-    public boolean isObject() {
-        return this == OBJECT;
-    }
-
-    public boolean doesNotMatchScope(final Method method) {
-        return !matchesScopeOf(method);
-    }
-
-    public boolean matchesScopeOf(final Method method) {
-        return isStatic(method) == this.isClass();
-    }
-
-    public static MethodScope scopeFor(final Method method) {
-        return isStatic(method) ? CLASS : OBJECT;
-    }
-
-    private static boolean isStatic(final Method method) {
-        final int modifiers = method.getModifiers();
-        final boolean isStatic = Modifier.isStatic(modifiers);
-        return isStatic;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index d35f94e..b8fcfa0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -44,7 +44,6 @@ import org.apache.isis.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.metamodel.facets.object.facets.FacetsFacet;
 import org.apache.isis.metamodel.facets.object.mixin.MixinFacet;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.metamodel.services.classsubstitutor.ClassSubstitutor;
 import org.apache.isis.metamodel.specloader.facetprocessor.FacetProcessor;
@@ -74,19 +73,17 @@ public class FacetedMethodsBuilder {
 
         @Override
         public void removeMethod(
-                MethodScope methodScope,
                 String methodName,
                 Class<?> returnType,
                 Class<?>[] parameterTypes) {
             
             //synchronized($lock) {
-                MethodUtil.removeMethod(methodsRemaining, methodScope, methodName, returnType, parameterTypes);
+                MethodUtil.removeMethod(methodsRemaining, methodName, returnType, parameterTypes);
             //}
         }
 
         @Override
         public void removeMethods(
-                MethodScope methodScope,
                 String prefix,
                 Class<?> returnType,
                 CanBeVoid canBeVoid,
@@ -94,7 +91,7 @@ public class FacetedMethodsBuilder {
                 Consumer<Method> onRemoval) {
             
             //synchronized($lock) {
-                MethodUtil.removeMethods(methodsRemaining, methodScope, prefix, returnType, canBeVoid, paramCount, onRemoval);
+                MethodUtil.removeMethods(methodsRemaining, prefix, returnType, canBeVoid, paramCount, onRemoval);
             //}
         }
 
@@ -276,8 +273,8 @@ public class FacetedMethodsBuilder {
         val propertyAccessors = _Lists.<Method>newArrayList();
         getFacetProcessor().findAndRemovePropertyAccessors(methodRemover, propertyAccessors);
 
-        findAndRemovePrefixedNonVoidMethods(MethodScope.OBJECT, GET_PREFIX, Object.class, 0, propertyAccessors::add);
-        findAndRemovePrefixedNonVoidMethods(MethodScope.OBJECT, IS_PREFIX, Boolean.class, 0, propertyAccessors::add);
+        findAndRemovePrefixedNonVoidMethods(GET_PREFIX, Object.class, 0, propertyAccessors::add);
+        findAndRemovePrefixedNonVoidMethods(IS_PREFIX, Boolean.class, 0, propertyAccessors::add);
 
         createPropertyFacetedMethodsFromAccessors(propertyAccessors, onNewField);
     }
@@ -358,32 +355,30 @@ public class FacetedMethodsBuilder {
      */
     public List<FacetedMethod> getActionFacetedMethods() {
         if (actionFacetedMethods == null) {
-            actionFacetedMethods = findActionFacetedMethods(MethodScope.OBJECT);
+            actionFacetedMethods = findActionFacetedMethods();
         }
         return actionFacetedMethods;
     }
 
-    private List<FacetedMethod> findActionFacetedMethods(
-            final MethodScope methodScope) {
+    private List<FacetedMethod> findActionFacetedMethods() {
         
         if (log.isDebugEnabled()) {
             log.debug("introspecting {}: actions", getClassName());
         }
         val actionFacetedMethods = _Lists.<FacetedMethod>newArrayList();
-        collectActionFacetedMethods(actionFacetedMethods::add, methodScope);
+        collectActionFacetedMethods(actionFacetedMethods::add);
         return actionFacetedMethods;
     }
 
     private void collectActionFacetedMethods(
-            final Consumer<FacetedMethod> onActionFacetedMethod,
-            final MethodScope methodScope) {
+            final Consumer<FacetedMethod> onActionFacetedMethod) {
 
         if (log.isDebugEnabled()) {
             log.debug("  looking for action methods");
         }
 
         methodRemover.removeIf(method->{
-            val actionPeer = findActionFacetedMethod(methodScope, method);
+            val actionPeer = findActionFacetedMethod(method);
             if (actionPeer != null) {
                 onActionFacetedMethod.accept(actionPeer);
                 return true;
@@ -394,10 +389,9 @@ public class FacetedMethodsBuilder {
     }
 
     private FacetedMethod findActionFacetedMethod(
-            final MethodScope methodScope,
             final Method actionMethod) {
 
-        if (!representsAction(actionMethod, methodScope)) {
+        if (!representsAction(actionMethod)) {
             return null;
         }
 
@@ -442,8 +436,7 @@ public class FacetedMethodsBuilder {
     }
 
     private boolean representsAction(
-            final Method actionMethod,
-            final MethodScope methodScope) {
+            final Method actionMethod) {
 
         // try to short-circuit as much as possible
         if(explicitActionAnnotationConfigured()) {
@@ -452,7 +445,7 @@ public class FacetedMethodsBuilder {
             }
         }
 
-        if (!MethodUtil.inScope(actionMethod, methodScope)) {
+        if (MethodUtil.isStatic(actionMethod)) {
             return false;
         }
 
@@ -517,24 +510,21 @@ public class FacetedMethodsBuilder {
 
     /**
      *
-     * @param methodScope
      * @param prefix
      * @param returnType
      * @param paramCount
      * @param onRemoved - collecting parameter
      */
     private void findAndRemovePrefixedNonVoidMethods(
-            final MethodScope methodScope,
             final String prefix,
             final Class<?> returnType,
             final int paramCount,
             final Consumer<Method> onRemoved) {
         
-        findAndRemovePrefixedMethods(methodScope, prefix, returnType, CanBeVoid.FALSE, paramCount, onRemoved);
+        findAndRemovePrefixedMethods(prefix, returnType, CanBeVoid.FALSE, paramCount, onRemoved);
     }
 
     private void findAndRemovePrefixedMethods(
-            final MethodScope methodScope,
             final String prefix,
             final Class<?> returnType,
             final CanBeVoid canBeVoid,
@@ -542,7 +532,7 @@ public class FacetedMethodsBuilder {
             Consumer<Method> onMatch) {
         
         methodRemover.acceptRemaining(methodsRemaining->{
-            MethodUtil.removeMethods(methodsRemaining, methodScope, prefix, returnType, canBeVoid, paramCount, onMatch);
+            MethodUtil.removeMethods(methodsRemaining, prefix, returnType, canBeVoid, paramCount, onMatch);
         });
         
     }
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/MethodRemoverForTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/MethodRemoverForTesting.java
index d6ab31e..f2465c8 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/MethodRemoverForTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/MethodRemoverForTesting.java
@@ -26,7 +26,6 @@ import java.util.function.Consumer;
 
 import org.apache.isis.metamodel.commons.CanBeVoid;
 import org.apache.isis.metamodel.facetapi.MethodRemover;
-import org.apache.isis.metamodel.methodutils.MethodScope;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -39,7 +38,6 @@ public class MethodRemoverForTesting implements MethodRemover {
     // ////////////////////////////////////////////////////////////
     @Value
     static class RemoveMethodArgs {
-        public MethodScope methodScope;
         public String methodName;
         public Class<?> returnType;
         public Class<?>[] parameterTypes;
@@ -49,14 +47,10 @@ public class MethodRemoverForTesting implements MethodRemover {
     private final List<RemoveMethodArgs> removeMethodArgsCalls = new ArrayList<>();
 
     @Override
-    public void removeMethod(final MethodScope methodScope, final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
-        removeMethodArgsCalls.add(new RemoveMethodArgs(methodScope, methodName, returnType, parameterTypes));
+    public void removeMethod(final String methodName, final Class<?> returnType, final Class<?>[] parameterTypes) {
+        removeMethodArgsCalls.add(new RemoveMethodArgs( methodName, returnType, parameterTypes));
     }
 
-    // ////////////////////////////////////////////////////////////
-    // removeMethod(Method): void
-    // ////////////////////////////////////////////////////////////
-
     @Getter
     private final List<Method> removedMethodMethodCalls = new ArrayList<Method>();
 
@@ -65,17 +59,11 @@ public class MethodRemoverForTesting implements MethodRemover {
         removedMethodMethodCalls.add(method);
     }
 
-    // ////////////////////////////////////////////////////////////
-    // removeMethods(...):List
-    // ////////////////////////////////////////////////////////////
-
     @Setter
     private List<Method> removeMethodsReturn;
 
-
     @Value
     static class RemoveMethodsArgs {
-        public MethodScope methodScope;
         public String prefix;
         public Class<?> returnType;
         public CanBeVoid canBeVoid;
@@ -85,8 +73,8 @@ public class MethodRemoverForTesting implements MethodRemover {
     private final List<RemoveMethodsArgs> removeMethodsArgs = new ArrayList<>();
 
     @Override
-    public void removeMethods(final MethodScope methodScope, final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
-        removeMethodsArgs.add(new RemoveMethodsArgs(methodScope, prefix, returnType, canBeVoid, paramCount));
+    public void removeMethods(final String prefix, final Class<?> returnType, final CanBeVoid canBeVoid, final int paramCount, Consumer<Method> onRemoval) {
+        removeMethodsArgs.add(new RemoveMethodsArgs(prefix, returnType, canBeVoid, paramCount));
     }
 
 
diff --git a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java
index ff14ada..3e38d13 100644
--- a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java
@@ -19,13 +19,6 @@
 
 package org.apache.isis.runtime.system;
 
-import org.datanucleus.enhancement.Persistable;
-import org.jmock.Expectations;
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.metamodel.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
@@ -38,11 +31,9 @@ import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facets.FacetedMethod;
 import org.apache.isis.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
 import org.apache.isis.metamodel.facets.all.named.NamedFacetAbstract;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetAbstract;
 import org.apache.isis.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.metamodel.facets.members.hidden.HiddenFacetAbstractAlwaysEverywhere;
 import org.apache.isis.metamodel.facets.members.hidden.HiddenFacetAbstractImpl;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetAbstract;
 import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetNone;
 import org.apache.isis.metamodel.interactions.PropertyUsabilityContext;
 import org.apache.isis.metamodel.interactions.PropertyVisibilityContext;
@@ -60,15 +51,15 @@ import org.apache.isis.security.authentication.AuthenticationSession;
 import org.apache.isis.security.authentication.AuthenticationSessionProvider;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+import org.datanucleus.enhancement.Persistable;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
 
-import static org.hamcrest.Matchers.emptyString;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.not;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.*;
 
 public class ObjectMemberAbstractTest {
 
@@ -141,19 +132,6 @@ public class ObjectMemberAbstractTest {
     }
 
     @Test
-    public void testAvailableForUser() throws Exception {
-        testMember.addFacet(new DisableForSessionFacetAbstract(testMember) {
-            @Override
-            public String disabledReason(final AuthenticationSession session) {
-                return null;
-            }
-        });
-        final Consent usable = testMember.isUsable(persistentAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE);
-        final boolean allowed = usable.isAllowed();
-        assertTrue(allowed);
-    }
-
-    @Test
     public void testVisibleWhenHiddenFacetSetToAlways() {
         testMember.addFacet(new HideForContextFacetNone(testMember));
         testMember.addFacet(new HiddenFacetAbstract(Where.ANYWHERE, testMember) {
@@ -188,28 +166,6 @@ public class ObjectMemberAbstractTest {
     }
 
     @Test
-    public void testVisibleForSession() {
-        testMember.addFacet(new HideForSessionFacetAbstract(testMember) {
-            @Override
-            public String hiddenReason(final AuthenticationSession session) {
-                return "Hidden";
-            }
-        });
-        assertFalse(testMember.isVisible(persistentAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE).isAllowed());
-    }
-
-    @Test
-    public void testVisibleForSessionFails() {
-        testMember.addFacet(new HideForSessionFacetAbstract(testMember) {
-            @Override
-            public String hiddenReason(final AuthenticationSession session) {
-                return "hidden";
-            }
-        });
-        assertFalse(testMember.isVisible(persistentAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE).isAllowed());
-    }
-
-    @Test
     public void testName() throws Exception {
         final String name = "action name";
         testMember.addFacet(new NamedFacetAbstract(name, true, testMember) {
diff --git a/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java b/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
deleted file mode 100644
index fb64229..0000000
--- a/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.runtime.system;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-import org.apache.isis.metamodel.commons.ClassExtensions;
-import org.apache.isis.metamodel.commons.MethodUtil;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertThat;
-
-@RunWith(Parameterized.class)
-public class MethodFinderUtilsTest {
-
-    public void someInstanceMethod() {
-    }
-
-    @Test
-    public void all() {
-        Method instanceMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someInstanceMethod");
-        assertThat(MethodUtil.inScope(instanceMethod, MethodScope.OBJECT), is(true));
-    }
-
-}


[isis] 07/07: ISIS-2199: reinstates code that had been commented out.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a3cbd174df45740a6d86150e36c190955f06d89c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 12:22:34 2019 +0000

    ISIS-2199: reinstates code that had been commented out.
    
    This is the supporting method validation logic.  It's not exactly clear to me if the orphan validation stuff still applies, at least not if explict actions annotations are in use.
---
 .../MethodPrefixBasedFacetFactoryAbstract.java     | 103 ++++++++++-----------
 .../specloader/specimpl/FacetedMethodsBuilder.java |   2 +-
 2 files changed, 52 insertions(+), 53 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
index 7f33bc3..5652795 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/MethodPrefixBasedFacetFactoryAbstract.java
@@ -19,12 +19,20 @@
 
 package org.apache.isis.metamodel.facets;
 
+import lombok.val;
+
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.progmodel.ProgrammingModel;
+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.specloader.validator.ValidationFailures;
 
 public abstract class MethodPrefixBasedFacetFactoryAbstract
 extends FacetFactoryAbstract
@@ -51,60 +59,51 @@ implements MethodPrefixBasedFacetFactory {
     }
 
  
-    
     @Override
     public void refineProgrammingModel(ProgrammingModel programmingModel) {
-    
-        
-//XXX[2161] replaced by SupportingMethodValidatorRefinerFactory, which changes behavior!     
-        
-//        if(orphanValidation == OrphanValidation.DONT_VALIDATE) {
-//            return;
-//        }
-//
-//        val noParamsOnly = _Config.getConfiguration().getBoolean(
-//                ISIS_REFLECTOR_VALIDATOR_NO_PARAMS_ONLY_KEY,
-//                ISIS_REFLECTOR_VALIDATOR_NO_PARAMS_ONLY_DEFAULT);
-//
-//        programmingModel.addValidator(new MetaModelValidatorVisiting.Visitor() {
-//
-//            @Override
-//            public boolean visit(final ObjectSpecification objectSpec, final ValidationFailures validationFailures) {
-//
-//                
-//                val objectActionStream = objectSpec.streamObjectActions(Contributed.EXCLUDED);
-//                
-//                objectActionStream.forEach(objectAction->{
-//                    for (final String prefix : prefixes) {
-//                        String actionId = objectAction.getId();
-//
-//                        if (actionId.startsWith(prefix) && prefix.length() < actionId.length()) {
-//
-//                            val explanation =
-//                                    objectAction.getParameterCount() > 0 && 
-//                                    noParamsOnly &&
-//                                    (Objects.equals(prefix, MethodLiteralConstants.HIDE_PREFIX) || 
-//                                            Objects.equals(prefix, MethodLiteralConstants.DISABLE_PREFIX))
-//                                    ? " (note that such methods must have no parameters, '"
-//                                        + ISIS_REFLECTOR_VALIDATOR_NO_PARAMS_ONLY_KEY
-//                                        + "' config property)"
-//                                            : "";
-//
-//                            val message = "%s#%s: has prefix %s, is probably intended as a supporting method for a property, collection or action%s.  If the method is intended to be an action, then rename and use @ActionLayout(named=\"...\") or ignore completely using @Programmatic";
-//                            validationFailures.add(
-//                                    objectSpec.getIdentifier(),
-//                                    message,
-//                                    objectSpec.getIdentifier().getClassName(),
-//                                    actionId,
-//                                    prefix,
-//                                    explanation);
-//                        }
-//                    }
-//                });
-//
-//                return true;
-//            
-//        });
+
+        if(orphanValidation == OrphanValidation.DONT_VALIDATE) {
+            return;
+        }
+
+        val noParamsOnly = getConfiguration().getReflector().getValidator().isNoParamsOnly();
+
+        programmingModel.addValidator((objectSpec, metaModelValidator) -> {
+
+            val objectActionStream = objectSpec.streamObjectActions(Contributed.EXCLUDED);
+
+            objectActionStream.forEach(objectAction->{
+                for (final String prefix : prefixes) {
+                    String actionId = objectAction.getId();
+
+                    if (actionId.startsWith(prefix) && prefix.length() < actionId.length()) {
+
+                        val explanation =
+                                objectAction.getParameterCount() > 0 &&
+                                noParamsOnly &&
+                                (Objects.equals(prefix, MethodLiteralConstants.HIDE_PREFIX) ||
+                                        Objects.equals(prefix, MethodLiteralConstants.DISABLE_PREFIX))
+                                ? " (note that such methods must have no parameters, '"
+                                    + "isis.reflector.validator.no-params-only"
+                                    + "' config property)"
+                                        : "";
+
+                        val message = "%s#%s: has prefix %s, is probably intended as a supporting method for a property, collection or action%s.  If the method is intended to be an action, then rename and use @ActionLayout(named=\"...\") or ignore completely using @Programmatic";
+                        metaModelValidator.onFailure(
+                                objectSpec,
+                                objectSpec.getIdentifier(),
+                                message,
+                                objectSpec.getIdentifier().getClassName(),
+                                actionId,
+                                prefix,
+                                explanation);
+                    }
+                }
+            });
+
+            return true;
+
+        });
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index b8fcfa0..0cb82f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -488,8 +488,8 @@ public class FacetedMethodsBuilder {
         if (getFacetProcessor().recognizes(actionMethod)) {
             return false;
         }
+
         // we have a valid action candidate, so fall through
-        
         log.debug("  identified action {}", actionMethod);
         return true;
     }


[isis] 02/07: ISIS-2158: fixes sign-in page, which showed bad img link if no image was configured

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit cdd40776d5308a0e6a57c0c5aafe7f105bf99c2d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 10:17:58 2019 +0000

    ISIS-2158: fixes sign-in page, which showed bad img link if no image was configured
    
    ... the brandLogoSignIn is a URL, so cannot fall back to being the application name.
---
 .../main/java/org/apache/isis/viewer/wicket/ui/WebAppConfiguration.java | 2 +-
 .../isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java      | 1 +
 .../org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java   | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/core/config/src/main/java/org/apache/isis/viewer/wicket/ui/WebAppConfiguration.java b/core/config/src/main/java/org/apache/isis/viewer/wicket/ui/WebAppConfiguration.java
index f1f488a..62812a0 100644
--- a/core/config/src/main/java/org/apache/isis/viewer/wicket/ui/WebAppConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/viewer/wicket/ui/WebAppConfiguration.java
@@ -76,7 +76,7 @@ public class WebAppConfiguration {
         this.brandLogoHeader = Optional.ofNullable(honorContextPath(application.getBrandLogoHeader()))
                 .orElse(this.applicationName);
         this.brandLogoSignin = Optional.ofNullable(honorContextPath(application.getBrandLogoSignin()))
-                .orElse(this.applicationName);
+                .orElse(null);
         this.faviconUrl = honorContextPath(application.getFaviconUrl());
         
         this.faviconContentType = application.getFaviconContentType();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
index 5e8f0f3..e4cc2b5 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/navbar/BrandLogo.java
@@ -28,6 +28,7 @@ import org.apache.isis.viewer.wicket.ui.WebAppConfiguration;
 /**
  * A component used as a brand logo in the top-left corner of the navigation bar
  */
+@SuppressWarnings("CdiManagedBeanInconsistencyInspection")
 public class BrandLogo extends WebComponent {
 
     private static final long serialVersionUID = 1L;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java
index 5c7a1a2..2cd1efd 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java
@@ -44,6 +44,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel
  * {@link de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel}
  * for Bootstrap styled error messages
  */
+@SuppressWarnings("CdiManagedBeanInconsistencyInspection")
 public class IsisSignInPanel extends SignInPanel {
 
     private static final long serialVersionUID = 1L;


[isis] 04/07: ISIS-2196: removes facet factories that look for static methods

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit f2feee1f8ccf084fd76bc188504702e585c67e81
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 10:35:22 2019 +0000

    ISIS-2196: removes facet factories that look for static methods
    
    namely:
    - RemoveStaticGettersAndSettersFacetFactory
    - DisableForSessionFacetViaMethodFactory
    - HideForSessionFacetViaMethodFactory
---
 .../forsession/DisableForSessionFacet.java         |  40 --------
 .../forsession/DisableForSessionFacetAbstract.java |  44 ---------
 .../forsession/DisableForSessionFacetNone.java     |  42 ---------
 .../DisableForSessionFacetViaMethod.java           |  83 -----------------
 .../DisableForSessionFacetViaMethodFactory.java    |  82 -----------------
 .../hidden/forsession/HideForSessionFacet.java     |  37 --------
 .../forsession/HideForSessionFacetAbstract.java    |  50 ----------
 .../hidden/forsession/HideForSessionFacetNone.java |  45 ---------
 .../forsession/HideForSessionFacetViaMethod.java   |  84 -----------------
 .../HideForSessionFacetViaMethodFactory.java       |  79 ----------------
 .../RemoveStaticGettersAndSettersFacetFactory.java |  43 ---------
 .../dflt/ProgrammingModelFacetsJava8.java          |  14 +--
 .../actions/ActionMethodsFacetFactoryTest.java     |  95 +------------------
 .../CollectionFieldMethodsFacetFactoryTest.java    |  86 +----------------
 .../PropertyMethodsFacetFactoryTest.java           | 102 +--------------------
 .../isis/runtime/system/MethodFinderUtilsTest.java |  39 +-------
 16 files changed, 12 insertions(+), 953 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java
deleted file mode 100644
index 17db8aa..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacet.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.disabled.forsession;
-
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.interactions.DisablingInteractionAdvisor;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-/**
- * Disable a property, collection or action based on the current session.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>disableXxx(UserMemento)</tt> support method for the member.
- */
-public interface DisableForSessionFacet extends Facet, DisablingInteractionAdvisor {
-
-    /**
-     * The reason this is disabled, or <tt>null</tt> if not.
-     */
-    public String disabledReason(AuthenticationSession session);
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java
deleted file mode 100644
index 2c64367..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetAbstract.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.disabled.forsession;
-
-import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.interactions.UsabilityContext;
-
-public abstract class DisableForSessionFacetAbstract extends FacetAbstract implements DisableForSessionFacet {
-
-    public static Class<? extends Facet> type() {
-        return DisableForSessionFacet.class;
-    }
-
-    public DisableForSessionFacetAbstract(
-            final FacetHolder holder) {
-        super(type(), holder, Derivation.NOT_DERIVED);
-    }
-
-    @Override
-    public String disables(final UsabilityContext<? extends UsabilityEvent> ic) {
-        return disabledReason(getAuthenticationSession());
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java
deleted file mode 100644
index 81be8e0..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetNone.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.disabled.forsession;
-
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class DisableForSessionFacetNone extends DisableForSessionFacetAbstract {
-
-    public DisableForSessionFacetNone(
-            final FacetHolder holder) {
-        super(holder);
-    }
-
-    @Override
-    public String disabledReason(final AuthenticationSession session) {
-        return null;
-    }
-
-    @Override
-    public boolean isFallback() {
-        return true;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java
deleted file mode 100644
index 9457c9c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethod.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.disabled.forsession;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.metamodel.commons.MethodExtensions;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facets.ImperativeFacet;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class DisableForSessionFacetViaMethod extends DisableForSessionFacetAbstract implements ImperativeFacet {
-
-    private final Method method;
-
-    public DisableForSessionFacetViaMethod(
-            final Method method,
-            final FacetHolder holder) {
-        super(holder);
-        this.method = method;
-    }
-
-    /**
-     * Returns a singleton list of the {@link Method} provided in the
-     * constructor.
-     */
-    @Override
-    public List<Method> getMethods() {
-        return Collections.singletonList(method);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.CHECK_IF_DISABLED;
-    }
-
-    /**
-     * Will only check provided that a {@link AuthenticationSession} has been
-     * provided.
-     */
-    @Override
-    public String disabledReason(final AuthenticationSession session) {
-        if (session == null) {
-            return null;
-        }
-        final int len = method.getParameterCount();
-        final Object[] parameters = new Object[len];
-        parameters[0] = session.createUserMemento();
-        // TODO: need to change to pick up as non-static rather than static
-        return (String) MethodExtensions.invokeStatic(method, parameters);
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "method=" + method;
-    }
-
-    @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
-        super.appendAttributesTo(attributeMap);
-        ImperativeFacet.Util.appendAttributesTo(this, attributeMap);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.java
deleted file mode 100644
index 78a04cd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/disabled/forsession/DisableForSessionFacetViaMethodFactory.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.disabled.forsession;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.security.UserMemento;
-import org.apache.isis.metamodel.commons.StringExtensions;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-import org.apache.isis.security.authentication.AuthenticationSessionProvider;
-
-public class DisableForSessionFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodLiteralConstants.DISABLE_PREFIX };
-
-
-    /**
-     * Note that the {@link Facet}s registered are the generic ones from
-     * noa-architecture (where they exist)
-     */
-    public DisableForSessionFacetViaMethodFactory() {
-        super(FeatureType.MEMBERS, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    // ///////////////////////////////////////////////////////
-    // Actions
-    // ///////////////////////////////////////////////////////
-
-    @Override
-    public void process(final ProcessMethodContext processMethodContext) {
-        attachDisableFacetIfDisableMethodForSessionIsFound(processMethodContext, getAuthenticationSessionProvider());
-    }
-
-    private void attachDisableFacetIfDisableMethodForSessionIsFound(
-            final ProcessMethodContext processMethodContext,
-            final AuthenticationSessionProvider authenticationSessionProvider) {
-
-        final Method method = processMethodContext.getMethod();
-        final String capitalizedName = StringExtensions.asJavaBaseNameStripAccessorPrefixIfRequired(method.getName());
-
-        final Class<?> cls = processMethodContext.getCls();
-        final Method disableForSessionMethod = MethodFinderUtils.findMethod(
-                cls, 
-                MethodScope.CLASS, 
-                MethodLiteralConstants.DISABLE_PREFIX + capitalizedName, 
-                String.class, 
-                new Class[] { UserMemento.class });
-
-        if (disableForSessionMethod == null) {
-            return;
-        }
-
-        processMethodContext.removeMethod(disableForSessionMethod);
-
-        final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
-        super.addFacet(new DisableForSessionFacetViaMethod(disableForSessionMethod, facetedMethod));
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java
deleted file mode 100644
index 5e1a4c7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacet.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.hidden.forsession;
-
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.interactions.HidingInteractionAdvisor;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-/**
- * Hide a property, collection or action based on the current session.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>hideXxx(UserMemento)</tt> support method for the member.
- */
-public interface HideForSessionFacet extends Facet, HidingInteractionAdvisor {
-
-    public String hiddenReason(AuthenticationSession session);
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java
deleted file mode 100644
index 2930e77..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetAbstract.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.hidden.forsession;
-
-import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.interactions.VisibilityContext;
-
-/**
- * Hide a property, collection or action based on the current session.
- *
- * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>hideXxx(UserMemento)</tt> support method for the member.
- */
-public abstract class HideForSessionFacetAbstract extends FacetAbstract implements HideForSessionFacet {
-
-    public static Class<? extends Facet> type() {
-        return HideForSessionFacet.class;
-    }
-
-    public HideForSessionFacetAbstract(FacetHolder holder) {
-        super(type(), holder, Derivation.NOT_DERIVED);
-    }
-
-    @Override
-    public String hides(final VisibilityContext<? extends VisibilityEvent> ic) {
-        return hiddenReason(getAuthenticationSession());
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java
deleted file mode 100644
index 3ad0dcd..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetNone.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.hidden.forsession;
-
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class HideForSessionFacetNone extends HideForSessionFacetAbstract {
-
-    public HideForSessionFacetNone(
-            final FacetHolder holder) {
-        super(holder);
-    }
-
-    /**
-     * Always returns <tt>null</tt>.
-     */
-    @Override
-    public String hiddenReason(final AuthenticationSession session) {
-        return null;
-    }
-
-    @Override
-    public boolean isFallback() {
-        return true;
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java
deleted file mode 100644
index 2b51850..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethod.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.hidden.forsession;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.isis.metamodel.commons.MethodExtensions;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facets.ImperativeFacet;
-import org.apache.isis.security.authentication.AuthenticationSession;
-
-public class HideForSessionFacetViaMethod extends HideForSessionFacetAbstract implements ImperativeFacet {
-
-    private final Method method;
-
-    public HideForSessionFacetViaMethod(
-            final Method method,
-            final FacetHolder holder) {
-        super(holder);
-        this.method = method;
-    }
-
-    /**
-     * Returns a singleton list of the {@link Method} provided in the
-     * constructor.
-     */
-    @Override
-    public List<Method> getMethods() {
-        return Collections.singletonList(method);
-    }
-
-    @Override
-    public Intent getIntent(final Method method) {
-        return Intent.CHECK_IF_HIDDEN;
-    }
-
-    /**
-     * Will only check provided that a {@link AuthenticationSession} has been
-     * provided.
-     */
-    @Override
-    public String hiddenReason(final AuthenticationSession session) {
-        if (session == null) {
-            return null;
-        }
-        final int len = method.getParameterCount();
-        final Object[] parameters = new Object[len];
-        parameters[0] = session.createUserMemento();
-        // TODO: need to change to pick up as non-static rather than static
-        final Boolean isHidden = (Boolean) MethodExtensions.invokeStatic(method, parameters);
-        return isHidden.booleanValue() ? "Hidden" : null;
-    }
-
-    @Override
-    protected String toStringValues() {
-        return "method=" + method;
-    }
-
-    @Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
-        super.appendAttributesTo(attributeMap);
-        ImperativeFacet.Util.appendAttributesTo(this, attributeMap);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.java
deleted file mode 100644
index 2900979..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/hidden/forsession/HideForSessionFacetViaMethodFactory.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.members.hidden.forsession;
-
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.security.UserMemento;
-import org.apache.isis.metamodel.commons.StringExtensions;
-import org.apache.isis.metamodel.facetapi.Facet;
-import org.apache.isis.metamodel.facetapi.FacetHolder;
-import org.apache.isis.metamodel.facetapi.FacetUtil;
-import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.MethodFinderUtils;
-import org.apache.isis.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract;
-import org.apache.isis.metamodel.facets.MethodLiteralConstants;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-import org.apache.isis.security.authentication.AuthenticationSessionProvider;
-
-public class HideForSessionFacetViaMethodFactory extends MethodPrefixBasedFacetFactoryAbstract {
-
-    private static final String[] PREFIXES = { MethodLiteralConstants.HIDE_PREFIX };
-
-    /**
-     * Note that the {@link Facet}s registered are the generic ones from
-     * noa-architecture (where they exist)
-     */
-    public HideForSessionFacetViaMethodFactory() {
-        super(FeatureType.MEMBERS, OrphanValidation.VALIDATE, PREFIXES);
-    }
-
-    // ///////////////////////////////////////////////////////
-    // Actions
-    // ///////////////////////////////////////////////////////
-
-    @Override
-    public void process(final ProcessMethodContext processMethodContext) {
-        // hideXxx(UserMemento)
-        attachHideFacetIfHideMethodForSessionIsFound(processMethodContext, getAuthenticationSessionProvider());
-
-    }
-
-    public static void attachHideFacetIfHideMethodForSessionIsFound(
-            final ProcessMethodContext processMethodContext,
-            final AuthenticationSessionProvider authenticationSessionProvider) {
-
-        final Method method = processMethodContext.getMethod();
-        final String capitalizedName = StringExtensions.asJavaBaseNameStripAccessorPrefixIfRequired(method.getName());
-
-        final Class<?> cls = processMethodContext.getCls();
-        final Method hideForSessionMethod = MethodFinderUtils.findMethod(cls, MethodScope.CLASS, MethodLiteralConstants.HIDE_PREFIX + capitalizedName, boolean.class, new Class[] { UserMemento.class });
-
-        if (hideForSessionMethod == null) {
-            return;
-        }
-
-        processMethodContext.removeMethod(hideForSessionMethod);
-
-        final FacetHolder facetedMethod = processMethodContext.getFacetHolder();
-        FacetUtil.addFacet(new HideForSessionFacetViaMethod(hideForSessionMethod, facetedMethod));
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.java
deleted file mode 100644
index 7ae8721..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ignore/isis/RemoveStaticGettersAndSettersFacetFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.metamodel.facets.object.ignore.isis;
-
-import org.apache.isis.metamodel.commons.CanBeVoid;
-import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.metamodel.methodutils.MethodScope;
-
-/**
- * Removes any static getter or setter methods.
- */
-@Deprecated
-public class RemoveStaticGettersAndSettersFacetFactory extends FacetFactoryAbstract {
-
-    public RemoveStaticGettersAndSettersFacetFactory() {
-        super(FeatureType.OBJECTS_ONLY);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContext) {
-        processClassContext.removeMethods(MethodScope.CLASS, "get", null, CanBeVoid.FALSE, 0);
-        processClassContext.removeMethods(MethodScope.CLASS, "set", null, CanBeVoid.FALSE, 0);
-    }
-
-}
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 be2ff1c..ca6ba4b 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
@@ -41,19 +41,12 @@ import org.apache.isis.metamodel.facets.jaxb.JaxbFacetFactory;
 import org.apache.isis.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnActionFromConfiguredRegexFactory;
 import org.apache.isis.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory;
 import org.apache.isis.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.members.order.annotprop.MemberOrderFacetFactory;
 import org.apache.isis.metamodel.facets.object.ViewModelSemanticCheckingFacetFactory;
 import org.apache.isis.metamodel.facets.object.bookmarkpolicy.bookmarkable.BookmarkPolicyFacetFallbackFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.CreatedCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.LoadCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.PersistCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.PersistCallbackViaSaveMethodFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.RemoveCallbackFacetFactory;
-import org.apache.isis.metamodel.facets.object.callbacks.UpdateCallbackFacetFactory;
+import org.apache.isis.metamodel.facets.object.callbacks.*;
 import org.apache.isis.metamodel.facets.object.choices.enums.EnumFacetUsingValueFacetUsingSemanticsProviderFactory;
 import org.apache.isis.metamodel.facets.object.cssclass.method.CssClassFacetMethodFactory;
 import org.apache.isis.metamodel.facets.object.defaults.annotcfg.DefaultedFacetAnnotationElseConfigurationFactory;
@@ -67,7 +60,6 @@ import org.apache.isis.metamodel.facets.object.grid.GridFacetFactory;
 import org.apache.isis.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.object.icon.method.IconFacetMethodFactory;
 import org.apache.isis.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory;
-import org.apache.isis.metamodel.facets.object.ignore.isis.RemoveStaticGettersAndSettersFacetFactory;
 import org.apache.isis.metamodel.facets.object.ignore.javalang.IteratorFilteringFacetFactory;
 import org.apache.isis.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory;
 import org.apache.isis.metamodel.facets.object.layout.LayoutFacetFactory;
@@ -167,8 +159,6 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
 
         addFactory(FacetProcessingOrder.C1_METHOD_REMOVING, RemoveMethodsFacetFactory.class);
 
-        addFactory(FacetProcessingOrder.C1_METHOD_REMOVING, RemoveStaticGettersAndSettersFacetFactory.class, Marker.DEPRECATED);
-
         addFactory(FacetProcessingOrder.C1_METHOD_REMOVING, RemoveAnnotatedMethodsFacetFactory.class);
 
         // must be before any other FacetFactories that install MandatoryFacet.class facets
@@ -209,10 +199,8 @@ public final class ProgrammingModelFacetsJava8 extends ProgrammingModelAbstract
         addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, ActionParameterDefaultsFacetViaMethodFactory.class);
 
         // members in general
-        addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, DisableForSessionFacetViaMethodFactory.class);
         addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, DisableForContextFacetViaMethodFactory.class);
 
-        addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, HideForSessionFacetViaMethodFactory.class);
         addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, HideForContextFacetViaMethodFactory.class);
 
         addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, CreatedCallbackFacetFactory.class);
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index a6dd0bd..3ed7c32 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -19,15 +19,14 @@
 
 package org.apache.isis.metamodel.facets.actions;
 
+import lombok.val;
+
 import java.lang.reflect.Method;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
-import org.jmock.Expectations;
-
-import org.apache.isis.applib.security.UserMemento;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.metamodel.facets.FacetFactory.ProcessMethodContext;
@@ -38,12 +37,6 @@ import org.apache.isis.metamodel.facets.actions.defaults.method.ActionDefaultsFa
 import org.apache.isis.metamodel.facets.actions.validate.ActionValidationFacet;
 import org.apache.isis.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethod;
 import org.apache.isis.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacet;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
 import org.apache.isis.metamodel.facets.param.autocomplete.method.ActionParameterAutoCompleteFacetViaMethod;
 import org.apache.isis.metamodel.facets.param.autocomplete.method.ActionParameterAutoCompleteFacetViaMethodFactory;
@@ -60,8 +53,7 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.testspec.ObjectSpecificationStub;
 import org.apache.isis.security.authentication.AuthenticationSession;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import lombok.val;
+import org.jmock.Expectations;
 
 public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
 
@@ -302,88 +294,7 @@ public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNull(facet);
     }
 
-    public static class CustomerStatic {
-        public void someAction(final int x, final Long y) {
-        }
-
-        public static String nameSomeAction() {
-            return "Another Name";
-        }
 
-        public static String descriptionSomeAction() {
-            return "Some old description";
-        }
-
-        public static boolean alwaysHideSomeAction() {
-            return true;
-        }
-
-        public static boolean protectSomeAction() {
-            return true;
-        }
-
-        public static boolean hideSomeAction(final UserMemento userMemento) {
-            return true;
-        }
-
-        public static String disableSomeAction(final UserMemento userMemento) {
-            return "disabled for this user";
-        }
-
-        public static void otherAction(final int x, final Long y) {
-        }
-
-        public static boolean alwaysHideOtherAction() {
-            return false;
-        }
-
-        public static boolean protectOtherAction() {
-            return false;
-        }
-    }
-
-
-    public void testInstallsHiddenForSessionFacetAndRemovesMethod() {
-
-        val facetFactory = new HideForSessionFacetViaMethodFactory();
-        facetFactory.setMetaModelContext(super.metaModelContext);
-
-        // mockSpecificationLoader.setLoadSpecificationStringReturn(voidSpec);
-        allowing_specificationLoader_loadSpecification_any_willReturn(this.voidSpec);
-
-        final Method actionMethod = findMethod(CustomerStatic.class, "someAction", new Class[] { int.class, Long.class });
-        final Method hideMethod = findMethod(CustomerStatic.class, "hideSomeAction", new Class[] { UserMemento.class });
-
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(HideForSessionFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof HideForSessionFacetViaMethod);
-        final HideForSessionFacetViaMethod hideForSessionFacetViaMethod = (HideForSessionFacetViaMethod) facet;
-        assertEquals(hideMethod, hideForSessionFacetViaMethod.getMethods().get(0));
-
-        assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(hideMethod));
-    }
-
-    public void testInstallsDisabledForSessionFacetAndRemovesMethod() {
-        val facetFactory = new DisableForSessionFacetViaMethodFactory();
-        facetFactory.setMetaModelContext(super.metaModelContext);
-
-        allowing_specificationLoader_loadSpecification_any_willReturn(this.voidSpec);
-
-        final Method actionMethod = findMethod(CustomerStatic.class, "someAction", new Class[] { int.class, Long.class });
-        final Method disableMethod = findMethod(CustomerStatic.class, "disableSomeAction", new Class[] { UserMemento.class });
-
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, actionMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisableForSessionFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof DisableForSessionFacetViaMethod);
-        final DisableForSessionFacetViaMethod disableForSessionFacetViaMethod = (DisableForSessionFacetViaMethod) facet;
-        assertEquals(disableMethod, disableForSessionFacetViaMethod.getMethods().get(0));
-
-        assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(disableMethod));
-    }
 
     public void testInstallsParameterDefaultsMethodAndRemovesMethod() {
         val facetFactory = new ActionParameterDefaultsFacetViaMethodFactory();
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
index 2eb3e34..9e837ea 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
@@ -49,12 +49,6 @@ import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateA
 import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateAddToFacetViaMethod;
 import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacet;
 import org.apache.isis.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacet;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -89,7 +83,7 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
         }
         final Method collectionAccessorMethod = findMethod(Customer.class, "getOrders");
 
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
 
         final Facet facet = facetedMethod.getFacet(PropertyOrCollectionAccessorFacet.class);
         assertNotNull(facet);
@@ -114,7 +108,7 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
         final Method collectionAccessorMethod = findMethod(Customer.class, "getOrders");
 
 
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
 
         final Facet facet = facetedMethod.getFacet(PropertyOrCollectionAccessorFacet.class);
         assertNotNull(facet);
@@ -592,81 +586,5 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
     static class Order {
     }
 
-    public static class CustomerStatic {
-        public Collection<Order> getOrders() {
-            return null;
-        }
-
-        public static String nameOrders() {
-            return "Most Recent Orders";
-        };
-
-        public static String descriptionOrders() {
-            return "Some old description";
-        }
-
-        public static boolean alwaysHideOrders() {
-            return true;
-        }
-
-        public static boolean protectOrders() {
-            return true;
-        }
-
-        public static boolean hideOrders(final UserMemento userMemento) {
-            return true;
-        }
-
-        public static String disableOrders(final UserMemento userMemento) {
-            return "disabled for this user";
-        }
-
-        public static void getOtherOrders() {
-        }
-
-        public static boolean alwaysHideOtherOrders() {
-            return false;
-        }
-
-        public static boolean protectOtherOrders() {
-            return false;
-        }
-    }
-
-    public void testInstallsHiddenForSessionFacetAndRemovesMethod() {
-        val facetFactory = new HideForSessionFacetViaMethodFactory();
-        facetFactory.setMetaModelContext(super.metaModelContext);
-
-        final Method collectionAccessorMethod = findMethod(CustomerStatic.class, "getOrders");
-        final Method hideMethod = findMethod(CustomerStatic.class, "hideOrders", new Class[] { UserMemento.class });
-
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(HideForSessionFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof HideForSessionFacetViaMethod);
-        final HideForSessionFacetViaMethod hideForSessionFacetViaMethod = (HideForSessionFacetViaMethod) facet;
-        assertEquals(hideMethod, hideForSessionFacetViaMethod.getMethods().get(0));
-
-        assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(hideMethod));
-    }
-
-    public void testInstallsDisabledForSessionFacetAndRemovesMethod() {
-        val facetFactory = new DisableForSessionFacetViaMethodFactory();
-        facetFactory.setMetaModelContext(super.metaModelContext);
-
-        final Method collectionAccessorMethod = findMethod(CustomerStatic.class, "getOrders");
-        final Method disableMethod = findMethod(CustomerStatic.class, "disableOrders", new Class[] { UserMemento.class });
-
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, collectionAccessorMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(DisableForSessionFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof DisableForSessionFacetViaMethod);
-        final DisableForSessionFacetViaMethod disableForSessionFacetViaMethod = (DisableForSessionFacetViaMethod) facet;
-        assertEquals(disableMethod, disableForSessionFacetViaMethod.getMethods().get(0));
-
-        assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(disableMethod));
-    }
 
 }
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
index 6de8cc1..04eaf1d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
@@ -19,24 +19,17 @@
 
 package org.apache.isis.metamodel.facets.properties;
 
-import java.lang.reflect.Method;
+import lombok.val;
 
-import org.jmock.auto.Mock;
+import java.lang.reflect.Method;
 
-import org.apache.isis.applib.security.UserMemento;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.metamodel.facets.FacetFactory.ProcessMethodContext;
 import org.apache.isis.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacet;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacet;
 import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethod;
 import org.apache.isis.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacet;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
-import org.apache.isis.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory;
 import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacet;
 import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetViaMethod;
 import org.apache.isis.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory;
@@ -70,8 +63,7 @@ import org.apache.isis.metamodel.facets.properties.validating.method.PropertyVal
 import org.apache.isis.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethodFactory;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import lombok.val;
+import org.jmock.auto.Mock;
 
 public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
 
@@ -101,7 +93,7 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         }
         final Method propertyAccessorMethod = findMethod(Customer.class, "getFirstName");
 
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
 
         final Facet facet = facetedMethod.getFacet(PropertyOrCollectionAccessorFacet.class);
         assertNotNull(facet);
@@ -673,93 +665,7 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().get(0));
     }
 
-    public static class CustomerStatic {
-        public String getFirstName() {
-            return null;
-        }
-
-        // required otherwise marked as DisabledFacetAlways
-        public void setFirstName(final String firstName) {
-        }
-
-        public static String nameFirstName() {
-            return "Given name";
-        };
-
-        public static String descriptionFirstName() {
-            return "Some old description";
-        }
-
-        public static boolean alwaysHideFirstName() {
-            return true;
-        }
-
-        public static boolean protectFirstName() {
-            return true;
-        }
-
-        public static boolean hideFirstName(final UserMemento userMemento) {
-            return true;
-        }
-
-        public static String disableFirstName(final UserMemento userMemento) {
-            return "disabled for this user";
-        }
-
-        public String getLastName() {
-            return null;
-        }
-
-        // required otherwise marked as DisabledFacetAlways
-        public void setLastName(final String firstName) {
-        }
-
-        public static boolean alwaysHideLastName() {
-            return false;
-        }
-
-        public static boolean protectLastName() {
-            return false;
-        }
-    }
-
-
-
-    public void testInstallsHiddenForSessionFacetAndRemovesMethod() {
-        val facetFactory = new HideForSessionFacetViaMethodFactory();
-        facetFactory.setMetaModelContext(super.metaModelContext);
-
-        final Method propertyAccessorMethod = findMethod(CustomerStatic.class, "getFirstName");
-        final Method hideMethod = findMethod(CustomerStatic.class, "hideFirstName", new Class[] { UserMemento.class });
-
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
-
-        final Facet facet = facetedMethod.getFacet(HideForSessionFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof HideForSessionFacetViaMethod);
-        final HideForSessionFacetViaMethod hideForSessionFacetViaMethod = (HideForSessionFacetViaMethod) facet;
-        assertEquals(hideMethod, hideForSessionFacetViaMethod.getMethods().get(0));
-
-        assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(hideMethod));
-
-    }
-
-    public void testInstallsDisabledForSessionFacetAndRemovesMethod() {
-        val facetFactory = new DisableForSessionFacetViaMethodFactory();
-        facetFactory.setMetaModelContext(super.metaModelContext);
-
-        final Method propertyAccessorMethod = findMethod(CustomerStatic.class, "getFirstName");
-        final Method disableMethod = findMethod(CustomerStatic.class, "disableFirstName", new Class[] { UserMemento.class });
 
-        facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, propertyAccessorMethod, methodRemover, facetedMethod));
 
-        final Facet facet = facetedMethod.getFacet(DisableForSessionFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof DisableForSessionFacetViaMethod);
-        final DisableForSessionFacetViaMethod disableForSessionFacetViaMethod = (DisableForSessionFacetViaMethod) facet;
-        assertEquals(disableMethod, disableForSessionFacetViaMethod.getMethods().get(0));
-
-        assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(disableMethod));
-    }
 
 }
diff --git a/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java b/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
index 3b3ed39..fb64229 100644
--- a/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/runtime/system/MethodFinderUtilsTest.java
@@ -41,48 +41,13 @@ import static org.junit.Assert.assertThat;
 @RunWith(Parameterized.class)
 public class MethodFinderUtilsTest {
 
-    private static Method staticMethod;
-    private static Method instanceMethod;
-
-    static {
-        staticMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someStaticMethod");
-        instanceMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someInstanceMethod");
-    }
-
-    private final MethodScope methodScope;
-    private final Method method;
-    private final boolean result;
-
-    @Before
-    public void setUp() {
-        assertThat(staticMethod, is(not(nullValue())));
-        assertThat(instanceMethod, is(not(nullValue())));
-    }
-
-    @Parameters
-    public static Collection<?> parameters() {
-        return Arrays.asList(new Object[][] { 
-            { MethodScope.OBJECT, staticMethod, false }, 
-            { MethodScope.CLASS, staticMethod, true }, 
-            { MethodScope.OBJECT, instanceMethod, true }, 
-            { MethodScope.CLASS, instanceMethod, false }, });
-    }
-
-    public static void someStaticMethod() {
-    }
-
     public void someInstanceMethod() {
     }
 
-    public MethodFinderUtilsTest(final MethodScope methodScope, final Method method, final boolean result) {
-        this.methodScope = methodScope;
-        this.method = method;
-        this.result = result;
-    }
-
     @Test
     public void all() {
-        assertThat(MethodUtil.inScope(method, methodScope), is(result));
+        Method instanceMethod = ClassExtensions.getMethodElseNull(MethodFinderUtilsTest.class, "someInstanceMethod");
+        assertThat(MethodUtil.inScope(instanceMethod, MethodScope.OBJECT), is(true));
     }
 
 }


[isis] 01/07: ISIS-2148: fixes site.yml, accidentally committed with incorrect antora ui bundle

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 949a3bbcff3352e3a9175b9b0c14fe815d181fe4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Dec 3 10:16:31 2019 +0000

    ISIS-2148: fixes site.yml, accidentally committed with incorrect antora ui bundle
    
    ... so breaking the build
---
 site.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/site.yml b/site.yml
index ae2f7c7..26ff951 100644
--- a/site.yml
+++ b/site.yml
@@ -165,8 +165,8 @@ content:
 
 ui:
   bundle:
-    url: ../isis-antora/build/ui-bundle.zip
-#    url: https://github.com/apache/isis-antora/blob/master/build/ui-bundle.zip?raw=true
+#    url: ../isis-antora/build/ui-bundle.zip
+    url: https://github.com/apache/isis-antora/blob/master/build/ui-bundle.zip?raw=true
     snapshot: true
   supplemental_files: antora/supplemental-ui