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 2020/01/16 15:06:36 UTC

[isis-app-simpleapp] 01/05: various fixes for latest m2.

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

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

commit e2c2dd8ec86de5a15b394808d36c56a2c37cc26b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 9 14:38:41 2020 +0000

    various fixes for latest m2.
---
 module-simple/pom.xml                              |  25 +-
 .../modules/simple/dom/impl/SimpleObject.java      |   8 +-
 .../modules/simple/dom/impl/SimpleObjects.java     |  22 +-
 .../simple/dom/impl/SimpleObjects_Test.java        |   6 +-
 .../integtests/SimpleModuleIntegTestAbstract.java  |  19 +-
 pom.xml                                            |   6 +-
 webapp/pom.xml                                     |  13 +-
 .../src/main/java/domainapp/webapp/SimpleApp.java  |  12 +-
 .../services/homepage/HomePageService.java         |   9 +-
 webapp/src/main/resources/application.yml          |   9 +
 .../resources/{static => }/templates/error.html    |   2 +-
 .../integtests/ApplicationIntegTestAbstract.java   |  14 +-
 .../mavendeps/lockdown/LockDownMavenDeps_Test.java |  10 +-
 .../approved/LockDownMavenDeps_Test.list.txt       | 154 ++++---
 .../approved/LockDownMavenDeps_Test.tree.txt       | 222 +++++-----
 webapp/translations.po                             | 463 +++++++++++++++++++++
 16 files changed, 780 insertions(+), 214 deletions(-)

diff --git a/module-simple/pom.xml b/module-simple/pom.xml
index 539de61..dbfb815 100644
--- a/module-simple/pom.xml
+++ b/module-simple/pom.xml
@@ -13,15 +13,9 @@
 	<artifactId>simpleapp-module-simple</artifactId>
 	<name>Apache Isis App - SimpleApp Simple Module</name>
 
-	<properties>
-		<maven-checkstyle-plugin.configLocation>${project.parent.basedir}/_checks/checkstyle.xml</maven-checkstyle-plugin.configLocation>
-		<maven-pmd-plugin.ruleset>${project.parent.basedir}/_checks/pmd.xml</maven-pmd-plugin.ruleset>
-	</properties>
-
 	<build>
 		<resources>
 			<resource>
-				<filtering>false</filtering>
 				<directory>src/main/resources</directory>
 			</resource>
 			<resource>
@@ -35,6 +29,21 @@
 				</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>
@@ -52,8 +61,8 @@
 		</dependency>
 
 		<dependency>
