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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1e209b4  ISIS-2340: splitting the 2 demo artifacts into 3
1e209b4 is described below

commit 1e209b43523d50d066c657806892bbf4f72ea627
Author: Andi Huber <[email protected]>
AuthorDate: Thu Apr 23 10:47:34 2020 +0200

    ISIS-2340: splitting the 2 demo artifacts into 3
    
    * demo ... only the domain model (jar - packaging)
    * demo/vaadin ... with vaadin specific manifest, depends on demo
    (packaging with spring-boot:run support)
    * demo/wicket ... with wicket specific manifest, depends on demo
    (packaging with spring-boot:run support)
---
 examples/demo/pom.xml                              | 199 +--------------------
 .../demo/src/main/java/demoapp/webapp/DemoApp.java | 176 ------------------
 .../main/java/demoapp/webapp/DemoAppManifest.java  | 139 ++++++++++++++
 examples/demo/vaadin/pom.xml                       | 169 +++++++++++++++++
 .../java/demoapp/webapp/vaadin}/DemoAppVaadin.java |  14 +-
 .../vaadin}/src/main/resources/log4j2-spring.xml   |   0
 examples/demo/{ => wicket}/pom.xml                 |  15 +-
 .../java/demoapp/webapp/wicket/DemoAppWicket.java} |  38 ++--
 .../wicket}/src/main/resources/log4j2-spring.xml   |  18 ++
 .../ui/components/object/ObjectFormView.java       |   5 -
 10 files changed, 370 insertions(+), 403 deletions(-)

diff --git a/examples/demo/pom.xml b/examples/demo/pom.xml
index 94c5244..9cb582c 100644
--- a/examples/demo/pom.xml
+++ b/examples/demo/pom.xml
@@ -24,18 +24,11 @@
        <groupId>org.apache.isis.examples.apps</groupId>
        <artifactId>demo</artifactId>
 
-       <name>Apache Isis App - Demo</name>
+       <name>Apache Isis App - Demo (Domain)</name>
 
-       <packaging>${packaging.type}</packaging>
+       <packaging>jar</packaging>
 
        <properties>
-               <packaging.type>jar</packaging.type>
-
-               
<maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
-
-               <!-- this can be overridden using -Dflavor=... -->
-               <flavor>springboot</flavor>
-
        </properties>
 
        <build>
@@ -141,192 +134,4 @@
 
        </dependencies>
 
