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:10 UTC

[isis] branch ISIS-2010 created (now 5296ce6)

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

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


      at 5296ce6  ISIS-2010: work in progress going through references to DOMAIN

This branch includes the following new commits:

     new 5e592ac  ISIS-1974: reverts skipping of introspection of actions for domain services
     new c580f32  ISIS-2003: adds new config property to allow initial bootswatch theme to be specified
     new e82036b  Revert "ISIS-1974: reverts skipping of introspection of actions for domain services"
     new 5296ce6  ISIS-2010: work in progress going through references to DOMAIN

The 4 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.



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

Posted by da...@apache.org.
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 5296ce67d43fc341926d2f704f0e15361d750ec7
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 ----
 ...eptionRecognizerCompositeForJdoObjectStore.java |  2 --
 .../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 +++++------
 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 11dd223..6c2939d 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
@@ -40,27 +40,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/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java
index 7ee1d1f..fb42082 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerCompositeForJdoObjectStore.java
+++ b/core/applib/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;
@@ -49,7 +48,6 @@ public class ExceptionRecognizerCompositeForJdoObjectStore extends ExceptionReco
     public static final String KEY_DISABLE = "isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable";
 
     @Override
-    @Programmatic
     @PostConstruct
     public void init(Map<String,String> properties) {
         final boolean disabled = getElseFalse(properties, KEY_DISABLE);
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 015f7a8..aac3ed0 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
@@ -131,10 +131,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 22948ea..e4d4034 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;
@@ -31,13 +29,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;
@@ -75,6 +72,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,11 +258,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;


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

Posted by da...@apache.org.
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 e82036bfe0b936f29f81e3fefa2bad4de09dc9c6
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Oct 19 11:27:37 2018 +0200

    Revert "ISIS-1974: reverts skipping of introspection of actions for domain services"
    
    This reverts commit 5e592ac4920af1557bdae35bf67001aa68948db7.
---
 .../specimpl/dflt/ObjectSpecificationDefault.java  | 28 ++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 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 a708e79..22948ea 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,6 +19,8 @@
 
 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;
@@ -30,10 +32,12 @@ 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;
@@ -45,6 +49,7 @@ 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;
@@ -70,8 +75,6 @@ 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);
@@ -256,7 +259,24 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
     }
 
     private boolean skipAssociationsAndActions() {
-        return isFixtureScript();
+        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;
     }
 
     private boolean isFixtureScript() {


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

Posted by da...@apache.org.
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() {


[isis] 02/04: ISIS-2003: adds new config property to allow initial bootswatch theme to be specified

Posted by da...@apache.org.
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 c580f3231f38c73c0dfb9981c913703fc716d0c5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Oct 19 11:23:10 2018 +0200

    ISIS-2003: adds new config property to allow initial bootswatch theme to be specified
    
    rather than programmatically.  This eliminates the main reasons for having a custom subclass of IsisWicketApplication .
    
    Also:
    - fixed up helloworld and simple app, remove their subclasses also
---
 ..._ugfun_getting-started_simpleapp-archetype.adoc | 45 ++---------
 .../ugvw/_ugvw_configuration-properties.adoc       | 23 ++++--
 .../wicket/viewer/IsisWicketApplication.java       | 23 ++++--
 .../application/isis-non-changing.properties       | 25 ++++++
 .../domainapp/webapp/HelloWorldApplication.java    | 69 -----------------
 .../helloworld/src/main/webapp/WEB-INF/web.xml     | 19 ++---
 .../manifest/isis-non-changing.properties          | 16 +++-
 .../java/domainapp/webapp/DomainApplication.java   | 90 ----------------------
 .../webapp/src/main/webapp/WEB-INF/web.xml         | 21 ++---
 9 files changed, 95 insertions(+), 236 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
index dea5ecf..652ba4f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc
@@ -368,32 +368,9 @@ Under `src/main/java` there is:
 ----
 > domainapp/
 >> webapp/
->>> DomainApplication.java
 >>> welcome.html
 ----
 
-The `DomainApplication` is required to bootstrap the Wicket viewer (it is configured in `WEB-INF/web.xml`, discussed below).
-Within `DomainApplication` is the bootstrapping of the Wicket viewer.
-Internally it uses Google Guice to configure various static resources served up by Wicket:
-
-[source,java]
-----
-public class DomainApplication extends IsisWicketApplication {
-
-    protected Module newIsisWicketModule() {
-        final Module isisDefaults = super.newIsisWicketModule();
-        final Module overrides = new AbstractModule() {
-            @Override
-            protected void configure() {
-                ...
-            }
-        };
-        return Modules.override(isisDefaults).with(overrides);
-    }
-}
-----
-
-The `configure()` method is the place to change the name of the application for example, or to change the initial about and welcome messages.
 The text of the welcome page shown by the Wicket viewer can be found in `welcome.html`, loaded from the classpath and in the same package as `DomainApplication`.
 
 Under `src/main/webapp` we have various resources that are used to configure the webapp, or that are served up by the running webapp:
@@ -415,28 +392,18 @@ Under `src/main/webapp` we have various resources that are used to configure the
 >> web.xml
 ----
 
-Most important of these is `WEB-INF/web.xml`, which bootstraps both the Wicket viewer and the Restful Objects viewer (the REST API derived from the domain object model):
+Most important of these is `WEB-INF/web.xml`, which bootstraps both the Wicket viewer and the Restful Objects viewer, along with Shiro security.
+This is done using a webapp context listener:
 
 [source,xml]
 .web.xml
 ----
 <web-app ...>
   ...
-  <filter>
-    <filter-name>WicketFilter</filter-name>
-    <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
-    <init-param>
-      <param-name>applicationClassName</param-name>
-      <param-value>domainapp.webapp.DomainApplication</param-value>
-    </init-param>
-  </filter>
-  ...
-  <context-param>
-    <param-name>javax.ws.rs.Application</param-name>
-    <param-value>
-      org.apache.isis.viewer.restfulobjects.server.RestfulObjectsApplication
-    </param-value>
-  </context-param>
+  <listener>
+      <listener-class>org.apache.isis.core.webapp.IsisWebAppContextListener</listener-class>
+  </listener>
+
   ...
 </web-app>
 ----
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
index d1bcbfe..ab8fb1c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
@@ -64,24 +64,28 @@ These also include top-level overrides for CSS and Javascript.
 
 |`isis.viewer.wicket.` +
 `application.css`
-|`scripts/application.css`
+|File name +
+(_`scripts/application.css`_)
 |File to read any custom CSS, relative to `src/main/webapp` directory.
 
 |`isis.viewer.wicket.` +
 `application.js`
-|`scripts/application.js`
+|File name +
+(_`scripts/application.js`_)
 |File to read any custom Javascript, relative to `src/main/webapp` directory.
 
 |`isis.viewer.wicket.` +
 `application.about`
-|Apache Isis ™
+|Text +
+(_Apache Isis ™_)
 |Label used on the about page.
 
 If not specified, then `application.name` is used instead.
 
 |`isis.viewer.wicket.` +
 `welcome.file`
-|`welcome.html`
+|File name +
+(_`welcome.html`_)
 |Location of the HTML file (relative to `src/main/webapp`) whose contents should be displayed on the application's home page.
 
 Note though that if a xref:../../guides/rgant/rgant.adoc#_rgant-HomePage[@HomePage] action exists, then that will take precedence.
@@ -90,8 +94,8 @@ If no welcome file exists, then the value of `welcome.text` is shown as a fallba
 
 |`isis.viewer.wicket.` +
 `welcome.text`
-|
-|Text to be displayed on the application's home page, used as a fallback if `welcome.file` is not specified.
+|Text
+|To be displayed on the application's home page, used as a fallback if `welcome.file` is not specified.
 
 Note though that if a xref:../../guides/rgant/rgant.adoc#_rgant-HomePage[@HomePage] action exists, then that will take precedence.
 
@@ -571,6 +575,13 @@ See further discussion below.
 
 See further discussion below.
 
+|`isis.viewer.wicket.` +
+`themes.default`
+| bootswatch theme name +
+(`_Flatly_`)
+| Which Bootstrap theme to use by default.
+
+
 |===
 
 
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index e455b77..32755e9 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -20,7 +20,6 @@
 package org.apache.isis.viewer.wicket.viewer;
 
 import java.io.IOException;
-import java.nio.charset.Charset;
 import java.util.Collections;
 import java.util.List;
 import java.util.ServiceLoader;
@@ -31,7 +30,6 @@ import java.util.concurrent.Future;
 import java.util.function.Function;
 
 import com.google.common.base.Charsets;
-import com.google.common.base.Joiner;
 import com.google.common.io.Resources;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -114,6 +112,8 @@ import de.agilecoders.wicket.core.Bootstrap;
 import de.agilecoders.wicket.core.markup.html.bootstrap.behavior.BootstrapBaseBehavior;
 import de.agilecoders.wicket.core.settings.BootstrapSettings;
 import de.agilecoders.wicket.core.settings.IBootstrapSettings;
+import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchTheme;
+import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvider;
 import de.agilecoders.wicket.webjars.WicketWebjars;
 import de.agilecoders.wicket.webjars.settings.IWebjarsSettings;
 import de.agilecoders.wicket.webjars.settings.WebjarsSettings;
@@ -140,7 +140,7 @@ import net.ftlines.wicketsource.WicketSource;
  * make the {@link ComponentFactory} defined within it available.
  *
  * <p>
- * Alternatively, {@link ComponentFactory}s can be specified by overriding {@link #newIsisWicketModule(IsisConfigurationDefault)}.
+ * Alternatively, {@link ComponentFactory}s can be specified by overriding {@link #newIsisWicketModule(IsisConfiguration)}.
  * This mechanism allows a number of other aspects to be customized.
  */
 public class IsisWicketApplication
@@ -171,8 +171,7 @@ implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, WicketVi
      */
     public static final String ENABLE_DEVELOPMENT_UTILITIES_KEY = "isis.viewer.wicket.developmentUtilities.enable";
     public static final boolean ENABLE_DEVELOPMENT_UTILITIES_DEFAULT = false;
-
-
+    public static final BootswatchTheme BOOTSWATCH_THEME_DEFAULT = BootswatchTheme.Flatly;
 
     private final IsisLoggingConfigurer loggingConfigurer = new IsisLoggingConfigurer();
 
@@ -393,6 +392,20 @@ implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, WicketVi
         } finally {
             ThreadPoolSupport.getInstance().join(futures);
         }
+
+        final String themeName = isisConfiguration.getString(
+                "isis.viewer.wicket.themes.initial", BOOTSWATCH_THEME_DEFAULT.name());
+        BootswatchTheme bootswatchTheme;
+        try {
+            bootswatchTheme = BootswatchTheme.valueOf(themeName);
+        } catch(Exception ex) {
+            bootswatchTheme = BOOTSWATCH_THEME_DEFAULT;
+            LOG.warn("Did not recognise configured bootswatch theme '{}', defaulting to '{}'", bootswatchTheme);
+
+        }
+        IBootstrapSettings settings = Bootstrap.getSettings();
+        settings.setThemeProvider(new BootswatchThemeProvider(bootswatchTheme));
+
     }
     
     protected List<Future<Object>> startBackgroundInitializationThreads() {
diff --git a/example/application/helloworld/src/main/java/domainapp/application/isis-non-changing.properties b/example/application/helloworld/src/main/java/domainapp/application/isis-non-changing.properties
index 512fe42..b084f69 100644
--- a/example/application/helloworld/src/main/java/domainapp/application/isis-non-changing.properties
+++ b/example/application/helloworld/src/main/java/domainapp/application/isis-non-changing.properties
@@ -46,6 +46,31 @@ isis.reflector.explicitAnnotations.action=true
 
 isis.objects.editing=false
 
+
+bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("Hello World App");
+bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css");
+bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");
+bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines(getClass(), "welcome.html",
+"This is the hello world app"));
+bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance("Hello World App");
+bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider(
+Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")));
+
+
+
+isis.viewer.wicket.application.name=Hello World App
+isis.viewer.wicket.application.css=css/application.css
+isis.viewer.wicket.application.js=scripts/application.js
+isis.viewer.wicket.application.about=BIMTAG Admin
+isis.viewer.wicket.welcome.file=welcome.html
+
+isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit.1.name=Apache Isis
+isis.viewer.wicket.credit.1.url=http://isis.apache.org
+
+isis.viewer.wicket.themes.initial=Flatly
+
+
 isis.viewer.wicket.maxTitleLengthInStandaloneTables=0
 isis.viewer.wicket.maxTitleLengthInParentedTables=0
 
diff --git a/example/application/helloworld/src/main/java/domainapp/webapp/HelloWorldApplication.java b/example/application/helloworld/src/main/java/domainapp/webapp/HelloWorldApplication.java
deleted file mode 100644
index bed1362..0000000
--- a/example/application/helloworld/src/main/java/domainapp/webapp/HelloWorldApplication.java
+++ /dev/null
@@ -1,69 +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 domainapp.webapp;
-
-import java.io.InputStream;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Module;
-import com.google.inject.name.Names;
-import com.google.inject.util.Modules;
-import com.google.inject.util.Providers;
-
-import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
-
-import de.agilecoders.wicket.core.Bootstrap;
-import de.agilecoders.wicket.core.settings.IBootstrapSettings;
-import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchTheme;
-import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvider;
-
-public class HelloWorldApplication extends IsisWicketApplication {
-
-    private static final long serialVersionUID = 1L;
-
-    @Override
-    protected void init() {
-        super.init();
-
-        IBootstrapSettings settings = Bootstrap.getSettings();
-        settings.setThemeProvider(new BootswatchThemeProvider(BootswatchTheme.Flatly));
-    }
-
-    @Override
-    protected Module newIsisWicketModule() {
-        final Module isisDefaults = super.newIsisWicketModule();
-        
-        final Module overrides = new AbstractModule() {
-            @Override
-            protected void configure() {
-                bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("Hello World App");
-                bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css");
-                bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");
-                bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines(getClass(), "welcome.html",
-                        "This is the hello world app"));
-                bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance("Hello World App");
-                bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider(
-                        Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")));
-            }
-        };
-
-        return Modules.override(isisDefaults).with(overrides);
-    }
-
-}
diff --git a/example/application/helloworld/src/main/webapp/WEB-INF/web.xml b/example/application/helloworld/src/main/webapp/WEB-INF/web.xml
index 2be7f8c..6e3de7e 100644
--- a/example/application/helloworld/src/main/webapp/WEB-INF/web.xml
+++ b/example/application/helloworld/src/main/webapp/WEB-INF/web.xml
@@ -28,7 +28,7 @@
         <welcome-file>about/index.html</welcome-file>
     </welcome-file-list>
 
-    <!-- can be removed with axon >= 3.4 | see https://github.com/AxonFramework/AxonFramework/issues/534 -->
+    <!-- can be removed with axon >= 3.5 -->
     <persistence-context-ref>
         <persistence-context-ref-name>org.axonframework.common.jpa.ContainerManagedEntityManagerProvider/entityManager</persistence-context-ref-name>
         <persistence-unit-name>noop</persistence-unit-name>
@@ -38,15 +38,12 @@
         <listener-class>org.apache.isis.core.webapp.IsisWebAppContextListener</listener-class>
     </listener>
 
-    <context-param>
-        <param-name>isis.viewer.wicket.app</param-name>
-        <param-value>domainapp.webapp.HelloWorldApplication</param-value>
-    </context-param>
-	
-    <!-- this config value wins over that provided via environment variable PROTOTYPING=true/false -->
-<!-- 	<context-param> -->
-<!-- 		<param-name>isis.viewer.wicket.mode</param-name> -->
-<!-- 		<param-value>development</param-value> -->
-<!-- 	</context-param> -->
+    <!--
+    this config value wins over that provided via environment variable PROTOTYPING=true/false
+    -->
+ 	<context-param>
+ 		<param-name>isis.viewer.wicket.mode</param-name>
+ 		<param-value>development</param-value>
+ 	</context-param>
   
 </web-app>
diff --git a/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/isis-non-changing.properties b/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/isis-non-changing.properties
index 25ffdae..353ed23 100644
--- a/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/isis-non-changing.properties
+++ b/example/application/simpleapp/application/src/main/resources/domainapp/application/manifest/isis-non-changing.properties
@@ -360,6 +360,19 @@ isis.objects.editing=false
 #
 #################################################################################
 
+
+isis.viewer.wicket.application.name=Simple App
+isis.viewer.wicket.application.css=css/application.css
+isis.viewer.wicket.application.js=scripts/application.js
+isis.viewer.wicket.application.about=BIMTAG Admin
+isis.viewer.wicket.welcome.file=welcome.html
+
+isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit.1.name=Apache Isis
+isis.viewer.wicket.credit.1.url=http://isis.apache.org
+
+isis.viewer.wicket.themes.initial=Flatly
+
 #
 # Specify viewer defaults
 # 
@@ -371,9 +384,6 @@ isis.objects.editing=false
 #isis.viewers.parameterLayout.labelPosition=LEFT
 
 
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
 
 
 #################################################################################
diff --git a/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.java b/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.java
deleted file mode 100644
index b921249..0000000
--- a/example/application/simpleapp/webapp/src/main/java/domainapp/webapp/DomainApplication.java
+++ /dev/null
@@ -1,90 +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 domainapp.webapp;
-
-import java.io.InputStream;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Module;
-import com.google.inject.name.Names;
-import com.google.inject.util.Modules;
-import com.google.inject.util.Providers;
-
-import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
-
-import de.agilecoders.wicket.core.Bootstrap;
-import de.agilecoders.wicket.core.settings.IBootstrapSettings;
-import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchTheme;
-import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvider;
-
-/**
- * As specified in <tt>web.xml</tt>.
- * 
- * <p>
- * See:
- * <pre>
- * &lt;filter>
- *   &lt;filter-name>wicket&lt;/filter-name>
- *    &lt;filter-class>org.apache.wicket.protocol.http.WicketFilter&lt;/filter-class>
- *    &lt;init-param>
- *      &lt;param-name>applicationClassName&lt;/param-name>
- *      &lt;param-value>domainapp.webapp.DomainApplication&lt;/param-value>
- *    &lt;/init-param>
- * &lt;/filter>
- * </pre>
- * 
- */
-public class DomainApplication extends IsisWicketApplication {
-
-    private static final long serialVersionUID = 1L;
-
-    @Override
-    protected void init() {
-        super.init();
-
-        IBootstrapSettings settings = Bootstrap.getSettings();
-        settings.setThemeProvider(new BootswatchThemeProvider(BootswatchTheme.Flatly));
-    }
-
-    private static final String APP_NAME = "Simple App";
-
-    @Override
-    protected Module newIsisWicketModule() {
-        final Module isisDefaults = super.newIsisWicketModule();
-        
-        final Module overrides = new AbstractModule() {
-            @Override
-            protected void configure() {
-                bind(String.class).annotatedWith(Names.named("applicationName")).toInstance(APP_NAME);
-                bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css");
-                bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js");
-                bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines(getClass(), "welcome.html", "This is a simple app"));
-                bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance(APP_NAME);
-                bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider(
-                        Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF")));
-                // if uncommented, then overrides isis.appManifest in config file.
-                // bind(AppManifest.class).toInstance(new DomainAppAppManifest());
-            }
-        };
-
-        return Modules.override(isisDefaults).with(overrides);
-    }
-
-
-}
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
index 8f926eb..4f7fcc2 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/web.xml
@@ -28,7 +28,7 @@
         <welcome-file>about/index.html</welcome-file>
     </welcome-file-list>
 
-    <!-- can be removed with axon >= 3.4 | see https://github.com/AxonFramework/AxonFramework/issues/534 -->
+    <!-- can be removed with axon >= 3.5 -->
     <persistence-context-ref>
         <persistence-context-ref-name>org.axonframework.common.jpa.ContainerManagedEntityManagerProvider/entityManager</persistence-context-ref-name>
         <persistence-unit-name>noop</persistence-unit-name>
@@ -38,17 +38,12 @@
         <listener-class>org.apache.isis.core.webapp.IsisWebAppContextListener</listener-class>
     </listener>
 
-
-    <context-param>
-        <param-name>isis.viewer.wicket.app</param-name>
-        <param-value>domainapp.webapp.DomainApplication</param-value>
-    </context-param>
-
-    <!-- this config value wins over that provided via environment variable PROTOTYPING=true/false -->
-<!-- 	<context-param> -->
-<!-- 		<param-name>isis.viewer.wicket.mode</param-name> -->
-<!-- 		<param-value>development</param-value> -->
-<!-- 	</context-param> -->
-
+    <!--
+    this config value wins over that provided via environment variable PROTOTYPING=true/false
+    -->
+ 	<context-param>
+ 		<param-name>isis.viewer.wicket.mode</param-name>
+ 		<param-value>development</param-value>
+ 	</context-param>
 
 </web-app>