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/01/04 14:10:33 UTC

[isis] 02/02: ISIS-2010: work in progress going through references to DOMAIN

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 6698f9dbf42148a8289b1c232786f3e4cf0225c4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Oct 19 13:51:42 2018 +0100

    ISIS-2010: work in progress going through references to DOMAIN
    
    Have added DOMAIN_API, now need to look at existing uses of DOMAIN and see how they should be handled.
---
 .../isis/applib/annotation/NatureOfService.java    | 28 ++++++++++++++++------
 .../conmap/ContentMappingServiceForCommandDto.java |  2 --
 .../ContentMappingServiceForCommandsDto.java       |  2 --
 .../fixturescripts/ExecutionParametersService.java |  1 -
 .../isis/applib/mixins/dto/DtoMappingHelper.java   |  7 +++---
 .../services/audit/AuditerServiceLogging.java      |  1 -
 .../ClassDiscoveryServiceDefault.java              |  1 -
 .../isis/applib/services/clock/ClockService.java   |  5 ----
 .../applib/services/iactn/InteractionContext.java  |  3 ---
 .../QueryResultsCacheControlInternal.java          |  1 -
 .../QueryResultsCacheInternal.java                 |  6 -----
 .../services/routing/RoutingServiceDefault.java    |  2 --
 .../applib/services/scratchpad/Scratchpad.java     |  3 ---
 .../UrlEncodingServiceWithCompression.java         |  2 +-
 .../HeadlessTransactionSupportDefault.java         |  5 +++-
 .../actions/layout/ActionLayoutFacetFactory.java   |  4 ----
 .../object/domainservice/DomainServiceFacet.java   | 10 --------
 .../specimpl/dflt/ObjectSpecificationDefault.java  | 14 +++++------
 ...eptionRecognizerCompositeForJdoObjectStore.java |  2 --
 19 files changed, 36 insertions(+), 63 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