-       <profiles>
-
-               <!-- running: mvn spring-boot:run -->
-               <profile>
-                       <id>package-as-jar</id>
-                       <activation>
-                               <property>
-                                       <name>!package-as-war</name>
-                               </property>
-                       </activation>
-                       <properties>
-                               <packaging.type>jar</packaging.type>
-                       </properties>
-
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>org.springframework.boot</groupId>
-                                               
<artifactId>spring-boot-maven-plugin</artifactId>
-                                               <executions>
-                                                       <execution>
-                                                               <goals>
-                                                                       
<goal>repackage</goal>
-                                                               </goals>
-                                                       </execution>
-                                               </executions>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-
-
-               <profile>
-                       <id>flavor-springboot</id>
-                       <activation>
-                               <property>
-                                       <name>flavor</name>
-                                       <value>springboot</value>
-                               </property>
-                       </activation>
-                       <properties>
-                               <packaging.type>jar</packaging.type>
-                               <package-as-war>false</package-as-war>
-                       </properties>
-                       <dependencies>
-                               <!-- add flavor specific here -->
-                       </dependencies>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>com.google.cloud.tools</groupId>
-                                               
<artifactId>jib-maven-plugin</artifactId>
-                                               <configuration>
-                                                       <from>
-                                                               
<image>openjdk:13-alpine</image>
-                                                       </from>
-                                                       <container>
-                                                               <jvmFlags>
-                                                                       
<jvmFlag>-Xmx512m</jvmFlag>
-                                                               </jvmFlags>
-                                                               
<mainClass>demoapp.webapp.DemoApp</mainClass>
-                                                               <ports>
-                                                                       
<port>8080</port>
-                                                               </ports>
-                                                       </container>
-                                                       <to>
-                                                               
<image>docker.io/apacheisis/demo-springboot</image>
-                                                               <tags>
-                                                                       
<tag>nightly</tag>
-                                                               </tags>
-                                                               <auth>
-                                                                       
<username>${env.DOCKER_REGISTRY_USERNAME}</username>
-                                                                       
<password>${env.DOCKER_REGISTRY_PASSWORD}</password>
-                                                               </auth>
-                                                       </to>
-                                               </configuration>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-
-
-               <profile>
-                       <id>flavor-dryrun</id>
-                       <activation>
-                               <property>
-                                       <name>flavor</name>
-                                       <value>dryrun</value>
-                               </property>
-                       </activation>
-                       <properties>
-                               <packaging.type>jar</packaging.type>
-                               <package-as-war>false</package-as-war>
-                       </properties>
-                       <dependencies>
-                               <!-- add flavor specific here -->
-                       </dependencies>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>com.google.cloud.tools</groupId>
-                                               
<artifactId>jib-maven-plugin</artifactId>
-                                               <configuration>
-                                                       <from>
-                                                               
<image>openjdk:13-alpine</image>
-                                                       </from>
-                                                       <container>
-                                                               <jvmFlags>
-                                                                       
<jvmFlag>-Xmx512m</jvmFlag>
-                                                               </jvmFlags>
-                                                               
<mainClass>demoapp.webapp.DemoApp</mainClass>
-                                                               <ports>
-                                                                       
<port>8080</port>
-                                                               </ports>
-                                                       </container>
-                                                       <to>
-                                                               
<image>docker.io/apacheisis/demo-dryrun</image>
-                                                               <auth>
-                                                                       
<username>${env.DOCKER_REGISTRY_USERNAME}</username>
-                                                                       
<password>${env.DOCKER_REGISTRY_PASSWORD}</password>
-                                                               </auth>
-                                                       </to>
-                                               </configuration>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-
-
-               <profile>
-                       <id>flavor-tomcat</id>
-                       <activation>
-                               <property>
-                                       <name>flavor</name>
-                                       <value>tomcat</value>
-                               </property>
-                       </activation>
-                       <properties>
-                               <packaging.type>war</packaging.type>
-                               <package-as-war>true</package-as-war>
-                       </properties>
-                       <dependencies>
-                               <!-- add flavor specific here -->
-                       </dependencies>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>com.google.cloud.tools</groupId>
-                                               
<artifactId>jib-maven-plugin</artifactId>
-                                               <configuration>
-                                                       <from>
-                                                               
<image>tomcat:9-jdk11-openjdk</image>
-                                                       </from>
-                                                       <container>
-                                                               
<appRoot>/usr/local/tomcat/webapps/demo</appRoot>
-                                                       </container>
-                                                       <to>
-                                                               
<image>docker.io/apacheisis/demo-tomcat</image>
-                                                               <auth>
-                                                                       
<username>${env.DOCKER_REGISTRY_USERNAME}</username>
-                                                                       
<password>${env.DOCKER_REGISTRY_PASSWORD}</password>
-                                                               </auth>
-                                                       </to>
-                                               </configuration>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-
-               <profile>
-                       <id>flavor-payara</id>
-                       <activation>
-                               <property>
-                                       <name>flavor</name>
-                                       <value>payara</value>
-                               </property>
-                       </activation>
-                       <properties>
-                               <packaging.type>war</packaging.type>
-                               <package-as-war>true</package-as-war>
-                       </properties>
-                       <dependencies>
-                               <!-- add flavor specific here -->
-                       </dependencies>
-               </profile>
-
-       </profiles>
-
 </project>
