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 2021/03/11 06:58:35 UTC

[isis-app-simpleapp] branch jdo updated (15b2310 -> 51e3640)

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

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


    from 15b2310  uses TransactionalProcessor service rather than TransactionService
     new af2c09a  fixing up tests etc
     new 31ad3cb  splits out tests into their own modules (not yet building)
     new 51e3640  fixes compile issue

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 {module-simple => module-simple-tests}/.gitignore  |   0
 .../log4j2-test.xml                                |   0
 {module-simple => module-simple-tests}/pom.xml     |  49 ++----
 .../modules/simple/dom/so/SimpleObject_Test.java   |   0
 .../modules/simple/dom/so/SimpleObjects_Test.java  |   0
 .../integtests/SimpleModuleIntegTestAbstract.java  |   4 +-
 .../integtests/SimpleModuleTestConfiguration.java  |   6 +-
 .../integtests/tests/SimpleObject_IntegTest.java   |   0
 .../integtests/tests/SimpleObjects_IntegTest.java  |   7 +-
 .../src/test/resources/application-test.yml        |   6 +
 module-simple/pom.xml                              |  39 +----
 .../domainapp/modules/simple/SimpleModule.java     |   5 +-
 pom.xml                                            |  28 ++--
 {webapp => webapp-tests}/log4j2-test.xml           |   0
 webapp-tests/pom.xml                               | 172 +++++++++++++++++++++
 .../domainapp/webapp/bdd/CucumberTestAbstract.java |  12 +-
 .../domainapp/webapp/bdd/specs/CucumberTest.java   |   0
 .../webapp/bdd/stepdefs/BddStepDefsModule.java     |   0
 .../bdd/stepdefs/domain/SimpleObjectsContext.java  |   0
 .../domain/SimpleObjectsGivenThenStepDef.java      |   0
 .../stepdefs/domain/SimpleObjectsWhenStepDef.java  |   0
 .../stepdefs/fixtures/DomainAppDemoStepDef.java    |   0
 .../stepdefs/infrastructure/BootstrapStepDef.java  |   4 +-
 .../infrastructure/TransactionalStepDef.java       |   0
 .../webapp/integtests/WebAppIntegTestAbstract.java |  56 +++++++
 .../metamodel/SwaggerExport_IntegTest.java         |  10 +-
 .../metamodel/ValidateDomainModel_IntegTest.java   |  10 +-
 .../lockdown/LockDownMetaModel_IntegTest.java      |   6 +-
 ...ainapp.modules.simple.dom.impl.SimpleObject.xml |   0
 ...inapp.modules.simple.dom.impl.SimpleObjects.xml |   0
 ...omainapp.modules.simple.dom.so.SimpleObject.xml |   0
 ...mainapp.modules.simple.dom.so.SimpleObjects.xml |   0
 ...app.modules.simple.types.Name$Specification.xml |   0
 ...omainAppFixtureScriptsSpecificationProvider.xml |   0
 ...tion.services.health.HealthCheckServiceImpl.xml |   0
 ...ication.services.homepage.HomePageViewModel.xml |   0
 .../metamodel/lockdown/current/.gitignore          |   0
 .../webapp/integtests/smoke/Smoke_IntegTest.java   |   4 +-
 .../unittests/archunit/ArchitectureTests.java      |   0
 .../mavendeps/lockdown/LockDownMavenDeps_Test.java |   0
 .../approved/LockDownMavenDeps_Test.list.txt       |   0
 .../approved/LockDownMavenDeps_Test.tree.txt       |   0
 .../mavendeps/lockdown/current/.gitignore          |   0
 .../util/CurrentVsApprovedApprovalTextWriter.java  |  13 ++
 .../src/test/resources/application-test.yml        |   4 +
 .../SimpleObjectSpec_listAllAndCreate.feature      |   0
 .../bdd/specs/SimpleObjectSpec_updateName.feature  |   0
 .../src/test/resources/junit-platform.properties   |   0
 webapp/pom.xml                                     | 154 +-----------------
 .../services/health/HealthCheckServiceImpl.java    |   3 -
 webapp/src/main/resources/application.yml          |  16 +-
 .../main/resources/config/application.properties   |   4 -
 .../integtests/ApplicationIntegTestAbstract.java   |  22 ---
 ...impleApplicationTestConfiguration_usingJdo.java |  56 -------
 .../util/CurrentVsApprovedApprovalTextWriter.java  |  35 -----
 55 files changed, 333 insertions(+), 392 deletions(-)
 copy {module-simple => module-simple-tests}/.gitignore (100%)
 rename {module-simple => module-simple-tests}/log4j2-test.xml (100%)
 copy {module-simple => module-simple-tests}/pom.xml (57%)
 rename {module-simple => module-simple-tests}/src/test/java/domainapp/modules/simple/dom/so/SimpleObject_Test.java (100%)
 rename {module-simple => module-simple-tests}/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java (100%)
 rename {module-simple => module-simple-tests}/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java (70%)
 rename module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java => module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java (93%)
 rename {module-simple => module-simple-tests}/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java (100%)
 rename {module-simple => module-simple-tests}/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java (93%)
 create mode 100644 module-simple-tests/src/test/resources/application-test.yml
 rename {webapp => webapp-tests}/log4j2-test.xml (100%)
 create mode 100644 webapp-tests/pom.xml
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java (78%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/specs/CucumberTest.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/BddStepDefsModule.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsContext.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsGivenThenStepDef.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsWhenStepDef.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/fixtures/DomainAppDemoStepDef.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java (63%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/TransactionalStepDef.java (100%)
 create mode 100644 webapp-tests/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java (81%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java (60%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java (95%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObject.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObjects.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.types.Name$Specification.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.health.HealthCheckServiceImpl.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.homepage.HomePageViewModel.xml (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/current/.gitignore (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java (94%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/unittests/archunit/ArchitectureTests.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt (100%)
 rename {webapp => webapp-tests}/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/current/.gitignore (100%)
 create mode 100644 webapp-tests/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
 create mode 100644 webapp-tests/src/test/resources/application-test.yml
 rename {webapp => webapp-tests}/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature (100%)
 rename {webapp => webapp-tests}/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_updateName.feature (100%)
 rename {webapp => webapp-tests}/src/test/resources/junit-platform.properties (100%)
 delete mode 100644 webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
 delete mode 100644 webapp/src/test/java/domainapp/webapp/integtests/SimpleApplicationTestConfiguration_usingJdo.java
 delete mode 100644 webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java


[isis-app-simpleapp] 02/03: splits out tests into their own modules (not yet building)

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch jdo
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit 31ad3cb5308ca84307902ef1c52e9c188c0418d7
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 10 06:44:16 2021 +0000

    splits out tests into their own modules (not yet building)
---
 module-simple-tests/.gitignore                     |   8 +
 .../log4j2-test.xml                                |   0
 {module-simple => module-simple-tests}/pom.xml     |  49 ++----
 .../modules/simple/dom/so/SimpleObject_Test.java   |   0
 .../modules/simple/dom/so/SimpleObjects_Test.java  |   0
 .../integtests/SimpleModuleIntegTestAbstract.java  |   0
 .../integtests/SimpleModuleTestConfiguration.java  |   0
 .../integtests/tests/SimpleObject_IntegTest.java   |   0
 .../integtests/tests/SimpleObjects_IntegTest.java  |   0
 .../src/test/resources/application-test.yml        |   0
 module-simple/pom.xml                              |  39 +----
 .../domainapp/modules/simple/SimpleModule.java     |   5 +-
 pom.xml                                            |  26 +++-
 {webapp => webapp-tests}/log4j2-test.xml           |   0
 webapp-tests/pom.xml                               | 171 +++++++++++++++++++++
 .../domainapp/webapp/bdd/CucumberTestAbstract.java |   0
 .../domainapp/webapp/bdd/specs/CucumberTest.java   |   0
 .../webapp/bdd/stepdefs/BddStepDefsModule.java     |   0
 .../bdd/stepdefs/domain/SimpleObjectsContext.java  |   0
 .../domain/SimpleObjectsGivenThenStepDef.java      |   0
 .../stepdefs/domain/SimpleObjectsWhenStepDef.java  |   0
 .../stepdefs/fixtures/DomainAppDemoStepDef.java    |   0
 .../stepdefs/infrastructure/BootstrapStepDef.java  |   0
 .../infrastructure/TransactionalStepDef.java       |   0
 .../webapp/integtests/WebAppIntegTestAbstract.java |   0
 .../metamodel/SwaggerExport_IntegTest.java         |   0
 .../metamodel/ValidateDomainModel_IntegTest.java   |   0
 .../lockdown/LockDownMetaModel_IntegTest.java      |   0
 ...ainapp.modules.simple.dom.impl.SimpleObject.xml |   0
 ...inapp.modules.simple.dom.impl.SimpleObjects.xml |   0
 ...omainapp.modules.simple.dom.so.SimpleObject.xml |   0
 ...mainapp.modules.simple.dom.so.SimpleObjects.xml |   0
 ...app.modules.simple.types.Name$Specification.xml |   0
 ...omainAppFixtureScriptsSpecificationProvider.xml |   0
 ...tion.services.health.HealthCheckServiceImpl.xml |   0
 ...ication.services.homepage.HomePageViewModel.xml |   0
 .../metamodel/lockdown/current/.gitignore          |   0
 .../webapp/integtests/smoke/Smoke_IntegTest.java   |   0
 .../unittests/archunit/ArchitectureTests.java      |   0
 .../mavendeps/lockdown/LockDownMavenDeps_Test.java |   0
 .../approved/LockDownMavenDeps_Test.list.txt       |   0
 .../approved/LockDownMavenDeps_Test.tree.txt       |   0
 .../mavendeps/lockdown/current/.gitignore          |   0
 .../util/CurrentVsApprovedApprovalTextWriter.java  |   0
 .../src/test/resources/application-test.yml        |   0
 .../SimpleObjectSpec_listAllAndCreate.feature      |   0
 .../bdd/specs/SimpleObjectSpec_updateName.feature  |   0
 .../src/test/resources/junit-platform.properties   |   0
 webapp/pom.xml                                     | 144 +----------------
 49 files changed, 212 insertions(+), 230 deletions(-)

diff --git a/module-simple-tests/.gitignore b/module-simple-tests/.gitignore
new file mode 100644
index 0000000..85cb54f
--- /dev/null
+++ b/module-simple-tests/.gitignore
@@ -0,0 +1,8 @@
+.gradle
+translations.pot
+*.jar
+gradle/wrapper
+!gradle-wrapper.jar
+/.apt_generated/
+/.factorypath
+/.apt_generated_tests/
diff --git a/module-simple/log4j2-test.xml b/module-simple-tests/log4j2-test.xml
similarity index 100%
rename from module-simple/log4j2-test.xml
rename to module-simple-tests/log4j2-test.xml
diff --git a/module-simple/pom.xml b/module-simple-tests/pom.xml
similarity index 57%
copy from module-simple/pom.xml
copy to module-simple-tests/pom.xml
index 4aa656b..f9a85b8 100644
--- a/module-simple/pom.xml
+++ b/module-simple-tests/pom.xml
@@ -10,25 +10,14 @@
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>simpleapp-module-simple-jdo</artifactId>
-    <name>SimpleApp - Simple Module</name>
+    <artifactId>simpleapp-jdo-module-simple-tests</artifactId>
+    <name>SimpleApp - Simple Module (tests)</name>
+
+    <description>
+        Integ tests for 'simple module'
+    </description>
 
     <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
         <testResources>
             <testResource>
                 <directory>src/test/resources</directory>
@@ -48,26 +37,13 @@
 
     <dependencies>
 
-        <!-- ISIS API -->
-
         <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-applib</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-jdo</artifactId>
-            <type>pom</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.testing</groupId>
-            <artifactId>isis-testing-fixtures-applib</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>simpleapp-jdo-module-simple</artifactId>
         </dependency>
 
         <!-- TESTS -->
-        
+
         <dependency>
             <groupId>org.apache.isis.mavendeps</groupId>
             <artifactId>isis-mavendeps-unittests</artifactId>
@@ -88,13 +64,6 @@
             <scope>test</scope>
         </dependency>
 
-        <!-- IDE support (optional) -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-configuration-processor</artifactId>
-            <optional>true</optional>
-        </dependency>
-
     </dependencies>
 
 </project>
diff --git a/module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObject_Test.java b/module-simple-tests/src/test/java/domainapp/modules/simple/dom/so/SimpleObject_Test.java
similarity index 100%
rename from module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObject_Test.java
rename to module-simple-tests/src/test/java/domainapp/modules/simple/dom/so/SimpleObject_Test.java
diff --git a/module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java b/module-simple-tests/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java
similarity index 100%
rename from module-simple/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java
rename to module-simple-tests/src/test/java/domainapp/modules/simple/dom/so/SimpleObjects_Test.java
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
similarity index 100%
rename from module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
rename to module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java b/module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
similarity index 100%
rename from module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
rename to module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java b/module-simple-tests/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
similarity index 100%
rename from module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
rename to module-simple-tests/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObject_IntegTest.java
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java b/module-simple-tests/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
similarity index 100%
rename from module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
rename to module-simple-tests/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
diff --git a/module-simple/src/test/resources/application-test.yml b/module-simple-tests/src/test/resources/application-test.yml
similarity index 100%
rename from module-simple/src/test/resources/application-test.yml
rename to module-simple-tests/src/test/resources/application-test.yml
diff --git a/module-simple/pom.xml b/module-simple/pom.xml
index 4aa656b..5265885 100644
--- a/module-simple/pom.xml
+++ b/module-simple/pom.xml
@@ -10,7 +10,7 @@
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>simpleapp-module-simple-jdo</artifactId>
+    <artifactId>simpleapp-jdo-module-simple</artifactId>
     <name>SimpleApp - Simple Module</name>
 
     <build>
@@ -29,21 +29,6 @@
                 </excludes>
             </resource>
         </resources>
-        <testResources>
-            <testResource>
-                <directory>src/test/resources</directory>
-            </testResource>
-            <testResource>
-                <filtering>false</filtering>
-                <directory>src/test/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </testResource>
-        </testResources>
     </build>
 
     <dependencies>
@@ -66,28 +51,6 @@
             <artifactId>isis-testing-fixtures-applib</artifactId>
         </dependency>
 
-        <!-- TESTS -->
-        
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-unittests</artifactId>
-            <type>pom</type>
-            <scope>test</scope>
-            <exclusions>
-            	<exclusion>
-            		<groupId>org.jmock</groupId>
-            		<artifactId>jmock-junit4</artifactId>
-            	</exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-integtests</artifactId>
-            <type>pom</type>
-            <scope>test</scope>
-        </dependency>
-
         <!-- IDE support (optional) -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
index c5d7aee..3ab4275 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
@@ -3,6 +3,8 @@ package domainapp.modules.simple;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
 import org.springframework.validation.annotation.Validated;
 
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
@@ -12,8 +14,7 @@ import lombok.Data;
 
 import domainapp.modules.simple.dom.so.SimpleObject;
 
-@org.springframework.context.annotation.Configuration
-//@Import({})
+@Configuration
 @ComponentScan
 @EnableConfigurationProperties({
         SimpleModule.Configuration.class,
diff --git a/pom.xml b/pom.xml
index 10a728a..5c7c0c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,31 +18,39 @@
 
     <packaging>pom</packaging>
 
+    <properties>
+        <maven-cucumber-reporting.version>5.3.0</maven-cucumber-reporting.version>
+        <archunit.version>0.14.1</archunit.version>
+        <skipBDD>${skipTests}</skipBDD>
+    </properties>
+
     <dependencyManagement>
         <dependencies>
 
             <!-- this project's own modules -->
             <dependency>
-                <groupId>org.apache.isis.starters</groupId>
-                <artifactId>simpleapp-module-simple-jdo</artifactId>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>simpleapp-jdo-module-simple</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.isis.starters</groupId>
-                <artifactId>simpleapp-module-simple-jdo</artifactId>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>simpleapp-jdo-module-simple-tests</artifactId>
                 <version>${project.version}</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
             <dependency>
-                <groupId>org.apache.isis.starters</groupId>
-                <artifactId>simpleapp-application-jdo</artifactId>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>simpleapp-jdo-webapp</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.isis.starters</groupId>
-                <artifactId>simpleapp-webapp-jdo</artifactId>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>simpleapp-jdo-webapp-tests</artifactId>
                 <version>${project.version}</version>
+                <scope>test</scope>
+                <type>test-jar</type>
             </dependency>
 
         </dependencies>
@@ -58,7 +66,9 @@
 
     <modules>
         <module>module-simple</module>
+        <module>module-simple-tests</module>
         <module>webapp</module>
+        <module>webapp-tests</module>
     </modules>
 
 </project>
diff --git a/webapp/log4j2-test.xml b/webapp-tests/log4j2-test.xml
similarity index 100%
rename from webapp/log4j2-test.xml
rename to webapp-tests/log4j2-test.xml
diff --git a/webapp-tests/pom.xml b/webapp-tests/pom.xml
new file mode 100644
index 0000000..2cd1759
--- /dev/null
+++ b/webapp-tests/pom.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.isis.starters</groupId>
+        <artifactId>simpleapp-jdo</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>simpleapp-jdo-webapp-tests</artifactId>
+    <name>SimpleApp - Webapp (tests)</name>
+
+    <description>
+        Integ tests and BDD specs for entire app.
+    </description>
+
+    <packaging>jar</packaging>
+
+    <build>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+            <testResource>
+                <filtering>false</filtering>
+                <directory>src/test/java</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </testResource>
+        </testResources>
+        <plugins>
+
+            <!-- generate cucumber json result -->
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-antrun-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>cucumber-cli</id>
+                  <phase>integration-test</phase>
+                  <goals>
+                    <goal>run</goal>
+                  </goals>
+                  <configuration>
+                    <skip>${skipBDD}</skip>
+                    <target>
+                      <echo message="Running Cucumber CLI" />
+                      <java classname="io.cucumber.core.cli.Main"
+                            fork="true"
+                            failonerror="true"
+                            newenvironment="true"
+                            maxmemory="1024m"
+                            classpathref="maven.test.classpath">
+                        <arg value="--plugin" />
+                        <arg value="json:${project.build.directory}/cucumber-no-clobber.json" />
+                      </java>
+                    </target>
+                  </configuration>
+                </execution>
+              </executions>
+            </plugin>
+
+            <!-- generate html report from cucumber json result -->
+            <plugin>
+                <groupId>net.masterthought</groupId>
+                <artifactId>maven-cucumber-reporting</artifactId>
+                <version>${maven-cucumber-reporting.version}</version>
+                <executions>
+                    <execution>
+                        <id>default</id>
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                        <configuration>
+                            <projectName>SimpleApp</projectName>
+                            <outputDirectory>${project.build.directory}</outputDirectory>
+                            <inputDirectory>${project.build.directory}</inputDirectory>
+                            <jsonFiles>
+                                <param>**/cucumber-no-clobber.json</param>
+                            </jsonFiles>
+                            <skip>${skipBDD}</skip>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>simpleapp-jdo-webapp</artifactId>
+        </dependency>
+
+        <!-- TESTING -->
+
+        <dependency>
+            <groupId>org.apache.isis.mavendeps</groupId>
+            <artifactId>isis-mavendeps-integtests</artifactId>
+            <type>pom</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.mavendeps</groupId>
+            <artifactId>isis-mavendeps-integspecs</artifactId>
+            <type>pom</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.tngtech.archunit</groupId>
+            <artifactId>archunit-junit5-api</artifactId>
+            <version>${archunit.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.tngtech.archunit</groupId>
+            <artifactId>archunit-junit5-engine</artifactId>
+            <version>${archunit.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <profiles>
+
+        <profile>
+            <id>mavendeps-lockdown</id>
+            <activation>
+                <property>
+                    <name>mavendeps.lockdown</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-dependency-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>list</id>
+                                <phase>generate-test-resources</phase>
+                                <goals>
+                                    <goal>list</goal>
+                                </goals>
+                                <configuration>
+                                    <outputFile>${project.build.directory}/test-classes/domainapp/webapp/unittests/mavendeps/lockdown/current/LockDownMavenDeps_Test.list.txt</outputFile>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>tree</id>
+                                <phase>generate-test-resources</phase>
+                                <goals>
+                                    <goal>tree</goal>
+                                </goals>
+                                <configuration>
+                                    <outputFile>${project.build.directory}/test-classes/domainapp/webapp/unittests/mavendeps/lockdown/current/LockDownMavenDeps_Test.tree.txt</outputFile>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/specs/CucumberTest.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/specs/CucumberTest.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/specs/CucumberTest.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/specs/CucumberTest.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/BddStepDefsModule.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/BddStepDefsModule.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/BddStepDefsModule.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/BddStepDefsModule.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsContext.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsContext.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsContext.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsContext.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsGivenThenStepDef.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsGivenThenStepDef.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsGivenThenStepDef.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsGivenThenStepDef.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsWhenStepDef.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsWhenStepDef.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsWhenStepDef.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/domain/SimpleObjectsWhenStepDef.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/fixtures/DomainAppDemoStepDef.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/fixtures/DomainAppDemoStepDef.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/fixtures/DomainAppDemoStepDef.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/fixtures/DomainAppDemoStepDef.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/TransactionalStepDef.java b/webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/TransactionalStepDef.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/TransactionalStepDef.java
rename to webapp-tests/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/TransactionalStepDef.java
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java b/webapp-tests/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObject.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.impl.SimpleObjects.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObject.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObject.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObject.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObject.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObjects.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObjects.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObjects.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.dom.so.SimpleObjects.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.types.Name$Specification.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.types.Name$Specification.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.types.Name$Specification.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.modules.simple.types.Name$Specification.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.fixture.DomainAppFixtureScriptsSpecificationProvider.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.health.HealthCheckServiceImpl.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.health.HealthCheckServiceImpl.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.health.HealthCheckServiceImpl.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.health.HealthCheckServiceImpl.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.homepage.HomePageViewModel.xml b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.homepage.HomePageViewModel.xml
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.homepage.HomePageViewModel.xml
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/approved/domainapp.webapp.application.services.homepage.HomePageViewModel.xml
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/current/.gitignore b/webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/current/.gitignore
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/current/.gitignore
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/current/.gitignore
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java b/webapp-tests/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
rename to webapp-tests/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/archunit/ArchitectureTests.java b/webapp-tests/src/test/java/domainapp/webapp/unittests/archunit/ArchitectureTests.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/unittests/archunit/ArchitectureTests.java
rename to webapp-tests/src/test/java/domainapp/webapp/unittests/archunit/ArchitectureTests.java
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java b/webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java
rename to webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt b/webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt
rename to webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt b/webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt
rename to webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/current/.gitignore b/webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/current/.gitignore
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/current/.gitignore
rename to webapp-tests/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/current/.gitignore
diff --git a/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java b/webapp-tests/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
similarity index 100%
rename from webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
rename to webapp-tests/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
diff --git a/webapp/src/test/resources/application-test.yml b/webapp-tests/src/test/resources/application-test.yml
similarity index 100%
rename from webapp/src/test/resources/application-test.yml
rename to webapp-tests/src/test/resources/application-test.yml
diff --git a/webapp/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature b/webapp-tests/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature
similarity index 100%
rename from webapp/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature
rename to webapp-tests/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_listAllAndCreate.feature
diff --git a/webapp/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_updateName.feature b/webapp-tests/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_updateName.feature
similarity index 100%
rename from webapp/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_updateName.feature
rename to webapp-tests/src/test/resources/domainapp/webapp/bdd/specs/SimpleObjectSpec_updateName.feature
diff --git a/webapp/src/test/resources/junit-platform.properties b/webapp-tests/src/test/resources/junit-platform.properties
similarity index 100%
rename from webapp/src/test/resources/junit-platform.properties
rename to webapp-tests/src/test/resources/junit-platform.properties
diff --git a/webapp/pom.xml b/webapp/pom.xml
index 1a667bb..f37455f 100644
--- a/webapp/pom.xml
+++ b/webapp/pom.xml
@@ -8,7 +8,7 @@
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>simpleapp-webapp-jdo</artifactId>
+    <artifactId>simpleapp-jdo-webapp</artifactId>
     <name>SimpleApp - Webapp</name>
 
     <description>
@@ -18,12 +18,6 @@
 
     <packaging>jar</packaging>
 
-    <properties>
-        <maven-cucumber-reporting.version>5.3.0</maven-cucumber-reporting.version>
-        <archunit.version>0.14.1</archunit.version>
-        <skipBDD>${skipTests}</skipBDD>
-    </properties>
-
     <build>
         <resources>
             <resource>
@@ -48,75 +42,7 @@
                 </excludes>
             </resource>
         </resources>
-        <testResources>
-            <testResource>
-                <directory>src/test/resources</directory>
-            </testResource>
-            <testResource>
-                <filtering>false</filtering>
-                <directory>src/test/java</directory>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </testResource>
-        </testResources>
         <plugins>
-
-			<!-- generate cucumber json result -->
-			<plugin>
-			  <groupId>org.apache.maven.plugins</groupId>
-			  <artifactId>maven-antrun-plugin</artifactId>
-			  <executions>
-			    <execution>
-			      <id>cucumber-cli</id>
-			      <phase>integration-test</phase>
-			      <goals>
-			        <goal>run</goal>
-			      </goals>
-			      <configuration>
-                    <skip>${skipBDD}</skip>
-			        <target>
-			          <echo message="Running Cucumber CLI" />
-			          <java classname="io.cucumber.core.cli.Main"
-			                fork="true"
-			                failonerror="true"
-			                newenvironment="true"
-			                maxmemory="1024m"
-			                classpathref="maven.test.classpath">
-			            <arg value="--plugin" />
-			            <arg value="json:${project.build.directory}/cucumber-no-clobber.json" />
-			          </java>
-			        </target>
-			      </configuration>
-			    </execution>
-			  </executions>
-			</plugin>
-
-        	<!-- generate html report from cucumber json result -->
-            <plugin>
-                <groupId>net.masterthought</groupId>
-                <artifactId>maven-cucumber-reporting</artifactId>
-                <version>${maven-cucumber-reporting.version}</version>
-                <executions>
-                    <execution>
-                        <id>default</id>
-                        <phase>post-integration-test</phase>
-                        <goals>
-                            <goal>generate</goal>
-                        </goals>
-                        <configuration>
-                            <projectName>SimpleApp</projectName>
-                            <outputDirectory>${project.build.directory}</outputDirectory>
-                            <inputDirectory>${project.build.directory}</inputDirectory>
-                            <jsonFiles>
-                                <param>**/cucumber-no-clobber.json</param>
-                            </jsonFiles>
-                            <skip>${skipBDD}</skip>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
             <!-- running: mvn spring-boot:run -->
             <plugin>
                 <groupId>org.springframework.boot</groupId>
@@ -136,7 +62,7 @@
 
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>simpleapp-module-simple-jdo</artifactId>
+            <artifactId>simpleapp-jdo-module-simple</artifactId>
         </dependency>
 
         <!-- isis -->
@@ -173,78 +99,12 @@
             <artifactId>isis-extensions-flyway-impl</artifactId>
         </dependency>
 
-        <!-- TESTING -->
-
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-integtests</artifactId>
-            <type>pom</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.mavendeps</groupId>
-            <artifactId>isis-mavendeps-integspecs</artifactId>
-            <type>pom</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.tngtech.archunit</groupId>
-            <artifactId>archunit-junit5-api</artifactId>
-            <version>${archunit.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.tngtech.archunit</groupId>
-            <artifactId>archunit-junit5-engine</artifactId>
-            <version>${archunit.version}</version>
-            <scope>test</scope>
-        </dependency>
 
     </dependencies>
 
     <profiles>
 
         <profile>
-            <id>mavendeps-lockdown</id>
-            <activation>
-                <property>
-                    <name>mavendeps.lockdown</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-dependency-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>list</id>
-                                <phase>generate-test-resources</phase>
-                                <goals>
-                                    <goal>list</goal>
-                                </goals>
-                                <configuration>
-                                    <outputFile>${project.build.directory}/test-classes/domainapp/webapp/unittests/mavendeps/lockdown/current/LockDownMavenDeps_Test.list.txt</outputFile>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>tree</id>
-                                <phase>generate-test-resources</phase>
-                                <goals>
-                                    <goal>tree</goal>
-                                </goals>
-                                <configuration>
-                                    <outputFile>${project.build.directory}/test-classes/domainapp/webapp/unittests/mavendeps/lockdown/current/LockDownMavenDeps_Test.tree.txt</outputFile>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
             <id>jdbc-sqlserver</id>
             <activation>
                 <property>


[isis-app-simpleapp] 03/03: fixes compile issue

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch jdo
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit 51e3640f917337e6d41a7fbc5a4c3becef3fb24c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 10 07:11:48 2021 +0000

    fixes compile issue
---
 webapp-tests/pom.xml |  1 +
 webapp/pom.xml       | 10 +++-------
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/webapp-tests/pom.xml b/webapp-tests/pom.xml
index 2cd1759..b6c2c95 100644
--- a/webapp-tests/pom.xml
+++ b/webapp-tests/pom.xml
@@ -94,6 +94,7 @@
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>simpleapp-jdo-webapp</artifactId>
+            <scope>test</scope>
         </dependency>
 
         <!-- TESTING -->
diff --git a/webapp/pom.xml b/webapp/pom.xml
index f37455f..a4222e0 100644
--- a/webapp/pom.xml
+++ b/webapp/pom.xml
@@ -47,13 +47,9 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
+                <configuration>
+                    <classifier>exec</classifier>
+                </configuration>
             </plugin>
         </plugins>
     </build>


[isis-app-simpleapp] 01/03: fixing up tests etc

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch jdo
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit af2c09a67dd84cb70906ab70584561163da93cc0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Mar 9 22:02:36 2021 +0000

    fixing up tests etc
---
 .../integtests/SimpleModuleIntegTestAbstract.java  |  4 +-
 ...Jdo.java => SimpleModuleTestConfiguration.java} |  6 ++-
 .../integtests/tests/SimpleObjects_IntegTest.java  |  7 +--
 .../src/test/resources/application-test.yml        |  6 +++
 pom.xml                                            |  2 +-
 .../services/health/HealthCheckServiceImpl.java    |  3 --
 webapp/src/main/resources/application.yml          | 16 +++++--
 .../main/resources/config/application.properties   |  4 --
 .../domainapp/webapp/bdd/CucumberTestAbstract.java | 12 ++---
 .../stepdefs/infrastructure/BootstrapStepDef.java  |  4 +-
 .../integtests/ApplicationIntegTestAbstract.java   | 22 ---------
 ...impleApplicationTestConfiguration_usingJdo.java | 56 ----------------------
 .../webapp/integtests/WebAppIntegTestAbstract.java | 56 ++++++++++++++++++++++
 .../metamodel/SwaggerExport_IntegTest.java         | 10 ++--
 .../metamodel/ValidateDomainModel_IntegTest.java   | 10 ++--
 .../lockdown/LockDownMetaModel_IntegTest.java      |  6 +--
 .../webapp/integtests/smoke/Smoke_IntegTest.java   |  4 +-
 .../util/CurrentVsApprovedApprovalTextWriter.java  | 22 ---------
 webapp/src/test/resources/application-test.yml     |  4 ++
 19 files changed, 112 insertions(+), 142 deletions(-)

diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
index c225444..dc42df0 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@ -1,13 +1,15 @@
 package domainapp.modules.simple.integtests;
 
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
 
 import org.apache.isis.testing.fixtures.applib.IsisIntegrationTestAbstractWithFixtures;
 
 
 @SpringBootTest(
-        classes = SimpleModuleTestConfiguration_usingJdo.class
+        classes = SimpleModuleTestConfiguration.class
 )
+@ActiveProfiles("test")
 public abstract class SimpleModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
 
 }
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
similarity index 93%
rename from module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java
rename to module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
index 0df5209..be30e32 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration_usingJdo.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
@@ -19,6 +19,7 @@
 package domainapp.modules.simple.integtests;
 
 import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
@@ -36,6 +37,7 @@ import domainapp.modules.simple.SimpleModule;
  * here we in effect disable security checks, and we exclude any web/UI modules.
  */
 @SpringBootConfiguration
+@EnableAutoConfiguration
 @Import({
 
     IsisModuleCoreRuntimeServices.class,
@@ -50,7 +52,7 @@ import domainapp.modules.simple.SimpleModule;
     @PropertySource(IsisPresets.DatanucleusAutocreateNoValidate),
     @PropertySource(IsisPresets.UseLog4j2Test),
 })
-public class SimpleModuleTestConfiguration_usingJdo {
+public class SimpleModuleTestConfiguration {
 
 
-}
\ No newline at end of file
+}
diff --git a/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java b/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
index dcd2302..348773b 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/integtests/tests/SimpleObjects_IntegTest.java
@@ -7,6 +7,7 @@ import javax.jdo.JDODataStoreException;
 
 import org.hamcrest.MatcherAssert;
 import org.junit.jupiter.api.Test;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.transaction.annotation.Transactional;
 
 import org.apache.isis.testing.integtestsupport.applib.ThrowableMatchers;
@@ -81,12 +82,12 @@ public class SimpleObjects_IntegTest extends SimpleModuleIntegTestAbstract {
             });
 
             // also expect
-            MatcherAssert.assertThat(cause, 
-                    ThrowableMatchers.causedBy(JDODataStoreException.class));
+            MatcherAssert.assertThat(cause,
+                    ThrowableMatchers.causedBy(DuplicateKeyException.class));
 
         }
 
     }
 
 
-}
\ No newline at end of file
+}
diff --git a/module-simple/src/test/resources/application-test.yml b/module-simple/src/test/resources/application-test.yml
new file mode 100644
index 0000000..3da8c51
--- /dev/null
+++ b/module-simple/src/test/resources/application-test.yml
@@ -0,0 +1,6 @@
+isis:
+  persistence:
+    schema:
+      auto-create-schemas: "simple"
+
+
diff --git a/pom.xml b/pom.xml
index aee49cd..10a728a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>org.apache.isis.app</groupId>
         <artifactId>isis-app-starter-parent</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0-M5</version>
         <relativePath/>
     </parent>
 
diff --git a/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java b/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java
index c03b01e..4f16352 100644
--- a/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java
+++ b/webapp/src/main/java/domainapp/webapp/application/services/health/HealthCheckServiceImpl.java
@@ -8,13 +8,10 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.services.health.Health;
 import org.apache.isis.applib.services.health.HealthCheckService;
 
-import lombok.extern.log4j.Log4j2;
-
 import domainapp.modules.simple.dom.so.SimpleObjects;
 
 @Service
 @Named("domainapp.HealthCheckServiceImpl")
-@Log4j2
 public class HealthCheckServiceImpl implements HealthCheckService {
 
     private final SimpleObjects simpleObjects;
diff --git a/webapp/src/main/resources/application.yml b/webapp/src/main/resources/application.yml
index 0a07e91..42dda6d 100644
--- a/webapp/src/main/resources/application.yml
+++ b/webapp/src/main/resources/application.yml
@@ -9,8 +9,8 @@ isis:
     annotation:
       action:
         explicit: true
-        command: ignore_safe
-        publishing: all
+        command-publishing: ignore_safe
+        execution-publishing: all
       action-layout:
         css-class:
           patterns:
@@ -21,8 +21,8 @@ isis:
         auditing: all
         publishing: all
       property:
-        command: all
-        publishing: all
+        command-publishing: all
+        execution-publishing: all
 
   core:
     meta-model:
@@ -100,6 +100,14 @@ spring:
   banner:
     location: banner.txt
 
+  quartz:
+    job-store-type: memory
+
+management:
+  endpoint:
+    health:
+      enabled: true
+
 app:
   simple-module:
     types:
diff --git a/webapp/src/main/resources/config/application.properties b/webapp/src/main/resources/config/application.properties
index 94f0df5..304765d 100644
--- a/webapp/src/main/resources/config/application.properties
+++ b/webapp/src/main/resources/config/application.properties
@@ -8,10 +8,6 @@
 #
 
 
-# note that properties under 'datanucleus' must use variously camelCase or PascalCase rather than kebab-case
-
-datanucleus.schema.autoCreateAll=true
-
 spring.datasource.platform=h2
 spring.datasource.url=jdbc:h2:mem:simple
 
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java b/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
index 57f44c5..43c9e50 100644
--- a/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
+++ b/webapp/src/test/java/domainapp/webapp/bdd/CucumberTestAbstract.java
@@ -18,17 +18,17 @@
  */
 package domainapp.webapp.bdd;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 import io.cucumber.spring.CucumberContextConfiguration;
 
 /**
- * 
- * Provides the App's Spring Context for testing with Cucumber. 
+ *
+ * Provides the App's Spring Context for testing with Cucumber.
  *
  */
 @CucumberContextConfiguration
-public abstract class CucumberTestAbstract extends ApplicationIntegTestAbstract {
+public abstract class CucumberTestAbstract extends WebAppIntegTestAbstract {
+
+    // any cucumber specific stuff might go here
 
-    // any cucumber specific stuff might go here 
-    
 }
diff --git a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java b/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
index 860f6da..28e88b9 100644
--- a/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
+++ b/webapp/src/test/java/domainapp/webapp/bdd/stepdefs/infrastructure/BootstrapStepDef.java
@@ -2,9 +2,9 @@ package domainapp.webapp.bdd.stepdefs.infrastructure;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 
-public class BootstrapStepDef extends ApplicationIntegTestAbstract {
+public class BootstrapStepDef extends WebAppIntegTestAbstract {
 
     @io.cucumber.java.Before(order= OrderPrecedence.FIRST)
     public void bootstrap() {
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java b/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
deleted file mode 100644
index 8a5199f..0000000
--- a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package domainapp.webapp.integtests;
-
-import org.springframework.boot.test.context.SpringBootTest;
-
-import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
-
-import domainapp.webapp.application.ApplicationModule;
-import domainapp.webapp.bdd.stepdefs.BddStepDefsModule;
-
-@SpringBootTest(
-    classes = {
-            SimpleApplicationTestConfiguration_usingJdo.class,
-            BddStepDefsModule.class,
-            ApplicationModule.class,
-    },
-    properties = {
-            // "logging.level.io.cucumber.core.runner.Runner=DEBUG"
-    }
-)
-public abstract class ApplicationIntegTestAbstract extends IsisIntegrationTestAbstract {
-
-}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/SimpleApplicationTestConfiguration_usingJdo.java b/webapp/src/test/java/domainapp/webapp/integtests/SimpleApplicationTestConfiguration_usingJdo.java
deleted file mode 100644
index 8628bc8..0000000
--- a/webapp/src/test/java/domainapp/webapp/integtests/SimpleApplicationTestConfiguration_usingJdo.java
+++ /dev/null
@@ -1,56 +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.integtests;
-
-import org.springframework.boot.SpringBootConfiguration;
-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.persistence.jdo.datanucleus.IsisModuleJdoDatanucleus;
-import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
-import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
-
-import domainapp.modules.simple.SimpleModule;
-
-/**
- * Compared to the production app manifest <code>domainapp.webapp.AppManifest</code>,
- * here we in effect disable security checks, and we exclude any web/UI modules.
- */
-@SpringBootConfiguration
-@Import({
-
-    IsisModuleCoreRuntimeServices.class,
-    IsisModuleSecurityBypass.class,
-    IsisModuleJdoDatanucleus.class,
-    IsisModuleTestingFixturesApplib.class,
-
-    SimpleModule.class
-})
-@PropertySources({
-    @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
-    @PropertySource(IsisPresets.DatanucleusAutocreateNoValidate),
-    @PropertySource(IsisPresets.UseLog4j2Test),
-})
-public class SimpleApplicationTestConfiguration_usingJdo {
-
-
-}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java b/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
new file mode 100644
index 0000000..ee44cbf
--- /dev/null
+++ b/webapp/src/test/java/domainapp/webapp/integtests/WebAppIntegTestAbstract.java
@@ -0,0 +1,56 @@
+package domainapp.webapp.integtests;
+
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.context.annotation.PropertySources;
+import org.springframework.test.context.ActiveProfiles;
+
+import org.apache.isis.core.config.presets.IsisPresets;
+import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
+import org.apache.isis.persistence.jdo.datanucleus.IsisModuleJdoDatanucleus;
+import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
+import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
+import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
+
+import domainapp.modules.simple.SimpleModule;
+import domainapp.webapp.application.ApplicationModule;
+import domainapp.webapp.bdd.stepdefs.BddStepDefsModule;
+
+@SpringBootTest(
+    classes = {
+            // we use a slightly different configuration compared to the production (AppManifest/webapp)
+            WebAppIntegTestAbstract.TestApp.class,
+            BddStepDefsModule.class,
+            ApplicationModule.class,
+    }
+)
+@ActiveProfiles("test")
+public abstract class WebAppIntegTestAbstract extends IsisIntegrationTestAbstract {
+
+    /**
+     * Compared to the production app manifest <code>domainapp.webapp.AppManifest</code>,
+     * here we in effect disable security checks, and we exclude any web/UI modules.
+     */
+    @SpringBootConfiguration
+    @EnableAutoConfiguration
+    @Import({
+
+        IsisModuleCoreRuntimeServices.class,
+        IsisModuleSecurityBypass.class,
+        IsisModuleJdoDatanucleus.class,
+        IsisModuleTestingFixturesApplib.class,
+
+        SimpleModule.class
+    })
+    @PropertySources({
+        @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
+        @PropertySource(IsisPresets.DatanucleusAutocreateNoValidate),
+        @PropertySource(IsisPresets.UseLog4j2Test),
+    })
+    public static class TestApp {
+
+    }
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
index d27c0b9..8b7dea9 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/SwaggerExport_IntegTest.java
@@ -15,13 +15,13 @@ import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRest
 
 import lombok.val;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 
 @Import({
-    IsisModuleViewerRestfulObjectsJaxrsResteasy4.class
+        IsisModuleViewerRestfulObjectsJaxrsResteasy4.class
 })
-class SwaggerExport_IntegTest extends ApplicationIntegTestAbstract {
-    
+class SwaggerExport_IntegTest extends WebAppIntegTestAbstract {
+
     @Inject ServiceRegistry serviceRegistry;
 
     @Test
@@ -29,4 +29,4 @@ class SwaggerExport_IntegTest extends ApplicationIntegTestAbstract {
         val swaggerExporter = new SwaggerExporter(serviceRegistry);
         swaggerExporter.export(Visibility.PRIVATE, Format.JSON);
     }
-}
\ No newline at end of file
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
index 80bf4aa..84b9b0c 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/ValidateDomainModel_IntegTest.java
@@ -4,15 +4,13 @@ import javax.inject.Inject;
 
 import org.junit.jupiter.api.Test;
 
-import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.testing.integtestsupport.applib.validate.DomainModelValidator;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
+
+class ValidateDomainModel_IntegTest extends WebAppIntegTestAbstract {
 
-class ValidateDomainModel_IntegTest extends ApplicationIntegTestAbstract {
-    
     @Inject ServiceRegistry serviceRegistry;
 
     @Test
@@ -21,4 +19,4 @@ class ValidateDomainModel_IntegTest extends ApplicationIntegTestAbstract {
     }
 
 
-}
\ No newline at end of file
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
index 97dc0b9..b59d5d8 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/metamodel/lockdown/LockDownMetaModel_IntegTest.java
@@ -22,10 +22,10 @@ import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.schema.metamodel.v2.DomainClassDto;
 import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 import domainapp.webapp.util.CurrentVsApprovedApprovalTextWriter;
 
-class LockDownMetaModel_IntegTest extends ApplicationIntegTestAbstract {
+class LockDownMetaModel_IntegTest extends WebAppIntegTestAbstract {
 
     @Inject MetaModelService metaModelService;
     @Inject JaxbService jaxbService;
@@ -77,4 +77,4 @@ class LockDownMetaModel_IntegTest extends ApplicationIntegTestAbstract {
                 }, getReporter());
     }
 
-}
\ No newline at end of file
+}
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java b/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
index 94465ee..f8c5b56 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/smoke/Smoke_IntegTest.java
@@ -13,12 +13,12 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import domainapp.webapp.integtests.ApplicationIntegTestAbstract;
+import domainapp.webapp.integtests.WebAppIntegTestAbstract;
 import domainapp.modules.simple.dom.so.SimpleObject;
 import domainapp.modules.simple.dom.so.SimpleObjects;
 
 @Transactional
-class Smoke_IntegTest extends ApplicationIntegTestAbstract {
+class Smoke_IntegTest extends WebAppIntegTestAbstract {
 
     @Inject SimpleObjects menu;
     @Inject TransactionService transactionService;
diff --git a/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java b/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
index 55ac7d5..85e5073 100644
--- a/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
+++ b/webapp/src/test/java/domainapp/webapp/util/CurrentVsApprovedApprovalTextWriter.java
@@ -5,31 +5,9 @@ import org.approvaltests.writers.ApprovalTextWriter;
 
 public class CurrentVsApprovedApprovalTextWriter extends ApprovalTextWriter {
 
-    //private final String fileExtensionWithoutDot;
-
     public CurrentVsApprovedApprovalTextWriter(String received, String fileExtensionWithoutDot) {
         super(received, new Options().forFile()
                 .withExtension(fileExtensionWithoutDot));
-        //this.fileExtensionWithoutDot = fileExtensionWithoutDot;
     }
 
-//    @Override
-//    public String getReceivedFilename(final String base) {
-//        return toFilename("current", base);
-//    }
-//
-//    @Override
-//    public String getApprovalFilename(final String base) {
-//        return toFilename("approved", base);
-//    }
-//
-//    private String toFilename(final String prefix, final String base) {
-//        final File file = new File(base);
-//        final File parentFile = file.getParentFile();
-//        final String localName = file.getName();
-//        final File newDir = new File(parentFile, prefix);
-//        final File newFile = new File(newDir, localName + "." + fileExtensionWithoutDot);
-//        return newFile.toString();
-//    }
-
 }
diff --git a/webapp/src/test/resources/application-test.yml b/webapp/src/test/resources/application-test.yml
new file mode 100644
index 0000000..3a68cae
--- /dev/null
+++ b/webapp/src/test/resources/application-test.yml
@@ -0,0 +1,4 @@
+isis:
+  persistence:
+    schema:
+      auto-create-schemas: "simple"