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;