\ No newline at end of file
diff --git a/examples/demo/src/main/java/demoapp/webapp/DemoApp.java 
b/examples/demo/src/main/java/demoapp/webapp/DemoApp.java
deleted file mode 100644
index b65b02a..0000000
--- a/examples/demo/src/main/java/demoapp/webapp/DemoApp.java
+++ /dev/null
@@ -1,176 +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 demoapp.webapp;
-
-import java.util.Optional;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import 
org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
-import 
org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-
-import org.apache.isis.core.config.presets.IsisPresets;
-import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
-import org.apache.isis.extensions.cors.impl.IsisModuleExtCorsImpl;
-import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
-import 
org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationService;
-import 
org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationServiceAllowBeatsVeto;
-import 
org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleExtSecmanEncryptionJbcrypt;
-import org.apache.isis.extensions.secman.jdo.IsisModuleExtSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.model.IsisModuleExtSecmanModel;
-import org.apache.isis.extensions.secman.shiro.IsisModuleExtSecmanRealmShiro;
-import 
org.apache.isis.extensions.viewer.wicket.exceldownload.ui.IsisModuleExtExcelDownloadUi;
-import org.apache.isis.incubator.model.metamodel.IsisModuleIncModelMetaModel;
-import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
-import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
-import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
-import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
-import org.apache.isis.valuetypes.asciidoc.ui.wkt.IsisModuleValAsciidocUiWkt;
-import org.apache.isis.valuetypes.sse.ui.IsisModuleValSseUi;
-import 
org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
-import 
org.apache.isis.viewer.restfulobjects.viewer.IsisModuleViewerRestfulObjectsViewer;
-import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
-
-import lombok.val;
-import lombok.extern.log4j.Log4j2;
-
-import demoapp.dom.DemoModule;
-import demoapp.utils.DemoRequestScopedBean;
-import demoapp.utils.LibraryPreloadingService;
-import demoapp.utils.ThereCanBeOnlyOne;
-
-/**
- * Bootstrap the application.
- */
-@SpringBootApplication
-@Import({
-    DemoApp.AppManifest.class,
-})
-@Log4j2
-public class DemoApp extends SpringBootServletInitializer {
-
-    /**
-     * 
-     * @param args
-     * @implNote this is to support the <em>Spring Boot Maven Plugin</em>, 
which auto-detects an 
-     * entry point by searching for classes having a {@code main(...)}
-     */
-    public static void main(String[] args) {
-        //IsisPresets.prototyping();
-        //DebugLoggingPreset.PERSISTENCE.apply();
-        //DebugLoggingPreset.ISIS_SESSION.apply();
-        
-        ThereCanBeOnlyOne.remoteShutdownOthersIfAny();
-        
-        SpringApplication.run(new Class[] { DemoApp.class }, args);
-    }
-
-    /**
-     * Makes the integral parts of the 'demo' web application.
-     */
-    @Configuration
-    @PropertySources({
-        @PropertySource(IsisPresets.H2InMemory),
-        @PropertySource(IsisPresets.NoTranslations),
-        @PropertySource(IsisPresets.SilenceWicket),
-        @PropertySource(IsisPresets.DataNucleusAutoCreate),
-    })
-    @Import({
-        IsisModuleCoreRuntimeServices.class,
-        IsisModuleSecurityShiro.class,
-        IsisModuleJdoDataNucleus5.class,
-        IsisModuleViewerWicketViewer.class, // wicket viewer
-        IsisModuleValSseUi.class, // server sent events
-        IsisModuleValAsciidocUiWkt.class, // ascii-doc rendering support (for 
Wicket)
-
-        // REST
-        IsisModuleViewerRestfulObjectsViewer.class,
-        IsisModuleViewerRestfulObjectsJaxrsResteasy4.class,
-        
-        // CORS
-        IsisModuleExtCorsImpl.class,
-
-        // Security Manager Extension (secman)
-        IsisModuleExtSecmanModel.class,
-        IsisModuleExtSecmanRealmShiro.class,
-        IsisModuleExtSecmanPersistenceJdo.class,
-        IsisModuleExtSecmanEncryptionJbcrypt.class,
-
-        IsisModuleTestingFixturesApplib.class,
-        IsisModuleTestingH2ConsoleUi.class,
-
-        IsisModuleIncModelMetaModel.class, // @Model support (incubator)
-        IsisModuleExtExcelDownloadUi.class, // allows for collection download 
as excel
-        
-        LibraryPreloadingService.class, // just a performance enhancement
-        
-        DemoRequestScopedBean.class // demo @RequestScope logging
-
-    })
-    @ComponentScan(
-            basePackageClasses= {
-                    DemoModule.class
-            }
-    )
-    public static class AppManifest {
-
-        @Bean
-        public SecurityModuleConfig securityModuleConfigBean() {
-            return SecurityModuleConfig.builder()
-                    .adminUserName("sven")
-                    .adminAdditionalPackagePermission("demoapp.dom")
-                    .adminAdditionalPackagePermission("org.apache.isis")
-                    .build();
-        }
-
-        @Bean
-        public PermissionsEvaluationService permissionsEvaluationService() {
-            return new PermissionsEvaluationServiceAllowBeatsVeto();
-        }
-        
-        /**
-         * If available from {@code System.getProperty("ContextPath")}
-         * or {@code System.getenv("ContextPath")},
-         * sets the context path for the web server. The context should start 
with a "/" character 
-         * but not end with a "/" character. The default context path can be
-         * specified using an empty string.
-         */
-        @Bean
-        public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> 
webServerFactoryCustomizer() {
-            return factory -> {
-                val contextPath = Optional
-                        .ofNullable(System.getProperty("ContextPath"))
-                        .orElse(System.getenv("ContextPath")); // fallback
-                if(contextPath!=null) {
-                    factory.setContextPath(contextPath);
-                    log.info("Setting context path to '{}'", contextPath);
-                }
-            };
-        }
-        
-    }
-
-}
diff --git a/examples/demo/src/main/java/demoapp/webapp/DemoAppManifest.java 
b/examples/demo/src/main/java/demoapp/webapp/DemoAppManifest.java
new file mode 100644
index 0000000..ead89c7
--- /dev/null
+++ b/examples/demo/src/main/java/demoapp/webapp/DemoAppManifest.java
@@ -0,0 +1,139 @@
+/*
+ *  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 demoapp.webapp;
+
+import java.util.Optional;
+
+import org.springframework.boot.web.server.WebServerFactoryCustomizer;
+import 
org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
+
+import org.apache.isis.core.config.presets.IsisPresets;
+import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
+import org.apache.isis.extensions.cors.impl.IsisModuleExtCorsImpl;
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
+import 
org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationService;
+import 
org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationServiceAllowBeatsVeto;
+import 
org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleExtSecmanEncryptionJbcrypt;
+import org.apache.isis.extensions.secman.jdo.IsisModuleExtSecmanPersistenceJdo;
+import org.apache.isis.extensions.secman.model.IsisModuleExtSecmanModel;
+import org.apache.isis.extensions.secman.shiro.IsisModuleExtSecmanRealmShiro;
+import 
org.apache.isis.extensions.viewer.wicket.exceldownload.ui.IsisModuleExtExcelDownloadUi;
+import org.apache.isis.incubator.model.metamodel.IsisModuleIncModelMetaModel;
+import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
+import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
+import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
+import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
+import 
org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
+import 
org.apache.isis.viewer.restfulobjects.viewer.IsisModuleViewerRestfulObjectsViewer;
+
+import lombok.val;
+import lombok.extern.log4j.Log4j2;
+
+import demoapp.dom.DemoModule;
+import demoapp.utils.DemoRequestScopedBean;
+import demoapp.utils.LibraryPreloadingService;
+
+/**
+ * Makes the integral parts of the 'demo' web application.
+ */
+@Configuration
+@PropertySources({
+    @PropertySource(IsisPresets.H2InMemory),
+    @PropertySource(IsisPresets.NoTranslations),
+    @PropertySource(IsisPresets.SilenceWicket),
+    @PropertySource(IsisPresets.DataNucleusAutoCreate),
+})
+@Import({
+    IsisModuleCoreRuntimeServices.class,
+    IsisModuleSecurityShiro.class,
+    IsisModuleJdoDataNucleus5.class,
+    
+    // REST
+    IsisModuleViewerRestfulObjectsViewer.class,
+    IsisModuleViewerRestfulObjectsJaxrsResteasy4.class,
+
+    // CORS
+    IsisModuleExtCorsImpl.class,
+
+    // Security Manager Extension (secman)
+    IsisModuleExtSecmanModel.class,
+    IsisModuleExtSecmanRealmShiro.class,
+    IsisModuleExtSecmanPersistenceJdo.class,
+    IsisModuleExtSecmanEncryptionJbcrypt.class,
+
+    IsisModuleTestingFixturesApplib.class,
+    IsisModuleTestingH2ConsoleUi.class,
+
+    IsisModuleIncModelMetaModel.class, // @Model support (incubator)
+    IsisModuleExtExcelDownloadUi.class, // allows for collection download as 
excel
+
+    LibraryPreloadingService.class, // just a performance enhancement
+
+    DemoRequestScopedBean.class // demo @RequestScope logging
+
+})
+@ComponentScan(
+        basePackageClasses= {
+                DemoModule.class
+        }
+        )
+@Log4j2
+public class DemoAppManifest {
+
+    @Bean
+    public SecurityModuleConfig securityModuleConfigBean() {
+        return SecurityModuleConfig.builder()
+                .adminUserName("sven")
+                .adminAdditionalPackagePermission("demoapp.dom")
+                .adminAdditionalPackagePermission("org.apache.isis")
+                .build();
+    }
+
+    @Bean
+    public PermissionsEvaluationService permissionsEvaluationService() {
+        return new PermissionsEvaluationServiceAllowBeatsVeto();
+    }
+
+    /**
+     * If available from {@code System.getProperty("ContextPath")}
+     * or {@code System.getenv("ContextPath")},
+     * sets the context path for the web server. The context should start with 
a "/" character 
+     * but not end with a "/" character. The default context path can be
+     * specified using an empty string.
+     */
+    @Bean
+    public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> 
webServerFactoryCustomizer() {
+        return factory -> {
+            val contextPath = Optional
+                    .ofNullable(System.getProperty("ContextPath"))
+                    .orElse(System.getenv("ContextPath")); // fallback
+            if(contextPath!=null) {
+                factory.setContextPath(contextPath);
+                log.info("Setting context path to '{}'", contextPath);
+            }
+        };
+    }
+
+}
diff --git a/examples/demo/vaadin/pom.xml b/examples/demo/vaadin/pom.xml
new file mode 100644
index 0000000..baba35c
--- /dev/null
+++ b/examples/demo/vaadin/pom.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.isis.app</groupId>
+               <artifactId>isis-app-starter-parent</artifactId>
+               <version>2.0.0-SNAPSHOT</version>
+               <relativePath>../../../starters/pom.xml</relativePath>
+       </parent>
+
+       <groupId>org.apache.isis.examples.apps</groupId>
+       <artifactId>demo-vaadin</artifactId>
+
+       <name>Apache Isis App - Demo (Vaadin)</name>
+
+       <packaging>${packaging.type}</packaging>
+
+       <properties>
+               <packaging.type>jar</packaging.type>
+
+               
<maven-war-plugin.warName>${project.artifactId}</maven-war-plugin.warName>
+
+               <!-- 
+                       Versions of node/npm/vaadin not yet listed in 
isis-app-starter-parent 
+                       still investigating whether there is a way to not 
require these 
+                       with the web-application. Ideally these dependencies 
are just referenced
+                       in module viewer-vaadin-ui. 
+                       See https://nodejs.org/en/download/ for latest node and 
npm (lts) versions 
+                       -->
+               <node.version>v12.14.0</node.version>
+               <npm.version>6.13.1</npm.version>
+               <vaadin.version>14.1.23</vaadin.version>
+
+       </properties>
+
+       <build>
+
+               <plugins>
+                       
+                       <plugin>
+                               <groupId>com.github.eirslett</groupId>
+                               <artifactId>frontend-maven-plugin</artifactId>
+                               <version>1.7.6</version>
+                               <executions>
+
+                                       <execution>
+                                               <id>install node and npm</id>
+                                               <goals>
+                                                       
<goal>install-node-and-npm</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <!-- See 
https://nodejs.org/en/download/ for latest node and npm (lts) 
+                                                               versions -->
+                                                       
<nodeVersion>${node.version}</nodeVersion>
+                                                       
<npmVersion>${npm.version}</npmVersion>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+
+                       </plugin>
+                       
+                       
+                       <plugin>
+                               <groupId>com.vaadin</groupId>
+                               <artifactId>vaadin-maven-plugin</artifactId>
+                               <version>${vaadin.version}</version>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       
<goal>prepare-frontend</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       
+               </plugins>
+
+       </build>
+
+       <dependencies>
+       
+               <dependency>
+                       <groupId>org.apache.isis.examples.apps</groupId>
+                       <artifactId>demo</artifactId>
+                       <version>2.0.0-SNAPSHOT</version>
+                       <type>jar</type>
+               </dependency>
+       
+               <!-- JDK11+ SUPPORT -->
+
+               <dependency>
+                       <groupId>org.apache.isis.mavendeps</groupId>
+                       <artifactId>isis-mavendeps-jdk11</artifactId>
+                       <type>pom</type>
+               </dependency>
+
+               <!-- INCUBATOR: VAADIN VIEWER -->
+
+               <dependency>
+                       <groupId>org.apache.isis.incubator.viewer</groupId>
+                       <artifactId>isis-viewer-vaadin-viewer</artifactId>
+                       <!-- incubator version is not managed by app starter 
bundles -->
+                       <version>2.0.0-SNAPSHOT</version>
+               </dependency>
+
+               <!-- EXTENSIONS -->
+               
+               <dependency>
+                       <groupId>org.apache.isis.valuetypes</groupId>
+                       <artifactId>isis-valuetypes-asciidoc-ui-vaa</artifactId>
+               </dependency>
+
+               <!-- OTHER DEPENDENCIES -->
+
+               <dependency>
+                       <groupId>org.projectlombok</groupId>
+                       <artifactId>lombok</artifactId>
+                       <scope>provided</scope>
+               </dependency>
+               
+       </dependencies>
+
+       <profiles>
+
+               <!-- running: mvn spring-boot:run -->
+               <profile>
+                       <id>package-as-jar</id>
+                       <activation>
+                               <property>
+                                       <name>!package-as-war</name>
+                               </property>
+                       </activation>
+                       <properties>
+                               <packaging.type>jar</packaging.type>
+                       </properties>
+
+                       <build>
+                               <plugins>
+                                       <plugin>
+                                               
<groupId>org.springframework.boot</groupId>
+                                               
<artifactId>spring-boot-maven-plugin</artifactId>
+                                               <executions>
+                                                       <execution>
+                                                               <goals>
+                                                                       
<goal>repackage</goal>
+                                                               </goals>
+                                                       </execution>
+                                               </executions>
+                                       </plugin>
+                               </plugins>
+                       </build>
+               </profile>
+
+       </profiles>
+
+</project>
\ No newline at end of file
diff --git 
a/examples/demo-vaadin/src/main/java/demoapp/vaadin/webapp/DemoAppVaadin.java 
b/examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java
similarity index 81%
copy from 
examples/demo-vaadin/src/main/java/demoapp/vaadin/webapp/DemoAppVaadin.java
copy to 
examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java
index b86b5c0..90a7f81 100644
--- 
a/examples/demo-vaadin/src/main/java/demoapp/vaadin/webapp/DemoAppVaadin.java
+++ 
b/examples/demo/vaadin/src/main/java/demoapp/webapp/vaadin/DemoAppVaadin.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.vaadin.webapp;
+package demoapp.webapp.vaadin;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -29,20 +29,28 @@ import 
org.apache.isis.incubator.viewer.vaadin.ui.auth.VaadinAuthenticationHandl
 import 
