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

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

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>