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/02/01 09:09:14 UTC

[isis] 02/04: ISIS-2444: improvements on overview and index tooling commands

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

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

commit 5510619699a4780da6eee8fdc31ddc79d9760345
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Jan 31 18:39:04 2021 +0000

    ISIS-2444: improvements on overview and index tooling commands
    
    ... and adding documentation.
---
 .../modules/ROOT/pages/cutting-a-release.adoc      |   13 +
 .../components/system/modules/generated/nav.adoc   |    3 +
 .../modules/generated/pages/system-overview.adoc   | 5526 ++++++++++----------
 antora/supplemental-ui/css/site-custom.css         |    7 +-
 antora/supplemental-ui/index.html                  |    2 +-
 core/adoc/modules/ROOT/nav.adoc                    |    3 +
 .../cli/adoc/modules/tooling-cli/pages/about.adoc  |  197 +-
 .../main/java/org/apache/isis/tooling/cli/Cli.java |    7 +-
 .../isis/tooling/cli/projdoc/ProjectDocModel.java  |   18 +-
 .../ProjectDocModel_sanitizeDescription_Test.java  |   35 +
 .../isis/tooling/model4adoc/AsciiDocFactory.java   |  118 +-
 11 files changed, 3121 insertions(+), 2808 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
index 69faa5d..843955c 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -127,6 +127,19 @@ licenses to remove from supplemental-models.xml (are spurious):
 
 If any missing entries are listed or are spurious, then update `supplemental-models.xml` and try again.
 
+
+=== Update and preview website
+
+Generate the website, ensuring that the config, examples, overview and index are all updated:
+
+[source,bash,subs="attributes+"]
+----
+sh preview.sh
+----
+
+Check for any Asciidoc errors, and fix.
+
+
 === Commit changes
 
 Commit any changes from the preceding steps:
diff --git a/antora/components/system/modules/generated/nav.adoc b/antora/components/system/modules/generated/nav.adoc
new file mode 100644
index 0000000..b250194
--- /dev/null
+++ b/antora/components/system/modules/generated/nav.adoc
@@ -0,0 +1,3 @@
+* see also:
+** xref:core::about.adoc[Core Framework]
+
diff --git a/antora/components/system/modules/generated/pages/system-overview.adoc b/antora/components/system/modules/generated/pages/system-overview.adoc
index 82fbe17..57a6b30 100644
--- a/antora/components/system/modules/generated/pages/system-overview.adoc
+++ b/antora/components/system/modules/generated/pages/system-overview.adoc
@@ -3,12 +3,12 @@
 
 These tables summarize all Maven artifacts available with _Apache Isis_.
 
-== Base
+== App
 
-[plantuml,Base,svg]
+[plantuml,App,svg]
 ----
-@startuml(id=Base)
-title Base - Containers
+@startuml(id=App)
+title App - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -24,151 +24,34 @@ skinparam rectangle<<2>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<3>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<4>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<5>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Base\n[Software System]" {
-  rectangle "==Apache Isis\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
-  rectangle "==Apache Isis (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis - Antora\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+package "App\n[Software System]" {
+  rectangle "==Apache Isis Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
 }
-2 .[#707070].> 4 : ""
-2 .[#707070].> 3 : ""
 @enduml
 ----
-.Projects/Modules (Base)
+.Projects/Modules (App)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis (Aggregator)
-[source,yaml]
-----
-Group: org.apache.isis
-Artifact: isis-all
-Type: pom
-Folder: /
-----
-|Convenience aggregator POM that references all modules, some explicitely,
-        others via profiles, that are not activiated per default.
-        The parent POM of the core framework is isis-parent/pom.xml.
-
-|Apache Isis - Antora
-[source,yaml]
-----
-Group: org.apache.isis
-Artifact: antora
-Type: pom
-Folder: \antora
-----
-|
-
-|Apache Isis
+|Apache Isis Starter Parent
 [source,yaml]
 ----
-Group: org.apache.isis
-Artifact: isis-parent
+Group: org.apache.isis.app
+Artifact: isis-app-starter-parent
 Type: pom
-Folder: \isis-parent
-----
-|Parent for the core framework + extensions, starter parent pom for starter apps.
-
-|Apache Isis Supplemental - Legal Info
-[source,yaml]
-----
-Group: org.apache.isis
-Artifact: supplemental-model
-Type: jar
-Folder: \supplemental-model
-----
-|For example, the templates used by many Apache distributions assemble a listing of project dependencies 
-  	according to their organization name (and URL), along with the URL each project's website. When dependency 
-  	POMs are missing this information, the dependency notice file that the Remote Resources Plugin renders can 
-  	be invalid.
-	To compensate for incomplete dependency POMs, we use the supplemental models support.
-|===
-
-== Commons
-
-[plantuml,Commons,svg]
-----
-@startuml(id=Commons)
-title Commons - Containers
-caption Artifact Hierarchy (Maven)
-
-skinparam {
-  shadowing false
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
-}
-hide stereotype
-skinparam rectangle<<2>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Commons\n[Software System]" {
-  rectangle "==Apache Isis Commons\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
-}
-@enduml
-----
-.Projects/Modules (Commons)
-[cols="3a,5a", options="header"]
-|===
-|Coordinates |Description 
-
-|Apache Isis Commons
-[source,yaml]
-----
-Group: org.apache.isis.commons
-Artifact: isis-commons
-Type: jar
-Folder: \commons
+Folder: \starters
 ----
-|Apache Isis Commons is a library with utilities, that are shared with the entire Apache Isis ecosystem.
-
-_Dependencies_
-
-* com.fasterxml.jackson.core:jackson-databind:jar:<managed>
-* com.google.code.findbugs:annotations:jar:<managed>
-* javax:javaee-api:jar:<managed>
-* org.junit.jupiter:junit-jupiter-api:jar:<managed>
-* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
-* org.junit.jupiter:junit-jupiter-params:jar:<managed>
-* org.junit.vintage:junit-vintage-engine:jar:<managed>
-* org.slf4j:slf4j-api:jar:<managed>
-* org.springframework:spring-context:jar:<managed>
-* org.springframework:spring-tx:jar:<managed>
-* org.springframework.boot:spring-boot-starter:jar:<managed>
-* org.springframework.boot:spring-boot-starter-log4j2:jar:<managed>
-* org.yaml:snakeyaml:jar:<managed>
-
-_Document Index Entries_
-
-xref:system:generated:index/commons/functional/Result.adoc[Result], xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId], xref:system:generated:index/commons/having/HasUpdatedAt.adoc[HasUpdatedAt], xref:system:generated:index/commons/having/HasUpdatedBy.adoc[HasUpdatedBy], xref:system:generated:index/commons/having/HasUsername.adoc[HasUsername], xref:system:generated:index/commons/resource/ResourceCoordinates.adoc[ResourceCoordinates]
+|Parent pom providing dependency and plugin management for Apache Isis applications
+built with Maven.  Builds on top of spring-boot-starter-parent.
 |===
 
-== Core
+== Mavendeps
 
-[plantuml,Core,svg]
+[plantuml,Mavendeps,svg]
 ----
-@startuml(id=Core)
-title Core - Containers
+@startuml(id=Mavendeps)
+title Mavendeps - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -179,31 +62,6 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<11>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<12>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<13>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<14>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<15>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -244,461 +102,169 @@ skinparam rectangle<<9>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<10>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Core\n[Software System]" {
-  rectangle "==Apache Isis - JDK Supplemental\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
-  rectangle "==Apache Isis Core\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis Core - AppLib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
-  rectangle "==Apache Isis Core - Code Gen (ByteBuddy)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Core - Configuration\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Core - Interaction\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
-  rectangle "==Apache Isis Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
-  rectangle "==Apache Isis Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Core - Schemas\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
-  rectangle "==Apache Isis Core - Security\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
-  rectangle "==Apache Isis Core - Transaction\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
-  rectangle "==Apache Isis Core - Unit Test Support\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Core - WebApp\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
+package "Mavendeps\n[Software System]" {
+  rectangle "==Apache Isis Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Maven Deps - BDD Integ Spec\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+  rectangle "==Apache Isis Maven Deps - Integration Testing\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
+  rectangle "==Apache Isis Maven Deps - JDK11\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+  rectangle "==Apache Isis Maven Deps - JDO\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
+  rectangle "==Apache Isis Maven Deps - JPA\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+  rectangle "==Apache Isis Maven Deps - Testing\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
+  rectangle "==Apache Isis Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
 }