org.apache.isis.incubator.viewer.vaadin.viewer.IsisModuleIncViewerVaadinViewer;
 import org.apache.isis.incubator.viewer.vaadin.viewer.IsisServletForVaadin;
 import org.apache.isis.valuetypes.asciidoc.ui.vaa.IsisModuleValAsciidocUiVaa;
+import org.apache.isis.valuetypes.asciidoc.ui.wkt.IsisModuleValAsciidocUiWkt;
+import org.apache.isis.valuetypes.sse.ui.IsisModuleValSseUi;
+import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
 import demoapp.utils.ThereCanBeOnlyOne;
-import demoapp.webapp.DemoApp;
+import demoapp.webapp.DemoAppManifest;
 
 /**
  * Bootstrap the application.
  */
 @SpringBootApplication
 @Import({
-    DemoApp.AppManifest.class,
+    DemoAppManifest.class,
     
     // INCUBATING
     IsisModuleIncViewerVaadinViewer.class, // vaadin viewer
     IsisModuleValAsciidocUiVaa.class, // ascii-doc rendering support (for 
Vaadin)
+    
+    // WICKET INTEGRATION ... to allow side by side comparison
+    IsisModuleViewerWicketViewer.class, // wicket viewer
+    IsisModuleValSseUi.class, // server sent events
+    IsisModuleValAsciidocUiWkt.class, // ascii-doc rendering support (for 
Wicket)
   
 })
 public class DemoAppVaadin extends SpringBootServletInitializer {
diff --git a/examples/demo-vaadin/src/main/resources/log4j2-spring.xml 
b/examples/demo/vaadin/src/main/resources/log4j2-spring.xml
similarity index 100%
copy from examples/demo-vaadin/src/main/resources/log4j2-spring.xml
copy to examples/demo/vaadin/src/main/resources/log4j2-spring.xml
diff --git a/examples/demo/pom.xml b/examples/demo/wicket/pom.xml
similarity index 96%
copy from examples/demo/pom.xml
copy to examples/demo/wicket/pom.xml
index 94c5244..5ddf65d 100644
--- a/examples/demo/pom.xml
+++ b/examples/demo/wicket/pom.xml
@@ -18,13 +18,13 @@
                <groupId>org.apache.isis.app</groupId>
                <artifactId>isis-app-starter-parent</artifactId>
                <version>2.0.0-SNAPSHOT</version>
-               <relativePath>../../starters/pom.xml</relativePath>
+               <relativePath>../../../starters/pom.xml</relativePath>
        </parent>
 
        <groupId>org.apache.isis.examples.apps</groupId>
-       <artifactId>demo</artifactId>
+       <artifactId>demo-wicket</artifactId>
 
-       <name>Apache Isis App - Demo</name>
+       <name>Apache Isis App - Demo (Wicket)</name>
 
        <packaging>${packaging.type}</packaging>
 
@@ -59,6 +59,15 @@
        </build>
 
        <dependencies>
+       
+               <!-- DEMO DOMAIN -->
+       
+               <dependency>
+                       <groupId>org.apache.isis.examples.apps</groupId>
+                       <artifactId>demo</artifactId>
+                       <version>2.0.0-SNAPSHOT</version>
+                       <type>jar</type>
+               </dependency>
 
                <!-- WEB APPLICATION DEPENDENCY BUNDLE -->
 
diff --git 
a/examples/demo-vaadin/src/main/java/demoapp/vaadin/webapp/DemoAppVaadin.java 
b/examples/demo/wicket/src/main/java/demoapp/webapp/wicket/DemoAppWicket.java
similarity index 59%
rename from 
examples/demo-vaadin/src/main/java/demoapp/vaadin/webapp/DemoAppVaadin.java
rename to 
examples/demo/wicket/src/main/java/demoapp/webapp/wicket/DemoAppWicket.java
index b86b5c0..d28e02f 100644
--- 
a/examples/demo-vaadin/src/main/java/demoapp/vaadin/webapp/DemoAppVaadin.java
+++ 
b/examples/demo/wicket/src/main/java/demoapp/webapp/wicket/DemoAppWicket.java
@@ -16,36 +16,35 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.vaadin.webapp;
+package demoapp.webapp.wicket;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import 
org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Import;
 
-import org.apache.isis.core.config.presets.IsisPresets;
-import 
org.apache.isis.core.runtimeservices.session.IsisInteractionFactoryDefault;
-import 
org.apache.isis.incubator.viewer.vaadin.ui.auth.VaadinAuthenticationHandler;
-import 
org.apache.isis.incubator.viewer.vaadin.viewer.IsisModuleIncViewerVaadinViewer;
-import org.apache.isis.incubator.viewer.vaadin.viewer.IsisServletForVaadin;
-import org.apache.isis.valuetypes.asciidoc.ui.vaa.IsisModuleValAsciidocUiVaa;
+import org.apache.isis.valuetypes.asciidoc.ui.wkt.IsisModuleValAsciidocUiWkt;
+import org.apache.isis.valuetypes.sse.ui.IsisModuleValSseUi;
+import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
 import demoapp.utils.ThereCanBeOnlyOne;
-import demoapp.webapp.DemoApp;
+import demoapp.webapp.DemoAppManifest;
 
 /**
  * Bootstrap the application.
  */
 @SpringBootApplication
 @Import({
-    DemoApp.AppManifest.class,
+    DemoAppManifest.class,
+    
+    // WICKET INTEGRATION
+    IsisModuleViewerWicketViewer.class, // wicket viewer
+    IsisModuleValSseUi.class, // server sent events
+    IsisModuleValAsciidocUiWkt.class, // ascii-doc rendering support (for 
Wicket)
     
-    // INCUBATING
-    IsisModuleIncViewerVaadinViewer.class, // vaadin viewer
-    IsisModuleValAsciidocUiVaa.class, // ascii-doc rendering support (for 
Vaadin)
-  
 })
