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 2018/10/19 12:52:11 UTC

[isis] 01/04: ISIS-1974: reverts skipping of introspection of actions for domain services

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

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

commit 5e592ac4920af1557bdae35bf67001aa68948db7
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Oct 19 08:25:13 2018 +0200

    ISIS-1974: reverts skipping of introspection of actions for domain services
    
    Because otherwise impossible to wrap them (needed eg for builder scripts).  Perhaps the correct solution here is to break out NatureOfService.DOMAIN into API and IMPL
---
 .../specimpl/dflt/ObjectSpecificationDefault.java  | 28 ++++------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 22948ea..a708e79 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.core.metamodel.specloader.specimpl.dflt;
 
-import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
-
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.List;
@@ -32,12 +30,10 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.fixturescripts.FixtureScript;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.applib.annotation.HomePage;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.fixturescripts.FixtureScript;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.commons.util.ToString;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -49,7 +45,6 @@ import org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated;
 import org.apache.isis.core.metamodel.facets.all.i18n.PluralFacetTranslated;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
-import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred;
@@ -75,6 +70,8 @@ import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbs
 import org.apache.isis.core.metamodel.specloader.specimpl.OneToManyAssociationDefault;
 import org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationDefault;
 
+import static org.apache.isis.commons.internal.base._With.mapIfPresentElse;
+
 public class ObjectSpecificationDefault extends ObjectSpecificationAbstract implements FacetHolder {
 
     private final static Logger LOG = LoggerFactory.getLogger(ObjectSpecificationDefault.class);
@@ -259,24 +256,7 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
     }
 
     private boolean skipAssociationsAndActions() {
-        return isFixtureScript() || isDomainServiceWithDomainNatureOfServiceNotHomePage();
-    }
-
-    // TODO: this is a bit horrible; maybe instead introduce a new NatureOfService for home page services (also for seed services?)
-    private boolean isDomainServiceWithDomainNatureOfServiceNotHomePage() {
-        final DomainServiceFacet domainServiceFacet = this.getFacet(DomainServiceFacet.class);
-        if (domainServiceFacet == null) {
-            return false;
-        }
-        if (domainServiceFacet.getNatureOfService() != NatureOfService.DOMAIN) {
-            return false;
-        }
-        // domain services that have a single method annotated with @HomePage ARE introspected.
-        final Method[] methods = getCorrespondingClass().getDeclaredMethods();
-        if (methods.length != 1) {
-            return true;
-        }
-        return methods[0].getAnnotation(HomePage.class) == null;
+        return isFixtureScript();
     }
 
     private boolean isFixtureScript() {