-2 .[#707070].> 14 : ""
 2 .[#707070].> 3 : ""
 2 .[#707070].> 4 : ""
 2 .[#707070].> 5 : ""
 2 .[#707070].> 6 : ""
+2 .[#707070].> 7 : ""
 2 .[#707070].> 8 : ""
 2 .[#707070].> 9 : ""
-2 .[#707070].> 10 : ""
-2 .[#707070].> 15 : ""
-2 .[#707070].> 11 : ""
-2 .[#707070].> 12 : ""
-2 .[#707070].> 7 : ""
-2 .[#707070].> 13 : ""
 @enduml
 ----
-.Projects/Modules (Core)
+.Projects/Modules (Mavendeps)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Core
+|Apache Isis Maven Deps
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-core
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps
 Type: pom
-Folder: \core
+Folder: \mavendeps
 ----
-|Core framework, providing metamodel, runtime and core APIs.
+|Collection of Apache Isis Maven Dependency Bundles.
+
+|Apache Isis Maven Deps - BDD Integ Spec
+[source,yaml]
+----
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-integspecs
+Type: pom
+Folder: \mavendeps\integspecs
+----
+|Defines a module that can be used as a single dependency for BDD (Cucumber) specs as integration tests.
 
 _Dependencies_
 
-* org.projectlombok:lombok:jar:<managed>
+* org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed>
 
-|Apache Isis Core - AppLib
+|Apache Isis Maven Deps - Integration Testing
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-applib
-Type: jar
-Folder: \api\applib
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-integtests
+Type: pom
+Folder: \mavendeps\integtests
 ----
-|Isis application library, defining annotations and utilities for the
-        default (Java) programming model.
-
-_Components_
-
-* o.a.i.applib.annotation.DomainObject
-* o.a.i.applib.annotation.DomainService
-* o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto
-* o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto
-* o.a.i.applib.services.commanddto.processor.spi.CommandDtoProcessorServiceIdentity
-* o.a.i.applib.services.publishing.log.CommandLogger
-* o.a.i.applib.services.publishing.log.EntityChangesLogger
-* o.a.i.applib.services.publishing.log.EntityPropertyChangeLogger
-* o.a.i.applib.services.publishing.log.ExecutionLogger
-* o.a.i.applib.services.session.SessionLoggingServiceLogging
+|Defines a module that can be used as a single dependency for integration tests.
 
 _Dependencies_
 
-* com.google.code.findbugs:annotations:jar:<managed>
-* javax:javaee-api:jar:<managed>
-* org.apache.isis.commons:isis-commons:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-schema:jar:<managed>
-* org.assertj:assertj-core:jar:<managed>
-* org.jmock:jmock:jar:<managed>
-
-_Document Index Entries_
+* org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
 
-xref:system:generated:index/applib/AbstractViewModel.adoc[AbstractViewModel], xref:system:generated:index/applib/Identifier.adoc[Identifier], xref:system:generated:index/applib/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:system:generated:index/applib/ViewModel.adoc[ViewModel], xref:system:generated:index/applib/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider],  [...]
-
-|Apache Isis Core - Code Gen (ByteBuddy)
+|Apache Isis Maven Deps - JDK11
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-core-codegen-bytebuddy
-Type: jar
-Folder: \core\codegen-bytebuddy
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-jdk11
+Type: pom
+Folder: \mavendeps\jdk11
 ----
-|Code generation using ByteBuddy.
-
-_Components_
-
-* o.a.i.core.codegen.bytebuddy.services.ProxyFactoryServiceByteBuddy
-
-_Dependencies_
-
-* net.bytebuddy:byte-buddy:jar:<managed>
-* org.apache.isis.commons:isis-commons:jar:<managed>
-* org.objenesis:objenesis:jar:<managed>
+|Defines a module to bring in dependencies that were part of JDK 8 but
+had been removed with JDK 11+. These dependencies are activated when the
+consuming project is built with JDK 11 or higher.
 
-|Apache Isis Core - Configuration
+|Apache Isis Maven Deps - JDO
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-core-config
-Type: jar
-Folder: \core\config
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-jdo
+Type: pom
+Folder: \mavendeps\jdo
 ----
-|Isis configuration library for framework internal use.
-
-_Components_
-
-* o.a.i.core.config.beans.IsisBeanFactoryPostProcessorForSpring
-* o.a.i.core.config.beans.IsisBeanTypeRegistryDefault
-* o.a.i.core.config.converters.PatternsConverter
-* o.a.i.core.config.environment.IsisLocaleInitializer
-* o.a.i.core.config.environment.IsisSystemEnvironment
-* o.a.i.core.config.environment.IsisTimeZoneInitializer
-* o.a.i.core.config.validators.PatternOptionalStringConstraintValidator
-* o.a.i.core.config.viewer.wicket.WebAppContextPath
+|Defines a module that provides the default JDO persistence layer integration
+for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
 
 _Dependencies_
 
-* org.apache.isis.commons:isis-commons:jar:<managed>
 * org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.hibernate.validator:hibernate-validator:jar:<managed>
-* org.springframework.boot:spring-boot-configuration-processor:jar:<managed>
-
-|Apache Isis Core - Interaction
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-core-interaction
-Type: jar
-Folder: \core\interaction
-----
-|Provides _Interaction Scope_.
-    	Top level action execution or property changes are wrapped in an _Interaction_.
-    	That typically corresponds to a http request/response cycle or a JUnit test method execution.
-
-_Components_
-
-* o.a.i.core.interaction.integration.InteractionAwareTransactionalBoundaryHandler
-* o.a.i.core.interaction.scope.InteractionScopeBeanFactoryPostProcessor
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-
-|Apache Isis Core - Unit Test Support
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-core-internaltestsupport
-Type: jar
-Folder: \core\internaltestsupport
-----
-|Support for writing unit tests in either JUnit 4 or JUnit 5; should be added as a dependency with scope=test only
-
-_Dependencies_
-
-* net.bytebuddy:byte-buddy:jar:<managed>
-* org.apache.isis.commons:isis-commons:jar:<managed>
-* org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed>
-* org.assertj:assertj-core:jar:<managed>
-* org.datanucleus:javax.jdo:jar:<managed>
-* org.hamcrest:hamcrest-library:jar:<managed>
-* org.jmock:jmock:jar:<managed>
-* org.jmock:jmock-junit4:jar:<managed>
-* org.junit.jupiter:junit-jupiter-api:jar:<managed>
-* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
-* org.junit.vintage:junit-vintage-engine:jar:<managed>
-* org.mockito:mockito-core:jar:<managed>
-* org.picocontainer:picocontainer:jar:<managed>
-* org.slf4j:slf4j-api:jar:${slf4j-api.version}
-* org.springframework:spring-test:jar:<managed>
-* org.springframework.boot:spring-boot-starter-test:jar:<managed>
+* org.apache.isis.core:isis-schema:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed>
 
-|Apache Isis Core - MetaModel
+|Apache Isis Maven Deps - JPA
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-core-metamodel
-Type: jar
-Folder: \core\metamodel
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-jpa
+Type: pom
+Folder: \mavendeps\jpa
 ----
-|_Components_
-
-* o.a.i.core.metamodel.facets.schema.IsisSchemaMetaModelRefiner
-* o.a.i.core.metamodel.facets.schema.IsisSchemaValueTypeProvider
-* o.a.i.core.metamodel.objectmanager.ObjectManagerDefault
-* o.a.i.core.metamodel.progmodel.ProgrammingModelInitFilterDefault
-* o.a.i.core.metamodel.services.ServiceInjectorDefault
-* o.a.i.core.metamodel.services.appfeat.ApplicationFeatureFactory
-* o.a.i.core.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault
-* o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorDefault
-* o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorForCollections
-* o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorForDomainObjects
-* o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry
-* o.a.i.core.metamodel.services.events.MetamodelEventService
-* o.a.i.core.metamodel.services.exceprecog.ExceptionRecognizerForRecoverableException
-* o.a.i.core.metamodel.services.grid.GridLoaderServiceDefault
-* o.a.i.core.metamodel.services.grid.GridReaderUsingJaxb
-* o.a.i.core.metamodel.services.grid.GridServiceDefault
-* o.a.i.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3
-* o.a.i.core.metamodel.services.layout.LayoutServiceDefault
-* o.a.i.core.metamodel.services.metamodel.MetaModelServiceDefault
-* o.a.i.core.metamodel.services.registry.ServiceRegistryDefault
-* o.a.i.core.metamodel.services.tablecol.TableColumnOrderServiceDefault
-* o.a.i.core.metamodel.services.title.TitleServiceDefault
-* o.a.i.core.metamodel.specloader.InjectorMethodEvaluatorDefault
-* o.a.i.core.metamodel.specloader.ProgrammingModelServiceDefault
-* o.a.i.core.metamodel.specloader.SpecificationLoaderDefault
-* o.a.i.core.metamodel.valuetypes.ValueTypeProviderDefault
-* o.a.i.core.metamodel.valuetypes.ValueTypeProviderForBuiltin
-* o.a.i.core.metamodel.valuetypes.ValueTypeProviderForCollections
-* o.a.i.core.metamodel.valuetypes.ValueTypeRegistry
+|Defines a module that provides the default JPA persistence layer integration
+for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
 
 _Dependencies_
 
-* io.swagger:swagger-core:jar:<managed>
 * org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-core-config:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-security:jar:<managed>
-* org.hibernate.validator:hibernate-validator:jar:<managed>
-* org.jmock:jmock:jar:<managed>
-
-|Apache Isis Core - Runtime
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-core-runtime
-Type: jar
-Folder: \core\runtime
-----
-|Bundles framework internal services, utilities and events.
-
-_Components_
-
-* o.a.i.core.runtime.events.MetamodelEventService
-* o.a.i.core.runtime.events.TransactionEventEmitter
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-interaction:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.core:isis-core-transaction:jar:<managed>
+* org.apache.isis.core:isis-schema:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-eclipselink:jar:<managed>
 
-|Apache Isis Core - Runtime Services
+|Apache Isis Maven Deps - Testing
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-core-runtimeservices
-Type: jar
-Folder: \core\runtimeservices
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-unittests
+Type: pom
+Folder: \mavendeps\unittests
 ----
-|Introduced to keep the 'runtime' package concise. Viewers don't have dependencies on this module.
-
-_Components_
-
-* o.a.i.core.runtimeservices.bookmarks.BookmarkServiceDefault
-* o.a.i.core.runtimeservices.clock.ClockServiceDefault
-* o.a.i.core.runtimeservices.command.CommandDtoServiceInternalDefault
-* o.a.i.core.runtimeservices.command.CommandExecutorServiceDefault
-* o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault
-* o.a.i.core.runtimeservices.email.EmailServiceDefault
-* o.a.i.core.runtimeservices.eventbus.EventBusServiceSpring
-* o.a.i.core.runtimeservices.executor.MemberExecutorServiceDefault
-* o.a.i.core.runtimeservices.factory.FactoryServiceDefault
-* o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault
-* o.a.i.core.runtimeservices.i18n.po.TranslationServicePo
-* o.a.i.core.runtimeservices.interaction.InteractionDtoServiceInternalDefault
-* o.a.i.core.runtimeservices.jaxb.JaxbServiceDefault
-* o.a.i.core.runtimeservices.menubars.MenuBarsLoaderServiceDefault
-* o.a.i.core.runtimeservices.menubars.bootstrap3.MenuBarsServiceBS3
-* o.a.i.core.runtimeservices.message.MessageServiceDefault
-* o.a.i.core.runtimeservices.publish.CommandPublisherDefault
-* o.a.i.core.runtimeservices.publish.EntityChangesPublisherDefault
-* o.a.i.core.runtimeservices.publish.EntityPropertyChangePublisherDefault
-* o.a.i.core.runtimeservices.publish.ExecutionPublisherDefault
-* o.a.i.core.runtimeservices.queryresultscache.QueryResultsCacheDefault
-* o.a.i.core.runtimeservices.recognizer.ExceptionRecognizerServiceDefault
-* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForDataAlreadyExists
-* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForObjectNotFound
-* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForOtherDataAccessProblem
-* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForRelatedDataExists
-* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForUnableToSaveData
-* o.a.i.core.runtimeservices.repository.RepositoryServiceDefault
-* o.a.i.core.runtimeservices.routing.RoutingServiceDefault
-* o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault
-* o.a.i.core.runtimeservices.session.InteractionFactoryDefault
-* o.a.i.core.runtimeservices.sudo.SudoServiceDefault
-* o.a.i.core.runtimeservices.transaction.TransactionServiceSpring
-* o.a.i.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression
-* o.a.i.core.runtimeservices.user.UserServiceDefault
-* o.a.i.core.runtimeservices.userprof.UserProfileServiceDefault
-* o.a.i.core.runtimeservices.userreg.EmailNotificationServiceDefault
-* o.a.i.core.runtimeservices.wrapper.WrapperFactoryDefault
-* o.a.i.core.runtimeservices.xml.XmlServiceDefault
-* o.a.i.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault
+|Defines a module that can be used as a single dependency for a set of common testing libraries.
 
 _Dependencies_
 
-* org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.hsqldb:hsqldb:jar:<managed>
-
-_Document Index Entries_
-
-xref:system:generated:index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc[ExceptionRecognizerForOtherDataAccessProblem], xref:system:generated:index/core/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:system:generated:index/core/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault]
+* org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
 
-|Apache Isis Core - Security
+|Apache Isis Maven Deps - Webapp
 [source,yaml]
 ----
-Group: org.apache.isis.core
-Artifact: isis-core-security
-Type: jar
-Folder: \core\security
+Group: org.apache.isis.mavendeps
+Artifact: isis-mavendeps-webapp
+Type: pom
+Folder: \mavendeps\webapp
 ----
-|_Components_
+|Defines a module that can be almost used as a single dependency for running
+an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
 
-* o.a.i.core.security.authentication.manager.AuthenticationManager
-* o.a.i.core.security.authentication.standard.RandomCodeGeneratorDefault
-* o.a.i.core.security.authorization.manager.AuthorizationManager
+Note: Also requires a persistence provider.
 
 _Dependencies_
 
 * org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-core-config:jar:<managed>
-* org.hamcrest:hamcrest-library:jar:<managed>
-* org.junit.jupiter:junit-jupiter-api:jar:<managed>
-* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
-* org.junit.vintage:junit-vintage-engine:jar:<managed>
-
-|Apache Isis Core - Transaction
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-core-transaction
-Type: jar
-Folder: \core\transaction
-----
-|Provides transaction integration with Spring and also 
-    	entity change tracking, with associated publishing and pre/post value events.
-
-_Components_
-
-* o.a.i.core.transaction.changetracking.EntityChangeTrackerDefault
-* o.a.i.core.transaction.changetracking.events.TimestampService
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-
-_Document Index Entries_
-
-xref:system:generated:index/core/transaction/changetracking/EntityChangeTrackerDefault.adoc[EntityChangeTrackerDefault], xref:system:generated:index/core/transaction/events/TransactionAfterCompletionEvent.adoc[TransactionAfterCompletionEvent]
-
-|Apache Isis Core - WebApp
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-core-webapp
-Type: jar
-Folder: \core\webapp
-----
-|Bundles all the web specific classes a srequired by viewers.
-        Introduced to keep the 'runtime' package concise.
-
-_Components_
-
-* o.a.i.core.webapp.health.HealthIndicatorUsingHealthCheckService
-* o.a.i.core.webapp.modules.logonlog.WebModuleLogOnExceptionLogger
-* o.a.i.core.webapp.modules.templresources.WebModuleTemplateResources
-* o.a.i.core.webapp.webappctx.IsisWebAppContextInitializer
-
-_Dependencies_
+* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+* org.apache.isis.core:isis-core-security:jar:<managed>
+* org.apache.isis.core:isis-schema:jar:<managed>
+* org.apache.isis.security:isis-security-bypass:jar:<managed>
+* org.apache.isis.security:isis-security-keycloak:jar:<managed>
+* org.apache.isis.security:isis-security-shiro:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-restfulobjects-jaxrsresteasy4:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:<managed>
+* org.springframework.boot:spring-boot-starter-tomcat:jar:<managed>
+* org.springframework.boot:spring-boot-starter-web:jar:<managed>
+|===
 
-* org.apache.isis.core:isis-core-interaction:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.core:isis-core-transaction:jar:<managed>
-* org.springframework:spring-web:jar:<managed>
-* org.springframework.boot:spring-boot:jar:<managed>
-* org.springframework.boot:spring-boot-actuator:jar:<managed>
-* org.springframework.boot:spring-boot-starter-thymeleaf:jar:<managed>
+== Testing
 
-|Apache Isis - JDK Supplemental
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-jdk-supplemental
-Type: pom
-Folder: \core\jdk-supplemental
+[plantuml,Testing,svg]
 ----
-|Defines a module to bring in dependencies that were part of JDK 8 but
-        had been removed with later JDK versions. 
-        
-        Will be removed once the framework migrates to Java 11 as the required 
-        minimum version.
-
-_Dependencies_
-
-* com.fasterxml.woodstox:woodstox-core:jar:<managed>
-* com.sun.xml.bind:jaxb-core:jar:<managed>
-* com.sun.xml.bind:jaxb-impl:jar:<managed>
-* com.sun.xml.ws:jaxws-ri:pom:<managed>
-* com.sun.xml.ws:jaxws-rt:jar:${jaxws-ri.version}
-* javax.xml.bind:jaxb-api:jar:<managed>
-* org.codehaus.woodstox:stax2-api:jar:<managed>
-* org.eclipse.persistence:org.eclipse.persistence.moxy:jar:<managed>
-* org.eclipse.persistence:org.eclipse.persistence.sdo:jar:<managed>
-
-|Apache Isis Core - Schemas
-[source,yaml]
-----
-Group: org.apache.isis.core
-Artifact: isis-schema
-Type: jar
-Folder: \api\schema
-----
-|Apache Isis schemas, for conversion into canonical DTOs (for use in integration scenarios).
-
-_Dependencies_
-
-* joda-time:joda-time:jar:<managed>
-* org.springframework:spring-context:jar:<managed>
-|===
-
-== App
-
-[plantuml,App,svg]
-----
-@startuml(id=App)
-title App - Containers
-caption Artifact Hierarchy (Maven)
+@startuml(id=Testing)
+title Testing - Containers
+caption Artifact Hierarchy (Maven)
 
 skinparam {
   shadowing false
@@ -708,49 +274,46 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<2>> {
+skinparam rectangle<<11>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "App\n[Software System]" {
-  rectangle "==Apache Isis Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+skinparam rectangle<<12>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
 }
-@enduml
-----
-.Projects/Modules (App)
-[cols="3a,5a", options="header"]
-|===
-|Coordinates |Description 
-
-|Apache Isis Starter Parent
-[source,yaml]
-----
-Group: org.apache.isis.app
-Artifact: isis-app-starter-parent
-Type: pom
-Folder: \starters
-----
-|Parent pom providing dependency and plugin management for Apache Isis applications
-		built with Maven.  Builds on top of spring-boot-starter-parent.
-|===
-
-== Mavendeps
-
-[plantuml,Mavendeps,svg]
-----
-@startuml(id=Mavendeps)
-title Mavendeps - Containers
-caption Artifact Hierarchy (Maven)
-
-skinparam {
-  shadowing false
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
+skinparam rectangle<<13>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<14>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<15>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<16>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<17>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<18>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
 }
-hide stereotype
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -791,168 +354,309 @@ skinparam rectangle<<9>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Mavendeps\n[Software System]" {
-  rectangle "==Apache Isis Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis Maven Deps - BDD Integ Spec\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Maven Deps - Integration Testing\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
-  rectangle "==Apache Isis Maven Deps - JDK11\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
-  rectangle "==Apache Isis Maven Deps - JDO\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
-  rectangle "==Apache Isis Maven Deps - JPA\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
-  rectangle "==Apache Isis Maven Deps - Testing\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
-  rectangle "==Apache Isis Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
+skinparam rectangle<<10>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Testing\n[Software System]" {
+  rectangle "==Apache Isis Testing\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+  rectangle "==Apache Isis Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+  rectangle "==Apache Isis Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+  rectangle "==Apache Isis Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
+  rectangle "==Apache Isis Tst - H2 Console (ui)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+  rectangle "==Apache Isis Tst - HSQLDB Manager\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+  rectangle "==Apache Isis Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
+  rectangle "==Apache Isis Tst - Integ Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
+  rectangle "==Apache Isis Tst - Integ Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<13>> as 13
+  rectangle "==Apache Isis Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
+  rectangle "==Apache Isis Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<15>> as 15
+  rectangle "==Apache Isis Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
+  rectangle "==Apache Isis Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<17>> as 17
 }
 2 .[#707070].> 3 : ""
-2 .[#707070].> 4 : ""
-2 .[#707070].> 5 : ""
-2 .[#707070].> 6 : ""
 2 .[#707070].> 7 : ""
-2 .[#707070].> 8 : ""
 2 .[#707070].> 9 : ""
+2 .[#707070].> 11 : ""
+2 .[#707070].> 13 : ""
+2 .[#707070].> 15 : ""
+2 .[#707070].> 17 : ""
+3 .[#707070].> 4 : ""
+3 .[#707070].> 5 : ""
+3 .[#707070].> 6 : ""
+7 .[#707070].> 8 : ""
+9 .[#707070].> 10 : ""
+11 .[#707070].> 12 : ""
+13 .[#707070].> 14 : ""
+15 .[#707070].> 16 : ""
+17 .[#707070].> 18 : ""
 @enduml
 ----
-.Projects/Modules (Mavendeps)
+.Projects/Modules (Testing)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Maven Deps
+|Apache Isis Testing
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps
+Group: org.apache.isis.testing
+Artifact: isis-testing
 Type: pom
-Folder: \mavendeps
+Folder: \testing
 ----
-|Collection of Apache Isis Maven Dependency Bundles.
+|A library of utilities, mini-frameworks and tools for prototyping and testing Apache Isis applications.
 
-|Apache Isis Maven Deps - BDD Integ Spec
+|Apache Isis Tst - FakeData (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-integspecs
+Group: org.apache.isis.testing
+Artifact: isis-testing-fakedata
 Type: pom
-Folder: \mavendeps\integspecs
+Folder: \testing\fakedata
 ----
-|Defines a module that can be used as a single dependency for BDD (Cucumber) specs as integration tests.
+|A module providing a domain service to generate fake random data
+for use in unit tests or integration tests.
+
+|Apache Isis Tst - FakeData (applib)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-fakedata-applib
+Type: jar
+Folder: \testing\fakedata\applib
+----
+|_Components_
+
+* o.a.i.testing.fakedata.applib.services.FakeDataService
 
 _Dependencies_
 
+* com.github.javafaker:javafaker:jar:<managed>
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
+
+|Apache Isis Tst - FakeData (fixtures)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-fakedata-fixtures
+Type: jar
+Folder: \testing\fakedata\fixtures
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
 * org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
 * org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
 
-|Apache Isis Maven Deps - Integration Testing
+|Apache Isis Tst - FakeData (integ tests)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-integtests
-Type: pom
-Folder: \mavendeps\integtests
+Group: org.apache.isis.testing
+Artifact: isis-testing-fakedata-integtests
+Type: jar
+Folder: \testing\fakedata\integtests
 ----
-|Defines a module that can be used as a single dependency for integration tests.
-
-_Dependencies_
+|_Dependencies_
 
+* org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed>
 * org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-fakedata-fixtures:jar:<managed>
 
-|Apache Isis Maven Deps - JDK11
+|Apache Isis Tst - Fixtures (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-jdk11
+Group: org.apache.isis.testing
+Artifact: isis-testing-fixtures
 Type: pom
-Folder: \mavendeps\jdk11
+Folder: \testing\fixtures
 ----
-|Defines a module to bring in dependencies that were part of JDK 8 but
-        had been removed with JDK 11+. These dependencies are activated when the 
-        consuming project is built with JDK 11 or higher.
+|Library to initialize the system under test, either for integration testing or for prototyping.
 
-|Apache Isis Maven Deps - JDO
+|Apache Isis Tst - Fixtures (applib)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-jdo
-Type: pom
-Folder: \mavendeps\jdo
+Group: org.apache.isis.testing
+Artifact: isis-testing-fixtures-applib
+Type: jar
+Folder: \testing\fixtures\applib
 ----
-|Defines a module that provides the default JDO persistence layer integration
-        for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
+|_Components_
+
+* o.a.i.testing.fixtures.applib.fixturescripts.ExecutionParametersService
+* o.a.i.testing.fixtures.applib.modules.ModuleWithFixturesService
+* o.a.i.testing.fixtures.applib.queryresultscache.QueryResultsCacheControlDefault
+* o.a.i.testing.fixtures.applib.services.FixturesLifecycleService
 
 _Dependencies_
 
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-schema:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed>
+* joda-time:joda-time:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
+* org.apache.isis.subdomains:isis-subdomains-spring-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
 
-|Apache Isis Maven Deps - JPA
+|Apache Isis Tst - H2 Console (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-jpa
+Group: org.apache.isis.testing
+Artifact: isis-testing-h2console
 Type: pom
-Folder: \mavendeps\jpa
+Folder: \testing\h2console
 ----
-|Defines a module that provides the default JPA persistence layer integration
-        for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
+|Menu and configuration to open up H2 Console
+
+|Apache Isis Tst - H2 Console (ui)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-h2console-ui
+Type: jar
+Folder: \testing\h2console\ui
+----
+|_Components_
+
+* o.a.i.testing.h2console.ui.webmodule.WebModuleH2Console
 
 _Dependencies_
 
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-schema:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-eclipselink:jar:<managed>
+* com.h2database:h2:jar:<managed>
+* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.beanshell:bsh:jar:2.0b5
 
-|Apache Isis Maven Deps - Testing
+|Apache Isis Tst - HSQLDB Manager (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-unittests
+Group: org.apache.isis.testing
+Artifact: isis-testing-hsqldbmgr
 Type: pom
-Folder: \mavendeps\unittests
+Folder: \testing\hsqldbmgr
 ----
-|Defines a module that can be used as a single dependency for a set of common testing libraries.
+|Menu and configuration to open up HSQLDB Manager
 
-_Dependencies_
+|Apache Isis Tst - HSQLDB Manager
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-hsqldbmgr-ui
+Type: jar
+Folder: \testing\hsqldbmgr\ui
+----
+|_Dependencies_
 
-* org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
+* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.hsqldb:hsqldb:jar:<managed>
 
-|Apache Isis Maven Deps - Webapp
+|Apache Isis Tst - Integ Test Support (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.mavendeps
-Artifact: isis-mavendeps-webapp
+Group: org.apache.isis.testing
+Artifact: isis-testing-integtestsupport
 Type: pom
-Folder: \mavendeps\webapp
+Folder: \testing\integtestsupport
+----
+|Support for writing integ tests in JUnit 5; should be added as a dependency with scope=test only
+
+|Apache Isis Tst - Integ Test Support (applib)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-integtestsupport-applib
+Type: jar
+Folder: \testing\integtestsupport\applib
 ----
-|Defines a module that can be almost used as a single dependency for running 
-        an Apache Isis webapp (Wicket, Restful Objects and Shiro security).
-        
-        Note: Also requires a persistence provider.
+|_Components_
+
+* o.a.i.testing.integtestsupport.applib.IsisIntegrationTestAbstract$InteractionSupport
 
 _Dependencies_
 
-* org.apache.isis.core:isis-applib:jar:<managed>
+* com.approvaltests:approvaltests:jar:<managed>
+* com.h2database:h2:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
 * org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
-* org.apache.isis.core:isis-core-security:jar:<managed>
-* org.apache.isis.core:isis-schema:jar:<managed>
 * org.apache.isis.security:isis-security-bypass:jar:<managed>
-* org.apache.isis.security:isis-security-keycloak:jar:<managed>
-* org.apache.isis.security:isis-security-shiro:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-restfulobjects-jaxrsresteasy4:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:<managed>
-* org.springframework.boot:spring-boot-starter-tomcat:jar:<managed>
-* org.springframework.boot:spring-boot-starter-web:jar:<managed>
+* org.hamcrest:hamcrest-library:jar:<managed>
+* org.hsqldb:hsqldb:jar:<managed>
+* org.slf4j:slf4j-api:jar:${slf4j-api.version}
+* org.springframework:spring-test:jar:<managed>
+* org.springframework.boot:spring-boot-starter-test:jar:<managed>
+
+|Apache Isis Tst - Spec/Cucumber (parent)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-specsupport
+Type: pom
+Folder: \testing\specsupport
+----
+|Allows Cucumber to be used to write BDD-style specifications, generally as an alternative to integration tests.
+
+|Apache Isis Tst - Spec/Cucumber (applib)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-specsupport-applib
+Type: jar
+Folder: \testing\specsupport\applib
+----
+|_Dependencies_
+
+* io.cucumber:cucumber-java:jar:<managed>
+* io.cucumber:cucumber-junit-platform-engine:jar:<managed>
+* io.cucumber:cucumber-spring:jar:<managed>
+* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
+* org.junit.jupiter:junit-jupiter-api:jar:<managed>
+
+|Apache Isis Tst - Unit Test Support (parent)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-unittestsupport
+Type: pom
+Folder: \testing\unittestsupport
+----
+|A module providing test utilities for unit testing of domain modules
+
+|Apache Isis Tst - Unit Test Support (applib)
+[source,yaml]
+----
+Group: org.apache.isis.testing
+Artifact: isis-testing-unittestsupport-applib
+Type: jar
+Folder: \testing\unittestsupport\applib
+----
+|_Dependencies_
+
+* com.approvaltests:approvaltests:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed>
+* org.datanucleus:javax.jdo:jar:<managed>
+* org.jmock:jmock:jar:<managed>
+* org.jmock:jmock-junit4:jar:<managed>
+* org.picocontainer:picocontainer:jar:<managed>
+* org.slf4j:slf4j-api:jar:<managed>
+* org.springframework:spring-test:jar:<managed>
+* org.springframework.boot:spring-boot-starter-test:jar:<managed>
 |===
 
-== Mappings
+== Examples
 
-[plantuml,Mappings,svg]
+[plantuml,Examples,svg]
 ----
-@startuml(id=Mappings)
-title Mappings - Containers
+@startuml(id=Examples)
+title Examples - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -993,108 +697,327 @@ skinparam rectangle<<7>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Mappings\n[Software System]" {
-  rectangle "==Apache Isis Ext - REST Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Ext - REST Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
-  rectangle "==Apache Isis Map - JaxRS Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Map - JaxRS Client (impl)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Map - JaxRS Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Mappings\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+package "Examples\n[Software System]" {
+  rectangle "==Demo - Domain\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Demo - JavaFX\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Demo - Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Demo - Vaadin\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Demo - Web\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Demo - Wicket\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
 }
-6 .[#707070].> 7 : ""
-3 .[#707070].> 4 : ""
-3 .[#707070].> 5 : ""
-2 .[#707070].> 6 : ""
 2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+2 .[#707070].> 5 : ""
+2 .[#707070].> 6 : ""
+2 .[#707070].> 7 : ""
 @enduml
 ----
-.Projects/Modules (Mappings)
+.Projects/Modules (Examples)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Mappings
+|Demo - Parent
 [source,yaml]
 ----
-Group: org.apache.isis.mappings
-Artifact: isis-mappings
+Group: org.apache.isis.examples.apps
+Artifact: demo-parent
 Type: pom
-Folder: \mappings
+Folder: \examples\demo
 ----
-|Libraries and tools to map one bounded context (usually an Apache Isis application) to some other BC (usually
-		_not_ an Apache Isis application).
-
-_Dependencies_
+|_Dependencies_
 
+* com.h2database:h2:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-persistence-jdo-dn5:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-persistence-jdo-dn5:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed>
 * org.projectlombok:lombok:jar:<managed>
 
-|Apache Isis Map - JaxRS Client (parent)
+|Demo - Domain
 [source,yaml]
 ----
-Group: org.apache.isis.mappings
-Artifact: isis-mappings-jaxrsclient
-Type: pom
-Folder: \mappings\jaxrsclient
+Group: org.apache.isis.examples.apps
+Artifact: demo-domain
+Type: jar
+Folder: \examples\demo\domain
 ----
-|Integrates JaxRS Client Library
+|_Dependencies_
 
-|Apache Isis Map - JaxRS Client (applib)
+* com.h2database:h2:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed>
+* org.apache.isis.testing:isis-testing-h2console-ui:jar:<managed>
+* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+* org.assertj:assertj-core:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
+* org.springframework.boot:spring-boot-configuration-processor:jar:<managed>
+
+|Demo - JavaFX
 [source,yaml]
 ----
-Group: org.apache.isis.mappings
-Artifact: isis-mappings-jaxrsclient-applib
+Group: org.apache.isis.examples.apps
+Artifact: demo-javafx
 Type: jar
-Folder: \mappings\jaxrsclient\applib
+Folder: \examples\demo\javafx
 ----
 |_Dependencies_
 
-* javax:javaee-api:jar:<managed>
-* org.springframework:spring-context:jar:<managed>
+* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+* org.apache.isis.core:isis-core-security:jar:<managed>
+* org.apache.isis.examples.apps:demo-domain:jar:${project.version}
+* org.apache.isis.incubator.viewer:isis-viewer-javafx-viewer:jar:${project.version}
+* org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.security:isis-security-bypass:jar:<managed>
+* org.apache.isis.security:isis-security-shiro:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui:pom:${project.version}
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-ui:pom:${project.version}
+* org.projectlombok:lombok:jar:<managed>
 
-|Apache Isis Map - JaxRS Client (impl)
+|Demo - Vaadin
 [source,yaml]
 ----
-Group: org.apache.isis.mappings
-Artifact: isis-mappings-jaxrsclient-impl
+Group: org.apache.isis.examples.apps
+Artifact: demo-vaadin
 Type: jar
-Folder: \mappings\jaxrsclient\testlib
+Folder: \examples\demo\vaadin
 ----
 |_Dependencies_
 
-* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
-
-|Apache Isis Ext - REST Client (parent)
+* org.apache.isis.examples.apps:demo-web:jar:${project.version}
+* org.apache.isis.incubator.viewer:isis-viewer-vaadin-viewer:jar:${project.version}
+* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-vaa:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
+
+|Demo - Web
 [source,yaml]
 ----
-Group: org.apache.isis.mappings
-Artifact: isis-mappings-restclient
+Group: org.apache.isis.examples.apps
+Artifact: demo-web
+Type: jar
+Folder: \examples\demo\web
+----
+|_Dependencies_
+
+* org.apache.isis.examples.apps:demo-domain:jar:${project.version}
+* org.apache.isis.extensions:isis-extensions-command-replay-primary:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-command-replay-secondary:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed>
+* org.springframework.boot:spring-boot-starter:jar:<managed>
+* org.springframework.boot:spring-boot-starter-actuator:jar:<managed>
+* org.springframework.boot:spring-boot-starter-log4j2:jar:<managed>
+
+|Demo - Wicket
+[source,yaml]
+----
+Group: org.apache.isis.examples.apps
+Artifact: demo-wicket
+Type: jar
+Folder: \examples\demo\wicket
+----
+|_Dependencies_
+
+* org.apache.isis.examples.apps:demo-web:jar:${project.version}
+* org.apache.isis.extensions:isis-extensions-pdfjs-ui:jar:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:2.0.0-SNAPSHOT
+* org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:2.0.0-SNAPSHOT
+|===
+
+== Root
+
+[plantuml,Root,svg]
+----
+@startuml(id=Root)
+title Root - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Root\n[Software System]" {
+  rectangle "==Apache Isis\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
+  rectangle "==Apache Isis (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis - Antora\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+  rectangle "==Apache Isis Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+}
+2 .[#707070].> 4 : ""
+2 .[#707070].> 3 : ""
+@enduml
+----
+.Projects/Modules (Root)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
+
+|Apache Isis (Aggregator)
+[source,yaml]
+----
+Group: org.apache.isis
+Artifact: isis-all
 Type: pom
-Folder: \mappings\restclient
+Folder: /
 ----
-|A client for the Restful Objects Viewer
+|Convenience aggregator POM that references all modules, some explicitely,
+others via profiles, that are not activiated per default.
+The parent POM of the core framework is isis-parent/pom.xml.
 
-|Apache Isis Ext - REST Client (applib)
+|Apache Isis - Antora
 [source,yaml]
 ----
-Group: org.apache.isis.mappings
-Artifact: isis-mappings-restclient-applib
+Group: org.apache.isis
+Artifact: antora
+Type: pom
+Folder: \antora
+----
+|
+
+|Apache Isis
+[source,yaml]
+----
+Group: org.apache.isis
+Artifact: isis-parent
+Type: pom
+Folder: \isis-parent
+----
+|Parent for the core framework + extensions, starter parent pom for starter apps.
+
+|Apache Isis Supplemental - Legal Info
+[source,yaml]
+----
+Group: org.apache.isis
+Artifact: supplemental-model
 Type: jar
-Folder: \mappings\restclient\applib
+Folder: \supplemental-model
 ----
-|A client for the Restful Objects Viewer
+|For example, the templates used by many Apache distributions assemble a listing of project dependencies
+according to their organization name (and URL), along with the URL each project's website. When dependency
+POMs are missing this information, the dependency notice file that the Remote Resources Plugin renders can
+be invalid.
+To compensate for incomplete dependency POMs, we use the supplemental models support.
+|===
+
+== Commons
+
+[plantuml,Commons,svg]
+----
+@startuml(id=Commons)
+title Commons - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Commons\n[Software System]" {
+  rectangle "==Apache Isis Commons\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
+----
+.Projects/Modules (Commons)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
+
+|Apache Isis Commons
+[source,yaml]
+----
+Group: org.apache.isis.commons
+Artifact: isis-commons
+Type: jar
+Folder: \commons
+----
+|Apache Isis Commons is a library with utilities, that are shared with the entire Apache Isis ecosystem.
 
 _Dependencies_
 
-* org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed>
+* com.fasterxml.jackson.core:jackson-databind:jar:<managed>
+* com.google.code.findbugs:annotations:jar:<managed>
+* javax:javaee-api:jar:<managed>
+* org.junit.jupiter:junit-jupiter-api:jar:<managed>
+* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
+* org.junit.jupiter:junit-jupiter-params:jar:<managed>
+* org.junit.vintage:junit-vintage-engine:jar:<managed>
+* org.slf4j:slf4j-api:jar:<managed>
 * org.springframework:spring-context:jar:<managed>
+* org.springframework:spring-tx:jar:<managed>
+* org.springframework.boot:spring-boot-starter:jar:<managed>
+* org.springframework.boot:spring-boot-starter-log4j2:jar:<managed>
+* org.yaml:snakeyaml:jar:<managed>
+
+_Document Index Entries_
+
+xref:system:generated:index/commons/functional/Result.adoc[Result], xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId], xref:system:generated:index/commons/having/HasUsername.adoc[HasUsername], xref:system:generated:index/commons/resource/ResourceCoordinates.adoc[ResourceCoordinates]
 |===
 
-== Persistence
+== Core
 
-[plantuml,Persistence,svg]
+[plantuml,Core,svg]
 ----
-@startuml(id=Persistence)
-title Persistence - Containers
+@startuml(id=Core)
+title Core - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -1120,6 +1043,16 @@ skinparam rectangle<<13>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
+skinparam rectangle<<14>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<15>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -1165,290 +1098,334 @@ skinparam rectangle<<10>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Persistence\n[Software System]" {
-  rectangle "==Apache Isis Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis Persistence - JDO (Spring)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
-  rectangle "==Apache Isis Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
-  rectangle "==Apache Isis Persistence - JDO (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Persistence - JDO (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Persistence - JDO (provider)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Persistence - JDO Provider (DataNucleus)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
-  rectangle "==Apache Isis Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Persistence - JPA (integration)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
-  rectangle "==Apache Isis Persistence - JPA (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
-  rectangle "==Apache Isis Persistence - JPA EclipseLink\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+package "Core\n[Software System]" {
+  rectangle "==Apache Isis - JDK Supplemental\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
+  rectangle "==Apache Isis Core\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Core - AppLib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Core - Code Gen (ByteBuddy)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Core - Configuration\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Core - Interaction\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+  rectangle "==Apache Isis Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+  rectangle "==Apache Isis Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+  rectangle "==Apache Isis Core - Schemas\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
+  rectangle "==Apache Isis Core - Security\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+  rectangle "==Apache Isis Core - Transaction\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+  rectangle "==Apache Isis Core - Unit Test Support\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+  rectangle "==Apache Isis Core - WebApp\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
 }
-2 .[#707070].> 8 : ""
+2 .[#707070].> 14 : ""
 2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
 2 .[#707070].> 5 : ""
 2 .[#707070].> 6 : ""
+2 .[#707070].> 8 : ""
+2 .[#707070].> 9 : ""
+2 .[#707070].> 10 : ""
+2 .[#707070].> 15 : ""
+2 .[#707070].> 11 : ""
+2 .[#707070].> 12 : ""
 2 .[#707070].> 7 : ""
-2 .[#707070].> 4 : ""
-9 .[#707070].> 10 : ""
-9 .[#707070].> 12 : ""
-9 .[#707070].> 13 : ""
-9 .[#707070].> 11 : ""
+2 .[#707070].> 13 : ""
 @enduml
 ----
-.Projects/Modules (Persistence)
+.Projects/Modules (Core)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Persistence - JDO
+|Apache Isis Core
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo
+Group: org.apache.isis.core
+Artifact: isis-core
 Type: pom
-Folder: \persistence\jdo
+Folder: \core
 ----
-|Supplementary applib for JDO persistence
+|Core framework, providing metamodel, runtime and core APIs.
 
-|Apache Isis Persistence - JDO (applib)
+_Dependencies_
+
+* org.projectlombok:lombok:jar:<managed>
+
+|Apache Isis Core - AppLib
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo-applib
+Group: org.apache.isis.core
+Artifact: isis-applib
 Type: jar
-Folder: \persistence\jdo\applib
+Folder: \api\applib
 ----
-|Supplementary applib for JDO persistence
+|Isis application library, defining annotations and utilities for the
+default (Java) programming model.
 
 _Dependencies_
 
+* com.google.code.findbugs:annotations:jar:<managed>
+* javax:javaee-api:jar:<managed>
 * org.apache.isis.commons:isis-commons:jar:<managed>
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.datanucleus:datanucleus-rdbms:jar:<managed>
-* org.datanucleus:javax.jdo:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-schema:jar:<managed>
+* org.assertj:assertj-core:jar:<managed>
+* org.jmock:jmock:jar:<managed>
 
 _Document Index Entries_
 
-xref:system:generated:index/persistence/jdo/applib/integration/JdoSupportService.adoc[JdoSupportService]
+xref:system:generated:index/applib/AbstractViewModel.adoc[AbstractViewModel], xref:system:generated:index/applib/Identifier.adoc[Identifier], xref:system:generated:index/applib/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:system:generated:index/applib/ViewModel.adoc[ViewModel], xref:system:generated:index/applib/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider],  [...]
 
-|Apache Isis Persistence - JDO Provider (DataNucleus)
+|Apache Isis Core - Code Gen (ByteBuddy)
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo-datanucleus
+Group: org.apache.isis.core
+Artifact: isis-core-codegen-bytebuddy
 Type: jar
-Folder: \persistence\jdo\datanucleus
+Folder: \core\codegen-bytebuddy
 ----
-|JDO Implementation (powered by DataNucleus)
-
-_Components_
-
-* o.a.i.persistence.jdo.datanucleus.config.DnEntityDiscoveryListener
-* o.a.i.persistence.jdo.datanucleus.config.DnSettings
-* o.a.i.persistence.jdo.datanucleus.entities.DnEntityStateProvider
-* o.a.i.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault
-* o.a.i.persistence.jdo.datanucleus.metamodel.JdoDataNucleusProgrammingModel
-* o.a.i.persistence.jdo.datanucleus.schema.JdoSchemaService
+|Code generation using ByteBuddy.
 
 _Dependencies_
 
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-integration:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed>
-* org.datanucleus:datanucleus-api-jdo:jar:<managed>
-* org.datanucleus:datanucleus-core:jar:<managed>
-* org.datanucleus:datanucleus-jdo-query:jar:<managed>
-* org.datanucleus:datanucleus-jodatime:jar:<managed>
-* org.datanucleus:datanucleus-rdbms:jar:<managed>
-
-_Document Index Entries_
-
-xref:system:generated:index/persistence/jdo/datanucleus/schema/JdoSchemaService.adoc[JdoSchemaService]
+* net.bytebuddy:byte-buddy:jar:<managed>
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.objenesis:objenesis:jar:<managed>
 
-|Apache Isis Persistence - JDO (integration)
+|Apache Isis Core - Configuration
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo-integration
+Group: org.apache.isis.core
+Artifact: isis-core-config
 Type: jar
-Folder: \persistence\jdo\integration
+Folder: \core\config
 ----
-|JDO Integration (powered by DataNucleus)
+|Isis configuration library for framework internal use.
 
 _Dependencies_
 
 * org.apache.isis.commons:isis-commons:jar:<managed>
 * org.apache.isis.core:isis-applib:jar:<managed>
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-metamodel:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-spring:jar:<managed>
+* org.hibernate.validator:hibernate-validator:jar:<managed>
+* org.springframework.boot:spring-boot-configuration-processor:jar:<managed>
 
-|Apache Isis Persistence - JDO (metamodel)
+|Apache Isis Core - Interaction
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo-metamodel
+Group: org.apache.isis.core
+Artifact: isis-core-interaction
 Type: jar
-Folder: \persistence\jdo\metamodel
+Folder: \core\interaction
 ----
-|JDO Metamodel Facets / Programming Model
-
-_Components_
-
-* o.a.i.persistence.jdo.metamodel.JdoProgrammingModel
+|Provides _Interaction Scope_.
+Top level action execution or property changes are wrapped in an _Interaction_.
+That typically corresponds to a http request/response cycle or a JUnit test method execution.
 
 _Dependencies_
 
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed>
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
 
-|Apache Isis Persistence - JDO (provider)
+|Apache Isis Core - Unit Test Support
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo-provider
+Group: org.apache.isis.core
+Artifact: isis-core-internaltestsupport
 Type: jar
-Folder: \persistence\jdo\provider
+Folder: \core\internaltestsupport
 ----
-|JDO Provider to be implemented by any actual JDO provider eg. DataNucleus.
+|Support for writing unit tests in either JUnit 4 or JUnit 5; should be added as a dependency with scope=test only
 
 _Dependencies_
 
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* net.bytebuddy:byte-buddy:jar:<managed>
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed>
+* org.assertj:assertj-core:jar:<managed>
+* org.datanucleus:javax.jdo:jar:<managed>
+* org.hamcrest:hamcrest-library:jar:<managed>
+* org.jmock:jmock:jar:<managed>
+* org.jmock:jmock-junit4:jar:<managed>
+* org.junit.jupiter:junit-jupiter-api:jar:<managed>
+* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
+* org.junit.vintage:junit-vintage-engine:jar:<managed>
+* org.mockito:mockito-core:jar:<managed>
+* org.picocontainer:picocontainer:jar:<managed>
+* org.slf4j:slf4j-api:jar:${slf4j-api.version}
+* org.springframework:spring-test:jar:<managed>
+* org.springframework.boot:spring-boot-starter-test:jar:<managed>
 
-|Apache Isis Persistence - JDO (Spring)
+|Apache Isis Core - MetaModel
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jdo-spring
+Group: org.apache.isis.core
+Artifact: isis-core-metamodel
 Type: jar
-Folder: \persistence\jdo\spring
+Folder: \core\metamodel
 ----
-|JDO Spring integration.
-		
-		This is a fork of the Spring ORM JDO sources at github, 
-		for which support had been dropped back in 2016 [1].
-		
-		Credits to the original authors.
-		
-		[1] https://github.com/spring-projects/spring-framework/issues/18702
-
-_Dependencies_
+|_Dependencies_
 
-* org.apache.isis.commons:isis-commons:jar:<managed>
+* io.swagger:swagger-core:jar:<managed>
 * org.apache.isis.core:isis-applib:jar:<managed>
 * org.apache.isis.core:isis-core-config:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed>
-* org.springframework:spring-jdbc:jar:<managed>
-* org.springframework:spring-web:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-security:jar:<managed>
+* org.hibernate.validator:hibernate-validator:jar:<managed>
+* org.jmock:jmock:jar:<managed>
 
-|Apache Isis Persistence - JPA
+|Apache Isis Core - Runtime
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jpa
-Type: pom
-Folder: \persistence\jpa
+Group: org.apache.isis.core
+Artifact: isis-core-runtime
+Type: jar
+Folder: \core\runtime
 ----
-|Apache Isis JPA integration
+|Bundles framework internal services, utilities and events.
 
-|Apache Isis Persistence - JPA (applib)
+_Dependencies_
+
+* org.apache.isis.core:isis-core-interaction:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.core:isis-core-transaction:jar:<managed>
+
+|Apache Isis Core - Runtime Services
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jpa-applib
+Group: org.apache.isis.core
+Artifact: isis-core-runtimeservices
 Type: jar
-Folder: \persistence\jpa\applib
+Folder: \core\runtimeservices
 ----
-|Supplementary applib for JPA persistence
+|Introduced to keep the 'runtime' package concise. Viewers don't have dependencies on this module.
 
 _Dependencies_
 
-* org.apache.isis.commons:isis-commons:jar:<managed>
-* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.hsqldb:hsqldb:jar:<managed>
 
 _Document Index Entries_
 
-xref:system:generated:index/persistence/jpa/applib/services/JpaSupportService.adoc[JpaSupportService]
+xref:system:generated:index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc[ExceptionRecognizerForOtherDataAccessProblem], xref:system:generated:index/core/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:system:generated:index/core/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault], xref:system:generated:index/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.adoc[XmlSnapshotServiceDefault]
 
-|Apache Isis Persistence - JPA EclipseLink
+|Apache Isis Core - Security
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jpa-eclipselink
+Group: org.apache.isis.core
+Artifact: isis-core-security
 Type: jar
-Folder: \persistence\jpa\eclipselink
+Folder: \core\security
 ----
-|EclipseLink integration. Sets up EclipseLink as the implementation provider for Spring Data JPA.
-
-_Dependencies_
+|_Dependencies_
 
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-integration:jar:<managed>
-* org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.7.8
-* org.springframework.boot:spring-boot-starter-data-jpa:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.core:isis-core-config:jar:<managed>
+* org.hamcrest:hamcrest-library:jar:<managed>
+* org.junit.jupiter:junit-jupiter-api:jar:<managed>
+* org.junit.jupiter:junit-jupiter-engine:jar:<managed>
+* org.junit.vintage:junit-vintage-engine:jar:<managed>
 
-|Apache Isis Persistence - JPA (integration)
+|Apache Isis Core - Transaction
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jpa-integration
+Group: org.apache.isis.core
+Artifact: isis-core-transaction
 Type: jar
-Folder: \persistence\jpa\integration
+Folder: \core\transaction
 ----
-|JPA integration (facets, jpa-context)
-
-_Components_
-
-* o.a.i.persistence.jpa.integration.metamodel.JpaProgrammingModel
+|Provides transaction integration with Spring and also
+entity change tracking, with associated publishing and pre/post value events.
 
 _Dependencies_
 
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-metamodel:jar:<managed>
-* org.springframework.data:spring-data-jpa:jar:<managed>
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
 
-|Apache Isis Persistence - JPA (metamodel)
+_Document Index Entries_
+
+xref:system:generated:index/core/transaction/changetracking/EntityChangeTrackerDefault.adoc[EntityChangeTrackerDefault], xref:system:generated:index/core/transaction/events/TransactionAfterCompletionEvent.adoc[TransactionAfterCompletionEvent]
+
+|Apache Isis Core - WebApp
 [source,yaml]
 ----
-Group: org.apache.isis.persistence
-Artifact: isis-persistence-jpa-metamodel
+Group: org.apache.isis.core
+Artifact: isis-core-webapp
 Type: jar
-Folder: \persistence\jpa\metamodel
+Folder: \core\webapp
 ----
-|JPA Metamodel Facets / Programming Model
-
-_Components_
-
-* o.a.i.persistence.jpa.metamodel.JpaProgrammingModel
+|Bundles all the web specific classes a srequired by viewers.
+Introduced to keep the 'runtime' package concise.
 
 _Dependencies_
 
+* org.apache.isis.core:isis-core-interaction:jar:<managed>
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
 * org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
-|===
-
-== Security
+* org.apache.isis.core:isis-core-transaction:jar:<managed>
+* org.springframework:spring-web:jar:<managed>
+* org.springframework.boot:spring-boot:jar:<managed>
+* org.springframework.boot:spring-boot-actuator:jar:<managed>
+* org.springframework.boot:spring-boot-starter-thymeleaf:jar:<managed>
 
-[plantuml,Security,svg]
+|Apache Isis - JDK Supplemental
+[source,yaml]
 ----
-@startuml(id=Security)
-title Security - Containers
-caption Artifact Hierarchy (Maven)
+Group: org.apache.isis.core
+Artifact: isis-jdk-supplemental
+Type: pom
+Folder: \core\jdk-supplemental
+----
+|Defines a module to bring in dependencies that were part of JDK 8 but
+had been removed with later JDK versions.
 
-skinparam {
-  shadowing false
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
+Will be removed once the framework migrates to Java 11 as the required
+minimum version.
+
+_Dependencies_
+
+* com.fasterxml.woodstox:woodstox-core:jar:<managed>
+* com.sun.xml.bind:jaxb-core:jar:<managed>
+* com.sun.xml.bind:jaxb-impl:jar:<managed>
+* com.sun.xml.ws:jaxws-ri:pom:<managed>
+* com.sun.xml.ws:jaxws-rt:jar:${jaxws-ri.version}
+* javax.xml.bind:jaxb-api:jar:<managed>
+* org.codehaus.woodstox:stax2-api:jar:<managed>
+* org.eclipse.persistence:org.eclipse.persistence.moxy:jar:<managed>
+* org.eclipse.persistence:org.eclipse.persistence.sdo:jar:<managed>
+
+|Apache Isis Core - Schemas
+[source,yaml]
+----
+Group: org.apache.isis.core
+Artifact: isis-schema
+Type: jar
+Folder: \api\schema
+----
+|Apache Isis schemas, for conversion into canonical DTOs (for use in integration scenarios).
+
+_Dependencies_
+
+* joda-time:joda-time:jar:<managed>
+* org.springframework:spring-context:jar:<managed>
+|===
+
+== Persistence
+
+=== JDO
+
+[plantuml,JDO,svg]
+----
+@startuml(id=JDO)
+title JDO - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
 }
 hide stereotype
 skinparam rectangle<<2>> {
@@ -1466,90 +1443,205 @@ skinparam rectangle<<4>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Security\n[Software System]" {
-  rectangle "==Apache Isis Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
-  rectangle "==Apache Isis Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
-  rectangle "==Apache Isis Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+skinparam rectangle<<5>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<7>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<8>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "JDO\n[Software System]" {
+  rectangle "==Apache Isis Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Persistence - JDO (Spring)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+  rectangle "==Apache Isis Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Persistence - JDO (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Persistence - JDO (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Persistence - JDO (provider)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+  rectangle "==Apache Isis Persistence - JDO Provider (DataNucleus)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
 }
+2 .[#707070].> 8 : ""
+2 .[#707070].> 3 : ""
+2 .[#707070].> 5 : ""
+2 .[#707070].> 6 : ""
+2 .[#707070].> 7 : ""
+2 .[#707070].> 4 : ""
 @enduml
 ----
-.Projects/Modules (Security)
+.Projects/Modules (JDO)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Security - Bypass
+|Apache Isis Persistence - JDO
 [source,yaml]
 ----
-Group: org.apache.isis.security
-Artifact: isis-security-bypass
-Type: jar
-Folder: \security\bypass
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo
+Type: pom
+Folder: \persistence\jdo
 ----
-|_Components_
+|Supplementary applib for JDO persistence
 
-* o.a.i.security.bypass.authentication.AuthenticatorBypass
-* o.a.i.security.bypass.authorization.AuthorizorBypass
+|Apache Isis Persistence - JDO (applib)
+[source,yaml]
+----
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo-applib
+Type: jar
+Folder: \persistence\jdo\applib
+----
+|Supplementary applib for JDO persistence
 
 _Dependencies_
 
-* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.datanucleus:datanucleus-rdbms:jar:<managed>
+* org.datanucleus:javax.jdo:jar:<managed>
 
-|Apache Isis Security - Keycloak
+_Document Index Entries_
+
+xref:system:generated:index/persistence/jdo/applib/integration/JdoSupportService.adoc[JdoSupportService]
+
+|Apache Isis Persistence - JDO Provider (DataNucleus)
 [source,yaml]
 ----
-Group: org.apache.isis.security
-Artifact: isis-security-keycloak
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo-datanucleus
 Type: jar
-Folder: \security\keycloak
+Folder: \persistence\jdo\datanucleus
 ----
-|Authentication and Authorization using Keycloak
+|JDO Implementation (powered by DataNucleus)
 
 _Components_
 
-* o.a.i.security.keycloak.authentication.AuthenticatorKeycloak
-* o.a.i.security.keycloak.authorization.AuthorizorKeycloak
-* o.a.i.security.keycloak.webmodule.WebModuleKeycloak
+* o.a.i.persistence.jdo.datanucleus.config.DnEntityDiscoveryListener
+* o.a.i.persistence.jdo.datanucleus.config.DnSettings
+* o.a.i.persistence.jdo.datanucleus.entities.DnEntityStateProvider
+* o.a.i.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault
+* o.a.i.persistence.jdo.datanucleus.metamodel.JdoDataNucleusProgrammingModel
+* o.a.i.persistence.jdo.datanucleus.schema.JdoSchemaService
 
 _Dependencies_
 
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
 * org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
-* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-integration:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed>
+* org.datanucleus:datanucleus-api-jdo:jar:<managed>
+* org.datanucleus:datanucleus-core:jar:<managed>
+* org.datanucleus:datanucleus-jdo-query:jar:<managed>
+* org.datanucleus:datanucleus-jodatime:jar:<managed>
+* org.datanucleus:datanucleus-rdbms:jar:<managed>
 
-|Apache Isis Security - Shiro
+_Document Index Entries_
+
+xref:system:generated:index/persistence/jdo/datanucleus/schema/JdoSchemaService.adoc[JdoSchemaService]
+
+|Apache Isis Persistence - JDO (integration)
 [source,yaml]
 ----
-Group: org.apache.isis.security
-Artifact: isis-security-shiro
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo-integration
 Type: jar
-Folder: \security\shiro
+Folder: \persistence\jdo\integration
 ----
-|Authentication and Authorization using Apache Shiro.
+|JDO Integration (powered by DataNucleus)
+
+_Dependencies_
+
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-metamodel:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-spring:jar:<managed>
+
+|Apache Isis Persistence - JDO (metamodel)
+[source,yaml]
+----
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo-metamodel
+Type: jar
+Folder: \persistence\jdo\metamodel
+----
+|JDO Metamodel Facets / Programming Model
 
 _Components_
 
-* o.a.i.security.shiro.authentication.AuthenticatorShiro
-* o.a.i.security.shiro.authorization.AuthorizorShiro
-* o.a.i.security.shiro.webmodule.WebModuleShiro
+* o.a.i.persistence.jdo.metamodel.JdoProgrammingModel
 
 _Dependencies_
 
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
 * org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
-* org.apache.isis.core:isis-core-webapp:jar:<managed>
-* org.apache.shiro:shiro-core:jar:<managed>
-* org.apache.shiro:shiro-web:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed>
+
+|Apache Isis Persistence - JDO (provider)
+[source,yaml]
+----
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo-provider
+Type: jar
+Folder: \persistence\jdo\provider
+----
+|JDO Provider to be implemented by any actual JDO provider eg. DataNucleus.
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+
+|Apache Isis Persistence - JDO (Spring)
+[source,yaml]
+----
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jdo-spring
+Type: jar
+Folder: \persistence\jdo\spring
+----
+|JDO Spring integration.
+
+This is a fork of the Spring ORM JDO sources at github,
+for which support had been dropped back in 2016 [1].
+
+Credits to the original authors.
+
+[1] https://github.com/spring-projects/spring-framework/issues/18702
+
+_Dependencies_
+
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.core:isis-core-config:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed>
+* org.springframework:spring-jdbc:jar:<managed>
+* org.springframework:spring-web:jar:<managed>
 |===
 
-== Valuetypes
+=== JPA
 
-[plantuml,Valuetypes,svg]
+[plantuml,JPA,svg]
 ----
-@startuml(id=Valuetypes)
-title Valuetypes - Containers
+@startuml(id=JPA)
+title JPA - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -1560,465 +1652,299 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<11>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<22>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<12>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<13>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<14>> {
+skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<15>> {
+skinparam rectangle<<3>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<16>> {
+skinparam rectangle<<4>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<17>> {
+skinparam rectangle<<5>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<18>> {
+skinparam rectangle<<6>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<19>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
+package "JPA\n[Software System]" {
+  rectangle "==Apache Isis Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Persistence - JPA (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Persistence - JPA (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Persistence - JPA EclipseLink\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
 }
-skinparam rectangle<<2>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<3>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<4>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<5>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<6>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<7>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<8>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<9>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<20>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<21>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<10>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Valuetypes\n[Software System]" {
-  rectangle "==Apache Isis Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Val - Asciidoctor (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
-  rectangle "==Apache Isis Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Val - Asciidoctor (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Val - Asciidoctor (ui vaadin)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
-  rectangle "==Apache Isis Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
-  rectangle "==Apache Isis Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
-  rectangle "==Apache Isis Val - Markdown (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
-  rectangle "==Apache Isis Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
-  rectangle "==Apache Isis Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
-  rectangle "==Apache Isis Val - Markdown (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
-  rectangle "==Apache Isis Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
-  rectangle "==Apache Isis Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
-  rectangle "==Apache Isis Val - SSE (ui)\n<size:10>[Container: packaging: pom]</size>" <<21>> as 21
-  rectangle "==Apache Isis Val - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
-  rectangle "==Apache Isis Val - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
-  rectangle "==Apache Isis Val - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
-  rectangle "==Apache Isis Val - Server Sent Events (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<22>> as 22
-  rectangle "==Apache Isis Value types\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-}
-6 .[#707070].> 7 : ""
-3 .[#707070].> 5 : ""
-3 .[#707070].> 6 : ""
-3 .[#707070].> 4 : ""
-3 .[#707070].> 8 : ""
-8 .[#707070].> 10 : ""
-14 .[#707070].> 15 : ""
-11 .[#707070].> 13 : ""
-11 .[#707070].> 14 : ""
-11 .[#707070].> 12 : ""
-11 .[#707070].> 16 : ""
-16 .[#707070].> 17 : ""
-21 .[#707070].> 22 : ""
-18 .[#707070].> 21 : ""
-18 .[#707070].> 19 : ""
-18 .[#707070].> 20 : ""
 2 .[#707070].> 3 : ""
-2 .[#707070].> 11 : ""
-2 .[#707070].> 18 : ""
+2 .[#707070].> 5 : ""
+2 .[#707070].> 6 : ""
+2 .[#707070].> 4 : ""
 @enduml
 ----
-.Projects/Modules (Valuetypes)
+.Projects/Modules (JPA)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Value types
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes
-Type: pom
-Folder: \valuetypes
-----
-|Value types for use within Apache Isis applications.
-
-_Dependencies_
-
-* org.projectlombok:lombok:jar:<managed>
-
-|Apache Isis Val - Asciidoctor (parent)
+|Apache Isis Persistence - JPA
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jpa
 Type: pom
-Folder: \valuetypes\asciidoc
+Folder: \persistence\jpa
 ----
-|Asciidoc value type.
+|Apache Isis JPA integration
 
-|Apache Isis Val - Asciidoctor (applib)
+|Apache Isis Persistence - JPA (applib)
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-applib
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jpa-applib
 Type: jar
-Folder: \valuetypes\asciidoc\applib
+Folder: \persistence\jpa\applib
 ----
-|_Dependencies_
+|Supplementary applib for JPA persistence
+
+_Dependencies_
 
 * org.apache.isis.commons:isis-commons:jar:<managed>
 * org.apache.isis.core:isis-applib:jar:<managed>
-* org.asciidoctor:asciidoctorj-api:jar:${asciidoctorj.version}
 
-|Apache Isis Val - Asciidoctor (MetaModel)
+_Document Index Entries_
+
+xref:system:generated:index/persistence/jpa/applib/services/JpaSupportService.adoc[JpaSupportService]
+
+|Apache Isis Persistence - JPA EclipseLink
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-metamodel
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jpa-eclipselink
 Type: jar
-Folder: \valuetypes\asciidoc\metamodel
+Folder: \persistence\jpa\eclipselink
 ----
-|_Components_
-
-* o.a.i.valuetypes.asciidoc.metamodel.AsciiDocMetaModelRefiner
-* o.a.i.valuetypes.asciidoc.metamodel.AsciiDocValueTypeProvider
+|EclipseLink integration. Sets up EclipseLink as the implementation provider for Spring Data JPA.
 
 _Dependencies_
 
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-integration:jar:<managed>
+* org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.7.8
+* org.springframework.boot:spring-boot-starter-data-jpa:jar:<managed>
 
-|Apache Isis Val - Asciidoctor (Persistence)
+|Apache Isis Persistence - JPA (integration)
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-persistence
-Type: pom
-Folder: \valuetypes\asciidoc\persistence
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jpa-integration
+Type: jar
+Folder: \persistence\jpa\integration
 ----
-|_Dependencies_
+|JPA integration (facets, jpa-context)
 
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed>
+_Components_
 
-|Apache Isis Val - Asciidoctor (persistence jdo DN5)
+* o.a.i.persistence.jpa.integration.metamodel.JpaProgrammingModel
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-metamodel:jar:<managed>
+* org.springframework.data:spring-data-jpa:jar:<managed>
+
+|Apache Isis Persistence - JPA (metamodel)
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-persistence-jdo-dn5
+Group: org.apache.isis.persistence
+Artifact: isis-persistence-jpa-metamodel
 Type: jar
-Folder: \valuetypes\asciidoc\persistence\jdo-dn5
+Folder: \persistence\jpa\metamodel
 ----
-|_Dependencies_
+|JPA Metamodel Facets / Programming Model
 
-* org.datanucleus:datanucleus-core:jar:<managed>
+_Components_
 
-|Apache Isis Val - Asciidoctor (ui)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-ui
-Type: pom
-Folder: \valuetypes\asciidoc\ui
+* o.a.i.persistence.jpa.metamodel.JpaProgrammingModel
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
+|===
+
+== Security
+
+=== Bypass
+
+[plantuml,Bypass,svg]
 ----
-|_Dependencies_
+@startuml(id=Bypass)
+title Bypass - Containers
+caption Artifact Hierarchy (Maven)
 
-* com.github.jnr:jnr-constants:jar:0.10.1
-* com.github.jnr:jnr-enxio:jar:0.32.3
-* com.github.jnr:jnr-posix:jar:3.1.4
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed>
-* org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version}
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Bypass\n[Software System]" {
+  rectangle "==Apache Isis Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
+----
+.Projects/Modules (Bypass)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Val - Asciidoctor (ui vaadin)
+|Apache Isis Security - Bypass
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-ui-vaa
+Group: org.apache.isis.security
+Artifact: isis-security-bypass
 Type: jar
-Folder: \valuetypes\asciidoc\ui\vaadin
+Folder: \security\bypass
 ----
 |_Components_
 
-* o.a.i.valuetypes.asciidoc.ui.vaa.components.AsciiDocFieldFactoryVaa
+* o.a.i.security.bypass.authentication.AuthenticatorBypass
+* o.a.i.security.bypass.authorization.AuthorizorBypass
 
 _Dependencies_
 
-* org.apache.isis.incubator.viewer:isis-viewer-vaadin-ui:jar:${project.version}
-
-|Apache Isis Val - Asciidoctor (ui wicket)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-asciidoc-ui-wkt
-Type: jar
-Folder: \valuetypes\asciidoc\ui\wicket
-----
-|_Components_
-
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Parented
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Standalone
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Parented
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Standalone
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Parented
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Standalone
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Parented
-* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Standalone
-
-_Dependencies_
-
-* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
-
-|Apache Isis Val - Markdown (parent)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown
-Type: pom
-Folder: \valuetypes\markdown
-----
-|Markdown value type.
-
-|Apache Isis Val - Markdown (applib)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown-applib
-Type: jar
-Folder: \valuetypes\markdown\applib
-----
-|_Dependencies_
+* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+|===
 
-* com.vladsch.flexmark:flexmark-all:jar:${flexmark.version}
-* org.apache.isis.commons:isis-commons:jar:<managed>
-* org.apache.isis.core:isis-applib:jar:<managed>
+=== Keycloak
 
-|Apache Isis Val - Markdown (MetaModel)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown-metamodel
-Type: jar
-Folder: \valuetypes\markdown\metamodel
+[plantuml,Keycloak,svg]
 ----
-|_Components_
-
-* o.a.i.valuetypes.markdown.metamodel.MarkdownMetaModelRefiner
-* o.a.i.valuetypes.markdown.metamodel.MarkdownValueTypeProvider
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+@startuml(id=Keycloak)
+title Keycloak - Containers
+caption Artifact Hierarchy (Maven)
 
-|Apache Isis Val - Markdown (Persistence)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown-persistence
-Type: pom
-Folder: \valuetypes\markdown\persistence
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Keycloak\n[Software System]" {
+  rectangle "==Apache Isis Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
 ----
-|_Dependencies_
-
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+.Projects/Modules (Keycloak)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Val - Markdown (persistence jdo DN5)
+|Apache Isis Security - Keycloak
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown-persistence-jdo-dn5
+Group: org.apache.isis.security
+Artifact: isis-security-keycloak
 Type: jar
-Folder: \valuetypes\markdown\persistence\jdo-dn5
+Folder: \security\keycloak
 ----
-|_Dependencies_
+|Authentication and Authorization using Keycloak
 
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
-* org.datanucleus:datanucleus-core:jar:<managed>
+_Components_
 
-|Apache Isis Val - Markdown (ui)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown-ui
-Type: pom
-Folder: \valuetypes\markdown\ui
-----
-|_Dependencies_
+* o.a.i.security.keycloak.authentication.AuthenticatorKeycloak
+* o.a.i.security.keycloak.authorization.AuthorizorKeycloak
+* o.a.i.security.keycloak.webmodule.WebModuleKeycloak
 
-* com.vladsch.flexmark:flexmark-all:jar:${flexmark.version}
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
-* org.jsoup:jsoup:jar:<managed>
+_Dependencies_
 
-|Apache Isis Val - Markdown (ui wicket)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-markdown-ui-wkt
-Type: jar
-Folder: \valuetypes\markdown\ui\wicket
-----
-|_Dependencies_
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+* org.apache.isis.core:isis-core-webapp:jar:<managed>
+|===
 
-* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+=== Shiro
 
-|Apache Isis Val - Server Sent Events (parent)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-sse
-Type: pom
-Folder: \valuetypes\sse
+[plantuml,Shiro,svg]
 ----
-|Dynamically updating HTML markup
+@startuml(id=Shiro)
+title Shiro - Containers
+caption Artifact Hierarchy (Maven)
 
-|Apache Isis Val - Server Sent Events
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-sse-applib
-Type: jar
-Folder: \valuetypes\sse\applib
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Shiro\n[Software System]" {
+  rectangle "==Apache Isis Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
 ----
-|_Dependencies_
-
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.core:isis-core-webapp:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+.Projects/Modules (Shiro)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Val - Server Sent Events (metamodel)
+|Apache Isis Security - Shiro
 [source,yaml]
 ----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-sse-metamodel
+Group: org.apache.isis.security
+Artifact: isis-security-shiro
 Type: jar
-Folder: \valuetypes\sse\metamodel
-----
-|_Components_
-
-* o.a.i.valuetypes.sse.metamodel.facets.SseAnnotationFacetFactory$Register
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed>
-
-|Apache Isis Val - SSE (ui)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-sse-ui
-Type: pom
-Folder: \valuetypes\sse\ui
+Folder: \security\shiro
 ----
-|_Dependencies_
-
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed>
+|Authentication and Authorization using Apache Shiro.
 
-|Apache Isis Val - Server Sent Events (ui wicket)
-[source,yaml]
-----
-Group: org.apache.isis.valuetypes
-Artifact: isis-valuetypes-sse-ui-wkt
-Type: jar
-Folder: \valuetypes\sse\ui\wicket
-----
-|_Components_
+_Components_
 
-* o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Parented
-* o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Standalone
-* o.a.i.valuetypes.sse.ui.wkt.services.SseServiceDefault
-* o.a.i.valuetypes.sse.ui.wkt.webmodule.WebModuleServerSentEvents
+* o.a.i.security.shiro.authentication.AuthenticatorShiro
+* o.a.i.security.shiro.authorization.AuthorizorShiro
+* o.a.i.security.shiro.webmodule.WebModuleShiro
 
 _Dependencies_
 
-* org.apache.isis.valuetypes:isis-valuetypes-sse-metamodel:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.apache.shiro:shiro-core:jar:<managed>
+* org.apache.shiro:shiro-web:jar:<managed>
 |===
 
 == Viewer
@@ -2037,110 +1963,109 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<11>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<12>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<3>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<4>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
+package "Viewer\n[Software System]" {
+  rectangle "==Apache Isis Viewer - Common Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
 }
-skinparam rectangle<<5>> {
-  BackgroundColor #438dd5
+@enduml
+----
+.Projects/Modules (Viewer)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
+
+|Apache Isis Viewer - Common Model
+[source,yaml]
+----
+Group: org.apache.isis.viewer
+Artifact: isis-viewer-common
+Type: jar
+Folder: \viewers\common
+----
+|_Components_
+
+* o.a.i.viewer.common.model.branding.BrandingUiModelProvider
+* o.a.i.viewer.common.model.header.HeaderUiModelProvider
+* o.a.i.viewer.common.model.menu.MenuUiModelProvider
+* o.a.i.viewer.common.model.userprofile.UserProfileUiModelProvider
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.webjars:font-awesome:jar:5.15.2
+|===
+
+=== Restful Objects
+
+[plantuml,Restful Objects,svg]
+----
+@startuml(id=Restful_Objects)
+title Restful Objects - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<6>> {
+skinparam rectangle<<3>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<7>> {
+skinparam rectangle<<4>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<8>> {
+skinparam rectangle<<5>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<9>> {
+skinparam rectangle<<6>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<10>> {
+skinparam rectangle<<7>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Viewer\n[Software System]" {
-  rectangle "==Apache Isis Viewer - Common Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
-  rectangle "==Apache Isis Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Viewer - RO (JAX-RS Resteasy v4)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
-  rectangle "==Apache Isis Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
-  rectangle "==Apache Isis Viewer - Wicket (Model)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Viewer - Wicket (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
-  rectangle "==Apache Isis Viewer - Wicket (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+package "Restful Objects\n[Software System]" {
+  rectangle "==Apache Isis Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Viewer - RO (JAX-RS Resteasy v4)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
 }
-3 .[#707070].> 4 : ""
-3 .[#707070].> 5 : ""
-3 .[#707070].> 6 : ""
-3 .[#707070].> 7 : ""
-3 .[#707070].> 8 : ""
-9 .[#707070].> 10 : ""
-9 .[#707070].> 11 : ""
-9 .[#707070].> 12 : ""
+2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+2 .[#707070].> 5 : ""
+2 .[#707070].> 6 : ""
+2 .[#707070].> 7 : ""
 @enduml
 ----
-.Projects/Modules (Viewer)
+.Projects/Modules (Restful Objects)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Viewer - Common Model
-[source,yaml]
-----
-Group: org.apache.isis.viewer
-Artifact: isis-viewer-common
-Type: jar
-Folder: \viewers\common
-----
-|_Components_
-
-* o.a.i.viewer.common.model.branding.BrandingUiModelProvider
-* o.a.i.viewer.common.model.header.HeaderUiModelProvider
-* o.a.i.viewer.common.model.menu.MenuUiModelProvider
-* o.a.i.viewer.common.model.userprofile.UserProfileUiModelProvider
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.webjars:font-awesome:jar:5.15.2
-
 |Apache Isis Viewer - RO
 [source,yaml]
 ----
@@ -2266,6 +2191,59 @@ _Dependencies_
 * org.apache.isis.viewer:isis-viewer-common:jar:<managed>
 * org.apache.isis.viewer:isis-viewer-restfulobjects-rendering:jar:<managed>
 * org.datanucleus:javax.jdo:jar:<managed>
+|===
+
+=== Wicket
+
+[plantuml,Wicket,svg]
+----
+@startuml(id=Wicket)
+title Wicket - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Wicket\n[Software System]" {
+  rectangle "==Apache Isis Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Viewer - Wicket (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Viewer - Wicket (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Viewer - Wicket (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+}
+2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+2 .[#707070].> 5 : ""
+@enduml
+----
+.Projects/Modules (Wicket)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Viewer - Wicket
 [source,yaml]
@@ -2365,12 +2343,12 @@ _Dependencies_
 * org.springframework:spring-web:jar:<managed>
 |===
 
-== Testing
+== Valuetypes
 
-[plantuml,Testing,svg]
+[plantuml,Valuetypes,svg]
 ----
-@startuml(id=Testing)
-title Testing - Containers
+@startuml(id=Valuetypes)
+title Valuetypes - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -2386,6 +2364,11 @@ skinparam rectangle<<11>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
+skinparam rectangle<<22>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
 skinparam rectangle<<12>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -2421,6 +2404,11 @@ skinparam rectangle<<18>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
+skinparam rectangle<<19>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -2461,309 +2449,511 @@ skinparam rectangle<<9>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
+skinparam rectangle<<20>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
 skinparam rectangle<<10>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Testing\n[Software System]" {
-  rectangle "==Apache Isis Testing\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
-  rectangle "==Apache Isis Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
-  rectangle "==Apache Isis Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
-  rectangle "==Apache Isis Tst - H2 Console (ui)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Tst - HSQLDB Manager\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
-  rectangle "==Apache Isis Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
-  rectangle "==Apache Isis Tst - Integ Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
-  rectangle "==Apache Isis Tst - Integ Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<13>> as 13
-  rectangle "==Apache Isis Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
-  rectangle "==Apache Isis Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<15>> as 15
-  rectangle "==Apache Isis Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
-  rectangle "==Apache Isis Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<17>> as 17
+skinparam rectangle<<21>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
 }
-2 .[#707070].> 3 : ""
-2 .[#707070].> 7 : ""
-2 .[#707070].> 9 : ""
-2 .[#707070].> 11 : ""
-2 .[#707070].> 13 : ""
-2 .[#707070].> 15 : ""
-2 .[#707070].> 17 : ""
-3 .[#707070].> 4 : ""
+package "Valuetypes\n[Software System]" {
+  rectangle "==Apache Isis Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Val - Asciidoctor (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
+  rectangle "==Apache Isis Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+  rectangle "==Apache Isis Val - Asciidoctor (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+  rectangle "==Apache Isis Val - Asciidoctor (ui vaadin)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+  rectangle "==Apache Isis Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+  rectangle "==Apache Isis Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
+  rectangle "==Apache Isis Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
+  rectangle "==Apache Isis Val - Markdown (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
+  rectangle "==Apache Isis Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+  rectangle "==Apache Isis Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
+  rectangle "==Apache Isis Val - Markdown (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
+  rectangle "==Apache Isis Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
+  rectangle "==Apache Isis Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
+  rectangle "==Apache Isis Val - SSE (ui)\n<size:10>[Container: packaging: pom]</size>" <<21>> as 21
+  rectangle "==Apache Isis Val - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
+  rectangle "==Apache Isis Val - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
+  rectangle "==Apache Isis Val - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
+  rectangle "==Apache Isis Val - Server Sent Events (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<22>> as 22
+  rectangle "==Apache Isis Value types\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+6 .[#707070].> 7 : ""
 3 .[#707070].> 5 : ""
 3 .[#707070].> 6 : ""
-7 .[#707070].> 8 : ""
-9 .[#707070].> 10 : ""
+3 .[#707070].> 4 : ""
+3 .[#707070].> 8 : ""
+8 .[#707070].> 10 : ""
+14 .[#707070].> 15 : ""
+11 .[#707070].> 13 : ""
+11 .[#707070].> 14 : ""
 11 .[#707070].> 12 : ""
-13 .[#707070].> 14 : ""
-15 .[#707070].> 16 : ""
-17 .[#707070].> 18 : ""
+11 .[#707070].> 16 : ""
+16 .[#707070].> 17 : ""
+21 .[#707070].> 22 : ""
+18 .[#707070].> 21 : ""
+18 .[#707070].> 19 : ""
+18 .[#707070].> 20 : ""
+2 .[#707070].> 3 : ""
+2 .[#707070].> 11 : ""
+2 .[#707070].> 18 : ""
 @enduml
 ----
-.Projects/Modules (Testing)
+.Projects/Modules (Valuetypes)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Testing
+|Apache Isis Value types
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes
 Type: pom
-Folder: \testing
+Folder: \valuetypes
 ----
-|A library of utilities, mini-frameworks and tools for prototyping and testing Apache Isis applications.
+|Value types for use within Apache Isis applications.
 
-|Apache Isis Tst - FakeData (parent)
+_Dependencies_
+
+* org.projectlombok:lombok:jar:<managed>
+
+|Apache Isis Val - Asciidoctor (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-fakedata
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc
 Type: pom
-Folder: \testing\fakedata
+Folder: \valuetypes\asciidoc
 ----
-|A module providing a domain service to generate fake random data
-        for use in unit tests or integration tests.
+|Asciidoc value type.
 
-|Apache Isis Tst - FakeData (applib)
+|Apache Isis Val - Asciidoctor (applib)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-fakedata-applib
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-applib
 Type: jar
-Folder: \testing\fakedata\applib
+Folder: \valuetypes\asciidoc\applib
+----
+|_Dependencies_
+
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.asciidoctor:asciidoctorj-api:jar:${asciidoctorj.version}
+
+|Apache Isis Val - Asciidoctor (MetaModel)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-metamodel
+Type: jar
+Folder: \valuetypes\asciidoc\metamodel
 ----
 |_Components_
 
-* o.a.i.testing.fakedata.applib.services.FakeDataService
+* o.a.i.valuetypes.asciidoc.metamodel.AsciiDocMetaModelRefiner
+* o.a.i.valuetypes.asciidoc.metamodel.AsciiDocValueTypeProvider
 
 _Dependencies_
 
-* com.github.javafaker:javafaker:jar:<managed>
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed>
+
+|Apache Isis Val - Asciidoctor (Persistence)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-persistence
+Type: pom
+Folder: \valuetypes\asciidoc\persistence
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed>
+
+|Apache Isis Val - Asciidoctor (persistence jdo DN5)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-persistence-jdo-dn5
+Type: jar
+Folder: \valuetypes\asciidoc\persistence\jdo-dn5
+----
+|_Dependencies_
+
+* org.datanucleus:datanucleus-core:jar:<managed>
+
+|Apache Isis Val - Asciidoctor (ui)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-ui
+Type: pom
+Folder: \valuetypes\asciidoc\ui
+----
+|_Dependencies_
+
+* com.github.jnr:jnr-constants:jar:0.10.1
+* com.github.jnr:jnr-enxio:jar:0.32.3
+* com.github.jnr:jnr-posix:jar:3.1.4
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed>
+* org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version}
+
+|Apache Isis Val - Asciidoctor (ui vaadin)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-ui-vaa
+Type: jar
+Folder: \valuetypes\asciidoc\ui\vaadin
+----
+|_Components_
+
+* o.a.i.valuetypes.asciidoc.ui.vaa.components.AsciiDocFieldFactoryVaa
+
+_Dependencies_
+
+* org.apache.isis.incubator.viewer:isis-viewer-vaadin-ui:jar:${project.version}
+
+|Apache Isis Val - Asciidoctor (ui wicket)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-asciidoc-ui-wkt
+Type: jar
+Folder: \valuetypes\asciidoc\ui\wicket
+----
+|_Components_
+
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Parented
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Standalone
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Parented
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Standalone
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Parented
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Standalone
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Parented
+* o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Standalone
+
+_Dependencies_
+
+* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+
+|Apache Isis Val - Markdown (parent)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown
+Type: pom
+Folder: \valuetypes\markdown
+----
+|Markdown value type.
+
+|Apache Isis Val - Markdown (applib)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown-applib
+Type: jar
+Folder: \valuetypes\markdown\applib
+----
+|_Dependencies_
+
+* com.vladsch.flexmark:flexmark-all:jar:${flexmark.version}
 * org.apache.isis.commons:isis-commons:jar:<managed>
 * org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
 
-|Apache Isis Tst - FakeData (fixtures)
+|Apache Isis Val - Markdown (MetaModel)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-fakedata-fixtures
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown-metamodel
 Type: jar
-Folder: \testing\fakedata\fixtures
+Folder: \valuetypes\markdown\metamodel
+----
+|_Components_
+
+* o.a.i.valuetypes.markdown.metamodel.MarkdownMetaModelRefiner
+* o.a.i.valuetypes.markdown.metamodel.MarkdownValueTypeProvider
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+
+|Apache Isis Val - Markdown (Persistence)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown-persistence
+Type: pom
+Folder: \valuetypes\markdown\persistence
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+
+|Apache Isis Val - Markdown (persistence jdo DN5)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown-persistence-jdo-dn5
+Type: jar
+Folder: \valuetypes\markdown\persistence\jdo-dn5
+----
+|_Dependencies_
+
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+* org.datanucleus:datanucleus-core:jar:<managed>
+
+|Apache Isis Val - Markdown (ui)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown-ui
+Type: pom
+Folder: \valuetypes\markdown\ui
 ----
 |_Dependencies_
 
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
+* com.vladsch.flexmark:flexmark-all:jar:${flexmark.version}
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
+* org.jsoup:jsoup:jar:<managed>
 
-|Apache Isis Tst - FakeData (integ tests)
+|Apache Isis Val - Markdown (ui wicket)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-fakedata-integtests
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-markdown-ui-wkt
 Type: jar
-Folder: \testing\fakedata\integtests
+Folder: \valuetypes\markdown\ui\wicket
 ----
 |_Dependencies_
 
-* org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed>
-* org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-fakedata-fixtures:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
 
-|Apache Isis Tst - Fixtures (parent)
+|Apache Isis Val - Server Sent Events (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-fixtures
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-sse
 Type: pom
-Folder: \testing\fixtures
+Folder: \valuetypes\sse
 ----
-|Library to initialize the system under test, either for integration testing or for prototyping.
+|Dynamically updating HTML markup
 
-|Apache Isis Tst - Fixtures (applib)
+|Apache Isis Val - Server Sent Events
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-fixtures-applib
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-sse-applib
 Type: jar
-Folder: \testing\fixtures\applib
+Folder: \valuetypes\sse\applib
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+
+|Apache Isis Val - Server Sent Events (metamodel)
+[source,yaml]
+----
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-sse-metamodel
+Type: jar
+Folder: \valuetypes\sse\metamodel
 ----
 |_Components_
 
-* o.a.i.testing.fixtures.applib.fixturescripts.ExecutionParametersService
-* o.a.i.testing.fixtures.applib.modules.ModuleWithFixturesService
-* o.a.i.testing.fixtures.applib.queryresultscache.QueryResultsCacheControlDefault
-* o.a.i.testing.fixtures.applib.services.FixturesLifecycleService
+* o.a.i.valuetypes.sse.metamodel.facets.SseAnnotationFacetFactory$Register
 
 _Dependencies_
 
-* joda-time:joda-time:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
-* org.apache.isis.subdomains:isis-subdomains-spring-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed>
 
-|Apache Isis Tst - H2 Console (parent)
+|Apache Isis Val - SSE (ui)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-h2console
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-sse-ui
 Type: pom
-Folder: \testing\h2console
+Folder: \valuetypes\sse\ui
 ----
-|Menu and configuration to open up H2 Console
+|_Dependencies_
 
-|Apache Isis Tst - H2 Console (ui)
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed>
+
+|Apache Isis Val - Server Sent Events (ui wicket)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-h2console-ui
+Group: org.apache.isis.valuetypes
+Artifact: isis-valuetypes-sse-ui-wkt
 Type: jar
-Folder: \testing\h2console\ui
+Folder: \valuetypes\sse\ui\wicket
 ----
 |_Components_
 
-* o.a.i.testing.h2console.ui.webmodule.WebModuleH2Console
+* o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Parented
+* o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Standalone
+* o.a.i.valuetypes.sse.ui.wkt.services.SseServiceDefault
+* o.a.i.valuetypes.sse.ui.wkt.webmodule.WebModuleServerSentEvents
 
 _Dependencies_
 
-* com.h2database:h2:jar:<managed>
-* org.apache.isis.core:isis-core-webapp:jar:<managed>
-* org.beanshell:bsh:jar:2.0b5
+* org.apache.isis.valuetypes:isis-valuetypes-sse-metamodel:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+|===
 
-|Apache Isis Tst - HSQLDB Manager (parent)
-[source,yaml]
-----
-Group: org.apache.isis.testing
-Artifact: isis-testing-hsqldbmgr
-Type: pom
-Folder: \testing\hsqldbmgr
-----
-|Menu and configuration to open up HSQLDB Manager
+== Mappings
 
-|Apache Isis Tst - HSQLDB Manager
-[source,yaml]
-----
-Group: org.apache.isis.testing
-Artifact: isis-testing-hsqldbmgr-ui
-Type: jar
-Folder: \testing\hsqldbmgr\ui
+[plantuml,Mappings,svg]
 ----
-|_Dependencies_
+@startuml(id=Mappings)
+title Mappings - Containers
+caption Artifact Hierarchy (Maven)
 
-* org.apache.isis.core:isis-core-webapp:jar:<managed>
-* org.hsqldb:hsqldb:jar:<managed>
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Mappings\n[Software System]" {
+  rectangle "==Apache Isis Mappings\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+@enduml
+----
+.Projects/Modules (Mappings)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Tst - Integ Test Support (parent)
+|Apache Isis Mappings
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-integtestsupport
+Group: org.apache.isis.mappings
+Artifact: isis-mappings
 Type: pom
-Folder: \testing\integtestsupport
+Folder: \mappings
 ----
-|Support for writing integ tests in JUnit 5; should be added as a dependency with scope=test only
+|Libraries and tools to map one bounded context (usually an Apache Isis application) to some other BC (usually
+_not_ an Apache Isis application).
 
-|Apache Isis Tst - Integ Test Support (applib)
-[source,yaml]
-----
-Group: org.apache.isis.testing
-Artifact: isis-testing-integtestsupport-applib
-Type: jar
-Folder: \testing\integtestsupport\applib
-----
-|_Components_
+_Dependencies_
 
-* o.a.i.testing.integtestsupport.applib.IsisIntegrationTestAbstract$InteractionSupport
+* org.projectlombok:lombok:jar:<managed>
+|===
 
-_Dependencies_
+=== JAX-RS Client Library
 
-* com.approvaltests:approvaltests:jar:<managed>
-* com.h2database:h2:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
-* org.apache.isis.security:isis-security-bypass:jar:<managed>
-* org.hamcrest:hamcrest-library:jar:<managed>
-* org.hsqldb:hsqldb:jar:<managed>
-* org.slf4j:slf4j-api:jar:${slf4j-api.version}
-* org.springframework:spring-test:jar:<managed>
-* org.springframework.boot:spring-boot-starter-test:jar:<managed>
+[plantuml,JAX-RS Client Library,svg]
+----
+@startuml(id=JAX-RS_Client_Library)
+title JAX-RS Client Library - Containers
+caption Artifact Hierarchy (Maven)
 
-|Apache Isis Tst - Spec/Cucumber (parent)
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "JAX-RS Client Library\n[Software System]" {
+  rectangle "==Apache Isis Map - JaxRS Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Map - JaxRS Client (impl)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Map - JaxRS Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+@enduml
+----
+.Projects/Modules (JAX-RS Client Library)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
+
+|Apache Isis Map - JaxRS Client (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-specsupport
+Group: org.apache.isis.mappings
+Artifact: isis-mappings-jaxrsclient
 Type: pom
-Folder: \testing\specsupport
+Folder: \mappings\jaxrsclient
 ----
-|Allows Cucumber to be used to write BDD-style specifications, generally as an alternative to integration tests.
+|Integrates JaxRS Client Library
 
-|Apache Isis Tst - Spec/Cucumber (applib)
+|Apache Isis Map - JaxRS Client (applib)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-specsupport-applib
+Group: org.apache.isis.mappings
+Artifact: isis-mappings-jaxrsclient-applib
 Type: jar
-Folder: \testing\specsupport\applib
+Folder: \mappings\jaxrsclient\applib
 ----
 |_Dependencies_
 
-* io.cucumber:cucumber-java:jar:<managed>
-* io.cucumber:cucumber-junit-platform-engine:jar:<managed>
-* io.cucumber:cucumber-spring:jar:<managed>
-* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
-* org.junit.jupiter:junit-jupiter-api:jar:<managed>
-
-|Apache Isis Tst - Unit Test Support (parent)
-[source,yaml]
-----
-Group: org.apache.isis.testing
-Artifact: isis-testing-unittestsupport
-Type: pom
-Folder: \testing\unittestsupport
-----
-|A module providing test utilities for unit testing of domain modules
+* javax:javaee-api:jar:<managed>
+* org.springframework:spring-context:jar:<managed>
 
-|Apache Isis Tst - Unit Test Support (applib)
+|Apache Isis Map - JaxRS Client (impl)
 [source,yaml]
 ----
-Group: org.apache.isis.testing
-Artifact: isis-testing-unittestsupport-applib
+Group: org.apache.isis.mappings
+Artifact: isis-mappings-jaxrsclient-impl
 Type: jar
-Folder: \testing\unittestsupport\applib
+Folder: \mappings\jaxrsclient\testlib
 ----
 |_Dependencies_
 
-* com.approvaltests:approvaltests:jar:<managed>
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed>
-* org.datanucleus:javax.jdo:jar:<managed>
-* org.jmock:jmock:jar:<managed>
-* org.jmock:jmock-junit4:jar:<managed>
-* org.picocontainer:picocontainer:jar:<managed>
-* org.slf4j:slf4j-api:jar:<managed>
-* org.springframework:spring-test:jar:<managed>
-* org.springframework.boot:spring-boot-starter-test:jar:<managed>
+* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
 |===
 
-== Regression Tests
+=== REST Client
 
-[plantuml,Regression Tests,svg]
+[plantuml,REST Client,svg]
 ----
-@startuml(id=Regression_Tests)
-title Regression Tests - Containers
+@startuml(id=REST_Client)
+title REST Client - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -2784,81 +2974,42 @@ skinparam rectangle<<3>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-package "Regression Tests\n[Software System]" {
-  rectangle "==Apache Isis - Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis - Regression Tests (stable)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+package "REST Client\n[Software System]" {
+  rectangle "==Apache Isis Ext - REST Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Ext - REST Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
 }
 2 .[#707070].> 3 : ""
 @enduml
 ----
-.Projects/Modules (Regression Tests)
+.Projects/Modules (REST Client)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis - Regression Tests
+|Apache Isis Ext - REST Client (parent)
 [source,yaml]
 ----
-Group: org.apache.isis.regressiontests
-Artifact: isis-regressiontests
+Group: org.apache.isis.mappings
+Artifact: isis-mappings-restclient
 Type: pom
-Folder: \regressiontests
+Folder: \mappings\restclient
 ----
-|Collection of JUnit tests covering core functionalities of the framework.
-        (Targeted for JVM 11+)
-
-_Dependencies_
-
-* org.apache.directory.server:apacheds-test-framework:jar:2.0.0.AM26
-* org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-shiro-realm-ldap-impl:jar:<managed>
-* org.apache.isis.mappings:isis-mappings-restclient-applib:jar:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jpa:pom:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed>
-* org.apache.isis.security:isis-security-shiro:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
-* org.apache.isis.tooling:isis-tooling-model4adoc:jar:${project.version}
-* org.apache.isis.viewer:isis-viewer-common:jar:<managed>
-* org.glassfish:javax.json:jar:1.1.4
-* org.glassfish.jersey.ext:jersey-spring5:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
+|A client for the Restful Objects Viewer
 
-|Apache Isis - Regression Tests (stable)
+|Apache Isis Ext - REST Client (applib)
 [source,yaml]
 ----
-Group: org.apache.isis.regressiontests
-Artifact: isis-regressiontests-stable
+Group: org.apache.isis.mappings
+Artifact: isis-mappings-restclient-applib
 Type: jar
-Folder: \regressiontests\stable
+Folder: \mappings\restclient\applib
 ----
-|_Components_
-
-* o.a.i.testdomain.applayer.ApplicationLayerTestFactory
-* o.a.i.testdomain.applayer.ApplicationLayerTestFactory$PreCommitListener
-* o.a.i.testdomain.applayer.publishing.CommandSubscriberForTesting
-* o.a.i.testdomain.applayer.publishing.EntityChangesSubscriberForTesting
-* o.a.i.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting
-* o.a.i.testdomain.applayer.publishing.ExecutionSubscriberForTesting
-* o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport
-* o.a.i.testdomain.jpa.springdata.EmployeeRepository
-* o.a.i.testdomain.util.interaction.InteractionBoundaryProbe
-* o.a.i.testdomain.util.kv.KVStoreForTesting
-* o.a.i.testdomain.util.rest.RestEndpointService
+|A client for the Restful Objects Viewer
 
 _Dependencies_
 
-* org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed>
-* org.glassfish.jersey.ext:jersey-spring5:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed>
+* org.springframework:spring-context:jar:<managed>
 |===
 
 == Extensions
@@ -2882,61 +3033,6 @@ skinparam rectangle<<22>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<23>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<24>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<25>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<26>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<27>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<28>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<29>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<30>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<31>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<32>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<10>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
 skinparam rectangle<<11>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -3027,198 +3123,80 @@ skinparam rectangle<<20>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
+skinparam rectangle<<10>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
 skinparam rectangle<<21>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
 package "Extensions\n[Software System]" {
-  rectangle "==Apache Isis Ext - @Model\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
-  rectangle "==Apache Isis Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
-  rectangle "==Apache Isis Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
-  rectangle "==Apache Isis Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Ext - Command Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
-  rectangle "==Apache Isis Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Ext - Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Ext - Flyway\n<size:10>[Container: packaging: pom]</size>" <<12>> as 12
-  rectangle "==Apache Isis Ext - Flyway Impl\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
-  rectangle "==Apache Isis Ext - Quartz\n<size:10>[Container: packaging: pom]</size>" <<22>> as 22
-  rectangle "==Apache Isis Ext - Quartz Impl\n<size:10>[Container: packaging: jar]</size>" <<23>> as 23
-  rectangle "==Apache Isis Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<24>> as 24
-  rectangle "==Apache Isis Ext - Sec Man API\n<size:10>[Container: packaging: jar]</size>" <<25>> as 25
-  rectangle "==Apache Isis Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<26>> as 26
-  rectangle "==Apache Isis Ext - Sec Man Model\n<size:10>[Container: packaging: jar]</size>" <<27>> as 27
-  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<28>> as 28
-  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JPA)\n<size:10>[Container: packaging: jar]</size>" <<29>> as 29
-  rectangle "==Apache Isis Ext - Sec Man Realm (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<30>> as 30
-  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (impl)\n<size:10>[Container: packaging: jar]</size>" <<32>> as 32
-  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (parent)\n<size:10>[Container: packaging: pom]</size>" <<31>> as 31
-  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (parent)\n<size:10>[Container: packaging: pom]</size>" <<10>> as 10
-  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (ui)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
-  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
-  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
-  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (ui)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
-  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (applib)\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
-  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
-  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
-  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (ui)\n<size:10>[Container: packaging: jar]</size>" <<21>> as 21
+  rectangle "==Apache Isis Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+  rectangle "==Apache Isis Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
+  rectangle "==Apache Isis Ext - Sec Man API\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
+  rectangle "==Apache Isis Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
+  rectangle "==Apache Isis Ext - Sec Man Model\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
+  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
+  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JPA)\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
+  rectangle "==Apache Isis Ext - Sec Man Realm (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
+  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (impl)\n<size:10>[Container: packaging: jar]</size>" <<22>> as 22
+  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (parent)\n<size:10>[Container: packaging: pom]</size>" <<21>> as 21
+  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (ui)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (ui)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
+  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (applib)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
+  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (parent)\n<size:10>[Container: packaging: pom]</size>" <<10>> as 10
+  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (ui)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
   rectangle "==Apache Isis Extensions\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
 }
-8 .[#707070].> 9 : ""
 3 .[#707070].> 4 : ""
-5 .[#707070].> 6 : ""
-5 .[#707070].> 7 : ""
-12 .[#707070].> 13 : ""
-22 .[#707070].> 23 : ""
-24 .[#707070].> 25 : ""
-24 .[#707070].> 26 : ""
-24 .[#707070].> 27 : ""
-24 .[#707070].> 28 : ""
-24 .[#707070].> 29 : ""
-24 .[#707070].> 30 : ""
-31 .[#707070].> 32 : ""
-10 .[#707070].> 11 : ""
 14 .[#707070].> 15 : ""
 14 .[#707070].> 16 : ""
-18 .[#707070].> 19 : ""
-18 .[#707070].> 20 : ""
-18 .[#707070].> 21 : ""
-2 .[#707070].> 17 : ""
-2 .[#707070].> 8 : ""
+14 .[#707070].> 17 : ""
+14 .[#707070].> 18 : ""
+14 .[#707070].> 19 : ""
+14 .[#707070].> 20 : ""
+21 .[#707070].> 22 : ""
+5 .[#707070].> 6 : ""
+7 .[#707070].> 8 : ""
+7 .[#707070].> 9 : ""
+10 .[#707070].> 11 : ""
+10 .[#707070].> 12 : ""
+10 .[#707070].> 13 : ""
 2 .[#707070].> 3 : ""
+2 .[#707070].> 14 : ""
+2 .[#707070].> 21 : ""
 2 .[#707070].> 5 : ""
-2 .[#707070].> 12 : ""
-2 .[#707070].> 22 : ""
-2 .[#707070].> 24 : ""
-2 .[#707070].> 31 : ""
+2 .[#707070].> 7 : ""
 2 .[#707070].> 10 : ""
-2 .[#707070].> 14 : ""
-2 .[#707070].> 18 : ""
 @enduml
 ----
 .Projects/Modules (Extensions)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description 
-
-|Apache Isis Extensions
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions
-Type: pom
-Folder: \extensions
-----
-|Extensions to the Apache Isis framework itself.
-		These are _not_ intended to be called by the domain logic of an Apache Isis application (see instead org.apache.isis.platform).
-
-_Dependencies_
-
-* org.projectlombok:lombok:jar:<managed>
-
-|Apache Isis Ext - Command Log
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-command-log
-Type: pom
-Folder: \extensions\core\command-log
-----
-|Logs commands
-
-|Apache Isis Ext - Command Log Implementation (JDO)
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-command-log-jdo
-Type: jar
-Folder: \extensions\core\command-log\impl
-----
-|_Components_
-
-* o.a.i.extensions.commandlog.impl.CommandSubscriberForJdo
-* o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TableColumnOrderDefault
-* o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TitleProvider
-* o.a.i.extensions.commandlog.impl.jdo.CommandJdoRepository
-* o.a.i.extensions.commandlog.impl.ui.CommandServiceMenu
-
-_Dependencies_
-
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.apache.isis.core:isis-core-config:jar:<managed>
-* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
-
-|Apache Isis Ext - Command Replay
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-command-replay
-Type: pom
-Folder: \extensions\core\command-replay
-----
-|Replays commands to secondary system
-
-|Apache Isis Ext - Command Replay for Primary
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-command-replay-primary
-Type: jar
-Folder: \extensions\core\command-replay\primary
-----
-|A module for obtaining commands from a primary
-
-_Components_
-
-* o.a.i.extensions.commandreplay.primary.config.PrimaryConfig
-* o.a.i.extensions.commandreplay.primary.spiimpl.CaptureResultOfCommand
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-config:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.core:isis-schema:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed>
-* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
-* org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
-
-|Apache Isis Ext - Command Replay for Secondary
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-command-replay-secondary
-Type: jar
-Folder: \extensions\core\command-replay\secondary
-----
-|A module providing a Quartz Job to run on a secondary system,
-		for obtaining commands from a primary and saving them so that they are replayed.
-
-_Components_
-
-* o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserException
-* o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserResult
-* o.a.i.extensions.commandreplay.secondary.analysis.CommandReplayAnalysisService
-* o.a.i.extensions.commandreplay.secondary.clock.TickingClockService
-* o.a.i.extensions.commandreplay.secondary.config.SecondaryConfig
-* o.a.i.extensions.commandreplay.secondary.executor.CommandExecutorServiceWithTime
-* o.a.i.extensions.commandreplay.secondary.fetch.CommandFetcher
+|Coordinates |Description 
+
+|Apache Isis Extensions
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions
+Type: pom
+Folder: \extensions
+----
+|Extensions to the Apache Isis framework itself.
+These are _not_ intended to be called by the domain logic of an Apache Isis application (see instead org.apache.isis.platform).
 
 _Dependencies_
 
-* org.apache.isis.core:isis-core-config:jar:<managed>
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.core:isis-schema:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-quartz-impl:jar:<managed>
-* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
-* org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
 
 |Apache Isis Ext - CORS (parent)
 [source,yaml]
@@ -3273,32 +3251,6 @@ _Dependencies_
 * org.apache.poi:poi-ooxml:jar:<managed>
 * org.apache.poi:poi-ooxml-schemas:jar:<managed>
 
-|Apache Isis Ext - Flyway
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-flyway
-Type: pom
-Folder: \extensions\core\flyway
-----
-|Integrates Flyway when using any (relational) persistence store
-
-|Apache Isis Ext - Flyway Impl
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-flyway-impl
-Type: jar
-Folder: \extensions\core\flyway\impl
-----
-|_Dependencies_
-
-* org.apache.isis.core:isis-core-config:jar:<managed>
-* org.flywaydb:flyway-core:jar:<managed>
-* org.springframework:spring-context:jar:<managed>
-* org.springframework:spring-jdbc:jar:<managed>
-* org.springframework.boot:spring-boot-autoconfigure:jar:<managed>
-
 |Apache Isis Ext - Wicket Viewer - fullcalendar (parent)
 [source,yaml]
 ----
@@ -3336,258 +3288,594 @@ Folder: \extensions\vw\fullcalendar\ui
 * org.apache.isis.extensions:isis-extensions-fullcalendar-applib:jar:<managed>
 * org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
 
-|Apache Isis Ext - @Model
+|Apache Isis Ext - Wicket Viewer - pdf.js (parent)
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-modelannotation
+Artifact: isis-extensions-pdfjs
+Type: pom
+Folder: \extensions\vw\pdfjs
+----
+|A component for Apache Isis' Wicket viewer, allowing BLOBs containing PDFs to be rendered in a panel using pdf.js.
+
+|Apache Isis Ext - Wicket Viewer - pdf.js (applib)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-pdfjs-applib
 Type: jar
-Folder: \extensions\core\model-annotation
+Folder: \extensions\vw\pdfjs\applib
 ----
-|Allows supporting methods to be annotated as @Model, to make explicit the bounds of the metamodel.
+|_Dependencies_
 
-_Components_
+* de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
 
-* o.a.i.extensions.modelannotation.metamodel.services.IncubatorMetaModelPlugin
+|Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-pdfjs-metamodel
+Type: jar
+Folder: \extensions\vw\pdfjs\metamodel
+----
+|_Components_
+
+* o.a.i.extensions.viewer.wicket.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotationFactory$Register
 
 _Dependencies_
 
+* de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed>
 * org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed>
+
+|Apache Isis Ext - Wicket Viewer - pdf.js (ui)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-pdfjs-ui
+Type: jar
+Folder: \extensions\vw\pdfjs\ui
+----
+|_Components_
+
+* o.a.i.extensions.viewer.wicket.pdfjs.ui.components.PdfJsViewerPanelComponentFactory
+
+_Dependencies_
+
+* org.apache.isis.extensions:isis-extensions-pdfjs-metamodel:jar:<managed>
 * org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
 
-|Apache Isis Ext - Wicket Viewer - pdf.js (parent)
+|Apache Isis Ext - Sec Man
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-pdfjs
+Artifact: isis-extensions-secman
 Type: pom
-Folder: \extensions\vw\pdfjs
+Folder: \extensions\security\secman
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.core:isis-core-security:jar:<managed>
+
+|Apache Isis Ext - Sec Man API
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-secman-api
+Type: jar
+Folder: \extensions\security\secman\api
+----
+|
+
+|Apache Isis Ext - Sec Man Encryption (Using jbcrypt)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-secman-encryption-jbcrypt
+Type: jar
+Folder: \extensions\security\secman\encryption-jbcrypt
+----
+|_Components_
+
+* o.a.i.extensions.secman.encryption.jbcrypt.services.PasswordEncryptionServiceUsingJBcrypt
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
+* org.mindrot:jbcrypt:jar:<managed>
+
+|Apache Isis Ext - Sec Man Model
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-secman-model
+Type: jar
+Folder: \extensions\security\secman\model
+----
+|_Components_
+
+* o.a.i.extensions.secman.model.facets.TenantedAuthorizationFacetFactory$Register
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
+
+|Apache Isis Ext - Sec Man Persistence (Using JDO)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-secman-persistence-jdo
+Type: jar
+Folder: \extensions\security\secman\persistence-jdo
+----
+|_Components_
+
+* o.a.i.extensions.secman.jdo.dom.permission.ApplicationPermissionRepository
+* o.a.i.extensions.secman.jdo.dom.role.ApplicationRoleRepository
+* o.a.i.extensions.secman.jdo.dom.tenancy.ApplicationTenancyRepository
+* o.a.i.extensions.secman.jdo.dom.user.ApplicationUserRepository
+* o.a.i.extensions.secman.jdo.seed.SeedSecurityModuleService
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+
+|Apache Isis Ext - Sec Man Persistence (Using JPA)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-secman-persistence-jpa
+Type: jar
+Folder: \extensions\security\secman\persistence-jpa
+----
+|_Components_
+
+* o.a.i.extensions.secman.jpa.dom.permission.ApplicationPermissionRepository
+* o.a.i.extensions.secman.jpa.dom.role.ApplicationRoleRepository
+* o.a.i.extensions.secman.jpa.dom.tenancy.ApplicationTenancyRepository
+* o.a.i.extensions.secman.jpa.dom.user.ApplicationUserRepository
+* o.a.i.extensions.secman.jpa.seed.SeedSecurityModuleService
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
+* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+
+|Apache Isis Ext - Sec Man Realm (Using Shiro)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-secman-shiro-realm
+Type: jar
+Folder: \extensions\security\secman\shiro-realm
+----
+|_Components_
+
+* o.a.i.extensions.secman.shiro.services.SecurityRealmServiceUsingShiro
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-secman-api:jar:2.0.0-SNAPSHOT
+* org.apache.isis.security:isis-security-shiro:jar:<managed>
+
+|Apache Isis Ext - Security - Shiro LDAP Realm (parent)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-shiro-realm-ldap
+Type: pom
+Folder: \extensions\security\shiro-realm-ldap
+----
+|Implementation of Shiro Realm using LDAP.
+
+|Apache Isis Ext - Security - Shiro LDAP Realm (impl)
+[source,yaml]
+----
+Group: org.apache.isis.extensions
+Artifact: isis-extensions-shiro-realm-ldap-impl
+Type: jar
+Folder: \extensions\security\shiro-realm-ldap\impl
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.security:isis-security-shiro:jar:<managed>
+|===
+
+=== Core: Command Log
+
+[plantuml,Core: Command Log,svg]
+----
+@startuml(id=Core:_Command_Log)
+title Core: Command Log - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Core: Command Log\n[Software System]" {
+  rectangle "==Apache Isis Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Ext - Command Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+}
+2 .[#707070].> 3 : ""
+@enduml
 ----
-|A component for Apache Isis' Wicket viewer, allowing BLOBs containing PDFs to be rendered in a panel using pdf.js.
+.Projects/Modules (Core: Command Log)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Ext - Wicket Viewer - pdf.js (applib)
+|Apache Isis Ext - Command Log
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-pdfjs-applib
-Type: jar
-Folder: \extensions\vw\pdfjs\applib
+Artifact: isis-extensions-command-log
+Type: pom
+Folder: \extensions\core\command-log
 ----
-|_Dependencies_
-
-* de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed>
-* org.apache.isis.core:isis-applib:jar:<managed>
+|Logs commands
 
-|Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)
+|Apache Isis Ext - Command Log Implementation (JDO)
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-pdfjs-metamodel
+Artifact: isis-extensions-command-log-jdo
 Type: jar
-Folder: \extensions\vw\pdfjs\metamodel
+Folder: \extensions\core\command-log\impl
 ----
 |_Components_
 
-* o.a.i.extensions.viewer.wicket.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotationFactory$Register
+* o.a.i.extensions.commandlog.impl.CommandSubscriberForJdo
+* o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TableColumnOrderDefault
+* o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TitleProvider
+* o.a.i.extensions.commandlog.impl.jdo.CommandJdoRepository
+* o.a.i.extensions.commandlog.impl.ui.CommandServiceMenu
 
 _Dependencies_
 
-* de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed>
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed>
-
-|Apache Isis Ext - Wicket Viewer - pdf.js (ui)
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-pdfjs-ui
-Type: jar
-Folder: \extensions\vw\pdfjs\ui
-----
-|_Components_
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.apache.isis.core:isis-core-config:jar:<managed>
+* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
+|===
 
-* o.a.i.extensions.viewer.wicket.pdfjs.ui.components.PdfJsViewerPanelComponentFactory
+=== Core: Command Replay
 
-_Dependencies_
+[plantuml,Core: Command Replay,svg]
+----
+@startuml(id=Core:_Command_Replay)
+title Core: Command Replay - Containers
+caption Artifact Hierarchy (Maven)
 
-* org.apache.isis.extensions:isis-extensions-pdfjs-metamodel:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Core: Command Replay\n[Software System]" {
+  rectangle "==Apache Isis Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Ext - Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+}
+2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+@enduml
+----
+.Projects/Modules (Core: Command Replay)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Ext - Quartz
+|Apache Isis Ext - Command Replay
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-quartz
+Artifact: isis-extensions-command-replay
 Type: pom
-Folder: \extensions\core\quartz
+Folder: \extensions\core\command-replay
 ----
-|Integrates Quartz
+|Replays commands to secondary system
 
-|Apache Isis Ext - Quartz Impl
+|Apache Isis Ext - Command Replay for Primary
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-quartz-impl
+Artifact: isis-extensions-command-replay-primary
 Type: jar
-Folder: \extensions\core\quartz\impl
+Folder: \extensions\core\command-replay\primary
 ----
-|_Dependencies_
+|A module for obtaining commands from a primary
+
+_Components_
+
+* o.a.i.extensions.commandreplay.primary.config.PrimaryConfig
+* o.a.i.extensions.commandreplay.primary.spiimpl.CaptureResultOfCommand
+
+_Dependencies_
 
 * org.apache.isis.core:isis-core-config:jar:<managed>
-* org.apache.isis.core:isis-core-security:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.core:isis-schema:jar:<managed>
 * org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed>
-* org.springframework.boot:spring-boot-starter-quartz:jar:<managed>
+* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
+* org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
 
-|Apache Isis Ext - Sec Man
+|Apache Isis Ext - Command Replay for Secondary
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman
-Type: pom
-Folder: \extensions\security\secman
+Artifact: isis-extensions-command-replay-secondary
+Type: jar
+Folder: \extensions\core\command-replay\secondary
 ----
-|_Dependencies_
+|A module providing a Quartz Job to run on a secondary system,
+for obtaining commands from a primary and saving them so that they are replayed.
 
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.core:isis-core-security:jar:<managed>
+_Components_
 
-|Apache Isis Ext - Sec Man API
-[source,yaml]
+* o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserException
+* o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserResult
+* o.a.i.extensions.commandreplay.secondary.analysis.CommandReplayAnalysisService
+* o.a.i.extensions.commandreplay.secondary.clock.TickingClockService
+* o.a.i.extensions.commandreplay.secondary.config.SecondaryConfig
+* o.a.i.extensions.commandreplay.secondary.executor.CommandExecutorServiceWithTime
+* o.a.i.extensions.commandreplay.secondary.fetch.CommandFetcher
+
+_Dependencies_
+
+* org.apache.isis.core:isis-core-config:jar:<managed>
+* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
+* org.apache.isis.core:isis-core-runtime:jar:<managed>
+* org.apache.isis.core:isis-schema:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-quartz-impl:jar:<managed>
+* org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed>
+* org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+|===
+
+=== Core: Flyway
+
+[plantuml,Core: Flyway,svg]
 ----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman-api
-Type: jar
-Folder: \extensions\security\secman\api
+@startuml(id=Core:_Flyway)
+title Core: Flyway - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Core: Flyway\n[Software System]" {
+  rectangle "==Apache Isis Ext - Flyway\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Ext - Flyway Impl\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+}
+2 .[#707070].> 3 : ""
+@enduml
 ----
-|
+.Projects/Modules (Core: Flyway)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Ext - Sec Man Encryption (Using jbcrypt)
+|Apache Isis Ext - Flyway
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman-encryption-jbcrypt
-Type: jar
-Folder: \extensions\security\secman\encryption-jbcrypt
+Artifact: isis-extensions-flyway
+Type: pom
+Folder: \extensions\core\flyway
 ----
-|_Components_
-
-* o.a.i.extensions.secman.encryption.jbcrypt.services.PasswordEncryptionServiceUsingJBcrypt
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
-* org.mindrot:jbcrypt:jar:<managed>
+|Integrates Flyway when using any (relational) persistence store
 
-|Apache Isis Ext - Sec Man Model
+|Apache Isis Ext - Flyway Impl
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman-model
+Artifact: isis-extensions-flyway-impl
 Type: jar
-Folder: \extensions\security\secman\model
+Folder: \extensions\core\flyway\impl
 ----
-|_Components_
-
-* o.a.i.extensions.secman.model.facets.TenantedAuthorizationFacetFactory$Register
+|_Dependencies_
 
-_Dependencies_
+* org.apache.isis.core:isis-core-config:jar:<managed>
+* org.flywaydb:flyway-core:jar:<managed>
+* org.springframework:spring-context:jar:<managed>
+* org.springframework:spring-jdbc:jar:<managed>
+* org.springframework.boot:spring-boot-autoconfigure:jar:<managed>
+|===
 
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
+=== Core: Model Annotation
 
-|Apache Isis Ext - Sec Man Persistence (Using JDO)
-[source,yaml]
+[plantuml,Core: Model Annotation,svg]
 ----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman-persistence-jdo
-Type: jar
-Folder: \extensions\security\secman\persistence-jdo
+@startuml(id=Core:_Model_Annotation)
+title Core: Model Annotation - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Core: Model Annotation\n[Software System]" {
+  rectangle "==Apache Isis Ext - @Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
 ----
-|_Components_
-
-* o.a.i.extensions.secman.jdo.dom.permission.ApplicationPermissionRepository
-* o.a.i.extensions.secman.jdo.dom.role.ApplicationRoleRepository
-* o.a.i.extensions.secman.jdo.dom.tenancy.ApplicationTenancyRepository
-* o.a.i.extensions.secman.jdo.dom.user.ApplicationUserRepository
-* o.a.i.extensions.secman.jdo.seed.SeedSecurityModuleService
-
-_Dependencies_
-
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+.Projects/Modules (Core: Model Annotation)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Ext - Sec Man Persistence (Using JPA)
+|Apache Isis Ext - @Model
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman-persistence-jpa
+Artifact: isis-extensions-modelannotation
 Type: jar
-Folder: \extensions\security\secman\persistence-jpa
+Folder: \extensions\core\model-annotation
 ----
-|_Components_
+|Allows supporting methods to be annotated as @Model, to make explicit the bounds of the metamodel.
 
-* o.a.i.extensions.secman.jpa.dom.permission.ApplicationPermissionRepository
-* o.a.i.extensions.secman.jpa.dom.role.ApplicationRoleRepository
-* o.a.i.extensions.secman.jpa.dom.tenancy.ApplicationTenancyRepository
-* o.a.i.extensions.secman.jpa.dom.user.ApplicationUserRepository
-* o.a.i.extensions.secman.jpa.seed.SeedSecurityModuleService
+_Components_
 
-_Dependencies_
+* o.a.i.extensions.modelannotation.metamodel.services.IncubatorMetaModelPlugin
 
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
-* org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed>
-* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+_Dependencies_
 
-|Apache Isis Ext - Sec Man Realm (Using Shiro)
-[source,yaml]
-----
-Group: org.apache.isis.extensions
-Artifact: isis-extensions-secman-shiro-realm
-Type: jar
-Folder: \extensions\security\secman\shiro-realm
-----
-|_Components_
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.core:isis-core-webapp:jar:<managed>
+* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
+|===
 
-* o.a.i.extensions.secman.shiro.services.SecurityRealmServiceUsingShiro
+=== Core: Quartz
 
-_Dependencies_
+[plantuml,Core: Quartz,svg]
+----
+@startuml(id=Core:_Quartz)
+title Core: Quartz - Containers
+caption Artifact Hierarchy (Maven)
 
-* org.apache.isis.core:isis-core-runtime:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-api:jar:2.0.0-SNAPSHOT
-* org.apache.isis.security:isis-security-shiro:jar:<managed>
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Core: Quartz\n[Software System]" {
+  rectangle "==Apache Isis Ext - Quartz\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Ext - Quartz Impl\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+}
+2 .[#707070].> 3 : ""
+@enduml
+----
+.Projects/Modules (Core: Quartz)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
-|Apache Isis Ext - Security - Shiro LDAP Realm (parent)
+|Apache Isis Ext - Quartz
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-shiro-realm-ldap
+Artifact: isis-extensions-quartz
 Type: pom
-Folder: \extensions\security\shiro-realm-ldap
+Folder: \extensions\core\quartz
 ----
-|Implementation of Shiro Realm using LDAP.
+|Integrates Quartz
 
-|Apache Isis Ext - Security - Shiro LDAP Realm (impl)
+|Apache Isis Ext - Quartz Impl
 [source,yaml]
 ----
 Group: org.apache.isis.extensions
-Artifact: isis-extensions-shiro-realm-ldap-impl
+Artifact: isis-extensions-quartz-impl
 Type: jar
-Folder: \extensions\security\shiro-realm-ldap\impl
+Folder: \extensions\core\quartz\impl
 ----
 |_Dependencies_
 
-* org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
-* org.apache.isis.security:isis-security-shiro:jar:<managed>
+* org.apache.isis.core:isis-core-config:jar:<managed>
+* org.apache.isis.core:isis-core-security:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed>
+* org.springframework.boot:spring-boot-starter-quartz:jar:<managed>
 |===
 
+=== Security: Secman
+
+=== Security: Shiro LDAP Realm
+
+=== RO Viewer: CORS
+
+=== Wicket Viewer: Excel Download
+
+=== Wicket Viewer: Full Calendar
+
+=== Wicket Viewer: Pdf.js
+
 == Subdomains
 
 [plantuml,Subdomains,svg]
@@ -3604,61 +3892,241 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<22>> {
+skinparam rectangle<<11>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<11>> {
+skinparam rectangle<<12>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<12>> {
+skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<23>> {
+skinparam rectangle<<3>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<13>> {
+skinparam rectangle<<4>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<14>> {
+skinparam rectangle<<5>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<15>> {
+skinparam rectangle<<6>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<16>> {
+skinparam rectangle<<7>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<17>> {
+skinparam rectangle<<8>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<18>> {
+skinparam rectangle<<9>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<19>> {
+skinparam rectangle<<10>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
+package "Subdomains\n[Software System]" {
+  rectangle "==Apache Isis Sub - Docx (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Sub - Docx (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
+  rectangle "==Apache Isis Sub - Freemarker (applib)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+  rectangle "==Apache Isis Sub - Freemarker (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
+  rectangle "==Apache Isis Sub - Ognl (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
+  rectangle "==Apache Isis Sub - Ognl (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
+  rectangle "==Apache Isis Sub - PDF Box (applib)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
+  rectangle "==Apache Isis Sub - PDF Box (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
+  rectangle "==Apache Isis Sub - Zip (applib)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
+  rectangle "==Apache Isis Sub - Zip (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
+  rectangle "==Apache Isis Subdomains\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+3 .[#707070].> 4 : ""
+5 .[#707070].> 6 : ""
+7 .[#707070].> 8 : ""
+9 .[#707070].> 10 : ""
+11 .[#707070].> 12 : ""
+2 .[#707070].> 3 : ""
+2 .[#707070].> 5 : ""
+2 .[#707070].> 7 : ""
+2 .[#707070].> 9 : ""
+2 .[#707070].> 11 : ""
+@enduml
+----
+.Projects/Modules (Subdomains)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
+
+|Apache Isis Subdomains
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains
+Type: pom
+Folder: \subdomains
+----
+|A library of domain services and of supporting subdomains (often technical in nature), to be called from the
+core domain of an Apache Isis applications.
+
+_Dependencies_
+
+* org.projectlombok:lombok:jar:<managed>
+
+|Apache Isis Sub - Docx (parent)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-docx
+Type: pom
+Folder: \subdomains\docx
+----
+|Uses the Apache POI library for mail merge functions of .docx Word documents
+
+|Apache Isis Sub - Docx (applib)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-docx-applib
+Type: jar
+Folder: \subdomains\docx\applib
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-applib:jar:<managed>
+
+|Apache Isis Sub - Freemarker (parent)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-freemarker
+Type: pom
+Folder: \subdomains\freemarker
+----
+|Integrates Freemarker Library
+
+|Apache Isis Sub - Freemarker (applib)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-freemarker-applib
+Type: jar
+Folder: \subdomains\freemarker\applib
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-applib:jar:<managed>
+
+|Apache Isis Sub - Ognl (parent)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-ognl
+Type: pom
+Folder: \subdomains\ognl
+----
+|Integrates Ognl Library
+
+|Apache Isis Sub - Ognl (applib)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-ognl-applib
+Type: jar
+Folder: \subdomains\ognl\applib
+----
+|_Dependencies_
+
+* org.apache.isis.core:isis-applib:jar:<managed>
+
+|Apache Isis Sub - PDF Box (parent)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-pdfbox
+Type: pom
+Folder: \subdomains\pdfbox
+----
+|Integrates PDF Box Library
+
+|Apache Isis Sub - PDF Box (applib)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-pdfbox-applib
+Type: jar
+Folder: \subdomains\pdfbox\applib
+----
+|Integrates PDF Box Library
+
+_Dependencies_
+
+* org.apache.isis.core:isis-applib:jar:<managed>
+
+|Apache Isis Sub - Zip (parent)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-zip
+Type: pom
+Folder: \subdomains\zip
+----
+|A domain service for Apache Isis', for zipping utilities.
+
+|Apache Isis Sub - Zip (applib)
+[source,yaml]
+----
+Group: org.apache.isis.subdomains
+Artifact: isis-subdomains-zip-applib
+Type: jar
+Folder: \subdomains\zip\applib
+----
+|_Components_
+
+* o.a.i.extensions.zip.dom.impl.ZipService
+
+_Dependencies_
+
+* org.apache.isis.commons:isis-commons:jar:<managed>
+* org.apache.isis.core:isis-applib:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
+|===
+
+=== Base
+
+[plantuml,Base,svg]
+----
+@startuml(id=Base)
+title Base - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -3669,118 +4137,18 @@ skinparam rectangle<<3>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<4>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<5>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<6>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<7>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<8>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<9>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<20>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<10>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<21>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Subdomains\n[Software System]" {
-  rectangle "==Apache Isis Sub - Base (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Apache Isis Sub - Base (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
-  rectangle "==Apache Isis Sub - Docx (applib)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Sub - Docx (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
-  rectangle "==Apache Isis Sub - Excel (Fixtures)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
-  rectangle "==Apache Isis Sub - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Sub - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
-  rectangle "==Apache Isis Sub - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
-  rectangle "==Apache Isis Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
-  rectangle "==Apache Isis Sub - Freemarker (applib)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
-  rectangle "==Apache Isis Sub - Freemarker (parent)\n<size:10>[Container: packaging: pom]</size>" <<12>> as 12
-  rectangle "==Apache Isis Sub - Ognl (applib)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
-  rectangle "==Apache Isis Sub - Ognl (parent)\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
-  rectangle "==Apache Isis Sub - PDF Box (applib)\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
-  rectangle "==Apache Isis Sub - PDF Box (parent)\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
-  rectangle "==Apache Isis Sub - Spring (applib)\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
-  rectangle "==Apache Isis Sub - Spring (parent)\n<size:10>[Container: packaging: pom]</size>" <<18>> as 18
-  rectangle "==Apache Isis Sub - XdocReport (applib)\n<size:10>[Container: packaging: jar]</size>" <<21>> as 21
-  rectangle "==Apache Isis Sub - XdocReport (parent)\n<size:10>[Container: packaging: pom]</size>" <<20>> as 20
-  rectangle "==Apache Isis Sub - Zip (applib)\n<size:10>[Container: packaging: jar]</size>" <<23>> as 23
-  rectangle "==Apache Isis Sub - Zip (parent)\n<size:10>[Container: packaging: pom]</size>" <<22>> as 22
-  rectangle "==Apache Isis Subdomains\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+package "Base\n[Software System]" {
+  rectangle "==Apache Isis Sub - Base (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Sub - Base (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
 }
-3 .[#707070].> 4 : ""
-5 .[#707070].> 6 : ""
-7 .[#707070].> 9 : ""
-7 .[#707070].> 10 : ""
-7 .[#707070].> 8 : ""
-7 .[#707070].> 11 : ""
-12 .[#707070].> 13 : ""
-14 .[#707070].> 15 : ""
-16 .[#707070].> 17 : ""
-18 .[#707070].> 19 : ""
-20 .[#707070].> 21 : ""
-22 .[#707070].> 23 : ""
 2 .[#707070].> 3 : ""
-2 .[#707070].> 5 : ""
-2 .[#707070].> 7 : ""
-2 .[#707070].> 12 : ""
-2 .[#707070].> 14 : ""
-2 .[#707070].> 16 : ""
-2 .[#707070].> 18 : ""
-2 .[#707070].> 20 : ""
-2 .[#707070].> 22 : ""
 @enduml
 ----
-.Projects/Modules (Subdomains)
+.Projects/Modules (Base)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Apache Isis Subdomains
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains
-Type: pom
-Folder: \subdomains
-----
-|A library of domain services and of supporting subdomains (often technical in nature), to be called from the
-		core domain of an Apache Isis applications.
-
-_Dependencies_
-
-* org.projectlombok:lombok:jar:<managed>
-
 |Apache Isis Sub - Base (parent)
 [source,yaml]
 ----
@@ -3810,28 +4178,66 @@ _Dependencies_
 * org.apache.isis.core:isis-core-metamodel:jar:<managed>
 * org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
 * org.datanucleus:javax.jdo:jar:<managed>
+|===
 
-|Apache Isis Sub - Docx (parent)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-docx
-Type: pom
-Folder: \subdomains\docx
-----
-|Uses the Apache POI library for mail merge functions of .docx Word documents
+=== Excel
 
-|Apache Isis Sub - Docx (applib)
-[source,yaml]
+[plantuml,Excel,svg]
 ----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-docx-applib
-Type: jar
-Folder: \subdomains\docx\applib
-----
-|_Dependencies_
+@startuml(id=Excel)
+title Excel - Containers
+caption Artifact Hierarchy (Maven)
 
-* org.apache.isis.core:isis-applib:jar:<managed>
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<6>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Excel\n[Software System]" {
+  rectangle "==Apache Isis Sub - Excel (Fixtures)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Sub - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+  rectangle "==Apache Isis Sub - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Sub - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
+}
+2 .[#707070].> 4 : ""
+2 .[#707070].> 5 : ""
+2 .[#707070].> 3 : ""
+2 .[#707070].> 6 : ""
+@enduml
+----
+.Projects/Modules (Excel)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Sub - Excel (parent)
 [source,yaml]
@@ -3842,8 +4248,8 @@ Type: pom
 Folder: \subdomains\excel
 ----
 |A domain service for Apache Isis', allowing collections
-        of (view model) objects to be exported/imported to/from an
-        Excel spreadsheet.  Also support for excel-based fixtures.
+of (view model) objects to be exported/imported to/from an
+Excel spreadsheet.  Also support for excel-based fixtures.
 
 |Apache Isis Sub - Excel (applib)
 [source,yaml]
@@ -3900,87 +4306,58 @@ Folder: \subdomains\excel\integtests
 * org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed>
 * org.hsqldb:hsqldb:jar:<managed>
 
-|Apache Isis Sub - Excel (testing support)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-excel-testing
-Type: jar
-Folder: \subdomains\excel\testing
-----
-|_Dependencies_
-
-* org.apache.isis.core:isis-core-metamodel:jar:<managed>
-* org.apache.isis.subdomains:isis-subdomains-excel-applib:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
-
-|Apache Isis Sub - Freemarker (parent)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-freemarker
-Type: pom
-Folder: \subdomains\freemarker
-----
-|Integrates Freemarker Library
-
-|Apache Isis Sub - Freemarker (applib)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-freemarker-applib
-Type: jar
-Folder: \subdomains\freemarker\applib
-----
-|_Dependencies_
-
-* org.apache.isis.core:isis-applib:jar:<managed>
-
-|Apache Isis Sub - Ognl (parent)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-ognl
-Type: pom
-Folder: \subdomains\ognl
-----
-|Integrates Ognl Library
-
-|Apache Isis Sub - Ognl (applib)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-ognl-applib
-Type: jar
-Folder: \subdomains\ognl\applib
-----
-|_Dependencies_
-
-* org.apache.isis.core:isis-applib:jar:<managed>
-
-|Apache Isis Sub - PDF Box (parent)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-pdfbox
-Type: pom
-Folder: \subdomains\pdfbox
-----
-|Integrates PDF Box Library
-
-|Apache Isis Sub - PDF Box (applib)
+|Apache Isis Sub - Excel (testing support)
 [source,yaml]
 ----
 Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-pdfbox-applib
+Artifact: isis-subdomains-excel-testing
 Type: jar
-Folder: \subdomains\pdfbox\applib
+Folder: \subdomains\excel\testing
 ----
-|Integrates PDF Box Library
+|_Dependencies_
 
-_Dependencies_
+* org.apache.isis.core:isis-core-metamodel:jar:<managed>
+* org.apache.isis.subdomains:isis-subdomains-excel-applib:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
+|===
 
-* org.apache.isis.core:isis-applib:jar:<managed>
+=== Spring
+
+[plantuml,Spring,svg]
+----
+@startuml(id=Spring)
+title Spring - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Spring\n[Software System]" {
+  rectangle "==Apache Isis Sub - Spring (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Sub - Spring (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+2 .[#707070].> 3 : ""
+@enduml
+----
+.Projects/Modules (Spring)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Sub - Spring (parent)
 [source,yaml]
@@ -4008,6 +4385,45 @@ _Dependencies_
 
 * org.apache.isis.core:isis-applib:jar:<managed>
 * org.apache.isis.core:isis-core-runtime:jar:<managed>
+|===
+
+=== XDocReport
+
+[plantuml,XDocReport,svg]
+----
+@startuml(id=XDocReport)
+title XDocReport - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "XDocReport\n[Software System]" {
+  rectangle "==Apache Isis Sub - XdocReport (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Sub - XdocReport (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+}
+2 .[#707070].> 3 : ""
+@enduml
+----
+.Projects/Modules (XDocReport)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Sub - XdocReport (parent)
 [source,yaml]
@@ -4041,34 +4457,6 @@ _Dependencies_
 * org.apache.isis.core:isis-applib:jar:<managed>
 * org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
 * org.projectlombok:lombok:jar:<managed>
-
-|Apache Isis Sub - Zip (parent)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-zip
-Type: pom
-Folder: \subdomains\zip
-----
-|A domain service for Apache Isis', for zipping utilities.
-
-|Apache Isis Sub - Zip (applib)
-[source,yaml]
-----
-Group: org.apache.isis.subdomains
-Artifact: isis-subdomains-zip-applib
-Type: jar
-Folder: \subdomains\zip\applib
-----
-|_Components_
-
-* o.a.i.extensions.zip.dom.impl.ZipService
-
-_Dependencies_
-
-* org.apache.isis.commons:isis-commons:jar:<managed>
-* org.apache.isis.core:isis-applib:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
 |===
 
 == Tooling
@@ -4152,9 +4540,9 @@ Artifact: isis-tooling
 Type: pom
 Folder: \tooling
 ----
-|Libraries and tools not depending on the _Apache Isis Core_ ecosystem, 
-        eg. code mining, automated documentation.
-        (Targeted for JVM 11+)
+|Libraries and tools not depending on the _Apache Isis Core_ ecosystem,
+eg. code mining, automated documentation.
+(Targeted for JVM 11+)
 
 _Dependencies_
 
@@ -4177,7 +4565,7 @@ Folder: \tooling\c4modeling
 ----
 |Library for programmatic C4 Model generation.
 
-        See https://c4model.com/
+See https://c4model.com/
 
 _Dependencies_
 
@@ -4248,12 +4636,12 @@ Folder: \tooling\model4adoc
 ----
 |Library for programmatic AsciiDoc generation.
 
-        The AsciiDoc name is trademarked by the Eclipse Foundation (https://www.eclipse.org/).
-		This project is *not* part of the specification effort for _AsciiDoc_ under the
-		AsciiDoc Working Group. See https://projects.eclipse.org/proposals/asciidoc-language
-		and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to
-		help with transfer of source code, if any project (under the umbrella of the
-		AsciiDoc Working Group) is willing to take over.
+The AsciiDoc name is trademarked by the Eclipse Foundation (https://www.eclipse.org/).
+This project is *not* part of the specification effort for _AsciiDoc_ under the
+AsciiDoc Working Group. See https://projects.eclipse.org/proposals/asciidoc-language
+and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to
+help with transfer of source code, if any project (under the umbrella of the
+AsciiDoc Working Group) is willing to take over.
 
 _Dependencies_
 
@@ -4277,12 +4665,12 @@ _Dependencies_
 * org.gradle:gradle-tooling-api:jar:<managed>
 |===
 
-== Examples
+== Regression Tests
 
-[plantuml,Examples,svg]
+[plantuml,Regression Tests,svg]
 ----
-@startuml(id=Examples)
-title Examples - Containers
+@startuml(id=Regression_Tests)
+title Regression Tests - Containers
 caption Artifact Hierarchy (Maven)
 
 skinparam {
@@ -4303,350 +4691,81 @@ skinparam rectangle<<3>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<4>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<5>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<6>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<7>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Examples\n[Software System]" {
-  rectangle "==Demo - Domain\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
-  rectangle "==Demo - JavaFX\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
-  rectangle "==Demo - Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Demo - Vaadin\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Demo - Web\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Demo - Wicket\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
+package "Regression Tests\n[Software System]" {
+  rectangle "==Apache Isis - Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis - Regression Tests (stable)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
 }
 2 .[#707070].> 3 : ""
-2 .[#707070].> 4 : ""
-2 .[#707070].> 5 : ""
-2 .[#707070].> 6 : ""
-2 .[#707070].> 7 : ""
 @enduml
 ----
-.Projects/Modules (Examples)
+.Projects/Modules (Regression Tests)
 [cols="3a,5a", options="header"]
 |===
 |Coordinates |Description 
 
-|Demo - Parent
+|Apache Isis - Regression Tests
 [source,yaml]
 ----
-Group: org.apache.isis.examples.apps
-Artifact: demo-parent
+Group: org.apache.isis.regressiontests
+Artifact: isis-regressiontests
 Type: pom
-Folder: \examples\demo
-----
-|_Dependencies_
-
-* com.h2database:h2:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-persistence-jdo-dn5:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-persistence-jdo-dn5:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
-
-|Demo - Domain
-[source,yaml]
-----
-Group: org.apache.isis.examples.apps
-Artifact: demo-domain
-Type: jar
-Folder: \examples\demo\domain
+Folder: \regressiontests
 ----
-|_Components_
-
-* demoapp.dom.AppConfiguration
-* demoapp.dom._infra.DefaultTitleProvider
-* demoapp.dom._infra.LibraryPreloadingService
-* demoapp.dom._infra.fixtures.DemoFixtureScriptSpecificationProvider
-* demoapp.dom._infra.resources.AsciiDocConverterService
-* demoapp.dom._infra.resources.AsciiDocReaderService
-* demoapp.dom._infra.resources.MarkdownReaderService
-* demoapp.dom._infra.resources.MarkupReaderService
-* demoapp.dom._infra.resources.MarkupVariableResolverService
-* demoapp.dom._infra.resources.ResourceReaderService
-* demoapp.dom._infra.samples.NameSamples
-* demoapp.dom._infra.urlencoding.UrlEncodingServiceNaiveInMemory
-* demoapp.dom.domain._changes.EntityChangesSubscriberToCaptureChangesInMemory
-* demoapp.dom.domain._commands.ExposePersistedCommands$TableColumnOrderDefault
-* demoapp.dom.domain._interactions.ExecutionListenerToCaptureInteractionsInMemory
-* demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingJdoEntities
-* demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingJdoSeedService
-* demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoEntities
-* demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoSeedService
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledJdoEntities
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledJdoSeedService
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectAuditingEnabledJdoEntities
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectAuditingEnabledJdoSeedService
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoEntities
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoSeedService
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoEntities
-* demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoSeedService
-* demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.ChildJdoEntities
-* demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.seed.ChildJdoSeedService
-* demoapp.dom.domain.objects.other.embedded.NumberConstantJdoRepository
-* demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingJdoEntities
-* demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingJdoSeedService
-* demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingJdoEntities
-* demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingJdoSeedService
-* demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoEntities
-* demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoSeedService
-* demoapp.dom.domain.properties.PropertyLayout.navigable.FileTreeNodeService
-* demoapp.dom.domain.properties.PropertyLayout.repainting.PdfJsViewerAdvisorFallback
-* demoapp.dom.featured.customui.geocoding.GeoapifyClient
-* demoapp.dom.services.core.errorreportingservice.ErrorReportingServiceDemoImplementation
-* demoapp.dom.services.core.eventbusservice.EventLogEntryJdoRepository
-* demoapp.dom.services.core.eventbusservice.EventSubscriberDemoImplementation
-* demoapp.dom.services.core.wrapperFactory.WrapperFactoryJdoEntities
-* demoapp.dom.services.core.wrapperFactory.WrapperFactoryJdoSeedService
-* demoapp.dom.services.extensions.secman.apptenancy.ApplicationTenancyEvaluatorForDemo
-* demoapp.dom.services.extensions.secman.apptenancy.entities.TenantedJdoEntities
-* demoapp.dom.services.extensions.secman.apptenancy.entities.seed.TenantedJdoSeedService
-* demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoEntities
-* demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoSeedService
-* demoapp.dom.types.isis.blobs.samples.IsisBlobsSamples
-* demoapp.dom.types.isis.clobs.jdo.IsisClobJdoEntities
-* demoapp.dom.types.isis.clobs.jdo.IsisClobJdoSeedService
-* demoapp.dom.types.isis.clobs.samples.IsisClobsSamples
-* demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoEntities
-* demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoSeedService
-* demoapp.dom.types.isis.localresourcepaths.samples.IsisLocalResourcePathsSamples
-* demoapp.dom.types.isis.markups.jdo.IsisMarkupJdoEntities
-* demoapp.dom.types.isis.markups.jdo.IsisMarkupJdoSeedService
-* demoapp.dom.types.isis.markups.samples.IsisMarkupSamples
-* demoapp.dom.types.isis.passwords.jdo.IsisPasswordJdoEntities
-* demoapp.dom.types.isis.passwords.jdo.IsisPasswordJdoSeedService
-* demoapp.dom.types.isis.passwords.samples.IsisPasswordsSamples
-* demoapp.dom.types.isisext.asciidocs.jdo.IsisAsciiDocJdoEntities
-* demoapp.dom.types.isisext.asciidocs.jdo.IsisAsciiDocJdoSeedService
-* demoapp.dom.types.isisext.asciidocs.samples.IsisAsciiDocSamples
-* demoapp.dom.types.isisext.markdowns.jdo.IsisMarkdownJdoEntities
-* demoapp.dom.types.isisext.markdowns.jdo.IsisMarkdownJdoSeedService
-* demoapp.dom.types.isisext.markdowns.samples.IsisMarkdownSamples
-* demoapp.dom.types.javaawt.images.jdo.JavaAwtImageJdoEntities
-* demoapp.dom.types.javaawt.images.jdo.JavaAwtImageJdoSeedService
-* demoapp.dom.types.javaawt.images.samples.JavaAwtImageService
-* demoapp.dom.types.javaawt.images.samples.JavaAwtImagesSamples
-* demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoEntities
-* demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoSeedService
-* demoapp.dom.types.javalang.booleans.samples.WrapperBooleanSamples
-* demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoEntities
-* demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoSeedService
-* demoapp.dom.types.javalang.bytes.samples.WrapperByteSamples
-* demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoEntities
-* demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoSeedService
-* demoapp.dom.types.javalang.characters.samples.WrapperCharacterSamples
-* demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoEntities
-* demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoSeedService
-* demoapp.dom.types.javalang.doubles.samples.WrapperDoubleSamples
-* demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoEntities
-* demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoSeedService
-* demoapp.dom.types.javalang.floats.samples.WrapperFloatSamples
-* demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoEntities
-* demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoSeedService
-* demoapp.dom.types.javalang.integers.samples.WrapperIntegerSamples
-* demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoEntities
-* demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoSeedService
-* demoapp.dom.types.javalang.longs.samples.WrapperLongSamples
-* demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoEntities
-* demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoSeedService
-* demoapp.dom.types.javalang.shorts.samples.WrapperShortSamples
-* demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoEntities
-* demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoSeedService
-* demoapp.dom.types.javalang.strings.samples.JavaLangStringSamples
-* demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoEntities
-* demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoSeedService
-* demoapp.dom.types.javamath.bigdecimals.samples.JavaMathBigDecimalSamples
-* demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoEntities
-* demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoSeedService
-* demoapp.dom.types.javamath.bigintegers.samples.JavaMathBigIntegerSamples
-* demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoEntities
-* demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoSeedService
-* demoapp.dom.types.javanet.urls.samples.JavaNetUrlSamples
-* demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoEntities
-* demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoSeedService
-* demoapp.dom.types.javasql.javasqldate.samples.JavaSqlDateSamples
-* demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoEntities
-* demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoSeedService
-* demoapp.dom.types.javasql.javasqltimestamp.samples.JavaSqlTimestampSamples
-* demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoEntities
-* demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoSeedService
-* demoapp.dom.types.javatime.javatimelocaldate.samples.JavaTimeLocalDateSamples
-* demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoEntities
-* demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoSeedService
-* demoapp.dom.types.javatime.javatimelocaldatetime.samples.JavaTimeLocalDateTimeSamples
-* demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoEntities
-* demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoSeedService
-* demoapp.dom.types.javatime.javatimeoffsetdatetime.samples.JavaTimeOffsetDateTimeSamples
-* demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoEntities
-* demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoSeedService
-* demoapp.dom.types.javatime.javatimeoffsettime.samples.JavaTimeOffsetTimeSamples
-* demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoEntities
-* demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoSeedService
-* demoapp.dom.types.javatime.javatimezoneddatetime.samples.JavaTimeZonedDateTimeSamples
-* demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoEntities
-* demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoSeedService
-* demoapp.dom.types.javautil.javautildate.samples.JavaUtilDateSamples
-* demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoEntities
-* demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoSeedService
-* demoapp.dom.types.javautil.uuids.samples.JavaUtilUuidSamples
-* demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoEntities
-* demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoSeedService
-* demoapp.dom.types.jodatime.jodadatetime.samples.JodaDateTimeSamples
-* demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoEntities
-* demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoSeedService
-* demoapp.dom.types.jodatime.jodalocaldate.samples.JodaLocalDateSamples
-* demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoEntities
-* demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoSeedService
-* demoapp.dom.types.jodatime.jodalocaldatetime.samples.JodaLocalDateTimeSamples
-* demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoEntities
-* demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoSeedService
-* demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoEntities
-* demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoSeedService
-* demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoEntities
-* demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoSeedService
-* demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoEntities
-* demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoSeedService
-* demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoEntities
-* demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoSeedService
-* demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoEntities
-* demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoSeedService
-* demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoEntities
-* demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoSeedService
-* demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoEntities
-* demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoSeedService
+|Collection of JUnit tests covering core functionalities of the framework.
+(Targeted for JVM 11+)
 
 _Dependencies_
 
-* com.h2database:h2:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed>
+* org.apache.directory.server:apacheds-test-framework:jar:2.0.0.AM26
 * org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed>
 * org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed>
 * org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed>
 * org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed>
 * org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed>
-* org.apache.isis.testing:isis-testing-h2console-ui:jar:<managed>
-* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed>
-* org.assertj:assertj-core:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
-* org.springframework.boot:spring-boot-configuration-processor:jar:<managed>
-
-|Demo - JavaFX
-[source,yaml]
-----
-Group: org.apache.isis.examples.apps
-Artifact: demo-javafx
-Type: jar
-Folder: \examples\demo\javafx
-----
-|_Dependencies_
-
-* org.apache.isis.core:isis-core-runtimeservices:jar:<managed>
-* org.apache.isis.core:isis-core-security:jar:<managed>
-* org.apache.isis.examples.apps:demo-domain:jar:${project.version}
-* org.apache.isis.incubator.viewer:isis-viewer-javafx-viewer:jar:${project.version}
-* org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
-* org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed>
-* org.apache.isis.security:isis-security-bypass:jar:<managed>
-* org.apache.isis.security:isis-security-shiro:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui:pom:${project.version}
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-ui:pom:${project.version}
-* org.projectlombok:lombok:jar:<managed>
-
-|Demo - Vaadin
-[source,yaml]
-----
-Group: org.apache.isis.examples.apps
-Artifact: demo-vaadin
-Type: jar
-Folder: \examples\demo\vaadin
-----
-|_Dependencies_
-
-* org.apache.isis.examples.apps:demo-web:jar:${project.version}
-* org.apache.isis.incubator.viewer:isis-viewer-vaadin-viewer:jar:${project.version}
-* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-vaa:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed>
-* org.projectlombok:lombok:jar:<managed>
-
-|Demo - Web
-[source,yaml]
-----
-Group: org.apache.isis.examples.apps
-Artifact: demo-web
-Type: jar
-Folder: \examples\demo\web
-----
-|_Components_
-
-* demoapp.web._infra.utils.ThereCanBeOnlyOne
-
-_Dependencies_
-
-* org.apache.isis.examples.apps:demo-domain:jar:${project.version}
-* org.apache.isis.extensions:isis-extensions-command-replay-primary:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-command-replay-secondary:jar:<managed>
-* org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed>
+* org.apache.isis.extensions:isis-extensions-shiro-realm-ldap-impl:jar:<managed>
+* org.apache.isis.mappings:isis-mappings-restclient-applib:jar:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed>
+* org.apache.isis.mavendeps:isis-mavendeps-jpa:pom:<managed>
 * org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed>
-* org.springframework.boot:spring-boot-starter:jar:<managed>
-* org.springframework.boot:spring-boot-starter-actuator:jar:<managed>
-* org.springframework.boot:spring-boot-starter-log4j2:jar:<managed>
+* org.apache.isis.security:isis-security-shiro:jar:<managed>
+* org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed>
+* org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed>
+* org.apache.isis.tooling:isis-tooling-model4adoc:jar:${project.version}
+* org.apache.isis.viewer:isis-viewer-common:jar:<managed>
+* org.glassfish:javax.json:jar:1.1.4
+* org.glassfish.jersey.ext:jersey-spring5:jar:<managed>
+* org.projectlombok:lombok:jar:<managed>
 
-|Demo - Wicket
+|Apache Isis - Regression Tests (stable)
 [source,yaml]
 ----
-Group: org.apache.isis.examples.apps
-Artifact: demo-wicket
+Group: org.apache.isis.regressiontests
+Artifact: isis-regressiontests-stable
 Type: jar
-Folder: \examples\demo\wicket
+Folder: \regressiontests\stable
 ----
 |_Components_
 
-* demoapp.webapp.wicket.ui.custom.WhereInTheWorldPanelFactory
+* o.a.i.testdomain.applayer.ApplicationLayerTestFactory
+* o.a.i.testdomain.applayer.ApplicationLayerTestFactory$PreCommitListener
+* o.a.i.testdomain.applayer.publishing.CommandSubscriberForTesting
+* o.a.i.testdomain.applayer.publishing.EntityChangesSubscriberForTesting
+* o.a.i.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting
+* o.a.i.testdomain.applayer.publishing.ExecutionSubscriberForTesting
+* o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport
+* o.a.i.testdomain.jpa.springdata.EmployeeRepository
+* o.a.i.testdomain.util.interaction.InteractionBoundaryProbe
+* o.a.i.testdomain.util.kv.KVStoreForTesting
+* o.a.i.testdomain.util.rest.RestEndpointService
 
 _Dependencies_
 
-* org.apache.isis.examples.apps:demo-web:jar:${project.version}
-* org.apache.isis.extensions:isis-extensions-pdfjs-ui:jar:<managed>
-* org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed>
-* org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed>
-* org.apache.isis.viewer:isis-viewer-wicket-ui:jar:2.0.0-SNAPSHOT
-* org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:2.0.0-SNAPSHOT
+* org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed>
+* org.glassfish.jersey.ext:jersey-spring5:jar:<managed>
 |===
 
 == Incubator
@@ -4665,76 +4784,14 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<11>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
 skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<3>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<4>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<5>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<6>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<7>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<8>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<9>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<10>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
 package "Incubator\n[Software System]" {
-  rectangle "==Apache Isis Inc - Client kroViz\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
-  rectangle "==Apache Isis Inc - Viewer JavaFX\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
-  rectangle "==Apache Isis Inc - Viewer JavaFX (Model)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
-  rectangle "==Apache Isis Inc - Viewer JavaFX (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
-  rectangle "==Apache Isis Inc - Viewer JavaFX (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
-  rectangle "==Apache Isis Inc - Viewer Vaadin\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
-  rectangle "==Apache Isis Inc - Viewer Vaadin (Model)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
-  rectangle "==Apache Isis Inc - Viewer Vaadin (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
-  rectangle "==Apache Isis Inc - Viewer Vaadin (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
   rectangle "==Apache Isis Incubator\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
 }
-4 .[#707070].> 5 : ""
-4 .[#707070].> 6 : ""
-4 .[#707070].> 7 : ""
-8 .[#707070].> 9 : ""
-8 .[#707070].> 10 : ""
-8 .[#707070].> 11 : ""
-2 .[#707070].> 4 : ""
-2 .[#707070].> 8 : ""
 @enduml
 ----
 .Projects/Modules (Incubator)
@@ -4755,6 +4812,38 @@ Folder: \incubator
 _Dependencies_
 
 * org.projectlombok:lombok:jar:<managed>
+|===
+
+=== Kroviz Client
+
+[plantuml,Kroviz Client,svg]
+----
+@startuml(id=Kroviz_Client)
+title Kroviz Client - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Kroviz Client\n[Software System]" {
+  rectangle "==Apache Isis Inc - Client kroViz\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
+}
+@enduml
+----
+.Projects/Modules (Kroviz Client)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Inc - Client kroViz
 [source,yaml]
@@ -4765,6 +4854,59 @@ Type: jar
 Folder: \incubator\clients\kroviz
 ----
 |Initial sketches
+|===
+
+=== JavaFX Viewer
+
+[plantuml,JavaFX Viewer,svg]
+----
+@startuml(id=JavaFX_Viewer)
+title JavaFX Viewer - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "JavaFX Viewer\n[Software System]" {
+  rectangle "==Apache Isis Inc - Viewer JavaFX\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Inc - Viewer JavaFX (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Inc - Viewer JavaFX (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Inc - Viewer JavaFX (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+}
+2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+2 .[#707070].> 5 : ""
+@enduml
+----
+.Projects/Modules (JavaFX Viewer)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Inc - Viewer JavaFX
 [source,yaml]
@@ -4840,6 +4982,59 @@ Folder: \incubator\viewers\javafx\viewer
 |_Dependencies_
 
 * org.apache.isis.incubator.viewer:isis-viewer-javafx-ui:jar:<managed>
+|===
+
+=== Vaadin Viewer
+
+[plantuml,Vaadin Viewer,svg]
+----
+@startuml(id=Vaadin_Viewer)
+title Vaadin Viewer - Containers
+caption Artifact Hierarchy (Maven)
+
+skinparam {
+  shadowing false
+  arrowFontSize 10
+  defaultTextAlignment center
+  wrapWidth 200
+  maxMessageSize 100
+}
+hide stereotype
+skinparam rectangle<<2>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<3>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<4>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+skinparam rectangle<<5>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
+package "Vaadin Viewer\n[Software System]" {
+  rectangle "==Apache Isis Inc - Viewer Vaadin\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
+  rectangle "==Apache Isis Inc - Viewer Vaadin (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
+  rectangle "==Apache Isis Inc - Viewer Vaadin (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
+  rectangle "==Apache Isis Inc - Viewer Vaadin (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
+}
+2 .[#707070].> 3 : ""
+2 .[#707070].> 4 : ""
+2 .[#707070].> 5 : ""
+@enduml
+----
+.Projects/Modules (Vaadin Viewer)
+[cols="3a,5a", options="header"]
+|===
+|Coordinates |Description 
 
 |Apache Isis Inc - Viewer Vaadin
 [source,yaml]
@@ -5091,66 +5286,3 @@ _Dependencies_
 * org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed>
 * org.datanucleus:javax.jdo:jar:<managed>
 |===
-
-== Other
-
-[plantuml,Other,svg]
-----
-@startuml(id=Other)
-title Other - Containers
-caption Artifact Hierarchy (Maven)
-
-skinparam {
-  shadowing false
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
-}
-hide stereotype
-skinparam rectangle<<2>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-skinparam rectangle<<3>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
-package "Other\n[Software System]" {
-  rectangle "==Apache Isis Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
-  rectangle "==Apache Isis Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
-}
-@enduml
-----
-.Projects/Modules (Other)
-[cols="3a,5a", options="header"]
-|===
-|Coordinates |Description 
-
-|Apache Isis Starter Parent
-[source,yaml]
-----
-Group: org.apache.isis.app
-Artifact: isis-app-starter-parent
-Type: pom
-Folder: \starters
-----
-|Parent pom providing dependency and plugin management for Apache Isis applications
-		built with Maven.  Builds on top of spring-boot-starter-parent.
-
-|Apache Isis Supplemental - Legal Info
-[source,yaml]
-----
-Group: org.apache.isis
-Artifact: supplemental-model
-Type: jar
-Folder: \supplemental-model
-----
-|For example, the templates used by many Apache distributions assemble a listing of project dependencies 
-  	according to their organization name (and URL), along with the URL each project's website. When dependency 
-  	POMs are missing this information, the dependency notice file that the Remote Resources Plugin renders can 
-  	be invalid.
-	To compensate for incomplete dependency POMs, we use the supplemental models support.
-|===
diff --git a/antora/supplemental-ui/css/site-custom.css b/antora/supplemental-ui/css/site-custom.css
index 362e9fb..1cf950d 100644
--- a/antora/supplemental-ui/css/site-custom.css
+++ b/antora/supplemental-ui/css/site-custom.css
@@ -49,9 +49,14 @@ div.paragraph code {
     padding-left: 1rem;
 }
 
-input#algolia-search-layout {
+input.ds-input {
     min-width: 23em;
     padding: 5px;
     border: 2px solid #87a83f;
     border-radius: 5px;
 }
+
+div.imageblock.kroki > div.content > img,
+div.imageblock.kroki > div.content > object {
+    max-width: 100%;
+}
diff --git a/antora/supplemental-ui/index.html b/antora/supplemental-ui/index.html
index c3135d8..d29255f 100644
--- a/antora/supplemental-ui/index.html
+++ b/antora/supplemental-ui/index.html
@@ -876,7 +876,7 @@ mvn -pl webapp jetty:run</pre>
 
       <div class="col-md-8">
         <div class="copyright">
-          Copyright © 2010~2020 The Apache Software Foundation, licensed under the Apache License, v2.0.
+          Copyright © 2010~2021 The Apache Software Foundation, licensed under the Apache License, v2.0.
           Apache, the Apache feather logo, Apache Isis™, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.
         </div>
       </div>
diff --git a/core/adoc/modules/ROOT/nav.adoc b/core/adoc/modules/ROOT/nav.adoc
index 798e16a..2285634 100644
--- a/core/adoc/modules/ROOT/nav.adoc
+++ b/core/adoc/modules/ROOT/nav.adoc
@@ -2,3 +2,6 @@
 :Notice: 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 ag [...]
 
 include::core:ROOT:partial$component-nav.adoc[]
+
+* see also:
+** xref:system:generated:system-overview.adoc[System Overview]
diff --git a/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc b/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc
index 25b26af..4a4800a 100644
--- a/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc
+++ b/tooling/cli/adoc/modules/tooling-cli/pages/about.adoc
@@ -76,78 +76,191 @@ Inspect its https://github.com/apache/isis/blob/master/tooling/cli/src/main/java
 
 == Commands
 
-There is currently only one subcommand, namely "projdoc".
+All commands accept two parameters:
 
-=== projdoc
+* `-p` indicates the location of the multi-project root `pom.xml`
++
+in other words, the root of the git repo.
+
+* `-o` the output target root for generated _adoc_
+
+These are specified first in the command line.
+The command is then specified, along with any command-specific options.
+
+A number of global configuration options can be specified under the `global` entry in the `isis-tooling.yml` file.
+
+[source,yml]
+.isis-tooling.yml
+----
+global:
+  outputRootFolder:                                                       # <.>
+  licenseHeader: "Licensed to the Apache Software Foundation (ASF) ..."   # <.>
+  documentPagesPath: "pages"                                              # <.>
+  namespacePartsSkipCount: 3                                              # <.>
+  sections:                                                               # <.>
+    App: org.apache.isis.app.*
+    Mavendeps: org.apache.isis.mavendeps.*
+    ...
+    Core: org.apache.isis.core.*
+    Persistence: org.apache.isis.persistence
+    JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
+    JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
+    ...
+----
+
+<.> the output target root for generated _adoc_; corresponds to command line option `-o` (if empty the current dir is used)
+<.> license header to include with each generated adoc file
+<.> sub-folder name for _adoc_ pages
+<.> how many namespace parts in a _fqn_ one wants to skip, eg. in `org.apache.isis.applib.Xxx` if we skip 3 namespace parts we'll end up with `applib.Xxx`
+<.> Logical grouping of modules for the system overview, but also used to determine which modules to scan for index files.
++
+If not specified the natural Maven project hierarchy is reflected as is.
+
+The `sections` configuration key is used to group module artifacts into named sections.
+It consists of key:value pairs:
+
+* the key is the section name (eg "App", or "JDO")
+* the value is a pattern that identifies Maven artifacts.
+
+This pattern in turn can be either:
+
+* an exact Maven `groupId`, such as `org.apache.isis.persistence`
++
+This matches all Maven modules with exactly that `groupId`.
+
+* a Maven `groupId` with wildcard, such as `org.apache.isis.core.*`
++
+This matches all Maven modules whose `groupId` pattern matches the groupId.
+
+* a Maven group and artifact optionally with wildcard, such as `org.apache.isis.persistence:isis-persistence-jdo.*`
++
+This matches all Maven modules whose `groupId` pattern equals the specified groupId and whose `artifactId` pattern matches the specified `artifactId`.
+
+If a Maven module matches more than one section, then the more specific section (with both group and artifact) is used.
+
+These different types of sections are exploited by the `overview` command, described <<system-overview-overview,below>>.
+
+=== System Overview (`overview`)
+
+This command generates the _System Overview_ (`.adoc) page.
+
+This page summarises the contents of each section (defined by the `global.sections` configuration key), also with a link:https://c4model.com/[C4] diagram showing how the modules relate.
+
+As described <<configuration-file,above>>, sections are defined that either match on a group or on a group and artifact.
+The overview command places these under a level 2 or a level 3 heading respectively.
+By sequencing the sections correctly, this therefore allows a hierarchy to be created.
+
+For example,
+
+[source,yml]
+.isis-tooling.yml
+----
+global:
+  ...
+  sections:                                                               # <.>
+    ...
+    Persistence: org.apache.isis.persistence
+    JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
+    JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
+    ...
+----
+
+The `overview` command will render "Persistence" section at level 2 (because its pattern is only for a `groupId`), and then the "JDO" and "JPA" sections underneath at level 3 (because there patterns also include an `artifactId`).
+
+In this way, sections can be defined that create a hierarchy.
 
-Generates the _System Overview_ and the _Document Global Index_ (adoc) files.
 
-The `projdoc` command is usually invoked as follows:
+=== Usage
+
+The `overview` command is usually invoked as follows:
 
 [source]
-.Example Usage
 ----
 java -jar tooling/cli/target/isis-tooling-cli.jar \
     -p . \
-    projdoc \
-    -o antora/components/system/modules/generated
+    -o antora/components/system/modules/generated \
+    overview
 ----
 
 where :
 
-* `-p` indicates the location of the multi-project root `pom.xml`
-+
-in other words, the root of the git repo.
+* `-p` and `-o` are the global options for all commands
 
-* `projdoc` is CLI sub-command
-+
-selecting the _Project Doc Generator_ functionality
+* `overview` selects this sub-command
+
+There are no command-specific options.
 
-* `-o` the output target root for generated _adoc_
 
 
+[[overview-configuration]]
+==== Configuration
+
+The `overview` command supports a number of command-specific configuration options:
+
+[source,yml]
+.isis-tooling.yml
+----
+commands:
+  overview:
+    description: "These tables summarize all Maven artifacts ..."           # <.>
+    systemOverviewFilename: "system-overview.adoc"                          # <.>
+----
+<.> _System Overview_ head line
+<.> name of the _System Overview_ (adoc) file
+
+
+
+=== Index (`index`)
+
+This command generates the _Document Global Index_ (`.adoc`) files.
+
 Any class found with magic `{@index}` in its _java-doc_ section at type level, will be included with the _Document Global Index_.
-Adoc files may refer to the _Document Global Index_ via `xref` or `include` statements using paths like eg. `system:generated:index/applib/Xxx.adoc`.
+
+Asciidoc files may refer to the _Document Global Index_ via `xref` or `include` statements using paths such as `system:generated:index/applib/Xxx.adoc`.
 
 
+==== Usage
+
+The `index` command is usually invoked as follows:
+
+[source]
+----
+java -jar tooling/cli/target/isis-tooling-cli.jar \
+    -p . \
+    -o antora/components/system/modules/generated \
+    overview
+----
+
+where :
+
+* `-p` and `-o` are the global options for all commands
+
+* `index` selects this sub-command
+
+There are no command-specific options.
+
+
+[[index-configuration]]
 ==== Configuration
 
-The `projdoc` command can be configured using the `projectDoc` entry in `isis-tooling.yml` file.
+The `index` command supports a number of command-specific configuration options:
 
 [source,yml]
 .isis-tooling.yml
 ----
-projectDoc:
-  description: "These tables summarize all Maven artifacts ..."           # <.>
-  licenseHeader: "Licensed to the Apache Software Foundation (ASF) ..."   # <.>
-  outputRootFolder:                                                       # <.>
-  documentPagesPath: "pages"                                              # <.>
-  documentGlobalIndexPath: "pages/index"                                  # <.>
-  documentGlobalIndexXrefPageIdFormat: "system:generated:index/%s.adoc"   # <.>
-  systemOverviewFilename: "system-overview.adoc"                          # <.>
-  fixOrphanedAdocIncludeStatements: true                                  # <.>
-  namespacePartsSkipCount: 3                                              # <.>
-  artifactGroups:                                                         # <.>
-    Base: org.apache.isis
-    Commons: org.apache.isis.commons.*
-    Core: org.apache.isis.core.*
-    App: org.apache.isis.app.*
-    ...
+commands:
+  index:
+    documentGlobalIndexPath: "pages/index"                                  # <.>
+    documentGlobalIndexXrefPageIdFormat: "system:generated:index/%s.adoc"   # <.>
+    fixOrphanedAdocIncludeStatements: true                                  # <.>
 ----
-
-<.> _System Overview_ head line
-<.> license header to include with each generated _adoc_ file
-<.> the output target root for generated _adoc_; corresponds to command line option `-o` (if empty the current dir is used)
-<.> sub-folder name for _adoc_ pages
 <.> sub-folder name for the _Document Global Index_
-<.> format for include statements via which other _adoc_ files may refer to _the Document Global Index_
-<.> name of the _System Overview_ (adoc) file
-<.> whether to activate the `OrphanedIncludeStatementFixer`
-<.> how many namespace parts in a _fqn_ one wants to skip when generating the _Document Global Index_, eg. in `org.apache.isis.applib.Xxx` if we skip 3 namespace parts we'll end up with `applib.Xxx`
-<.> logical grouping of artifacts for the system overview, if not specified the natural Maven project hierarchy is reflected as is
+<.> format for include statements via which other _adoc_ files may refer to the Document Global Index
+<.> whether to activate the `OrphanedIncludeStatementFixer`, discussed below.
 
 The CLI also has an experimental `OrphanedIncludeStatementFixer` that checks orphaned index references in all _adoc_ files and tries to fix them.
 
+
 ==== Limitations
 
 There are currently a couple of limitations:
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
index aeaab1a..5207145 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
@@ -87,11 +87,6 @@ class Cli implements Callable<Integer> {
             description = "Writes a System Overview document (AsciiDoc) to given output.")
     static class SystemOverviewCommand extends CliCommandAbstract {
 
-        @Option(
-                names = {"-o", "--output"},
-                description = "path to the output file (default: NONE = write to std.out)")
-        private String outputFilePath;
-
         @Override
         public Integer call() throws Exception {
 
@@ -115,7 +110,7 @@ class Cli implements Callable<Integer> {
         @Override
         public Integer call() throws Exception {
 
-            if(getOutputPath() !=null) {
+            if(getOutputPath() != null) {
                 getConfig().getGlobal().setOutputRootFolder(getOutputPath());
             }
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 74bc655..e45b6cd 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -20,6 +20,7 @@ package org.apache.isis.tooling.cli.projdoc;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -28,6 +29,8 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
+import java.util.function.BiFunction;
+import java.util.function.BinaryOperator;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -303,6 +306,11 @@ public class ProjectDocModel {
                         : "===";
         titleBlock.setSource(String.format("%s %s", headingLevel, sectionName));
 
+        val sectionModules = section.getMatchingProjectNodes();
+        if(sectionModules.isEmpty()) {
+            return;
+        }
+
         val descriptionBlock = block(doc);
         val groupDiagram = new GroupDiagram(C4.of(sectionName, null));
 
@@ -319,7 +327,7 @@ public class ProjectDocModel {
         val projRoot = _Files.canonicalPath(projTree.getProjectDirectory())
                 .orElseThrow(()->_Exceptions.unrecoverable("cannot resolve project root"));
 
-        section.getMatchingProjectNodes()
+        sectionModules
                 .forEach(module -> {
                     if(mode == Mode.INDEX) {
                         gatherAdocFiles(module.getProjectDirectory(), onAdocFile);
@@ -400,7 +408,7 @@ public class ProjectDocModel {
     }
 
     private String details(ProjectNode module, J2AdocContext j2aContext) {
-        val description = module.getDescription().trim();
+        val description = sanitizeDescription(module.getDescription());
         val dependencyList = module.getDependencies()
                 .stream()
                 .map(Dependency::getArtifactCoordinates)
@@ -441,6 +449,12 @@ public class ProjectDocModel {
         return sb.toString();
     }
 
+    static String sanitizeDescription(String str) {
+        return Arrays.stream(str.split("\n"))
+                .map(String::trim)
+                .reduce("", (x, y) -> x + (x.isEmpty() ? "" : "\n") + y);
+    }
+
     private static String toAdocSection(String title, String content) {
         return String.format("_%s_\n\n%s\n\n", title, content);
     }
diff --git a/tooling/cli/src/test/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel_sanitizeDescription_Test.java b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel_sanitizeDescription_Test.java
new file mode 100644
index 0000000..aa02213
--- /dev/null
+++ b/tooling/cli/src/test/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel_sanitizeDescription_Test.java
@@ -0,0 +1,35 @@
+package org.apache.isis.tooling.cli.projdoc;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.apache.isis.tooling.projectmodel.ProjectNode;
+
+class ProjectDocModel_sanitizeDescription_Test {
+
+    @Test
+    void strips() {
+
+        final String str = ProjectDocModel.sanitizeDescription(
+                "JDO Spring integration.\n" +
+                "\t\t\n" +
+                "\t\tThis is a fork of the Spring ORM JDO sources at github, \n" +
+                "        for which support had been dropped back in 2016 [1].\n" +
+                "\t\t\n" +
+                "\t\tCredits to the original authors.\n" +
+                "\t\t\n" +
+                "\t\t[1] https://github.com/spring-projects/spring-framework/issues/18702");
+
+        Assertions.assertEquals(str,
+                "JDO Spring integration.\n" +
+                "\n" +
+                "This is a fork of the Spring ORM JDO sources at github,\n" +
+                "for which support had been dropped back in 2016 [1].\n" +
+                "\n" +
+                "Credits to the original authors.\n" +
+                "\n" +
+                "[1] https://github.com/spring-projects/spring-framework/issues/18702");
+    }
+}
diff --git a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
index 9e25ca1..434a299 100644
--- a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
+++ b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
@@ -45,14 +45,14 @@ import lombok.NonNull;
 import lombok.val;
 
 /**
- * Provides convenient factory methods to build a (AsciiDoc) Document Model.  
+ * Provides convenient factory methods to build a (AsciiDoc) Document Model.
  * @since Sep 10, 2020
  * @apiNote The <i>AsciiDoc<i> name is trademarked by the <i>Eclipse Foundation</i>.
  * <p>
-    This project is <b>not</b> part of the specification effort for <i>AsciiDoc<i> under the 
+    This project is <b>not</b> part of the specification effort for <i>AsciiDoc<i> under the
     <i>AsciiDoc Working Group</i>. See https://projects.eclipse.org/proposals/asciidoc-language
-    and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to 
-    help with transfer of source code, if any project (under the umbrella of the 
+    and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to
+    help with transfer of source code, if any project (under the umbrella of the
     <i>AsciiDoc Working Group</i>) is willing to take over.
     </p>
  */
@@ -62,15 +62,15 @@ public class AsciiDocFactory {
      * @return a blank/empty document object
      */
     public static Document doc() {
-        return new SimpleDocument();     
+        return new SimpleDocument();
     }
-    
+
     // -- ATTRIBUTES
-    
+
     public static void attrNotice(Document node, String value) {
         node.setAttribute("notice", value, true);
     }
-    
+
     // -- ADMONITIONS
 
     //NOTE
@@ -78,53 +78,53 @@ public class AsciiDocFactory {
     //IMPORTANT
     //CAUTION
     //WARNING
-    
+
     public static Block note(StructuralNode parent) {
         return admonition("Note", parent, null);
     }
-    
+
     public static Block note(StructuralNode parent, String source) {
         return admonition("Note", parent, source);
     }
-    
+
     public static Block tip(StructuralNode parent) {
         return admonition("Tip", parent, null);
     }
-    
+
     public static Block tip(StructuralNode parent, String source) {
         return admonition("Tip", parent, source);
     }
-    
+
     public static Block important(StructuralNode parent) {
         return admonition("Important", parent, null);
     }
-    
+
     public static Block important(StructuralNode parent, String source) {
         return admonition("Important", parent, source);
     }
-    
+
     public static Block caution(StructuralNode parent) {
         return admonition("Caution", parent, null);
     }
-    
+
     public static Block caution(StructuralNode parent, String source) {
         return admonition("Caution", parent, source);
     }
-    
+
     public static Block warning(StructuralNode parent) {
         return admonition("Warning", parent, null);
     }
-    
+
     public static Block warning(StructuralNode parent, String source) {
         return admonition("Warning", parent, source);
     }
-    
+
     // -- BLOCK
-    
+
     public static Block block(StructuralNode parent) {
         return block(parent, null);
     }
-    
+
     public static Block block(StructuralNode parent, String source) {
         val block = new SimpleBlock();
         block.setSource(source);
@@ -133,40 +133,40 @@ public class AsciiDocFactory {
         block.setParent(parent);
         return block;
     }
-    
+
     public static Block openBlock(ListItem listItem) {
         val openBlock = block(listItem);
         openBlock.setStyle("open");
         return openBlock;
     }
-    
+
     public static Block listingBlock(StructuralNode parent, @NonNull String source) {
         val listingBlock = block(parent, source);
         listingBlock.setStyle("listing");
         return listingBlock;
     }
-    
+
     // -- FOOTNOTES
-    
+
     public static org.asciidoctor.ast.List footnotes(StructuralNode parent) {
         val footnoteList = list(parent);
         footnoteList.setStyle("arabic");
         return footnoteList;
     }
-    
+
     public static ListItem footnote(org.asciidoctor.ast.List parent, @NonNull String source) {
         return listItem(parent, source);
     }
-    
+
     // -- TABLE
-    
+
     public static Table table(StructuralNode parent) {
         val table = new SimpleTable();
         parent.getBlocks().add(table);
         table.setParent(parent);
         return table;
     }
-    
+
     public static Column col(Table table) {
         val column = new SimpleColumn();
         table.getColumns().add(column);
@@ -179,19 +179,19 @@ public class AsciiDocFactory {
         table.getBody().add(row);
         return row;
     }
-    
+
     public static Row headRow(Table table) {
         val row = new SimpleRow();
         table.getHeader().add(row);
         return row;
     }
-    
+
     public static Row footRow(Table table) {
         val row = new SimpleRow();
         table.getFooter().add(row);
         return row;
     }
-    
+
     public static Cell cell(Row row, Column column, String source) {
         val cell = new SimpleCell();
         row.getCells().add(cell);
@@ -199,7 +199,7 @@ public class AsciiDocFactory {
         cell.setSource(source);
         return cell;
     }
-    
+
     public static Cell cell(Table table, Row row, String source) {
         val colIndex = row.getCells().size();
         val column = getOrCreateColumn(table, colIndex);
@@ -211,19 +211,19 @@ public class AsciiDocFactory {
         val col = getOrCreateColumn(table, colIndex);
         return cell(row, col, source);
     }
-    
+
     public static Cell headCell(Table table, int rowIndex, int colIndex, String source) {
         val row = getOrCreateHeadRow(table, rowIndex);
         val col = getOrCreateColumn(table, colIndex);
         return cell(row, col, source);
     }
-    
+
     public static Cell footCell(Table table, int rowIndex, int colIndex, String source) {
         val row = getOrCreateFootRow(table, rowIndex);
         val col = getOrCreateColumn(table, colIndex);
         return cell(row, col, source);
     }
-    
+
     public static org.asciidoctor.ast.List list(StructuralNode parent) {
         val list = new SimpleList();
         list.setLevel(parent.getLevel()+1);
@@ -231,11 +231,11 @@ public class AsciiDocFactory {
         list.setParent(parent);
         return list;
     }
-    
+
     public static ListItem listItem(org.asciidoctor.ast.List parent) {
         return listItem(parent, null);
     }
-    
+
     public static ListItem listItem(org.asciidoctor.ast.List parent, String source) {
         val listItem = new SimpleListItem();
         listItem.setLevel(parent.getLevel());
@@ -244,7 +244,7 @@ public class AsciiDocFactory {
         listItem.setSource(source);
         return listItem;
     }
-    
+
     public static class SourceFactory {
 
         public static String wrap(@NonNull String sourceType, @NonNull String source, @Nullable String title, Can<String> options) {
@@ -263,11 +263,11 @@ public class AsciiDocFactory {
             sb.append("----\n");
             return sb.toString();
         }
-        
+
         public static String xml(@NonNull String xmlSource, @Nullable String title) {
             return wrap("source,xml", xmlSource, title, Can.empty());
         }
-        
+
 //        [source,java]
 //        .title
 //        ----
@@ -278,59 +278,59 @@ public class AsciiDocFactory {
         public static String java(@NonNull String javaSource, @Nullable String title) {
             return wrap("source,java", javaSource, title, Can.empty());
         }
-        
+
         public static String json(@NonNull String jsonSource, @Nullable String title) {
             return wrap("source,json", jsonSource, title, Can.empty());
         }
-        
+
         public static String yaml(@NonNull String yamlSource, @Nullable String title) {
             return wrap("source,yaml", yamlSource, title, Can.empty());
         }
-        
-//      [plantuml,c4-demo,svg]
+
+//      [plantuml,c4-demo,png]
 //      ----
 //      @startuml
 //      ...
 //      @enduml
 //      ----
         public static String plantuml(@NonNull String plantumlSource, @NonNull String diagramKey, @Nullable String title) {
-            return wrap(String.format("plantuml,%s,svg", diagramKey), plantumlSource, title, Can.of());
+            return wrap(String.format("plantuml,%s,png", diagramKey), plantumlSource, title, Can.of());
         }
-        
-        
+
+
     }
-    
+
     // -- HELPER
-    
+
     private static Column getOrCreateColumn(Table table, int colIndex) {
-        int maxIndexAvailable = table.getColumns().size() - 1; 
+        int maxIndexAvailable = table.getColumns().size() - 1;
         int colsToBeCreated = colIndex - maxIndexAvailable;
         for(int i=0; i<colsToBeCreated; ++i) {
             col(table);
         }
         return table.getColumns().get(colIndex);
     }
-    
+
     private static Row getOrCreateRow(Table table, int rowIndex) {
-        int maxIndexAvailable = table.getBody().size() - 1; 
+        int maxIndexAvailable = table.getBody().size() - 1;
         int rowsToBeCreated = rowIndex - maxIndexAvailable;
         for(int i=0; i<rowsToBeCreated; ++i) {
             row(table);
         }
         return table.getBody().get(rowIndex);
     }
-    
+
     private static Row getOrCreateHeadRow(Table table, int rowIndex) {
-        int maxIndexAvailable = table.getHeader().size() - 1; 
+        int maxIndexAvailable = table.getHeader().size() - 1;
         int rowsToBeCreated = rowIndex - maxIndexAvailable;
         for(int i=0; i<rowsToBeCreated; ++i) {
             headRow(table);
         }
         return table.getHeader().get(rowIndex);
     }
-    
+
     private static Row getOrCreateFootRow(Table table, int rowIndex) {
-        int maxIndexAvailable = table.getFooter().size() - 1; 
+        int maxIndexAvailable = table.getFooter().size() - 1;
         int rowsToBeCreated = rowIndex - maxIndexAvailable;
         for(int i=0; i<rowsToBeCreated; ++i) {
             footRow(table);
@@ -346,7 +346,7 @@ public class AsciiDocFactory {
         return admonition;
     }
 
-    
 
-    
+
+
 }