index e64fb4f..0595353 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
@@ -45,27 +45,41 @@ public enum NatureOfService {
      */
     VIEW_REST_ONLY,
     /**
-     * The service's actions do not appear on menus and are not contributed.
+     * The service's actions do not appear on menus and are not contributed, but can be {@link org.apache.isis.applib.services.wrapper.WrapperFactory#wrap(Object) wrapped}.
+     */
+    DOMAIN_API,
+    /**
+     * The domain service methods are NOT part of the metamodel and instead are intended only to be invoked programmatically.
      */
     DOMAIN;
 
-    boolean isViewRestOnly() {
+    public boolean isViewRestOnly() {
         return this == VIEW_REST_ONLY;
     }
-    boolean isView() {
+    public boolean isView() {
         return this == VIEW;
     }
-    boolean isViewMenuOnly() {
+    public boolean isViewMenuOnly() {
         return this == VIEW_MENU_ONLY;
     }
-    boolean isViewContributionsOnly() {
+    public boolean isViewContributionsOnly() {
         return this == VIEW_CONTRIBUTIONS_ONLY;
     }
-    boolean isDomain() {
+
+    /**
+     * Is either {@link #DOMAIN domain (implementation)} or {@link #DOMAIN_API domain (api)}.
+     */
+    public boolean isDomain() {
+        return this == DOMAIN || this == DOMAIN_API;
+    }
+    public boolean isDomainImpl() {
         return this == DOMAIN;
     }
+    public boolean isDomainApi() {
+        return this == DOMAIN_API;
+    }
 
-    boolean isViewOrViewMenuOnly() {
+    public boolean isViewOrViewMenuOnly() {
         return isView() || isViewMenuOnly();
     }
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandDto.java b/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandDto.java
index 1d59aea..1ea5ae6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandDto.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandDto.java
@@ -46,7 +46,6 @@ import org.apache.isis.schema.utils.jaxbadapters.JavaSqlTimestampXmlGregorianCal
 public class ContentMappingServiceForCommandDto implements ContentMappingService {
 
     @Override
-    @Programmatic
     public Object map(Object object, final List<MediaType> acceptableMediaTypes) {
         final boolean supported = Util.isSupported(CommandDto.class, acceptableMediaTypes);
         if(!supported) {
@@ -59,7 +58,6 @@ public class ContentMappingServiceForCommandDto implements ContentMappingService
     /**
      * Not part of the {@link ContentMappingService} API.
      */
-    @Programmatic
     public CommandDto map(final CommandWithDto commandWithDto) {
         return asProcessedDto(commandWithDto);
     }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandsDto.java b/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandsDto.java
index 6934b6a..f7b34f4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandsDto.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandsDto.java
@@ -37,7 +37,6 @@ import org.apache.isis.schema.cmd.v1.CommandsDto;
 public class ContentMappingServiceForCommandsDto implements ContentMappingService {
 
     @Override
-    @Programmatic
     public Object map(Object object, final List<MediaType> acceptableMediaTypes) {
         final boolean supported = Util.isSupported(CommandsDto.class, acceptableMediaTypes);
         if(!supported) {
@@ -50,7 +49,6 @@ public class ContentMappingServiceForCommandsDto implements ContentMappingServic
     /**
      * Not part of the {@link ContentMappingService} API.
      */
-    @Programmatic
     public CommandsDto map(final Object object) {
         if(object instanceof CommandsDto) {
             return ((CommandsDto) object);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/ExecutionParametersService.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/ExecutionParametersService.java
index e119a6e..8a0be21 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/ExecutionParametersService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/ExecutionParametersService.java
@@ -40,7 +40,6 @@ import org.apache.isis.applib.annotation.Programmatic;
         )
 public class ExecutionParametersService {
 
-    @Programmatic
     public ExecutionParameters newExecutionParameters(final String parameters) {
         return new ExecutionParameters(parameters);
     }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
index 6bafe2e..866b2c5 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
@@ -20,17 +20,18 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.schema.common.v1.BookmarkObjectState;
 import org.apache.isis.schema.common.v1.OidDto;
 
-@DomainService(nature = NatureOfService.DOMAIN)
+@DomainService(
+        nature = NatureOfService.DOMAIN,
+        menuOrder = "" + Integer.MAX_VALUE
+)
 public class DtoMappingHelper {
 
-    @Programmatic
     public OidDto oidDtoFor(final Object object) {
         final Bookmark bookmark = bookmarkService.bookmarkFor(object);
         return asOidDto(bookmark);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
index 19a1ece..fd4364d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
@@ -48,7 +48,6 @@ public class AuditerServiceLogging implements AuditerService {
         return LOG.isDebugEnabled();
     }
 
-    @Programmatic
     @Override
     public void audit(
             final UUID interactionId, int sequence,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
index cd09e32..e8e7236 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceDefault.java
@@ -48,7 +48,6 @@ public class ClassDiscoveryServiceDefault
 extends AbstractService
 implements ClassDiscoveryService {
 
-    @Programmatic
     @Override
     public <T> Set<Class<? extends T>> findSubTypesOfClasses(Class<T> type, String packageNamePrefix) {
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index c1ef0bc..1357bf1 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -42,27 +42,22 @@ import org.apache.isis.applib.clock.Clock;
         )
 public class ClockService {
 
-    @Programmatic
     public LocalDate now() {
         return Clock.getTimeAsLocalDate();
     }
 
-    @Programmatic
     public LocalDateTime nowAsLocalDateTime() {
         return Clock.getTimeAsLocalDateTime();
     }
 
-    @Programmatic
     public DateTime nowAsDateTime() {
         return Clock.getTimeAsDateTime();
     }
 
-    @Programmatic
     public Timestamp nowAsJavaSqlTimestamp() {
         return Clock.getTimeAsJavaSqlTimestamp();
     }
 
-    @Programmatic
     public long nowAsMillis() {
         return Clock.getTime();
     }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
index 0a65efc..503e622 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
@@ -46,9 +46,7 @@ public class InteractionContext {
 
     /**
      * Returns the currently active {@link Interaction} for this thread.
-     * @return
      */
-    @Programmatic
     public Interaction getInteraction() {
         return interaction;
     }
@@ -56,7 +54,6 @@ public class InteractionContext {
     /**
      * <b>NOT API</b>: intended to be called only by the framework.
      */
-    @Programmatic
     public void setInteraction(final Interaction interaction) {
         this.interaction = interaction;
     }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheControlInternal.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheControlInternal.java
index ac6b244..3271602 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheControlInternal.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheControlInternal.java
@@ -53,7 +53,6 @@ public class QueryResultsCacheControlInternal extends AbstractSubscriber impleme
 
     private boolean fixturesInstalling;
 
-    @Programmatic
     @Override
     public boolean isFixturesInstalling() {
         return fixturesInstalling;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
index eedaa5b..53464e1 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
@@ -52,7 +52,6 @@ public class QueryResultsCacheInternal implements QueryResultsCache, WithTransac
 
     private final Map<Key, Value<?>> cache = _Maps.newHashMap();
 
-    @Programmatic
     @Override
     public <T> T execute(
             final Callable<T> callable,
@@ -70,7 +69,6 @@ public class QueryResultsCacheInternal implements QueryResultsCache, WithTransac
         return executeWithCaching(callable, cacheKey);
     }
 
-    @Programmatic
     private <T> T execute(final Callable<T> callable, final Key cacheKey) {
         if(control.isFixturesInstalling()) {
             try {
@@ -107,12 +105,10 @@ public class QueryResultsCacheInternal implements QueryResultsCache, WithTransac
         }
     }
 
-    @Programmatic
     private <T> Value<T> get(final Class<?> callingClass, final String methodName, final Object... keys) {
         return get(new Key(callingClass, methodName, keys));
     }
 
-    @Programmatic
     @SuppressWarnings("unchecked")
     private <T> Value<T> get(final Key cacheKey) {
         Value<T> value = (Value<T>) cache.get(cacheKey);
@@ -120,7 +116,6 @@ public class QueryResultsCacheInternal implements QueryResultsCache, WithTransac
         return value;
     }
 
-    @Programmatic
     private <T> void put(final Key cacheKey, final T result) {
         LOG.debug("PUT: {}", cacheKey);
         cache.put(cacheKey, new Value<T>(result));
@@ -141,7 +136,6 @@ public class QueryResultsCacheInternal implements QueryResultsCache, WithTransac
      * a transaction-scoped service; since that isn't yet supported by the framework, we have to manually reset).
      * </p>
      */
-    @Programmatic
     @Override
     public void resetForNextTransaction() {
         cache.clear();
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingServiceDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingServiceDefault.java
index 69a4235..1ee0847 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingServiceDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingServiceDefault.java
@@ -35,13 +35,11 @@ public class RoutingServiceDefault implements RoutingService {
     @SuppressWarnings("unused")
     private final static Logger LOG = LoggerFactory.getLogger(RoutingServiceDefault.class);
 
-    @Programmatic
     @Override
     public boolean canRoute(final Object original) {
         return true;
     }
 
-    @Programmatic
     @Override
     public Object route(final Object original) {
         return original != null? original: homePageProviderService.homePage();
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java b/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
index 4a66430..d1b707b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
@@ -53,14 +53,12 @@ public class Scratchpad {
     /**
      * Obtain user-data, as set by a previous object being acted upon.
      */
-    @Programmatic
     public Object get(Object key) {
         return userData.get(key);
     }
     /**
      * Set user-data, for the use of a subsequent object being acted upon.
      */
-    @Programmatic
     public void put(Object key, Object value) {
         userData.put(key, value);
     }
@@ -68,7 +66,6 @@ public class Scratchpad {
     /**
      * Clear any user data.
      */
-    @Programmatic
     public void clear() {
         userData.clear();
     }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java b/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java
index dd652d2..8b93c78 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java
@@ -26,7 +26,7 @@ import org.apache.isis.commons.internal.base._Strings;
 @DomainService(
         nature = NatureOfService.DOMAIN,
         menuOrder = "" + Integer.MAX_VALUE
-        )
+)
 public class UrlEncodingServiceWithCompression implements UrlEncodingService {
 
     @Override
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/HeadlessTransactionSupportDefault.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/HeadlessTransactionSupportDefault.java
index a5762b9..1572085 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/HeadlessTransactionSupportDefault.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/components/HeadlessTransactionSupportDefault.java
@@ -32,7 +32,10 @@ import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.runtime.system.transaction.IsisTransaction.State;
 
-@DomainService(nature=NatureOfService.DOMAIN)
+@DomainService(
+        nature=NatureOfService.DOMAIN,
+        menuOrder = "" + Integer.MAX_VALUE
+)
 public class HeadlessTransactionSupportDefault implements HeadlessTransactionSupport {
 
     @Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
index f9af501..4dadd96 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutFacetFactory.java
@@ -130,10 +130,6 @@ public class ActionLayoutFacetFactory extends FacetFactoryAbstract implements Co
         return b;
     }
 
-    // UNUSED
-    protected boolean skipContributing(final DomainServiceFacet domainServiceFacet) {
-        return domainServiceFacet == null || domainServiceFacet.isNoop() || domainServiceFacet.getNatureOfService() == NatureOfService.VIEW_MENU_ONLY || domainServiceFacet.getNatureOfService() == NatureOfService.DOMAIN;
-    }
 
     @Override
     public void process(ProcessContributeeMemberContext processMemberContext) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
index b389767..ae314ca 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservice/DomainServiceFacet.java
@@ -39,16 +39,6 @@ public interface DomainServiceFacet extends Facet {
 
     /**
      * Corresponds to {@link org.apache.isis.applib.annotation.DomainService#nature()}.
-     *
-     * <p>
-     *     If set to {@link org.apache.isis.applib.annotation.NatureOfService#VIEW_MENU_ONLY} or {@link org.apache.isis.applib.annotation.NatureOfService#DOMAIN}, then {@link org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet} is
-     *     derived for all actions.
-     * </p>
-     *
-     * <p>
-     *     If set to {@link org.apache.isis.applib.annotation.NatureOfService#VIEW_CONTRIBUTIONS_ONLY} or {@link org.apache.isis.applib.annotation.NatureOfService#DOMAIN}, then {@link org.apache.isis.core.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet} is
-     *     derived for all actions.
-     * </p>
      */
     public NatureOfService getNatureOfService();
 
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 4da74ce..0beedb3 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;
@@ -33,13 +31,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.Identifier;
+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.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;
@@ -79,6 +76,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);
@@ -263,11 +262,10 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
     }
 
     private boolean skipAssociationsAndActions() {
-        return isFixtureScript() || isDomainServiceWithDomainNatureOfServiceNotHomePage();
+        return isFixtureScript() || isDomainServiceWithDomainImpl();
     }
 
-    // TODO: this is a bit horrible; maybe instead introduce a new NatureOfService for home page services (also for seed services?)
-    private boolean isDomainServiceWithDomainNatureOfServiceNotHomePage() {
+    private boolean isDomainServiceWithDomainImpl() {
         final DomainServiceFacet domainServiceFacet = this.getFacet(DomainServiceFacet.class);
         if (domainServiceFacet == null) {
             return false;
diff --git a/core/runtime/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java b/core/runtime/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java
index 07887e1..0e56090 100644
--- a/core/runtime/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java
+++ b/core/runtime/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java
@@ -24,7 +24,6 @@ import javax.annotation.PostConstruct;
 
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.commons.internal.base._Strings;
@@ -51,7 +50,6 @@ public class ExceptionRecognizerCompositeForJdoObjectStore extends ExceptionReco
             "isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable";
 
     @Override
-    @Programmatic
     @PostConstruct
     public void init() {