-			<groupId>org.apache.isis.extensions</groupId>
-			<artifactId>isis-extensions-fixtures</artifactId>
+			<groupId>org.apache.isis.testing</groupId>
+			<artifactId>isis-testing-fixtures</artifactId>
 		</dependency>
 		
 		<!-- TESTS -->
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java b/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
index b1ec22b..c3bc635 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.java
@@ -35,6 +35,8 @@ import lombok.val;
 @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
 public class SimpleObject implements Comparable<SimpleObject> {
 
+    public static class ActionDomainEvent extends org.apache.isis.applib.events.domain.ActionDomainEvent<SimpleObject> {}
+
     private SimpleObject() {}
 
     public String title() {
@@ -48,7 +50,8 @@ public class SimpleObject implements Comparable<SimpleObject> {
     @Notes private String notes;
 
 
-    @Action(semantics = IDEMPOTENT, command = ENABLED, publishing = Publishing.ENABLED, associateWith = "name")
+    public static class UpdateNameActionDomainEvent extends SimpleObject.ActionDomainEvent {}
+    @Action(semantics = IDEMPOTENT, command = ENABLED, publishing = Publishing.ENABLED, associateWith = "name", domainEvent = UpdateNameActionDomainEvent.class)
     public SimpleObject updateName(
             @Name final String name) {
         setName(name);
@@ -59,7 +62,8 @@ public class SimpleObject implements Comparable<SimpleObject> {
     }
 
 
-    @Action(semantics = NON_IDEMPOTENT_ARE_YOU_SURE)
+    public static class DeleteActionDomainEvent extends SimpleObject.ActionDomainEvent {}
+    @Action(semantics = NON_IDEMPOTENT_ARE_YOU_SURE, domainEvent = DeleteActionDomainEvent.class)
     public void delete() {
         final String title = titleService.titleOf(this);
         messageService.informUser(String.format("'%s' deleted", title));
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java b/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index 96be5fa..e61b096 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@ -6,7 +6,6 @@ import javax.inject.Inject;
 import javax.jdo.JDOQLTypedQuery;
 
 import org.apache.isis.applib.annotation.*;
-import org.apache.isis.applib.events.domain.ActionDomainEvent;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.persistence.jdo.applib.services.IsisJdoSupport_v3_2;
 
@@ -18,9 +17,19 @@ import domainapp.modules.simple.dom.types.Name;
         )
 public class SimpleObjects {
 
-    public static class CreateDomainEvent extends ActionDomainEvent<SimpleObjects> {}
+    private final RepositoryService repositoryService;
+    private final IsisJdoSupport_v3_2 isisJdoSupport;
 
-    @Action(domainEvent = CreateDomainEvent.class)
+    @Inject
+    public SimpleObjects(RepositoryService repositoryService, IsisJdoSupport_v3_2 isisJdoSupport) {
+        this.repositoryService = repositoryService;
+        this.isisJdoSupport = isisJdoSupport;
+    }
+
+    public static class ActionDomainEvent extends org.apache.isis.applib.events.domain.ActionDomainEvent<SimpleObjects> {}
+
+    public static class CreateActionDomainEvent extends ActionDomainEvent {}
+    @Action(semantics = SemanticsOf.NON_IDEMPOTENT, domainEvent = CreateActionDomainEvent.class)
     @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
     public SimpleObject create(
             @Name final String name
@@ -28,7 +37,8 @@ public class SimpleObjects {
         return repositoryService.persist(SimpleObject.ofName(name));
     }
 
-    @Action(semantics = SemanticsOf.SAFE)
+    public static class FindByNameActionDomainEvent extends ActionDomainEvent {}
+    @Action(semantics = SemanticsOf.SAFE, domainEvent = FindByNameActionDomainEvent.class)
     @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT, promptStyle = PromptStyle.DIALOG_SIDEBAR)
     public List<SimpleObject> findByName(
             @Name final String name
@@ -52,13 +62,13 @@ public class SimpleObjects {
                 .executeUnique();
     }
 
+    public static class ListAllActionDomainEvent extends ActionDomainEvent {}
     @Action(semantics = SemanticsOf.SAFE)
     @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
     public List<SimpleObject> listAll() {
         return repositoryService.allInstances(SimpleObject.class);
     }
 
-    @Programmatic
     public void ping() {
         JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
         final QSimpleObject candidate = QSimpleObject.candidate();
@@ -67,7 +77,5 @@ public class SimpleObjects {
         q.executeList();
     }
 
-    @Inject RepositoryService repositoryService;
-    @Inject IsisJdoSupport_v3_2 isisJdoSupport;
 
 }
diff --git a/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java b/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
index f06ee67..a46c381 100644
--- a/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
+++ b/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
@@ -2,6 +2,7 @@ package domainapp.modules.simple.dom.impl;
 
 import java.util.List;
 
+import org.apache.isis.persistence.jdo.applib.services.IsisJdoSupport_v3_2;
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeMatcher;
@@ -26,13 +27,14 @@ public class SimpleObjects_Test {
 
     @Mock
     RepositoryService mockRepositoryService;
+    @Mock
+    IsisJdoSupport_v3_2 mockIsisJdoSupport_v3_2;
 
     SimpleObjects simpleObjects;
 
     @Before
     public void setUp() {
-        simpleObjects = new SimpleObjects();
-        simpleObjects.repositoryService = mockRepositoryService;
+        simpleObjects = new SimpleObjects(mockRepositoryService, mockIsisJdoSupport_v3_2);
     }
 
     public static class Create extends SimpleObjects_Test {
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 849ec7d..a59b20b 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
@@ -5,32 +5,35 @@ import domainapp.modules.simple.SimpleModule;
 import org.apache.isis.config.presets.IsisPresets;
 import org.apache.isis.extensions.fixtures.IsisModuleExtFixtures;
 import org.apache.isis.extensions.fixtures.IsisIntegrationTestAbstractWithFixtures;
+import org.apache.isis.integtestsupport.IsisIntegrationTestAbstract;
 import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
 import org.apache.isis.webboot.springboot.IsisModuleSpringBoot;
 import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
 import org.springframework.boot.test.context.SpringBootTest;
 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.springframework.test.context.TestPropertySource;
 
 
 @SpringBootTest(
-        classes = SimpleModuleIntegTestAbstract.AppManifest.class,
-        properties = {"logging.config=log4j2-test.xml" }
+        classes = SimpleModuleIntegTestAbstract.AppManifest.class
 )
+@TestPropertySource({
+        IsisPresets.H2InMemory_withUniqueSchema,
+        IsisPresets.DataNucleusAutoCreate,
+        IsisPresets.UseLog4j2Test,
+})
 public abstract class SimpleModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
 
     @Configuration
-    @PropertySources({
-        @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
-        @PropertySource(IsisPresets.DataNucleusAutoCreate),
-    })
     @Import({
         IsisModuleSpringBoot.class,
         IsisModuleSecurityBypass.class,
         IsisModuleJdoDataNucleus5.class,
         IsisModuleExtFixtures.class,
+
+        IsisIntegrationTestAbstract.CommandSupport.class,
+
         SimpleModule.class
     })
     public static class AppManifest {
diff --git a/pom.xml b/pom.xml
index 69ceb87..c45d173 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,11 @@
     <parent>
         <groupId>org.apache.isis.app</groupId>
         <artifactId>isis-app-starter-parent</artifactId>
-        <version>2.0.0-M2.20191216-0404-91276ff1</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
+<!--
+        <version>2.0.0-M2.20191228-0402-2cf6d152</version>
+-->
+        <relativePath/>
     </parent>
 
     <groupId>org.apache.isis.starters</groupId>
diff --git a/webapp/pom.xml b/webapp/pom.xml
index 50ba7a6..edc60a1 100644
--- a/webapp/pom.xml
+++ b/webapp/pom.xml
@@ -11,7 +11,7 @@
     <artifactId>simpleapp-webapp</artifactId>
     <name>Apache Isis App - SimpleApp Webapp</name>
 
-    <description>This assemblies and runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
+    <description>Assembles and runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
 
     <packaging>jar</packaging>
 
@@ -38,7 +38,6 @@
         </resources>
         <testResources>
             <testResource>
-                <filtering>false</filtering>
                 <directory>src/test/resources</directory>
             </testResource>
             <testResource>
@@ -112,11 +111,11 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.isis.extensions</groupId>
-            <artifactId>isis-extensions-h2console-dom</artifactId>
+            <groupId>org.apache.isis.testing</groupId>
+            <artifactId>isis-testing-h2console-ui</artifactId>
         </dependency>
 
-        <!-- test -->
+        <!-- TESTING -->
         <dependency>
             <groupId>org.apache.isis.mavendeps</groupId>
             <artifactId>isis-mavendeps-testing</artifactId>
@@ -125,8 +124,8 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.isis.extensions</groupId>
-            <artifactId>isis-extensions-specsupport</artifactId>
+            <groupId>org.apache.isis.testing</groupId>
+            <artifactId>isis-testing-specsupport</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/webapp/src/main/java/domainapp/webapp/SimpleApp.java b/webapp/src/main/java/domainapp/webapp/SimpleApp.java
index a107752..3f49207 100644
--- a/webapp/src/main/java/domainapp/webapp/SimpleApp.java
+++ b/webapp/src/main/java/domainapp/webapp/SimpleApp.java
@@ -4,9 +4,9 @@ import domainapp.webapp.application.ApplicationModule;
 import domainapp.webapp.application.fixture.scenarios.DomainAppDemo;
 
 import org.apache.isis.extensions.fixtures.IsisModuleExtFixtures;
-import org.apache.isis.extensions.h2console.dom.IsisModuleExtH2Console;
+import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
 import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
-import org.apache.isis.viewer.restfulobjects.viewer.IsisModuleRestfulObjectsViewer;
+import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleRestfulObjectsJaxrsResteasy4;
 import org.apache.isis.webboot.springboot.IsisModuleSpringBoot;
 import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
 import org.apache.isis.viewer.wicket.viewer.IsisModuleWicketViewer;
@@ -36,14 +36,16 @@ public class SimpleApp extends SpringBootServletInitializer {
             IsisModuleSpringBoot.class,
             IsisModuleSecurityShiro.class,
             IsisModuleJdoDataNucleus5.class,
-            IsisModuleRestfulObjectsViewer.class,
+            IsisModuleRestfulObjectsJaxrsResteasy4.class,
             IsisModuleWicketViewer.class,
 
             IsisModuleExtFixtures.class,
-            IsisModuleExtH2Console.class,
+            IsisModuleTestingH2ConsoleUi.class,
 
             ApplicationModule.class,
-            DomainAppDemo.class // register this fixture
+
+            // discoverable fixtures
+            DomainAppDemo.class
     })
     public static class AppManifest {
     }
diff --git a/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageService.java b/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageService.java
index 6162fef..fadf3e0 100644
--- a/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageService.java
+++ b/webapp/src/main/java/domainapp/webapp/application/services/homepage/HomePageService.java
@@ -14,12 +14,17 @@ import org.apache.isis.applib.services.factory.FactoryService;
 @Named("domainapp.HomePageService")
 public class HomePageService {
 
+    private final FactoryService factoryService;
+
+    @Inject
+    public HomePageService(final FactoryService factoryService) {
+        this.factoryService = factoryService;
+    }
+
     @Action(semantics = SemanticsOf.SAFE)
     @HomePage
     public HomePageViewModel homePage() {
         return factoryService.instantiate(HomePageViewModel.class);
     }
 
-
-    @Inject FactoryService factoryService;
 }
diff --git a/webapp/src/main/resources/application.yml b/webapp/src/main/resources/application.yml
index 330281b..69ca0a9 100644
--- a/webapp/src/main/resources/application.yml
+++ b/webapp/src/main/resources/application.yml
@@ -69,6 +69,9 @@ isis:
           delete.*:btn-danger,
           discard.*:btn-warning,
           remove.*:btn-warning
+    introspector:
+      parallelize: false
+      lock-after-full-introspection: false
 
 
   objects:
@@ -142,3 +145,9 @@ isis:
 spring:
   banner:
     location: banner.txt
+
+resteasy:
+  jaxrs:
+    app:
+      registration: beans
+    defaultPath: "/restful"
diff --git a/webapp/src/main/resources/static/templates/error.html b/webapp/src/main/resources/templates/error.html
similarity index 92%
rename from webapp/src/main/resources/static/templates/error.html
rename to webapp/src/main/resources/templates/error.html
index d60df7c..f9d0a41 100644
--- a/webapp/src/main/resources/static/templates/error.html
+++ b/webapp/src/main/resources/templates/error.html
@@ -2,7 +2,7 @@
 <html xmlns:th="http://www.thymeleaf.org">
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-        <title>Apache Isis&trade; HelloWorld</title>
+        <title>Apache Isis&trade; Simple App</title>
 
         <link rel="stylesheet" type="text/css" th:href="@{/css/page.css}">
     </head>
diff --git a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java b/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
index d7b1c22..22347e7 100644
--- a/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
+++ b/webapp/src/test/java/domainapp/webapp/integtests/ApplicationIntegTestAbstract.java
@@ -14,19 +14,21 @@ import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
 import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.TestPropertySources;
 
 @SpringBootTest(
-        classes = ApplicationIntegTestAbstract.AppManifest.class,
-        properties = {"logging.config=log4j2-test.xml"}
+        classes = ApplicationIntegTestAbstract.AppManifest.class
 )
+@TestPropertySource({
+        IsisPresets.H2InMemory_withUniqueSchema,
+        IsisPresets.DataNucleusAutoCreate,
+        IsisPresets.UseLog4j2Test,
+})
 @ContextConfiguration
 public abstract class ApplicationIntegTestAbstract extends IsisIntegrationTestAbstract {
 
     @Configuration
-    @PropertySources({
-            @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
-            @PropertySource(IsisPresets.DataNucleusAutoCreate),
-    })
     @Import({
             IsisModuleSpringBoot.class,
             IsisModuleJdoDataNucleus5.class,
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java b/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java
index 93103b3..b8740ba 100644
--- a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java
+++ b/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/LockDownMavenDeps_Test.java
@@ -31,16 +31,16 @@ public class LockDownMavenDeps_Test {
     @Test
     public void compare_list() throws Exception {
         final String variant = "list";
-        final String received = sort(read(variant));
-        verify(approvalTextWriter(received, "txt"), namerFor(variant), getReporter());
+        final String current = sort(read(variant));
+        verify(approvalTextWriter(current, "txt"), namerFor(variant), getReporter());
     }
 
     @UseReporter(DiffReporter.class)
     @Test
     public void compare_tree() throws Exception {
         final String variant = "tree";
-        final String received = read(variant);
-        verify(approvalTextWriter(received, "txt"), namerFor(variant), getReporter());
+        final String current = read(variant);
+        verify(approvalTextWriter(current, "txt"), namerFor(variant), getReporter());
     }
 
     private static ApprovalTextWriter approvalTextWriter(final String received, final String fileExtensionWithoutDot) {
@@ -58,7 +58,7 @@ public class LockDownMavenDeps_Test {
 
     private String read(final String goal) throws IOException {
         final URL resource = Resources.getResource(getClass(),
-                String.format("received/%s.%s.txt", getClass().getSimpleName(), goal));
+                String.format("current/%s.%s.txt", getClass().getSimpleName(), goal));
         return Resources.toString(resource, Charsets.UTF_8);
     }
 
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt b/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt
index 59352f8..0c16cf3 100644
--- a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt
+++ b/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.list.txt
@@ -4,15 +4,21 @@
    cglib:cglib:jar:3.2.8:test
    com.approvaltests:approvaltests-util:jar:4.0.2:test
    com.approvaltests:approvaltests:jar:4.0.2:test
-   com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
-   com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
-   com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
-   com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.0:compile
-   com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.0:compile
-   com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.0:compile
-   com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.0:compile
-   com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.0:compile
+   com.fasterxml.jackson.core:jackson-annotations:jar:2.10.1:compile
+   com.fasterxml.jackson.core:jackson-core:jar:2.10.1:compile
+   com.fasterxml.jackson.core:jackson-databind:jar:2.10.1:compile
+   com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.1:compile
+   com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.1:compile
+   com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.1:compile
+   com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.10.1:compile
+   com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.10.1:compile
+   com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.1:compile
+   com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.1:compile
    com.fasterxml:classmate:jar:1.5.1:compile
+   com.github.fge:btf:jar:1.2:compile
+   com.github.fge:jackson-coreutils:jar:1.6:compile
+   com.github.fge:json-patch:jar:1.9:compile
+   com.github.fge:msg-simple:jar:1.1:compile
    com.github.openjson:openjson:jar:1.0.10:compile
    com.google.code.findbugs:annotations:jar:2.0.1:compile
    com.google.code.findbugs:jsr305:jar:3.0.2:compile
@@ -27,14 +33,16 @@
    com.google.jsinterop:jsinterop-annotations:jar:1.0.0:compile
    com.h2database:h2:jar:1.4.200:compile
    com.jayway.jsonpath:json-path:jar:2.4.0:test
+   com.sun.activation:jakarta.activation:jar:1.2.1:compile
+   com.sun.istack:istack-commons-runtime:jar:3.0.8:compile
    com.sun.mail:javax.mail:jar:1.6.0:compile
+   com.sun.xml.fastinfoset:FastInfoset:jar:1.2.16:compile
    com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
    commons-beanutils:commons-beanutils:jar:1.9.3:compile
    commons-codec:commons-codec:jar:1.13:compile
    commons-collections:commons-collections:jar:3.2.2:compile
    commons-fileupload:commons-fileupload:jar:1.4:compile
    commons-io:commons-io:jar:2.6:compile
-   commons-logging:commons-logging:jar:1.2:compile
    de.agilecoders.wicket.webjars:wicket-webjars:jar:2.0.15:compile
    de.agilecoders.wicket:jquery-selectors:jar:2.0.7:compile
    de.agilecoders.wicket:wicket-bootstrap-core:jar:2.0.11:compile
@@ -49,23 +57,29 @@
    io.cucumber:datatable:jar:1.1.14:test
    io.cucumber:gherkin:jar:5.1.0:test
    io.cucumber:tag-expressions:jar:1.1.1:test
-   io.swagger:swagger-annotations:jar:1.5.21:compile
-   io.swagger:swagger-core:jar:1.5.21:compile
-   io.swagger:swagger-models:jar:1.5.21:compile
+   io.smallrye:smallrye-config:jar:1.3.9:compile
+   io.swagger:swagger-annotations:jar:1.6.0:compile
+   io.swagger:swagger-core:jar:1.6.0:compile
+   io.swagger:swagger-models:jar:1.6.0:compile
    jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
    jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
    jakarta.validation:jakarta.validation-api:jar:2.0.1:compile
    jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
    javax.activation:activation:jar:1.1:compile
+   javax.annotation:javax.annotation-api:jar:1.3.2:compile
+   javax.el:javax.el-api:jar:3.0.0:compile
+   javax.enterprise:cdi-api:jar:2.0.SP1:compile
    javax.inject:javax.inject:jar:1:compile
-   javax.json.bind:javax.json.bind-api:jar:1.0:compile
+   javax.interceptor:javax.interceptor-api:jar:1.2:compile
+   javax.json:javax.json-api:jar:1.1.4:compile
+   javax.servlet:javax.servlet-api:jar:4.0.1:compile
    javax.transaction:transaction-api:jar:1.1:compile
+   javax.validation:validation-api:jar:2.0.1.Final:compile
    javax:javaee-api:jar:8.0:compile
    joda-time:joda-time:jar:2.10.5:compile
    junit:junit:jar:4.12:test
-   net.bytebuddy:byte-buddy:jar:1.10.2:compile
+   net.bytebuddy:byte-buddy:jar:1.10.4:compile
    net.ftlines.wicket-source:wicket-source:jar:7.0.0:compile
-   net.jcip:jcip-annotations:jar:1.0:compile
    net.minidev:accessors-smart:jar:1.2:test
    net.minidev:json-smart:jar:2.3:test
    org.apache-extras.beanshell:bsh:jar:2.0b6:test
@@ -80,32 +94,33 @@
    org.apache.isis.core:isis-config:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-integtestsupport:jar:2.0.0-M3-SNAPSHOT:test
    org.apache.isis.core:isis-metamodel:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.core:isis-persistence-jdo-common:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.core:isis-persistence-jdo-applib:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-persistence-jdo-datanucleus5:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.core:isis-runtime-extensions:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-runtime-services:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.core:isis-runtime-web:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-runtime:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-schema:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.core:isis-security-api:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-security-bypass:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-security-keycloak:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-security-shiro:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.core:isis-security:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-unittestsupport:jar:2.0.0-M3-SNAPSHOT:test
    org.apache.isis.core:isis-viewer-restfulobjects-applib:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-viewer-restfulobjects-jaxrsresteasy4:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-viewer-restfulobjects-rendering:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.core:isis-viewer-restfulobjects-server:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.core:isis-viewer-wicket-impl:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.core:isis-viewer-restfulobjects-viewer:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-viewer-wicket-model:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.core:isis-viewer-wicket-ui:jar:2.0.0-M3-SNAPSHOT:compile
-   org.apache.isis.examples.apps:simpleapp-module-simple:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.core:isis-viewer-wicket-viewer:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.core:isis-webapp:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.core:isis-webboot-springboot:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.extensions:isis-extensions-fixtures:jar:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.extensions:isis-extensions-h2console-dom:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.extensions:isis-extensions-specsupport:jar:2.0.0-M3-SNAPSHOT:test
    org.apache.isis.extensions:isis-extensions-spring:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:2.0.0-M3-SNAPSHOT:compile
    org.apache.isis.mavendeps:isis-mavendeps-testing:pom:2.0.0-M3-SNAPSHOT:test
    org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:2.0.0-M3-SNAPSHOT:compile
+   org.apache.isis.starters:simpleapp-module-simple:jar:2.0.0-M3-SNAPSHOT:compile
    org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
    org.apache.logging.log4j:log4j-core:jar:2.12.1:compile
    org.apache.logging.log4j:log4j-jul:jar:2.12.1:compile
@@ -120,9 +135,9 @@
    org.apache.shiro:shiro-event:jar:1.4.1:compile
    org.apache.shiro:shiro-lang:jar:1.4.1:compile
    org.apache.shiro:shiro-web:jar:1.4.1:compile
-   org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.27:compile
-   org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.27:compile
-   org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.27:compile
+   org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.29:compile
+   org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.29:compile
+   org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.29:compile
    org.apache.wicket:wicket-auth-roles:jar:8.6.1:compile
    org.apache.wicket:wicket-core:jar:8.6.1:compile
    org.apache.wicket:wicket-devutils:jar:8.6.1:compile
@@ -132,13 +147,10 @@
    org.apache.wicket:wicket-spring:jar:8.6.1:compile
    org.apache.wicket:wicket-util:jar:8.6.1:compile
    org.apache.wicket:wicket:pom:8.6.1:compile
-   org.apiguardian:apiguardian-api:jar:1.1.0:test
+   org.apiguardian:apiguardian-api:jar:1.1.0:compile
    org.assertj:assertj-core:jar:3.13.2:test
+   org.attoparser:attoparser:jar:2.0.5.RELEASE:compile
    org.checkerframework:checker-qual:jar:2.8.1:compile
-   org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
-   org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
-   org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
-   org.codehaus.jackson:jackson-xc:jar:1.9.13:compile
    org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:compile
    org.danekja:jdk-serializable-functional:jar:1.8.5:compile
    org.datanucleus:datanucleus-api-jdo:jar:5.2.2:compile
@@ -147,35 +159,46 @@
    org.datanucleus:datanucleus-jodatime:jar:5.2.0-release:compile
    org.datanucleus:datanucleus-rdbms:jar:5.2.1:compile
    org.datanucleus:javax.jdo:jar:3.2.0-m12:compile
+   org.eclipse.microprofile.config:microprofile-config-api:jar:1.3:compile
+   org.glassfish.jaxb:jaxb-runtime:jar:2.3.2:compile
+   org.glassfish.jaxb:txw2:jar:2.3.2:compile
+   org.glassfish:javax.json:jar:1.1.2:compile
    org.hamcrest:hamcrest-core:jar:2.1:test
    org.hamcrest:hamcrest-library:jar:2.1:test
    org.hamcrest:hamcrest:jar:2.1:compile
    org.hibernate.validator:hibernate-validator:jar:6.0.18.Final:compile
    org.hsqldb:hsqldb:jar:2.5.0:test
    org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
-   org.jboss.resteasy:resteasy-jackson-provider:jar:4.0.0.Beta5:compile
-   org.jboss.resteasy:resteasy-jaxb-provider:jar:4.0.0.Beta5:compile
-   org.jboss.resteasy:resteasy-jaxrs-services:jar:4.0.0.Beta5:compile
-   org.jboss.resteasy:resteasy-jaxrs:jar:4.0.0.Beta5:compile
-   org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:compile
-   org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:1.0.1.Final:compile
-   org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:1.0.0.Final:compile
+   org.jboss.resteasy:resteasy-client-api:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-client:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-core-spi:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-core:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-jackson2-provider:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-jaxb-provider:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-servlet-initializer:jar:4.4.1.Final:compile
+   org.jboss.resteasy:resteasy-spring-boot-starter:jar:4.4.0.Final:compile
+   org.jboss.resteasy:resteasy-spring:jar:4.4.1.Final:compile
+   org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec:jar:2.0.1.Final:compile
+   org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
+   org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:1.0.1.Final:compile
    org.jmock:jmock-imposters:jar:2.11.0:test
    org.jmock:jmock-junit4:jar:2.11.0:test
    org.jmock:jmock-legacy:jar:2.11.0:test
    org.jmock:jmock-testjar:jar:2.11.0:test
    org.jmock:jmock:jar:2.11.0:test
-   org.junit.jupiter:junit-jupiter-api:jar:5.5.2:test
+   org.junit.jupiter:junit-jupiter-api:jar:5.5.2:compile
    org.junit.jupiter:junit-jupiter-engine:jar:5.5.2:test
    org.junit.jupiter:junit-jupiter-params:jar:5.5.2:test
    org.junit.jupiter:junit-jupiter:jar:5.5.2:test
-   org.junit.platform:junit-platform-commons:jar:1.5.2:test
+   org.junit.platform:junit-platform-commons:jar:1.5.2:compile
    org.junit.platform:junit-platform-engine:jar:1.5.2:test
    org.junit.vintage:junit-vintage-engine:jar:5.5.2:test
+   org.jvnet.staxex:stax-ex:jar:1.8.1:compile
    org.mockito:mockito-core:jar:3.1.0:test
    org.mockito:mockito-junit-jupiter:jar:3.1.0:test
    org.objenesis:objenesis:jar:2.2:compile
-   org.opentest4j:opentest4j:jar:1.2.0:test
+   org.opentest4j:opentest4j:jar:1.2.0:compile
+   org.osgi:org.osgi.annotation.versioning:jar:1.0.0:compile
    org.ow2.asm:asm-analysis:jar:7.1:compile
    org.ow2.asm:asm-tree:jar:7.1:compile
    org.ow2.asm:asm-util:jar:7.1:compile
@@ -186,29 +209,34 @@
    org.skyscreamer:jsonassert:jar:1.5.0:test
    org.slf4j:jul-to-slf4j:jar:1.7.29:compile
    org.slf4j:slf4j-api:jar:1.7.29:compile
-   org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-actuator:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-autoconfigure:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-starter-json:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-starter-log4j2:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-starter-test:jar:2.2.1.RELEASE:test
-   org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-starter-validation:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-starter-web:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-starter:jar:2.2.1.RELEASE:compile
-   org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.1.RELEASE:test
-   org.springframework.boot:spring-boot-test:jar:2.2.1.RELEASE:test
-   org.springframework.boot:spring-boot:jar:2.2.1.RELEASE:compile
-   org.springframework:spring-aop:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-beans:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-context:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-core:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-expression:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-jcl:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-test:jar:5.2.1.RELEASE:test
-   org.springframework:spring-tx:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-web:jar:5.2.1.RELEASE:compile
-   org.springframework:spring-webmvc:jar:5.2.1.RELEASE:compile
+   org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-actuator:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-autoconfigure:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter-json:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter-log4j2:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter-test:jar:2.2.2.RELEASE:test
+   org.springframework.boot:spring-boot-starter-thymeleaf:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter-validation:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter-web:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-starter:jar:2.2.2.RELEASE:compile
+   org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.2.RELEASE:test
+   org.springframework.boot:spring-boot-test:jar:2.2.2.RELEASE:test
+   org.springframework.boot:spring-boot:jar:2.2.2.RELEASE:compile
+   org.springframework:spring-aop:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-beans:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-context:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-core:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-expression:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-jcl:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-test:jar:5.2.2.RELEASE:test
+   org.springframework:spring-tx:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-web:jar:5.2.2.RELEASE:compile
+   org.springframework:spring-webmvc:jar:5.2.2.RELEASE:compile
+   org.thymeleaf.extras:thymeleaf-extras-java8time:jar:3.0.4.RELEASE:compile
+   org.thymeleaf:thymeleaf-spring5:jar:3.0.11.RELEASE:compile
+   org.thymeleaf:thymeleaf:jar:3.0.11.RELEASE:compile
+   org.unbescape:unbescape:jar:1.1.6.RELEASE:compile
    org.webjars.bower:momentjs:jar:2.24.0:compile
    org.webjars.bower:summernote:jar:0.8.11:compile
    org.webjars:Eonasdan-bootstrap-datetimepicker:jar:4.17.37-1:compile
diff --git a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt b/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt
index 0b5d7b1..9924ca7 100644
--- a/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt
+++ b/webapp/src/test/java/domainapp/webapp/unittests/mavendeps/lockdown/approved/LockDownMavenDeps_Test.tree.txt
@@ -1,54 +1,48 @@
-org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
-+- org.apache.isis.examples.apps:simpleapp-module-simple:jar:2.0.0-M3-SNAPSHOT:compile
+org.apache.isis.starters:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
++- org.apache.isis.starters:simpleapp-module-simple:jar:2.0.0-M3-SNAPSHOT:compile
 |  +- org.apache.isis.core:isis-applib:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  \- org.apache.isis.core:isis-commons:jar:2.0.0-M3-SNAPSHOT:compile
-|  |     +- javax:javaee-api:jar:8.0:compile
-|  |     |  \- com.sun.mail:javax.mail:jar:1.6.0:compile
-|  |     |     \- javax.activation:activation:jar:1.1:compile
-|  |     +- com.google.code.findbugs:annotations:jar:2.0.1:compile
-|  |     +- org.springframework:spring-tx:jar:5.2.1.RELEASE:compile
-|  |     \- org.springframework.boot:spring-boot-starter-log4j2:jar:2.2.1.RELEASE:compile
-|  |        +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.1:compile
-|  |        |  \- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
-|  |        +- org.apache.logging.log4j:log4j-core:jar:2.12.1:compile
-|  |        +- org.apache.logging.log4j:log4j-jul:jar:2.12.1:compile
-|  |        \- org.slf4j:jul-to-slf4j:jar:1.7.29:compile
 |  +- org.apache.isis.core:isis-persistence-jdo-datanucleus5:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  +- org.datanucleus:javax.jdo:jar:3.2.0-m12:compile
-|  |  |  \- javax.transaction:transaction-api:jar:1.1:compile
+|  |  +- org.apache.isis.core:isis-persistence-jdo-applib:jar:2.0.0-M3-SNAPSHOT:compile
+|  |  |  \- org.datanucleus:javax.jdo:jar:3.2.0-m12:compile
+|  |  |     \- javax.transaction:transaction-api:jar:1.1:compile
 |  |  +- org.datanucleus:datanucleus-core:jar:5.2.2:compile
 |  |  +- org.datanucleus:datanucleus-api-jdo:jar:5.2.2:compile
 |  |  +- org.datanucleus:datanucleus-jdo-query:jar:5.0.9:compile
 |  |  +- org.datanucleus:datanucleus-rdbms:jar:5.2.1:compile
-|  |  +- org.datanucleus:datanucleus-jodatime:jar:5.2.0-release:compile
-|  |  \- org.apache.isis.core:isis-persistence-jdo-common:jar:2.0.0-M3-SNAPSHOT:compile
+|  |  \- org.datanucleus:datanucleus-jodatime:jar:5.2.0-release:compile
 |  \- org.apache.isis.extensions:isis-extensions-fixtures:jar:2.0.0-M3-SNAPSHOT:compile
 |     +- joda-time:joda-time:jar:2.10.5:compile
 |     \- org.apache.isis.extensions:isis-extensions-spring:jar:2.0.0-M3-SNAPSHOT:compile
 +- org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:2.0.0-M3-SNAPSHOT:compile
-|  +- org.springframework.boot:spring-boot-starter-web:jar:2.2.1.RELEASE:compile
-|  |  +- org.springframework.boot:spring-boot-starter:jar:2.2.1.RELEASE:compile
+|  +- org.springframework.boot:spring-boot-starter-web:jar:2.2.2.RELEASE:compile
+|  |  +- org.springframework.boot:spring-boot-starter:jar:2.2.2.RELEASE:compile
 |  |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
 |  |  |  \- org.yaml:snakeyaml:jar:1.25:runtime
-|  |  +- org.springframework.boot:spring-boot-starter-json:jar:2.2.1.RELEASE:compile
-|  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.0:compile
-|  |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.0:compile
-|  |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.1.RELEASE:compile
-|  |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.27:compile
-|  |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.27:compile
-|  |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.27:compile
-|  |  +- org.springframework.boot:spring-boot-starter-validation:jar:2.2.1.RELEASE:compile
-|  |  |  +- jakarta.validation:jakarta.validation-api:jar:2.0.1:compile
-|  |  |  \- org.hibernate.validator:hibernate-validator:jar:6.0.18.Final:compile
-|  |  |     +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
-|  |  |     \- com.fasterxml:classmate:jar:1.5.1:compile
-|  |  +- org.springframework:spring-web:jar:5.2.1.RELEASE:compile
-|  |  \- org.springframework:spring-webmvc:jar:5.2.1.RELEASE:compile
+|  |  +- org.springframework.boot:spring-boot-starter-json:jar:2.2.2.RELEASE:compile
+|  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.1:compile
+|  |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.1:compile
+|  |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.2.RELEASE:compile
+|  |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.29:compile
+|  |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.29:compile
+|  |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.29:compile
+|  |  +- org.springframework.boot:spring-boot-starter-validation:jar:2.2.2.RELEASE:compile
+|  |  |  \- jakarta.validation:jakarta.validation-api:jar:2.0.1:compile
+|  |  +- org.springframework:spring-web:jar:5.2.2.RELEASE:compile
+|  |  \- org.springframework:spring-webmvc:jar:5.2.2.RELEASE:compile
 |  +- org.apache.isis.core:isis-schema:jar:2.0.0-M3-SNAPSHOT:compile
-|  +- org.apache.isis.core:isis-codegen-bytebuddy:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  +- net.bytebuddy:byte-buddy:jar:1.10.2:compile
-|  |  \- org.objenesis:objenesis:jar:2.2:compile
-|  +- org.apache.isis.core:isis-viewer-wicket-impl:jar:2.0.0-M3-SNAPSHOT:compile
+|  |  \- org.apache.isis.core:isis-commons:jar:2.0.0-M3-SNAPSHOT:compile
+|  |     +- javax:javaee-api:jar:8.0:compile
+|  |     |  \- com.sun.mail:javax.mail:jar:1.6.0:compile
+|  |     |     \- javax.activation:activation:jar:1.1:compile
+|  |     +- com.google.code.findbugs:annotations:jar:2.0.1:compile
+|  |     +- org.springframework:spring-tx:jar:5.2.2.RELEASE:compile
+|  |     \- org.springframework.boot:spring-boot-starter-log4j2:jar:2.2.2.RELEASE:compile
+|  |        +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.1:compile
+|  |        |  \- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
+|  |        +- org.apache.logging.log4j:log4j-core:jar:2.12.1:compile
+|  |        +- org.apache.logging.log4j:log4j-jul:jar:2.12.1:compile
+|  |        \- org.slf4j:jul-to-slf4j:jar:1.7.29:compile
+|  +- org.apache.isis.core:isis-viewer-wicket-viewer:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  +- org.apache.isis.core:isis-viewer-wicket-ui:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  |  +- org.apache.isis.core:isis-viewer-wicket-model:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  |  +- org.apache.wicket:wicket-core:jar:8.6.1:compile
@@ -76,7 +70,15 @@ org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
 |  |  |  |  |  \- com.google.jsinterop:jsinterop-annotations:jar:1.0.0:compile
 |  |  |  |  \- org.webjars:animate.css:jar:3.5.2:compile
 |  |  |  +- org.webjars.bower:summernote:jar:0.8.11:compile
-|  |  |  \- de.agilecoders.wicket:wicket-bootstrap-themes:jar:2.0.11:compile
+|  |  |  +- de.agilecoders.wicket:wicket-bootstrap-themes:jar:2.0.11:compile
+|  |  |  \- com.google.guava:guava:jar:28.1-jre:compile
+|  |  |     +- com.google.guava:failureaccess:jar:1.0.1:compile
+|  |  |     +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
+|  |  |     +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
+|  |  |     +- org.checkerframework:checker-qual:jar:2.8.1:compile
+|  |  |     +- com.google.errorprone:error_prone_annotations:jar:2.3.2:compile
+|  |  |     +- com.google.j2objc:j2objc-annotations:jar:1.3:compile
+|  |  |     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:compile
 |  |  +- org.apache.wicket:wicket-spring:jar:8.6.1:compile
 |  |  |  \- org.apache.wicket:wicket-ioc:jar:8.6.1:compile
 |  |  |     +- cglib:cglib-nodep:jar:3.2.12:compile
@@ -93,35 +95,52 @@ org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
 |  |  +- net.ftlines.wicket-source:wicket-source:jar:7.0.0:compile
 |  |  |  \- org.apache.wicket:wicket:pom:8.6.1:compile
 |  |  \- commons-io:commons-io:jar:2.6:compile
-|  +- org.apache.isis.core:isis-viewer-restfulobjects-server:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  +- org.apache.isis.core:isis-runtime-web:jar:2.0.0-M3-SNAPSHOT:compile
+|  +- org.apache.isis.core:isis-viewer-restfulobjects-viewer:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  +- org.apache.isis.core:isis-viewer-restfulobjects-rendering:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  |  \- org.apache.isis.core:isis-viewer-restfulobjects-applib:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.0:compile
+|  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.1:compile
 |  |     +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
 |  |     \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
 |  +- org.apache.isis.core:isis-viewer-restfulobjects-jaxrsresteasy4:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  +- org.jboss.resteasy:resteasy-jackson-provider:jar:4.0.0.Beta5:compile
-|  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
-|  |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
-|  |  |  +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.13:compile
-|  |  |  \- org.codehaus.jackson:jackson-xc:jar:1.9.13:compile
-|  |  +- org.jboss.resteasy:resteasy-jaxb-provider:jar:4.0.0.Beta5:compile
-|  |  |  \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:1.0.0.Final:compile
-|  |  +- org.jboss.resteasy:resteasy-jaxrs:jar:4.0.0.Beta5:compile
-|  |  |  +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:1.0.1.Final:compile
-|  |  |  +- org.jboss.resteasy:resteasy-jaxrs-services:jar:4.0.0.Beta5:compile
-|  |  |  +- org.reactivestreams:reactive-streams:jar:1.0.3:compile
-|  |  |  +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:compile
-|  |  |  +- org.apache.httpcomponents:httpclient:jar:4.5.10:compile
-|  |  |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.12:compile
-|  |  |  |  \- commons-codec:commons-codec:jar:1.13:compile
-|  |  |  +- net.jcip:jcip-annotations:jar:1.0:compile
-|  |  |  \- javax.json.bind:javax.json.bind-api:jar:1.0:compile
-|  |  +- commons-logging:commons-logging:jar:1.2:compile
-|  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.10.0:compile
-|  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0:compile
-|  +- org.apache.isis.core:isis-security:jar:2.0.0-M3-SNAPSHOT:compile
+|  |  \- org.jboss.resteasy:resteasy-spring-boot-starter:jar:4.4.0.Final:compile
+|  |     +- org.jboss.resteasy:resteasy-core:jar:4.4.1.Final:compile
+|  |     |  +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
+|  |     |  +- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:1.0.1.Final:compile
+|  |     |  +- org.reactivestreams:reactive-streams:jar:1.0.3:compile
+|  |     |  +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.3_spec:jar:2.0.1.Final:compile
+|  |     |  +- com.sun.activation:jakarta.activation:jar:1.2.1:compile
+|  |     |  +- org.eclipse.microprofile.config:microprofile-config-api:jar:1.3:compile
+|  |     |  |  \- org.osgi:org.osgi.annotation.versioning:jar:1.0.0:compile
+|  |     |  \- io.smallrye:smallrye-config:jar:1.3.9:compile
+|  |     |     \- javax.enterprise:cdi-api:jar:2.0.SP1:compile
+|  |     |        +- javax.el:javax.el-api:jar:3.0.0:compile
+|  |     |        \- javax.interceptor:javax.interceptor-api:jar:1.2:compile
+|  |     +- org.jboss.resteasy:resteasy-core-spi:jar:4.4.1.Final:compile
+|  |     +- org.jboss.resteasy:resteasy-servlet-initializer:jar:4.4.1.Final:compile
+|  |     +- org.jboss.resteasy:resteasy-spring:jar:4.4.1.Final:compile
+|  |     |  +- org.jboss.resteasy:resteasy-client:jar:4.4.1.Final:compile
+|  |     |  |  \- org.jboss.resteasy:resteasy-client-api:jar:4.4.1.Final:compile
+|  |     |  \- org.apache.httpcomponents:httpclient:jar:4.5.10:compile
+|  |     |     \- org.apache.httpcomponents:httpcore:jar:4.4.12:compile
+|  |     +- org.jboss.resteasy:resteasy-jackson2-provider:jar:4.4.1.Final:compile
+|  |     |  +- org.jboss.resteasy:resteasy-jaxb-provider:jar:4.4.1.Final:compile
+|  |     |  |  \- org.glassfish.jaxb:jaxb-runtime:jar:2.3.2:compile
+|  |     |  |     +- org.glassfish.jaxb:txw2:jar:2.3.2:compile
+|  |     |  |     +- com.sun.istack:istack-commons-runtime:jar:3.0.8:compile
+|  |     |  |     +- org.jvnet.staxex:stax-ex:jar:1.8.1:compile
+|  |     |  |     \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.16:compile
+|  |     |  \- com.github.fge:json-patch:jar:1.9:compile
+|  |     |     \- com.github.fge:jackson-coreutils:jar:1.6:compile
+|  |     |        \- com.github.fge:msg-simple:jar:1.1:compile
+|  |     |           \- com.github.fge:btf:jar:1.2:compile
+|  |     +- javax.servlet:javax.servlet-api:jar:4.0.1:compile
+|  |     +- javax.annotation:javax.annotation-api:jar:1.3.2:compile
+|  |     +- org.glassfish:javax.json:jar:1.1.2:compile
+|  |     |  \- javax.json:javax.json-api:jar:1.1.4:compile
+|  |     +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.10.1:compile
+|  |     |  \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.10.1:compile
+|  |     \- commons-codec:commons-codec:jar:1.13:compile
+|  +- org.apache.isis.core:isis-security-api:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  \- org.apache.isis.core:isis-config:jar:2.0.0-M3-SNAPSHOT:compile
 |  +- org.apache.isis.core:isis-security-bypass:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  \- org.apache.isis.core:isis-runtime-services:jar:2.0.0-M3-SNAPSHOT:compile
@@ -139,35 +158,41 @@ org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
 |  |  |  \- org.apache.shiro:shiro-event:jar:1.4.1:compile
 |  |  \- org.apache.shiro:shiro-web:jar:1.4.1:compile
 |  +- org.apache.isis.core:isis-security-keycloak:jar:2.0.0-M3-SNAPSHOT:compile
-|  \- com.google.guava:guava:jar:28.1-jre:compile
-|     +- com.google.guava:failureaccess:jar:1.0.1:compile
-|     +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
-|     +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
-|     +- org.checkerframework:checker-qual:jar:2.8.1:compile
-|     +- com.google.errorprone:error_prone_annotations:jar:2.3.2:compile
-|     +- com.google.j2objc:j2objc-annotations:jar:1.3:compile
-|     \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:compile
+|  \- org.apache.isis.core:isis-webboot-springboot:jar:2.0.0-M3-SNAPSHOT:compile
 +- org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:2.0.0-M3-SNAPSHOT:compile
-+- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.1.RELEASE:compile
-|  +- org.springframework.boot:spring-boot-actuator:jar:2.2.1.RELEASE:compile
-|  |  \- org.springframework.boot:spring-boot:jar:2.2.1.RELEASE:compile
-|  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.1.RELEASE:compile
-|  +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0:compile
-|  +- org.springframework:spring-core:jar:5.2.1.RELEASE:compile
-|  |  \- org.springframework:spring-jcl:jar:5.2.1.RELEASE:compile
-|  +- org.springframework:spring-context:jar:5.2.1.RELEASE:compile
-|  |  +- org.springframework:spring-aop:jar:5.2.1.RELEASE:compile
-|  |  +- org.springframework:spring-beans:jar:5.2.1.RELEASE:compile
-|  |  \- org.springframework:spring-expression:jar:5.2.1.RELEASE:compile
-|  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.0:compile
-+- com.h2database:h2:jar:1.4.200:compile
++- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.2.RELEASE:compile
+|  +- org.springframework.boot:spring-boot-actuator:jar:2.2.2.RELEASE:compile
+|  |  \- org.springframework.boot:spring-boot:jar:2.2.2.RELEASE:compile
+|  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.2.RELEASE:compile
+|  +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.1:compile
+|  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.1:compile
+|  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.10.1:compile
+|  +- org.springframework:spring-core:jar:5.2.2.RELEASE:compile
+|  |  \- org.springframework:spring-jcl:jar:5.2.2.RELEASE:compile
+|  +- org.springframework:spring-context:jar:5.2.2.RELEASE:compile
+|  |  +- org.springframework:spring-aop:jar:5.2.2.RELEASE:compile
+|  |  +- org.springframework:spring-beans:jar:5.2.2.RELEASE:compile
+|  |  \- org.springframework:spring-expression:jar:5.2.2.RELEASE:compile
+|  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.1:compile
++- org.apache.isis.extensions:isis-extensions-h2console-dom:jar:2.0.0-M3-SNAPSHOT:compile
+|  +- org.apache.isis.core:isis-webapp:jar:2.0.0-M3-SNAPSHOT:compile
+|  |  \- org.springframework.boot:spring-boot-starter-thymeleaf:jar:2.2.2.RELEASE:compile
+|  |     +- org.thymeleaf:thymeleaf-spring5:jar:3.0.11.RELEASE:compile
+|  |     |  \- org.thymeleaf:thymeleaf:jar:3.0.11.RELEASE:compile
+|  |     |     +- org.attoparser:attoparser:jar:2.0.5.RELEASE:compile
+|  |     |     \- org.unbescape:unbescape:jar:1.1.6.RELEASE:compile
+|  |     \- org.thymeleaf.extras:thymeleaf-extras-java8time:jar:3.0.4.RELEASE:compile
+|  \- com.h2database:h2:jar:1.4.200:compile
 +- org.apache.isis.mavendeps:isis-mavendeps-testing:pom:2.0.0-M3-SNAPSHOT:test
 |  +- org.apache.isis.core:isis-unittestsupport:jar:2.0.0-M3-SNAPSHOT:test
+|  |  +- net.bytebuddy:byte-buddy:jar:1.10.4:compile
 |  |  +- org.mockito:mockito-core:jar:3.1.0:test
+|  |  |  \- org.objenesis:objenesis:jar:2.2:compile
+|  |  +- org.apache.isis.core:isis-codegen-bytebuddy:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  +- org.slf4j:slf4j-api:jar:1.7.29:compile
-|  |  +- org.springframework.boot:spring-boot-starter-test:jar:2.2.1.RELEASE:test
-|  |  |  +- org.springframework.boot:spring-boot-test:jar:2.2.1.RELEASE:test
-|  |  |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.1.RELEASE:test
+|  |  +- org.springframework.boot:spring-boot-starter-test:jar:2.2.2.RELEASE:test
+|  |  |  +- org.springframework.boot:spring-boot-test:jar:2.2.2.RELEASE:test
+|  |  |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.2.RELEASE:test
 |  |  |  +- com.jayway.jsonpath:json-path:jar:2.4.0:test
 |  |  |  |  \- net.minidev:json-smart:jar:2.3:test
 |  |  |  |     \- net.minidev:accessors-smart:jar:1.2:test
@@ -178,7 +203,7 @@ org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
 |  |  |  +- org.skyscreamer:jsonassert:jar:1.5.0:test
 |  |  |  |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
 |  |  |  \- org.xmlunit:xmlunit-core:jar:2.6.3:test
-|  |  +- org.springframework:spring-test:jar:5.2.1.RELEASE:test
+|  |  +- org.springframework:spring-test:jar:5.2.2.RELEASE:test
 |  |  \- org.jmock:jmock-junit4:jar:2.11.0:test
 |  |     +- org.jmock:jmock-legacy:jar:2.11.0:test
 |  |     |  \- cglib:cglib:jar:3.2.8:test
@@ -187,6 +212,10 @@ org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
 |  +- org.hamcrest:hamcrest-library:jar:2.1:test
 |  |  \- org.hamcrest:hamcrest-core:jar:2.1:test
 |  +- org.assertj:assertj-core:jar:3.13.2:test
+|  +- org.hibernate.validator:hibernate-validator:jar:6.0.18.Final:compile
+|  |  +- javax.validation:validation-api:jar:2.0.1.Final:compile
+|  |  +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
+|  |  \- com.fasterxml:classmate:jar:1.5.1:compile
 |  +- com.approvaltests:approvaltests:jar:4.0.2:test
 |  |  \- com.approvaltests:approvaltests-util:jar:4.0.2:test
 |  +- org.picocontainer:picocontainer:jar:2.15:test
@@ -194,16 +223,15 @@ org.apache.isis.examples.apps:simpleapp-webapp:jar:2.0.0-M3-SNAPSHOT
 +- org.apache.isis.extensions:isis-extensions-specsupport:jar:2.0.0-M3-SNAPSHOT:test
 |  +- org.apache.isis.core:isis-runtime:jar:2.0.0-M3-SNAPSHOT:compile
 |  |  +- org.apache.isis.core:isis-metamodel:jar:2.0.0-M3-SNAPSHOT:compile
-|  |  |  \- io.swagger:swagger-core:jar:1.5.21:compile
-|  |  |     +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.0:compile
-|  |  |     \- io.swagger:swagger-models:jar:1.5.21:compile
-|  |  |        \- io.swagger:swagger-annotations:jar:1.5.21:compile
+|  |  |  \- io.swagger:swagger-core:jar:1.6.0:compile
+|  |  |     +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.10.1:compile
+|  |  |     \- io.swagger:swagger-models:jar:1.6.0:compile
+|  |  |        \- io.swagger:swagger-annotations:jar:1.6.0:compile
 |  |  \- org.apache.commons:commons-email:jar:1.4:compile
-|  +- org.apache.isis.core:isis-runtime-extensions:jar:2.0.0-M3-SNAPSHOT:compile
-|  +- org.junit.jupiter:junit-jupiter-api:jar:5.5.2:test
-|  |  +- org.apiguardian:apiguardian-api:jar:1.1.0:test
-|  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
-|  |  \- org.junit.platform:junit-platform-commons:jar:1.5.2:test
+|  +- org.junit.jupiter:junit-jupiter-api:jar:5.5.2:compile
+|  |  +- org.apiguardian:apiguardian-api:jar:1.1.0:compile
+|  |  +- org.opentest4j:opentest4j:jar:1.2.0:compile
+|  |  \- org.junit.platform:junit-platform-commons:jar:1.5.2:compile
 |  +- org.junit.jupiter:junit-jupiter-engine:jar:5.5.2:test
 |  |  \- org.junit.platform:junit-platform-engine:jar:1.5.2:test
 |  +- org.junit.vintage:junit-vintage-engine:jar:5.5.2:test
diff --git a/webapp/translations.po b/webapp/translations.po
new file mode 100644
index 0000000..3b6d69c
--- /dev/null
+++ b/webapp/translations.po
@@ -0,0 +1,463 @@
+
+
+##############################################################################
+#
+# .pot file
+#
+# Translate this file to each required language and place in WEB-INF, eg:
+#
+#     /WEB-INF/translations-en_US.po
+#     /WEB-INF/translations-en.po
+#     /WEB-INF/translations-fr_FR.po
+#     /WEB-INF/translations-fr.po
+#     /WEB-INF/translations.po
+#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
+##############################################################################
+
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2020-01-09 14:23:34+\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelCsv(java.lang.String)
+msgid ".csv file name"
+msgstr ""
+
+
+#: org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
+msgid ".pot file name"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelXml(java.lang.String,java.util.List,boolean)
+msgid ".xml file name"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXml#act()
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXsd#act()
+#: org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml#act()
+#: org.apache.isis.applib.mixins.layout.Object_openRestApi#act()
+#: org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel#act()
+#: org.apache.isis.applib.mixins.metamodel.Object_downloadMetaModelXml#act()
+#: org.apache.isis.applib.services.bookmark.BookmarkHolder_lookup#act()
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_downloadJdoMetadata#act()
+msgid "Act"
+msgstr ""
+
+
+#: org.apache.isis.runtime.system.session.IsisSessionFactory
+msgid "Are you sure?"
+msgstr ""
+
+
+#: org.apache.isis.commons.internal.ioc.spring.BeanAdapterSpring#beanClass
+msgid "Bean Class"
+msgstr ""
+
+
+#: org.apache.isis.runtime.system.session.IsisSessionFactory
+msgid "Cancel"
+msgstr ""
+
+
+#: org.apache.isis.commons.collections.Can#cardinalityMultiple
+msgid "Cardinality Multiple"
+msgstr ""
+
+
+#: org.apache.isis.commons.collections.Can#cardinalityOne
+msgid "Cardinality One"
+msgstr ""
+
+
+#: org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
+msgid "Clear translation cache"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutService$Style#COMPLETE
+msgid "Complete"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.confview.ConfigurationMenu#configuration()
+msgid "Configuration"
+msgstr ""
+
+
+#: org.apache.isis.runtime.system.session.IsisSessionFactory
+msgid "Confirm"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObjects#create()
+msgid "Create"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutService$Style#CURRENT
+msgid "Current"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.menu.MenuBarsService$Type#DEFAULT
+msgid "Default"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#delete()
+msgid "Delete"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#downloadJdoMetadata()
+msgid "Download Jdo Metadata"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#downloadLayoutXml()
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#downloadLayoutXml()
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#downloadLayoutXml()
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#downloadLayoutXml()
+msgid "Download Layout Xml"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutServiceMenu#downloadMenuBarsLayout()
+msgid "Download Menu Bars Layout (XML)"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelCsv()
+msgid "Download Meta Model (CSV)"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelXml()
+msgid "Download Meta Model (XML)"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#downloadMetaModelXml()
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#downloadMetaModelXml()
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#downloadMetaModelXml()
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#downloadMetaModelXml()
+msgid "Download Meta Model Xml"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutServiceMenu#downloadLayouts()
+msgid "Download Object Layouts (ZIP)"
+msgstr ""
+
+
+#: org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
+msgid "Download Translations"
+msgstr ""
+
+
+#: org.apache.isis.commons.collections.Can#empty
+msgid "Empty"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.menu.MenuBarsService$Type#FALLBACK
+msgid "Fallback"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXml#act(java.lang.String)
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXsd#act(java.lang.String,org.apache.isis.applib.services.jaxb.JaxbService$IsisSchemas)
+#: org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml#act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService$Style)
+#: org.apache.isis.applib.mixins.metamodel.Object_downloadMetaModelXml#act(java.lang.String)
+#: org.apache.isis.applib.services.layout.LayoutServiceMenu#downloadMenuBarsLayout(java.lang.String,org.apache.isis.applib.services.menu.MenuBarsService$Type)
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_downloadJdoMetadata#act(java.lang.String)
+msgid "File name"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXml#act(java.lang.String)
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXsd#act(java.lang.String,org.apache.isis.applib.services.jaxb.JaxbService$IsisSchemas)
+#: org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml#act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService$Style)
+#: org.apache.isis.applib.mixins.metamodel.Object_downloadMetaModelXml#act(java.lang.String)
+msgid "File name extension can be omitted."
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObjects#findByName()
+msgid "Find By Name"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#fixtureScriptByFriendlyName
+msgid "Fixture Script By Friendly Name"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#fixtureScriptClassName
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#runFixtureScript(java.lang.String,java.lang.String)
+msgid "Fixture script"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript#friendlyName
+msgid "Friendly Name"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#datanucleusIdLong()
+#: org.apache.isis.commons.internal.ioc.spring.BeanAdapterSpring#id
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusIdLong#prop()
+msgid "Id"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.jaxb.JaxbService$IsisSchemas#IGNORE
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts$NonPersistedObjectsStrategy#IGNORE
+msgid "Ignore"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelXml(java.lang.String,java.util.List,boolean)
+msgid "Ignore Interfaces"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.jaxb.JaxbService$IsisSchemas#INCLUDE
+msgid "Include"
+msgstr ""
+
+
+#: org.apache.isis.commons.internal.ioc.spring.BeanAdapterSpring#instance
+msgid "Instance"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.dto.Dto_downloadXsd#act(java.lang.String,org.apache.isis.applib.services.jaxb.JaxbService$IsisSchemas)
+msgid "Isis Schemas"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#key
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#key
+msgid "Key"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObjects#listAll()
+msgid "List All"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutService$Style#MINIMAL
+msgid "Minimal"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#name
+#: domainapp.modules.simple.dom.impl.SimpleObject#updateName(java.lang.String)
+#: domainapp.modules.simple.dom.impl.SimpleObjects#create(java.lang.String)
+#: domainapp.modules.simple.dom.impl.SimpleObjects#findByName(java.lang.String)
+msgid "Name"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#nonPersistedObjectsStrategy
+msgid "Non Persisted Objects Strategy"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutService$Style#NORMALIZED
+msgid "Normalized"
+msgstr ""
+
+
+#: org.apache.isis.commons.collections.Can#notEmpty
+msgid "Not Empty"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#notes
+msgid "Notes"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#objectIdentifier()
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#objectIdentifier()
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#objectIdentifier()
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#objectIdentifier()
+msgid "Object Identifier"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#objectType()
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#objectType()
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#objectType()
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#objectType()
+msgid "Object Type"
+msgstr ""
+
+
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#objects
+msgid "Objects"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#openRestApi()
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#openRestApi()
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#openRestApi()
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#openRestApi()
+msgid "Open Rest Api"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelXml(java.lang.String,java.util.List,boolean)
+msgid "Packages"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#runFixtureScript(java.lang.String,java.lang.String)
+msgid "Parameters"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts$NonPersistedObjectsStrategy#PERSIST
+msgid "Persist"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.metamodel.Object_objectIdentifier#prop()
+#: org.apache.isis.applib.mixins.metamodel.Object_objectType#prop()
+#: org.apache.isis.applib.services.bookmark.BookmarkHolder_object#prop()
+msgid "Prop"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutServiceMenu
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts
+#: org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu
+msgid "Prototyping"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript#qualifiedName
+msgid "Qualified Name"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#rebuildMetamodel()
+#: domainapp.webapp.application.services.homepage.HomePageViewModel#rebuildMetamodel()
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#rebuildMetamodel()
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#rebuildMetamodel()
+msgid "Rebuild Metamodel"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#recreateObjectsAndReturnFirst()
+msgid "Recreate Objects And Return First"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#object
+msgid "Result"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureResult#className
+msgid "Result class"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#runFixtureScript()
+msgid "Run Fixture Script"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#runFixtureScript(java.lang.String,java.lang.String)
+msgid "Script-specific parameters (if any).  The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+msgstr ""
+
+
+#: org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts#specification
+msgid "Specification"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml#act(java.lang.String,org.apache.isis.applib.services.layout.LayoutService$Style)
+#: org.apache.isis.applib.services.layout.LayoutServiceMenu#downloadLayouts(org.apache.isis.applib.services.layout.LayoutService$Style)
+msgid "Style"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.metamodel.MetaModelServicesMenu#downloadMetaModelXml(java.lang.String,java.util.List,boolean)
+msgid "Subset of the complete meta model, only including packages starting with given prefix."
+msgstr ""
+
+
+#: org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
+msgid "Switch To Reading Translations"
+msgstr ""
+
+
+#: org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
+msgid "Switch To Writing Translations"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.layout.LayoutServiceMenu#downloadMenuBarsLayout(java.lang.String,org.apache.isis.applib.services.menu.MenuBarsService$Type)
+msgid "Type"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#updateName()
+msgid "Update Name"
+msgstr ""
+
+
+#: org.apache.isis.applib.services.confview.ConfigurationProperty#value
+msgid "Value"
+msgstr ""
+
+
+#: domainapp.modules.simple.dom.impl.SimpleObject#datanucleusVersionLong()
+#: domainapp.modules.simple.dom.impl.SimpleObject#datanucleusVersionTimestamp()
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusVersionLong#prop()
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusVersionTimestamp#prop()
+msgid "Version"
+msgstr ""
+
+
+#: org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml
+#: org.apache.isis.applib.mixins.layout.Object_openRestApi
+#: org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel
+#: org.apache.isis.applib.mixins.metamodel.Object_downloadMetaModelXml
+#: org.apache.isis.applib.mixins.metamodel.Object_objectIdentifier
+#: org.apache.isis.applib.mixins.metamodel.Object_objectType
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusIdLong
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusVersionLong
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusVersionTimestamp
+#: org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_downloadJdoMetadata
+msgid "metadata"
+msgstr ""
+
+
+
+
+
+##############################################################################
+# end of .pot file
+##############################################################################
+