-public class DemoAppVaadin extends SpringBootServletInitializer {
+//@Log4j2
+public class DemoAppWicket extends SpringBootServletInitializer {
 
     /**
      * 
@@ -54,14 +53,15 @@ public class DemoAppVaadin extends 
SpringBootServletInitializer {
      * entry point by searching for classes having a {@code main(...)}
      */
     public static void main(String[] args) {
-        
-        IsisPresets.logging(IsisInteractionFactoryDefault.class, "debug");
-        IsisPresets.logging(VaadinAuthenticationHandler.class, "debug");
-        IsisPresets.logging(IsisServletForVaadin.class, "debug");
+        //IsisPresets.prototyping();
+        //DebugLoggingPreset.PERSISTENCE.apply();
+        //DebugLoggingPreset.ISIS_SESSION.apply();
         
         ThereCanBeOnlyOne.remoteShutdownOthersIfAny();
         
-        SpringApplication.run(new Class[] { DemoAppVaadin.class }, args);
+        SpringApplication.run(new Class[] { DemoAppWicket.class }, args);
     }
 
+
+
 }
diff --git a/examples/demo-vaadin/src/main/resources/log4j2-spring.xml 
b/examples/demo/wicket/src/main/resources/log4j2-spring.xml
similarity index 73%
rename from examples/demo-vaadin/src/main/resources/log4j2-spring.xml
rename to examples/demo/wicket/src/main/resources/log4j2-spring.xml
index 08a5edb..0c0e64c 100644
--- a/examples/demo-vaadin/src/main/resources/log4j2-spring.xml
+++ b/examples/demo/wicket/src/main/resources/log4j2-spring.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
 <Configuration status="WARN">
        <Properties>
                <Property name="PID">????</Property>
diff --git 
a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectFormView.java
 
b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectFormView.java
index 3452f9b..c771ab9 100644
--- 
a/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectFormView.java
+++ 
b/incubator/viewers/vaadin/ui/src/main/java/org/apache/isis/incubator/viewer/vaadin/ui/components/object/ObjectFormView.java
@@ -20,7 +20,6 @@ package 
org.apache.isis.incubator.viewer.vaadin.ui.components.object;
 
 import java.util.Collection;
 import java.util.Optional;
-import java.util.concurrent.atomic.AtomicInteger;
 
 import com.vaadin.flow.component.Component;
 import com.vaadin.flow.component.HasComponents;
@@ -47,7 +46,6 @@ import org.apache.isis.applib.layout.grid.bootstrap3.BS3Col;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Row;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Tab;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3TabGroup;
-import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import 
org.apache.isis.incubator.viewer.vaadin.ui.components.UiComponentFactoryVaa;
@@ -58,9 +56,6 @@ import 
org.apache.isis.viewer.common.model.gridlayout.UiGridLayout;
 import lombok.NonNull;
 import lombok.val;
 
-import elemental.json.Json;
-import elemental.json.JsonValue;
-
 public class ObjectFormView extends VerticalLayout {
 
     private static final long serialVersionUID = 1L;

Reply via email to