You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/03/16 17:14:33 UTC

[isis] branch ISIS-2278 updated (ed4a39d -> 4daaccf)

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

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


 discard ed4a39d  ISIS-2278: adds some more AsyncControl flesh
 discard 277d982  ISIS-2278: fleshes out AsyncControl
 discard 1d6353c  ISIS-2278: initial spike, to tidy up
 discard 7466f0b  ISIS-2278: work in progress
 discard 5f1b5cd  ISIS-2062: factors out XmlService from XmlSnapshotService, reintroduces TransactionService#executeInTransaction(...)
 discard e3c1083  ISIS-2062: refguide docs, simplify/reinstate nextTransaction() for TransactionService
 discard b2ca4ee  ISIS-2062: further docs, and fix for HealthCheck
 discard 8aef953  Revert "ISIS-2094: bumps pom.xml to next version"
 discard 0486472  ISIS-2062: updates refguide docs.  Also fixes for HealthCheckService
 discard 6338225  ISIS-2094: bumps pom.xml to next version
 discard cf80922  ISIS-2062: fixes location of license for generated config .adoc's
 discard 34887bf  ISIS-2062: fixes links on index.html to Antora generated
 discard 380e139  ISIS-2062: converts antora.yml to 'latest' rather than 'master'
 discard 7b1e866  ISIS-2062: fixes positioning of :Notice: license in .adoc files
 discard 5c81a20  ISIS-2062: improvements to preview.sh
 discard a4e6769  ISIS-2062: improving release docs
 discard 75d835b  ISIS-2062: trivial fixes to TODOs, capitliazation
 discard b39e74d  ISIS-2062: fixes directory for legacy/metamodel's adoc
 discard 1fd1eb1  ISIS-2062: add license to generated _nav.adoc for config docs
 discard 2619924  ISIS-2062: updates release procedure, adds in delombok (for javadoc) and config to release starter pom.xml
 discard e7f0837  ISIS-2062: release docs
 discard 413797f  ISIS-2094: supplemental licenses
 discard f63f868  ISIS-2094: remove unnecessary .gitkeep files
 discard 6289a71  ISIS-2094: license headers
 discard 5950ea0  ISIS-2094: adds missing license statements
 discard 8265ad0  ISIS-2094: adds missing license statements
 discard b011801  ISIS-2094: adds missing license statements
 discard 3367f95  ISIS-2094: adds missing license statements
 discard e178ae2  ISIS-2094: adds missing license statements
 discard 5aa1b58  ISIS-2094: adds missing license statements
 discard d7dd7cd  ISIS-2062: improves comguide docs
     add 366ce83  ISIS-2305: adds featured types: Clob and UUID
     add ef9593f  ISIS-2158: disable 2 smoketests for surefire (tests not stable yet)
     add ee72c3c  ISIS-2158: disable another smoketest for surefire (not stable yet)
     new 39dcc58  ISIS-2062: improves comguide docs
     new bd8f6a5  ISIS-2094: adds missing license statements
     new 6d8ae6a  ISIS-2094: adds missing license statements
     new 6b7672c  ISIS-2094: adds missing license statements
     new fc21f5b  ISIS-2094: adds missing license statements
     new 781952b  ISIS-2094: adds missing license statements
     new ed6f3d5  ISIS-2094: adds missing license statements
     new 2a03749  ISIS-2094: license headers
     new 4e00e2e  ISIS-2094: remove unnecessary .gitkeep files
     new 06b5e5e  ISIS-2094: supplemental licenses
     new 4442187  ISIS-2062: release docs
     new ab3d713  ISIS-2062: updates release procedure, adds in delombok (for javadoc) and config to release starter pom.xml
     new ab87187  ISIS-2062: add license to generated _nav.adoc for config docs
     new 775b672  ISIS-2062: fixes directory for legacy/metamodel's adoc
     new 3db4ab4  ISIS-2062: trivial fixes to TODOs, capitliazation
     new a8403e8  ISIS-2062: improving release docs
     new accc68f  ISIS-2062: improvements to preview.sh
     new 3663fcd  ISIS-2062: fixes positioning of :Notice: license in .adoc files
     new 80bb00b  ISIS-2062: converts antora.yml to 'latest' rather than 'master'
     new fdaa105  ISIS-2062: fixes links on index.html to Antora generated
     new 661e4bd  ISIS-2062: fixes location of license for generated config .adoc's
     new bf1b143  ISIS-2094: bumps pom.xml to next version
     new 12e1458  ISIS-2062: updates refguide docs.  Also fixes for HealthCheckService
     new b2dd530  Revert "ISIS-2094: bumps pom.xml to next version"
     new af62171  ISIS-2062: further docs, and fix for HealthCheck
     new 03a896f  ISIS-2062: refguide docs, simplify/reinstate nextTransaction() for TransactionService
     new 0e02569  ISIS-2062: factors out XmlService from XmlSnapshotService, reintroduces TransactionService#executeInTransaction(...)
     new 2a9031e  ISIS-2278: work in progress
     new f095754  ISIS-2278: initial spike, to tidy up
     new f55e63a  ISIS-2278: fleshes out AsyncControl
     new 98444f0  ISIS-2278: adds some more AsyncControl flesh
     new e14e55d  ISIS-2278: adds support to invoke mixins async
     new 086032f  ISIS-2278: cleaning up implementation
     new 00c69db  ISIS-2278: further polishing
     new a90ead5  ISIS-2278: fixes default for translation.po.mode (removed an enum earlier)
     new 7a4b99e  ISIS-2278: makes reason shorter in UI (detail info still available in InteractoinException#interactionEvent).
     new c8dc8e3  ISIS-2278: delegate to DOIH directly, rather than using a proxy
     new e16739b  ISIS-2278: fixing AuditerServiceTest.
     new b712be4  ISIS-2278: renames some classes re: IsisSession, no functional change.
     new 7c94b5d  ISIS-2278: smoke tests
     new 4daaccf  ISIS-2278: fixes unit tests

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (ed4a39d)
            \
             N -- N -- N   refs/heads/ISIS-2278 (4daaccf)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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


Summary of changes:
 .../services/repository/RepositoryService.java     |  20 ++
 .../services/wrapper/InteractionException.java     |   2 +-
 .../applib/services/wrapper/WrapperFactory.java    |   9 +-
 .../applib/services/wrapper/WrappingObject.java    |   2 +-
 .../services/wrapper/control/AsyncControl.java     |  50 ++--
 .../wrapper/control/AsyncControlService.java       |   6 +
 .../services/wrapper/control/ControlAbstract.java  |  34 +--
 .../wrapper/control/ExceptionHandler.java}         |  30 +-
 .../wrapper/control/ExceptionHandlerAbstract.java} |  22 +-
 .../services/wrapper/control/SyncControl.java      |  37 ++-
 .../core/config/presets/NoTranslations.properties  |   2 +-
 .../facets/object/entity/EntityFacet.java          |   2 +-
 .../metamodel/objectmanager/ObjectManager.java     |   2 +
 .../objectmanager/ObjectManagerDefault.java        |   9 +-
 .../ObjectDetacher.java}                           |  37 ++-
 .../ObjectDetacher_builtinHandlers.java}           |  31 +-
 .../objectmanager/refresh/ObjectRefresher.java     |  11 +-
 ...leEvent.java => IsisSessionLifecycleEvent.java} |  12 +-
 .../context/session/RuntimeEventService.java       |   4 +-
 .../session/RuntimeEventSupport_Spring.java        |   2 +-
 .../transaction/IsisTransactionAspectSupport.java  |   5 +
 .../transaction/IsisTransactionObject.java         |   8 +-
 .../isis/core/runtime/session/IsisSession.java     |  19 ++
 .../command/CommandExecutorServiceDefault.java     |  46 ++-
 .../repository/RepositoryServiceDefault.java       |  17 +-
 .../wrapper/WrapperFactoryDefault.java             | 315 +++++++++++++++------
 .../handlers/DomainObjectInvocationHandler.java    |  97 +++----
 .../wrapper/WrapperFactoryDefaultTest.java         |   3 +-
 .../WrapperFactoryDefault_wrappedObject_Test.java  |  13 +
 ...actoryDefault_wrappedObject_transient_Test.java |  25 +-
 .../demoapp/dom/events/DemoEventSubscriber.java    |   2 +-
 .../java/demoapp/dom/types/FeaturedTypesMenu.java  |  18 ++
 .../main/java/demoapp/dom/types/blob/BlobDemo.adoc |   4 +-
 .../main/java/demoapp/dom/types/clob/ClobDemo.adoc |  25 ++
 .../{blob/BlobDemo.java => clob/ClobDemo.java}     |  24 +-
 .../ClobDemo.layout.xml}                           |   2 +-
 .../ClobDemo_downloadDocument.java}                |  14 +-
 .../main/java/demoapp/dom/types/clob/document.txt} |   0
 .../main/java/demoapp/dom/types/uuid/UuidDemo.adoc |   5 +
 .../java/demoapp/dom/types/uuid/UuidDemo.java}     |  29 +-
 .../uuid/UuidDemo.layout.xml}                      |   8 +-
 .../main/java/demoapp/webapp/menubars.layout.xml   |   6 +
 examples/smoketests/pom.xml                        | 178 ++++++++++++
 .../testdomain/auditing/AuditerServiceTest.java    |  49 ++--
 .../{auditing => command}/CommandTest.java         |   9 +-
 .../commandexecution/WrapperAsyncTest.java         |  78 +++--
 .../commandexecution/WrapperSyncTest.java          |   3 +-
 .../domainmodel/DomainModelTest_forEditing.java    |   5 +-
 .../DomainModelTest_usingGoodDomain.java           |   2 +
 .../isis/testdomain/ldap/LdapEmbeddedServer.java   |   9 +-
 .../testdomain/ldap/LdapEmbeddedServerTest.java    |   3 +-
 .../publishing/PublisherServiceTest.java           |   9 +-
 .../isis/testdomain/shiro/AbstractShiroTest.java   |   1 +
 .../isis/testdomain/shiro/ShiroLdapTest.java       |   8 +
 .../isis/testdomain/shiro/ShiroSecmanLdapTest.java |   1 +
 .../transactions/TransactionRollbackTest.java      |   2 +
 ...TransactionRollbackTest_usingTransactional.java |   2 +
 .../service/JdoPersistenceLifecycleService.java    |  26 +-
 .../JdoPersistenceCapableFacetImpl.java            |   5 +
 .../IsisPlatformTransactionManagerForJdo.java      |   8 +-
 60 files changed, 979 insertions(+), 428 deletions(-)
 copy api/applib/src/main/{adoc/modules/applib-svc/examples/services/xactn/Transaction.java => java/org/apache/isis/applib/services/wrapper/control/ExceptionHandler.java} (59%)
 copy api/applib/src/main/{adoc/modules/applib-cm/examples/graph/Edge.java => java/org/apache/isis/applib/services/wrapper/control/ExceptionHandlerAbstract.java} (75%)
 copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/{refresh/ObjectRefresher.java => detach/ObjectDetacher.java} (57%)
 copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/{refresh/ObjectRefresher_builtinHandlers.java => detach/ObjectDetacher_builtinHandlers.java} (75%)
 rename core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/{SessionLifecycleEvent.java => IsisSessionLifecycleEvent.java} (86%)
 create mode 100644 examples/demo/src/main/java/demoapp/dom/types/clob/ClobDemo.adoc
 copy examples/demo/src/main/java/demoapp/dom/types/{blob/BlobDemo.java => clob/ClobDemo.java} (77%)
 copy examples/demo/src/main/java/demoapp/dom/types/{blob/BlobDemo.layout.xml => clob/ClobDemo.layout.xml} (97%)
 copy examples/demo/src/main/java/demoapp/dom/types/{blob/BlobDemo_downloadLogo.java => clob/ClobDemo_downloadDocument.java} (81%)
 copy examples/demo/{LICENSE => src/main/java/demoapp/dom/types/clob/document.txt} (100%)
 create mode 100644 examples/demo/src/main/java/demoapp/dom/types/uuid/UuidDemo.adoc
 copy examples/{smoketests/src/main/java/org/apache/isis/testdomain/model/layout/LayoutDemo.java => demo/src/main/java/demoapp/dom/types/uuid/UuidDemo.java} (73%)
 copy examples/demo/src/main/java/demoapp/dom/{tree/TreeDemo.layout.xml => types/uuid/UuidDemo.layout.xml} (89%)
 rename examples/smoketests/src/test/java/org/apache/isis/testdomain/{auditing => command}/CommandTest.java (94%)


[isis] 22/41: ISIS-2094: bumps pom.xml to next version

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

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

commit bf1b14300d23d2fb8fc33b7f436928f2f2dff2da
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 9 23:46:00 2020 +0000

    ISIS-2094: bumps pom.xml to next version
---
 api/applib/pom.xml                                 |  2 +-
 api/schema/pom.xml                                 |  2 +-
 core-parent/pom.xml                                |  6 +-
 core/codegen-bytebuddy/pom.xml                     |  2 +-
 core/commons/pom.xml                               |  2 +-
 core/config/pom.xml                                |  2 +-
 core/internaltestsupport/pom.xml                   |  2 +-
 core/metamodel/pom.xml                             |  2 +-
 core/pom.xml                                       | 88 +++++++++++-----------
 core/runtime/pom.xml                               |  2 +-
 core/runtimeservices/pom.xml                       |  2 +-
 core/security/pom.xml                              |  2 +-
 core/webapp/pom.xml                                |  2 +-
 extensions/core/flyway/impl/pom.xml                |  2 +-
 extensions/core/flyway/pom.xml                     |  2 +-
 extensions/pom.xml                                 | 32 ++++----
 extensions/security/secman/api/pom.xml             |  2 +-
 .../security/secman/encryption-jbcrypt/pom.xml     |  2 +-
 extensions/security/secman/model/pom.xml           |  4 +-
 extensions/security/secman/persistence-jdo/pom.xml |  8 +-
 extensions/security/secman/pom.xml                 | 10 +--
 extensions/security/secman/shiro-realm/pom.xml     |  4 +-
 extensions/security/shiro-realm-ldap/impl/pom.xml  |  2 +-
 extensions/security/shiro-realm-ldap/pom.xml       |  2 +-
 extensions/vro/cors/impl/pom.xml                   |  2 +-
 extensions/vro/cors/pom.xml                        |  2 +-
 extensions/vw/exceldownload/pom.xml                |  2 +-
 extensions/vw/exceldownload/ui/pom.xml             |  2 +-
 extensions/vw/fullcalendar/applib/pom.xml          |  2 +-
 extensions/vw/fullcalendar/pom.xml                 |  2 +-
 extensions/vw/fullcalendar/ui/pom.xml              |  2 +-
 extensions/vw/pdfjs/applib/pom.xml                 |  2 +-
 extensions/vw/pdfjs/metamodel/pom.xml              |  2 +-
 extensions/vw/pdfjs/pom.xml                        |  2 +-
 extensions/vw/pdfjs/ui/pom.xml                     |  2 +-
 incubator/core/model/pom.xml                       |  2 +-
 incubator/mappings/microprofile/pom.xml            |  2 +-
 incubator/pom.xml                                  | 16 ++--
 incubator/viewers/vaadin/model/pom.xml             |  2 +-
 incubator/viewers/vaadin/pom.xml                   |  8 +-
 incubator/viewers/vaadin/ui/pom.xml                |  2 +-
 incubator/viewers/vaadin/viewer/pom.xml            |  2 +-
 legacy/extensions/core/applib/pom.xml              |  2 +-
 legacy/extensions/core/commons/pom.xml             |  2 +-
 legacy/extensions/core/metamodel/pom.xml           |  2 +-
 legacy/extensions/core/runtime/pom.xml             |  2 +-
 legacy/mappings/restclient/pom.xml                 |  2 +-
 legacy/pom.xml                                     | 12 +--
 mappings/jaxrsclient/api/pom.xml                   |  2 +-
 mappings/jaxrsclient/pom.xml                       |  2 +-
 mappings/pom.xml                                   |  8 +-
 mappings/restclient/api/pom.xml                    |  2 +-
 mappings/restclient/pom.xml                        |  2 +-
 mavendeps/integspecs/pom.xml                       |  2 +-
 mavendeps/integtests/pom.xml                       |  2 +-
 mavendeps/jdk11/pom.xml                            |  2 +-
 mavendeps/pom.xml                                  | 16 ++--
 mavendeps/unittests/pom.xml                        |  2 +-
 mavendeps/webapp/pom.xml                           |  2 +-
 persistence/jdo/applib/pom.xml                     |  2 +-
 persistence/jdo/datanucleus-5/pom.xml              |  2 +-
 persistence/jdo/pom.xml                            |  2 +-
 security/bypass/pom.xml                            |  2 +-
 security/keycloak/pom.xml                          |  4 +-
 security/shiro/pom.xml                             |  4 +-
 starters/pom.xml                                   | 20 ++---
 subdomains/base/applib/pom.xml                     |  2 +-
 subdomains/base/pom.xml                            |  2 +-
 subdomains/docx/applib/pom.xml                     |  2 +-
 subdomains/docx/pom.xml                            |  2 +-
 subdomains/excel/applib/pom.xml                    |  2 +-
 subdomains/excel/fixture/pom.xml                   |  2 +-
 subdomains/excel/integtests/pom.xml                |  2 +-
 subdomains/excel/pom.xml                           |  2 +-
 subdomains/excel/testing/pom.xml                   |  2 +-
 subdomains/freemarker/applib/pom.xml               |  2 +-
 subdomains/freemarker/pom.xml                      |  2 +-
 subdomains/ognl/applib/pom.xml                     |  2 +-
 subdomains/ognl/pom.xml                            |  2 +-
 subdomains/pdfbox/applib/pom.xml                   |  2 +-
 subdomains/pdfbox/pom.xml                          |  2 +-
 subdomains/pom.xml                                 | 28 +++----
 subdomains/spring/applib/pom.xml                   |  2 +-
 subdomains/spring/pom.xml                          |  2 +-
 subdomains/xdocreport/applib/pom.xml               |  2 +-
 subdomains/xdocreport/pom.xml                      |  2 +-
 subdomains/zip/applib/pom.xml                      |  2 +-
 subdomains/zip/pom.xml                             |  2 +-
 testing/fakedata/applib/pom.xml                    |  2 +-
 testing/fakedata/fixtures/pom.xml                  |  2 +-
 testing/fakedata/integtests/pom.xml                |  2 +-
 testing/fakedata/pom.xml                           |  2 +-
 testing/fixtures/applib/pom.xml                    |  2 +-
 testing/fixtures/pom.xml                           |  2 +-
 testing/h2console/pom.xml                          |  2 +-
 testing/h2console/ui/pom.xml                       |  2 +-
 testing/hsqldbmgr/pom.xml                          |  2 +-
 testing/hsqldbmgr/ui/pom.xml                       |  2 +-
 testing/integtestsupport/applib/pom.xml            |  2 +-
 testing/integtestsupport/pom.xml                   |  2 +-
 testing/pom.xml                                    | 22 +++---
 testing/specsupport/applib/pom.xml                 |  2 +-
 testing/specsupport/pom.xml                        |  2 +-
 testing/unittestsupport/applib/pom.xml             |  2 +-
 testing/unittestsupport/pom.xml                    |  2 +-
 valuetypes/asciidoc/applib/pom.xml                 |  2 +-
 valuetypes/asciidoc/pom.xml                        |  2 +-
 valuetypes/asciidoc/ui/pom.xml                     |  2 +-
 valuetypes/markdown/applib/pom.xml                 |  2 +-
 valuetypes/markdown/pom.xml                        |  2 +-
 valuetypes/markdown/ui/pom.xml                     |  2 +-
 valuetypes/pom.xml                                 | 18 ++---
 valuetypes/sse/applib/pom.xml                      |  2 +-
 valuetypes/sse/metamodel/pom.xml                   |  2 +-
 valuetypes/sse/pom.xml                             |  2 +-
 valuetypes/sse/ui/pom.xml                          |  2 +-
 viewers/restfulobjects/applib/pom.xml              |  2 +-
 viewers/restfulobjects/jaxrs-resteasy-4/pom.xml    |  2 +-
 viewers/restfulobjects/pom.xml                     |  2 +-
 viewers/restfulobjects/rendering/pom.xml           |  2 +-
 viewers/restfulobjects/viewer/pom.xml              |  2 +-
 viewers/wicket/model/pom.xml                       |  2 +-
 viewers/wicket/pom.xml                             |  2 +-
 viewers/wicket/ui/pom.xml                          |  2 +-
 viewers/wicket/viewer/pom.xml                      |  2 +-
 125 files changed, 263 insertions(+), 259 deletions(-)

diff --git a/api/applib/pom.xml b/api/applib/pom.xml
index 2b1f3e8..510ecd2 100644
--- a/api/applib/pom.xml
+++ b/api/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/api/schema/pom.xml b/api/schema/pom.xml
index 6a6bf7b..48d7985 100644
--- a/api/schema/pom.xml
+++ b/api/schema/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../core/pom.xml</relativePath>
 	</parent>
 
diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index 02affbe..a5c5ab9 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -51,7 +51,7 @@ under the License.
 
 	<groupId>org.apache.isis.core</groupId>
 	<artifactId>isis-parent</artifactId>
-	<version>2.0.0-M3-SNAPSHOT</version>
+	<version>2.0.0-M3</version>
 	<packaging>pom</packaging>
 
 	<!-- APACHE ISIS customisation 1/7: end -->
@@ -519,6 +519,10 @@ under the License.
 							<exclude>**/.classpath</exclude>
 							<exclude>**/.settings/**</exclude>
 							<exclude>**/*.launch</exclude>
+							<exclude>**/component-nav.adoc</exclude>
+							<exclude>**/module-nav.adoc</exclude>
+							<exclude>**/module-nav-*.adoc</exclude>
+							<exclude>**/_nav.adoc</exclude>
 
 							<exclude>**/*.iml</exclude>
 							<exclude>**/webpack.generated.js</exclude>
diff --git a/core/codegen-bytebuddy/pom.xml b/core/codegen-bytebuddy/pom.xml
index 0ad22a8..8e44bbb 100644
--- a/core/codegen-bytebuddy/pom.xml
+++ b/core/codegen-bytebuddy/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-core-codegen-bytebuddy</artifactId>
diff --git a/core/commons/pom.xml b/core/commons/pom.xml
index 6db6ed6..08e47ce 100644
--- a/core/commons/pom.xml
+++ b/core/commons/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-core-commons</artifactId>
diff --git a/core/config/pom.xml b/core/config/pom.xml
index 7c016d5..fedd80d 100644
--- a/core/config/pom.xml
+++ b/core/config/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-core-config</artifactId>
diff --git a/core/internaltestsupport/pom.xml b/core/internaltestsupport/pom.xml
index 48a5f8f..d1c6878 100644
--- a/core/internaltestsupport/pom.xml
+++ b/core/internaltestsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-core-internaltestsupport</artifactId>
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 9473acc..dd10b53 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-core-metamodel</artifactId>
diff --git a/core/pom.xml b/core/pom.xml
index e28df66..c1a235b 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -17,13 +17,13 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis-parent</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core-parent/pom.xml</relativePath>
 	</parent>
 
 	<groupId>org.apache.isis.core</groupId>
 	<artifactId>isis</artifactId>
-	<version>2.0.0-M3-SNAPSHOT</version>
+	<version>2.0.0-M3</version>
 
 	<packaging>pom</packaging>
 
@@ -695,252 +695,252 @@
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-commons</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-internaltestsupport</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-internaltestsupport</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-config</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-config</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-schema</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-schema</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-metamodel</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-metamodel</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtime</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtime</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtimeservices</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtimeservices</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-webapp</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-webapp</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-rendering</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-rendering</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-viewer</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-viewer</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-security</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.security</groupId>
 				<artifactId>isis-security-bypass</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.security</groupId>
 				<artifactId>isis-security-shiro</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.security</groupId>
 				<artifactId>isis-security-keycloak</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-codegen-bytebuddy</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.persistence</groupId>
 				<artifactId>isis-persistence-jdo-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.persistence</groupId>
 				<artifactId>isis-persistence-jdo-datanucleus5</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-jaxrsresteasy4</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-model</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-model</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-viewer</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-viewer</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-unittests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integtests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integspecs</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-webapp</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-jdk11</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 			</dependency>
 
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index be35979..5742220 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-core-runtime</artifactId>
diff --git a/core/runtimeservices/pom.xml b/core/runtimeservices/pom.xml
index 8922dba..d25f7f7 100644
--- a/core/runtimeservices/pom.xml
+++ b/core/runtimeservices/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-core-runtimeservices</artifactId>
diff --git a/core/security/pom.xml b/core/security/pom.xml
index 0072bdb..3b99e7d 100644
--- a/core/security/pom.xml
+++ b/core/security/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-core-security</artifactId>
diff --git a/core/webapp/pom.xml b/core/webapp/pom.xml
index af15c49..dc188eb 100644
--- a/core/webapp/pom.xml
+++ b/core/webapp/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-core-webapp</artifactId>
diff --git a/extensions/core/flyway/impl/pom.xml b/extensions/core/flyway/impl/pom.xml
index 57ef1c6..490b883 100644
--- a/extensions/core/flyway/impl/pom.xml
+++ b/extensions/core/flyway/impl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions-flyway</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-extensions-flyway-impl</artifactId>
diff --git a/extensions/core/flyway/pom.xml b/extensions/core/flyway/pom.xml
index 2f6bf9c..2c2f0d9 100644
--- a/extensions/core/flyway/pom.xml
+++ b/extensions/core/flyway/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/pom.xml b/extensions/pom.xml
index e2b6362..9c864e8 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -65,19 +65,19 @@
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-exceldownload-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-flyway-impl</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-pdfjs-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
@@ -87,67 +87,67 @@
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-pdfjs-metamodel</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-pdfjs-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-fullcalendar-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-fullcalendar-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-model</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-encryption-jbcrypt</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-persistence-jdo</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-shiro-realm</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-shiro-realm-ldap-impl</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-cors-impl</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 
diff --git a/extensions/security/secman/api/pom.xml b/extensions/security/secman/api/pom.xml
index 27ed775..c890caf 100644
--- a/extensions/security/secman/api/pom.xml
+++ b/extensions/security/secman/api/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/encryption-jbcrypt/pom.xml b/extensions/security/secman/encryption-jbcrypt/pom.xml
index 4c6cca4..3a1b7b4 100644
--- a/extensions/security/secman/encryption-jbcrypt/pom.xml
+++ b/extensions/security/secman/encryption-jbcrypt/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/model/pom.xml b/extensions/security/secman/model/pom.xml
index a49b163..6f8ea46 100644
--- a/extensions/security/secman/model/pom.xml
+++ b/extensions/security/secman/model/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -47,7 +47,7 @@
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-api</artifactId>
-			<version>2.0.0-M3-SNAPSHOT</version>
+			<version>2.0.0-M3</version>
 		</dependency>
 
     </dependencies>
diff --git a/extensions/security/secman/persistence-jdo/pom.xml b/extensions/security/secman/persistence-jdo/pom.xml
index 24de172..9ce1164 100644
--- a/extensions/security/secman/persistence-jdo/pom.xml
+++ b/extensions/security/secman/persistence-jdo/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -55,21 +55,21 @@
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-api</artifactId>
-			<version>2.0.0-M3-SNAPSHOT</version>
+			<version>2.0.0-M3</version>
 			<scope>provided</scope>
 		</dependency>
 		
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-model</artifactId>
-			<version>2.0.0-M3-SNAPSHOT</version>
+			<version>2.0.0-M3</version>
 			<scope>provided</scope>
 		</dependency>
 		
 		<dependency>
 			<groupId>org.apache.isis.testing</groupId>
 			<artifactId>isis-testing-fixtures-applib</artifactId>
-			<version>2.0.0-M3-SNAPSHOT</version>
+			<version>2.0.0-M3</version>
 		</dependency>
 
     </dependencies>
diff --git a/extensions/security/secman/pom.xml b/extensions/security/secman/pom.xml
index 86ce7e8..22e3de4 100644
--- a/extensions/security/secman/pom.xml
+++ b/extensions/security/secman/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -43,22 +43,22 @@
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-api</artifactId>
-                <version>2.0.0-M3-SNAPSHOT</version>
+                <version>2.0.0-M3</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-encryption-jbcrypt</artifactId>
-                <version>2.0.0-M3-SNAPSHOT</version>
+                <version>2.0.0-M3</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-persistence-jdo</artifactId>
-                <version>2.0.0-M3-SNAPSHOT</version>
+                <version>2.0.0-M3</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-shiro-realm</artifactId>
-                <version>2.0.0-M3-SNAPSHOT</version>
+                <version>2.0.0-M3</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
diff --git a/extensions/security/secman/shiro-realm/pom.xml b/extensions/security/secman/shiro-realm/pom.xml
index 13f55de..a8e35ad 100644
--- a/extensions/security/secman/shiro-realm/pom.xml
+++ b/extensions/security/secman/shiro-realm/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -54,7 +54,7 @@
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-api</artifactId>
-			<version>2.0.0-M3-SNAPSHOT</version>
+			<version>2.0.0-M3</version>
 			<scope>provided</scope>
 		</dependency>
 
diff --git a/extensions/security/shiro-realm-ldap/impl/pom.xml b/extensions/security/shiro-realm-ldap/impl/pom.xml
index fdc51c3..6dc197a 100644
--- a/extensions/security/shiro-realm-ldap/impl/pom.xml
+++ b/extensions/security/shiro-realm-ldap/impl/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-shiro-realm-ldap</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-shiro-realm-ldap-impl</artifactId>
diff --git a/extensions/security/shiro-realm-ldap/pom.xml b/extensions/security/shiro-realm-ldap/pom.xml
index b251ed9..17d9a57 100644
--- a/extensions/security/shiro-realm-ldap/pom.xml
+++ b/extensions/security/shiro-realm-ldap/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vro/cors/impl/pom.xml b/extensions/vro/cors/impl/pom.xml
index d40d937..a080f3d 100644
--- a/extensions/vro/cors/impl/pom.xml
+++ b/extensions/vro/cors/impl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions-cors</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-extensions-cors-impl</artifactId>
diff --git a/extensions/vro/cors/pom.xml b/extensions/vro/cors/pom.xml
index d7e968f..e8db877 100644
--- a/extensions/vro/cors/pom.xml
+++ b/extensions/vro/cors/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/vw/exceldownload/pom.xml b/extensions/vw/exceldownload/pom.xml
index 7add7ff..a9ef7c5 100644
--- a/extensions/vw/exceldownload/pom.xml
+++ b/extensions/vw/exceldownload/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vw/exceldownload/ui/pom.xml b/extensions/vw/exceldownload/ui/pom.xml
index cf58939..cfcd4e1 100644
--- a/extensions/vw/exceldownload/ui/pom.xml
+++ b/extensions/vw/exceldownload/ui/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-exceldownload</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-exceldownload-ui</artifactId>
diff --git a/extensions/vw/fullcalendar/applib/pom.xml b/extensions/vw/fullcalendar/applib/pom.xml
index fc2ca2a..6d31485 100644
--- a/extensions/vw/fullcalendar/applib/pom.xml
+++ b/extensions/vw/fullcalendar/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-fullcalendar</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-fullcalendar-applib</artifactId>
diff --git a/extensions/vw/fullcalendar/pom.xml b/extensions/vw/fullcalendar/pom.xml
index 777891d..8697035 100644
--- a/extensions/vw/fullcalendar/pom.xml
+++ b/extensions/vw/fullcalendar/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vw/fullcalendar/ui/pom.xml b/extensions/vw/fullcalendar/ui/pom.xml
index f5cfb50..da3cb5a 100644
--- a/extensions/vw/fullcalendar/ui/pom.xml
+++ b/extensions/vw/fullcalendar/ui/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-fullcalendar</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-fullcalendar-ui</artifactId>
diff --git a/extensions/vw/pdfjs/applib/pom.xml b/extensions/vw/pdfjs/applib/pom.xml
index ff14ea4..8e6b946 100644
--- a/extensions/vw/pdfjs/applib/pom.xml
+++ b/extensions/vw/pdfjs/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-pdfjs</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-pdfjs-applib</artifactId>
diff --git a/extensions/vw/pdfjs/metamodel/pom.xml b/extensions/vw/pdfjs/metamodel/pom.xml
index 3b63f8b..fe15e77 100644
--- a/extensions/vw/pdfjs/metamodel/pom.xml
+++ b/extensions/vw/pdfjs/metamodel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-pdfjs</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-pdfjs-metamodel</artifactId>
diff --git a/extensions/vw/pdfjs/pom.xml b/extensions/vw/pdfjs/pom.xml
index eb91d20..afc57a4 100644
--- a/extensions/vw/pdfjs/pom.xml
+++ b/extensions/vw/pdfjs/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vw/pdfjs/ui/pom.xml b/extensions/vw/pdfjs/ui/pom.xml
index a169405..901367a 100644
--- a/extensions/vw/pdfjs/ui/pom.xml
+++ b/extensions/vw/pdfjs/ui/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-pdfjs</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-extensions-pdfjs-ui</artifactId>
diff --git a/incubator/core/model/pom.xml b/incubator/core/model/pom.xml
index c9220d2..f1c9288 100644
--- a/incubator/core/model/pom.xml
+++ b/incubator/core/model/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator</groupId>
 		<artifactId>isis-incubator</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/incubator/mappings/microprofile/pom.xml b/incubator/mappings/microprofile/pom.xml
index 575bb95..848bfe5 100644
--- a/incubator/mappings/microprofile/pom.xml
+++ b/incubator/mappings/microprofile/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator</groupId>
 		<artifactId>isis-incubator</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/incubator/pom.xml b/incubator/pom.xml
index c37fe87..1a74d43 100644
--- a/incubator/pom.xml
+++ b/incubator/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -64,37 +64,37 @@
 			<dependency>
 				<groupId>org.apache.isis.incubator</groupId>
 				<artifactId>isis-incubator-model</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			
 			<dependency>
 				<groupId>org.apache.isis.incubator</groupId>
 				<artifactId>isis-incubator-microprofile</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-model</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 		
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 		
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-viewer</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- TESTING -->
@@ -102,7 +102,7 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 		</dependencies>
diff --git a/incubator/viewers/vaadin/model/pom.xml b/incubator/viewers/vaadin/model/pom.xml
index 32a7f61..0a1c2bf 100644
--- a/incubator/viewers/vaadin/model/pom.xml
+++ b/incubator/viewers/vaadin/model/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator.viewer</groupId>
 		<artifactId>isis-viewer-vaadin</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-viewer-vaadin-model</artifactId>
diff --git a/incubator/viewers/vaadin/pom.xml b/incubator/viewers/vaadin/pom.xml
index 6211de3..c2bdffa 100644
--- a/incubator/viewers/vaadin/pom.xml
+++ b/incubator/viewers/vaadin/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator</groupId>
 		<artifactId>isis-incubator</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -62,19 +62,19 @@
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-model</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-viewer</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 		</dependencies>
diff --git a/incubator/viewers/vaadin/ui/pom.xml b/incubator/viewers/vaadin/ui/pom.xml
index bc24f84..cbffcec 100644
--- a/incubator/viewers/vaadin/ui/pom.xml
+++ b/incubator/viewers/vaadin/ui/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator.viewer</groupId>
 		<artifactId>isis-viewer-vaadin</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-viewer-vaadin-ui</artifactId>
diff --git a/incubator/viewers/vaadin/viewer/pom.xml b/incubator/viewers/vaadin/viewer/pom.xml
index 159e64d..756e047 100644
--- a/incubator/viewers/vaadin/viewer/pom.xml
+++ b/incubator/viewers/vaadin/viewer/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator.viewer</groupId>
 		<artifactId>isis-viewer-vaadin</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-viewer-vaadin-viewer</artifactId>
diff --git a/legacy/extensions/core/applib/pom.xml b/legacy/extensions/core/applib/pom.xml
index 6703fc6..b66b498 100644
--- a/legacy/extensions/core/applib/pom.xml
+++ b/legacy/extensions/core/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/extensions/core/commons/pom.xml b/legacy/extensions/core/commons/pom.xml
index 73b194c..ad7ee6c 100644
--- a/legacy/extensions/core/commons/pom.xml
+++ b/legacy/extensions/core/commons/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/extensions/core/metamodel/pom.xml b/legacy/extensions/core/metamodel/pom.xml
index 263db1e..6fb85ce 100644
--- a/legacy/extensions/core/metamodel/pom.xml
+++ b/legacy/extensions/core/metamodel/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/extensions/core/runtime/pom.xml b/legacy/extensions/core/runtime/pom.xml
index 7ed31a4..6ad7e2e 100644
--- a/legacy/extensions/core/runtime/pom.xml
+++ b/legacy/extensions/core/runtime/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/mappings/restclient/pom.xml b/legacy/mappings/restclient/pom.xml
index 980be16..c9a0ac9 100644
--- a/legacy/mappings/restclient/pom.xml
+++ b/legacy/mappings/restclient/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/pom.xml b/legacy/pom.xml
index 7fd2850..b6fd359 100644
--- a/legacy/pom.xml
+++ b/legacy/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -63,29 +63,29 @@
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-commons</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-runtime</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-restclient</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 		</dependencies>
diff --git a/mappings/jaxrsclient/api/pom.xml b/mappings/jaxrsclient/api/pom.xml
index 7d658d6..6ccc983 100644
--- a/mappings/jaxrsclient/api/pom.xml
+++ b/mappings/jaxrsclient/api/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings-jaxrsclient</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mappings-jaxrsclient-api</artifactId>
diff --git a/mappings/jaxrsclient/pom.xml b/mappings/jaxrsclient/pom.xml
index 22a32b9..1e2ece0 100644
--- a/mappings/jaxrsclient/pom.xml
+++ b/mappings/jaxrsclient/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mappings-jaxrsclient</artifactId>
diff --git a/mappings/pom.xml b/mappings/pom.xml
index 21bbaef..c0dfa29 100644
--- a/mappings/pom.xml
+++ b/mappings/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -65,20 +65,20 @@
 			<dependency>
 				<groupId>org.apache.isis.mappings</groupId>
 				<artifactId>isis-mappings-restclient-api</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mappings</groupId>
 				<artifactId>isis-mappings-jaxrsclient-api</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 
diff --git a/mappings/restclient/api/pom.xml b/mappings/restclient/api/pom.xml
index f65b001..8bd0975 100644
--- a/mappings/restclient/api/pom.xml
+++ b/mappings/restclient/api/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/mappings/restclient/pom.xml b/mappings/restclient/pom.xml
index e5f69fc..bb40c53 100644
--- a/mappings/restclient/pom.xml
+++ b/mappings/restclient/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mappings-restclient</artifactId>
diff --git a/mavendeps/integspecs/pom.xml b/mavendeps/integspecs/pom.xml
index 5fa2c17..c4c09b7 100644
--- a/mavendeps/integspecs/pom.xml
+++ b/mavendeps/integspecs/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-integspecs</artifactId>
diff --git a/mavendeps/integtests/pom.xml b/mavendeps/integtests/pom.xml
index 6fd564b..f8c7b9c 100644
--- a/mavendeps/integtests/pom.xml
+++ b/mavendeps/integtests/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-integtests</artifactId>
diff --git a/mavendeps/jdk11/pom.xml b/mavendeps/jdk11/pom.xml
index 4878df3..ba4f4a2 100644
--- a/mavendeps/jdk11/pom.xml
+++ b/mavendeps/jdk11/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-jdk11</artifactId>
diff --git a/mavendeps/pom.xml b/mavendeps/pom.xml
index 125bda9..a41213b 100644
--- a/mavendeps/pom.xml
+++ b/mavendeps/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -73,7 +73,7 @@
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
@@ -81,7 +81,7 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
@@ -89,31 +89,31 @@
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-unittests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integtests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integspecs</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-webapp</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-jdk11</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
diff --git a/mavendeps/unittests/pom.xml b/mavendeps/unittests/pom.xml
index cfe9872..4ef6e6f 100644
--- a/mavendeps/unittests/pom.xml
+++ b/mavendeps/unittests/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-unittests</artifactId>
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index 7fc51a8..4341ae4 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-webapp</artifactId>
diff --git a/persistence/jdo/applib/pom.xml b/persistence/jdo/applib/pom.xml
index 27c2f87..480ada3 100644
--- a/persistence/jdo/applib/pom.xml
+++ b/persistence/jdo/applib/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.isis.persistence</groupId>
 		<artifactId>isis-persistence-jdo</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-persistence-jdo-applib</artifactId>
diff --git a/persistence/jdo/datanucleus-5/pom.xml b/persistence/jdo/datanucleus-5/pom.xml
index f482c18..3e7202d 100644
--- a/persistence/jdo/datanucleus-5/pom.xml
+++ b/persistence/jdo/datanucleus-5/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.isis.persistence</groupId>
 		<artifactId>isis-persistence-jdo</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-persistence-jdo-datanucleus5</artifactId>
diff --git a/persistence/jdo/pom.xml b/persistence/jdo/pom.xml
index c1c5656..0702707 100644
--- a/persistence/jdo/pom.xml
+++ b/persistence/jdo/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../core/pom.xml</relativePath>
 	</parent>
 
diff --git a/security/bypass/pom.xml b/security/bypass/pom.xml
index c317d60..e4ec21b 100644
--- a/security/bypass/pom.xml
+++ b/security/bypass/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/security/keycloak/pom.xml b/security/keycloak/pom.xml
index 220f106..ccfe346 100644
--- a/security/keycloak/pom.xml
+++ b/security/keycloak/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-    	<version>2.0.0-M3-SNAPSHOT</version>
+    	<version>2.0.0-M3</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
@@ -47,7 +47,7 @@
             <dependency>
                 <groupId>org.apache.isis.security</groupId>
                 <artifactId>isis-security-keycloak</artifactId>
-                <version>2.0.0-M3-SNAPSHOT</version>
+                <version>2.0.0-M3</version>
             </dependency>
     	</dependencies>
     </dependencyManagement>
diff --git a/security/shiro/pom.xml b/security/shiro/pom.xml
index 47c406a..1567602 100644
--- a/security/shiro/pom.xml
+++ b/security/shiro/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-    	<version>2.0.0-M3-SNAPSHOT</version>
+    	<version>2.0.0-M3</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
@@ -47,7 +47,7 @@
             <dependency>
                 <groupId>org.apache.isis.security</groupId>
                 <artifactId>isis-security-shiro</artifactId>
-                <version>2.0.0-M3-SNAPSHOT</version>
+                <version>2.0.0-M3</version>
             </dependency>
     	</dependencies>
     </dependencyManagement>
diff --git a/starters/pom.xml b/starters/pom.xml
index 7234e36..7e11c3f 100644
--- a/starters/pom.xml
+++ b/starters/pom.xml
@@ -25,7 +25,7 @@ under the License.
 	<!-- this must come before <parent> because the version is manually updated in build-core.sh -->
 	<groupId>org.apache.isis.app</groupId>
 	<artifactId>isis-app-starter-parent</artifactId>
-	<version>2.0.0-M3-SNAPSHOT</version>
+	<version>2.0.0-M3</version>
 	<packaging>pom</packaging>
 
 	<parent>
@@ -81,7 +81,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -89,7 +89,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -97,7 +97,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.incubator</groupId>
 				<artifactId>isis-incubator</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -105,7 +105,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -113,7 +113,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.mappings</groupId>
 				<artifactId>isis-mappings</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -121,7 +121,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -129,7 +129,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -137,14 +137,14 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integtests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
diff --git a/subdomains/base/applib/pom.xml b/subdomains/base/applib/pom.xml
index 6ff8b12..89abcb7 100644
--- a/subdomains/base/applib/pom.xml
+++ b/subdomains/base/applib/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains-base</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 	
     <artifactId>isis-subdomains-base-applib</artifactId>
diff --git a/subdomains/base/pom.xml b/subdomains/base/pom.xml
index 0648b3b..5de2d11 100644
--- a/subdomains/base/pom.xml
+++ b/subdomains/base/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 	
     <artifactId>isis-subdomains-base</artifactId>
diff --git a/subdomains/docx/applib/pom.xml b/subdomains/docx/applib/pom.xml
index 842f7b8..7c373c7 100644
--- a/subdomains/docx/applib/pom.xml
+++ b/subdomains/docx/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-docx</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-docx-applib</artifactId>
diff --git a/subdomains/docx/pom.xml b/subdomains/docx/pom.xml
index 4c15f42..c0d8de7 100644
--- a/subdomains/docx/pom.xml
+++ b/subdomains/docx/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-docx</artifactId>
diff --git a/subdomains/excel/applib/pom.xml b/subdomains/excel/applib/pom.xml
index 4e834d2..af137f6 100644
--- a/subdomains/excel/applib/pom.xml
+++ b/subdomains/excel/applib/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains-excel</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-subdomains-excel-applib</artifactId>
diff --git a/subdomains/excel/fixture/pom.xml b/subdomains/excel/fixture/pom.xml
index 9c9ed4b..d291b62 100644
--- a/subdomains/excel/fixture/pom.xml
+++ b/subdomains/excel/fixture/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/subdomains/excel/integtests/pom.xml b/subdomains/excel/integtests/pom.xml
index e7dcced..f1cecc1 100644
--- a/subdomains/excel/integtests/pom.xml
+++ b/subdomains/excel/integtests/pom.xml
@@ -24,7 +24,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/subdomains/excel/pom.xml b/subdomains/excel/pom.xml
index 78ab857..fcb4ed8 100644
--- a/subdomains/excel/pom.xml
+++ b/subdomains/excel/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-subdomains-excel</artifactId>
diff --git a/subdomains/excel/testing/pom.xml b/subdomains/excel/testing/pom.xml
index 27f03ac..7d21afb 100644
--- a/subdomains/excel/testing/pom.xml
+++ b/subdomains/excel/testing/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains-excel</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-subdomains-excel-testing</artifactId>
diff --git a/subdomains/freemarker/applib/pom.xml b/subdomains/freemarker/applib/pom.xml
index 13e506a..74cf279 100644
--- a/subdomains/freemarker/applib/pom.xml
+++ b/subdomains/freemarker/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-freemarker</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-freemarker-applib</artifactId>
diff --git a/subdomains/freemarker/pom.xml b/subdomains/freemarker/pom.xml
index 6181054..347aac4 100644
--- a/subdomains/freemarker/pom.xml
+++ b/subdomains/freemarker/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-freemarker</artifactId>
diff --git a/subdomains/ognl/applib/pom.xml b/subdomains/ognl/applib/pom.xml
index c78194d..f036321 100644
--- a/subdomains/ognl/applib/pom.xml
+++ b/subdomains/ognl/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/subdomains/ognl/pom.xml b/subdomains/ognl/pom.xml
index cd1081e..ca1e524 100644
--- a/subdomains/ognl/pom.xml
+++ b/subdomains/ognl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-ognl</artifactId>
diff --git a/subdomains/pdfbox/applib/pom.xml b/subdomains/pdfbox/applib/pom.xml
index 6b984b7..6da53a8 100644
--- a/subdomains/pdfbox/applib/pom.xml
+++ b/subdomains/pdfbox/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-pdfbox</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-pdfbox-applib</artifactId>
diff --git a/subdomains/pdfbox/pom.xml b/subdomains/pdfbox/pom.xml
index fe098b3..1c59a64 100644
--- a/subdomains/pdfbox/pom.xml
+++ b/subdomains/pdfbox/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-pdfbox</artifactId>
diff --git a/subdomains/pom.xml b/subdomains/pom.xml
index 13f1139..726b2f6 100644
--- a/subdomains/pom.xml
+++ b/subdomains/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -65,77 +65,77 @@
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-base-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-docx-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-testing</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-fixtures</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-integtests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-freemarker-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-ognl-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-pdfbox-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-spring-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-xdocreport-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-zip-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
diff --git a/subdomains/spring/applib/pom.xml b/subdomains/spring/applib/pom.xml
index 24f35de..1fbbe01 100644
--- a/subdomains/spring/applib/pom.xml
+++ b/subdomains/spring/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-spring</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-spring-applib</artifactId>
diff --git a/subdomains/spring/pom.xml b/subdomains/spring/pom.xml
index 7e28707..7e58f6e 100644
--- a/subdomains/spring/pom.xml
+++ b/subdomains/spring/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-spring</artifactId>
diff --git a/subdomains/xdocreport/applib/pom.xml b/subdomains/xdocreport/applib/pom.xml
index a1d3137..115603f 100644
--- a/subdomains/xdocreport/applib/pom.xml
+++ b/subdomains/xdocreport/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-xdocreport</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-xdocreport-applib</artifactId>
diff --git a/subdomains/xdocreport/pom.xml b/subdomains/xdocreport/pom.xml
index 03f34b0..f231abf 100644
--- a/subdomains/xdocreport/pom.xml
+++ b/subdomains/xdocreport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-xdocreport</artifactId>
diff --git a/subdomains/zip/applib/pom.xml b/subdomains/zip/applib/pom.xml
index f7e2753..dfc436c 100644
--- a/subdomains/zip/applib/pom.xml
+++ b/subdomains/zip/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-zip</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-zip-applib</artifactId>
diff --git a/subdomains/zip/pom.xml b/subdomains/zip/pom.xml
index 9696cb9..a6ba4c2 100644
--- a/subdomains/zip/pom.xml
+++ b/subdomains/zip/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-subdomains-zip</artifactId>
diff --git a/testing/fakedata/applib/pom.xml b/testing/fakedata/applib/pom.xml
index 5004f3c..884395b 100644
--- a/testing/fakedata/applib/pom.xml
+++ b/testing/fakedata/applib/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-fakedata</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-testing-fakedata-applib</artifactId>
diff --git a/testing/fakedata/fixtures/pom.xml b/testing/fakedata/fixtures/pom.xml
index dd85e2c..ea00673 100644
--- a/testing/fakedata/fixtures/pom.xml
+++ b/testing/fakedata/fixtures/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-fakedata</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-testing-fakedata-fixtures</artifactId>
diff --git a/testing/fakedata/integtests/pom.xml b/testing/fakedata/integtests/pom.xml
index 973d5d7..ac3a527 100644
--- a/testing/fakedata/integtests/pom.xml
+++ b/testing/fakedata/integtests/pom.xml
@@ -24,7 +24,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-fakedata</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-testing-fakedata-integtests</artifactId>
diff --git a/testing/fakedata/pom.xml b/testing/fakedata/pom.xml
index 3f7cef4..7e4db20 100644
--- a/testing/fakedata/pom.xml
+++ b/testing/fakedata/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-testing-fakedata</artifactId>
diff --git a/testing/fixtures/applib/pom.xml b/testing/fixtures/applib/pom.xml
index c136aca..178f3b6 100644
--- a/testing/fixtures/applib/pom.xml
+++ b/testing/fixtures/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-fixtures</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-fixtures-applib</artifactId>
diff --git a/testing/fixtures/pom.xml b/testing/fixtures/pom.xml
index 11785d7..2e755a6 100644
--- a/testing/fixtures/pom.xml
+++ b/testing/fixtures/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-fixtures</artifactId>
diff --git a/testing/h2console/pom.xml b/testing/h2console/pom.xml
index 324c84d..76737ea 100644
--- a/testing/h2console/pom.xml
+++ b/testing/h2console/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-h2console</artifactId>
diff --git a/testing/h2console/ui/pom.xml b/testing/h2console/ui/pom.xml
index 34fe560..f359cab 100644
--- a/testing/h2console/ui/pom.xml
+++ b/testing/h2console/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-h2console</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-h2console-ui</artifactId>
diff --git a/testing/hsqldbmgr/pom.xml b/testing/hsqldbmgr/pom.xml
index 4d45c3d..226a8f9 100644
--- a/testing/hsqldbmgr/pom.xml
+++ b/testing/hsqldbmgr/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-hsqldbmgr</artifactId>
diff --git a/testing/hsqldbmgr/ui/pom.xml b/testing/hsqldbmgr/ui/pom.xml
index 2912469..d2841bd 100644
--- a/testing/hsqldbmgr/ui/pom.xml
+++ b/testing/hsqldbmgr/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-hsqldbmgr</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-hsqldbmgr-ui</artifactId>
diff --git a/testing/integtestsupport/applib/pom.xml b/testing/integtestsupport/applib/pom.xml
index f2ca83b..74a9b0f 100644
--- a/testing/integtestsupport/applib/pom.xml
+++ b/testing/integtestsupport/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-integtestsupport</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-integtestsupport-applib</artifactId>
diff --git a/testing/integtestsupport/pom.xml b/testing/integtestsupport/pom.xml
index 7f5c8dd..eb4ce2b 100644
--- a/testing/integtestsupport/pom.xml
+++ b/testing/integtestsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-integtestsupport</artifactId>
diff --git a/testing/pom.xml b/testing/pom.xml
index 2030f64..859936c 100644
--- a/testing/pom.xml
+++ b/testing/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -66,60 +66,60 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-integtestsupport-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-h2console-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-hsqldbmgr-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-specsupport-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fakedata-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fakedata-fixtures</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fakedata-integtests</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-unittestsupport-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- dependencies -->
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-spring-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 		</dependencies>
diff --git a/testing/specsupport/applib/pom.xml b/testing/specsupport/applib/pom.xml
index c9b7c89..6be2729 100644
--- a/testing/specsupport/applib/pom.xml
+++ b/testing/specsupport/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-specsupport</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-specsupport-applib</artifactId>
diff --git a/testing/specsupport/pom.xml b/testing/specsupport/pom.xml
index c71e737..fb5d4a7 100644
--- a/testing/specsupport/pom.xml
+++ b/testing/specsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-testing-specsupport</artifactId>
diff --git a/testing/unittestsupport/applib/pom.xml b/testing/unittestsupport/applib/pom.xml
index 61fd607..51f972a 100644
--- a/testing/unittestsupport/applib/pom.xml
+++ b/testing/unittestsupport/applib/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-unittestsupport</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-testing-unittestsupport-applib</artifactId>
diff --git a/testing/unittestsupport/pom.xml b/testing/unittestsupport/pom.xml
index 20a3eb8..8cdbad6 100644
--- a/testing/unittestsupport/pom.xml
+++ b/testing/unittestsupport/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-testing-unittestsupport</artifactId>
diff --git a/valuetypes/asciidoc/applib/pom.xml b/valuetypes/asciidoc/applib/pom.xml
index 6610333..d6ca77d 100644
--- a/valuetypes/asciidoc/applib/pom.xml
+++ b/valuetypes/asciidoc/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-asciidoc</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-asciidoc-applib</artifactId>
diff --git a/valuetypes/asciidoc/pom.xml b/valuetypes/asciidoc/pom.xml
index 389838c..5f4fd1f 100644
--- a/valuetypes/asciidoc/pom.xml
+++ b/valuetypes/asciidoc/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-asciidoc</artifactId>
diff --git a/valuetypes/asciidoc/ui/pom.xml b/valuetypes/asciidoc/ui/pom.xml
index 5599a87..e9e75dd 100644
--- a/valuetypes/asciidoc/ui/pom.xml
+++ b/valuetypes/asciidoc/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-asciidoc</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-asciidoc-ui</artifactId>
diff --git a/valuetypes/markdown/applib/pom.xml b/valuetypes/markdown/applib/pom.xml
index 1332a1f..5e6d89f 100644
--- a/valuetypes/markdown/applib/pom.xml
+++ b/valuetypes/markdown/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-markdown</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-markdown-applib</artifactId>
diff --git a/valuetypes/markdown/pom.xml b/valuetypes/markdown/pom.xml
index 3d3e8b0..5faf6a5 100644
--- a/valuetypes/markdown/pom.xml
+++ b/valuetypes/markdown/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-markdown</artifactId>
diff --git a/valuetypes/markdown/ui/pom.xml b/valuetypes/markdown/ui/pom.xml
index 8dd8c68..4169b53 100644
--- a/valuetypes/markdown/ui/pom.xml
+++ b/valuetypes/markdown/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-markdown</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-markdown-ui</artifactId>
diff --git a/valuetypes/pom.xml b/valuetypes/pom.xml
index 4a5a9d6..ad8effa 100644
--- a/valuetypes/pom.xml
+++ b/valuetypes/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -64,39 +64,39 @@
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-asciidoc-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-asciidoc-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-markdown-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-markdown-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-sse-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-sse-metamodel</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-sse-ui</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 			<!-- testing -->
@@ -104,7 +104,7 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3-SNAPSHOT</version>
+				<version>2.0.0-M3</version>
 			</dependency>
 
 		</dependencies>
diff --git a/valuetypes/sse/applib/pom.xml b/valuetypes/sse/applib/pom.xml
index ef0093a..a4d2254 100644
--- a/valuetypes/sse/applib/pom.xml
+++ b/valuetypes/sse/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/valuetypes/sse/metamodel/pom.xml b/valuetypes/sse/metamodel/pom.xml
index a210a21..03fb654 100644
--- a/valuetypes/sse/metamodel/pom.xml
+++ b/valuetypes/sse/metamodel/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-sse</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-sse-metamodel</artifactId>
diff --git a/valuetypes/sse/pom.xml b/valuetypes/sse/pom.xml
index 4f2d0a3..cd2e6eb 100644
--- a/valuetypes/sse/pom.xml
+++ b/valuetypes/sse/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-sse</artifactId>
diff --git a/valuetypes/sse/ui/pom.xml b/valuetypes/sse/ui/pom.xml
index 704b1fd..a70c504 100644
--- a/valuetypes/sse/ui/pom.xml
+++ b/valuetypes/sse/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-sse</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-sse-ui</artifactId>
diff --git a/viewers/restfulobjects/applib/pom.xml b/viewers/restfulobjects/applib/pom.xml
index 69e7ded..f6f23c6 100644
--- a/viewers/restfulobjects/applib/pom.xml
+++ b/viewers/restfulobjects/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-restfulobjects</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
 	<artifactId>isis-viewer-restfulobjects-applib</artifactId>
diff --git a/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml b/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml
index b856ab8..86428e7 100644
--- a/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml
+++ b/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.viewer</groupId>
 		<artifactId>isis-viewer-restfulobjects</artifactId>
-		<version>2.0.0-M3-SNAPSHOT</version>
+		<version>2.0.0-M3</version>
 	</parent>
 
 	<artifactId>isis-viewer-restfulobjects-jaxrsresteasy4</artifactId>
diff --git a/viewers/restfulobjects/pom.xml b/viewers/restfulobjects/pom.xml
index 6364f83..c480bf2 100644
--- a/viewers/restfulobjects/pom.xml
+++ b/viewers/restfulobjects/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/viewers/restfulobjects/rendering/pom.xml b/viewers/restfulobjects/rendering/pom.xml
index 83ea189..c00d1ad 100644
--- a/viewers/restfulobjects/rendering/pom.xml
+++ b/viewers/restfulobjects/rendering/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-restfulobjects</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-viewer-restfulobjects-rendering</artifactId>
diff --git a/viewers/restfulobjects/viewer/pom.xml b/viewers/restfulobjects/viewer/pom.xml
index 1173f0b..d24e1a0 100644
--- a/viewers/restfulobjects/viewer/pom.xml
+++ b/viewers/restfulobjects/viewer/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-restfulobjects</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-viewer-restfulobjects-viewer</artifactId>
diff --git a/viewers/wicket/model/pom.xml b/viewers/wicket/model/pom.xml
index 5239e7d..d6d0273 100644
--- a/viewers/wicket/model/pom.xml
+++ b/viewers/wicket/model/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-wicket</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-viewer-wicket-model</artifactId>
diff --git a/viewers/wicket/pom.xml b/viewers/wicket/pom.xml
index 714b59a..bd67682 100644
--- a/viewers/wicket/pom.xml
+++ b/viewers/wicket/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/viewers/wicket/ui/pom.xml b/viewers/wicket/ui/pom.xml
index 27b9278..ef8b6d5 100644
--- a/viewers/wicket/ui/pom.xml
+++ b/viewers/wicket/ui/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-wicket</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <artifactId>isis-viewer-wicket-ui</artifactId>
diff --git a/viewers/wicket/viewer/pom.xml b/viewers/wicket/viewer/pom.xml
index 1c053c9..5dab213 100644
--- a/viewers/wicket/viewer/pom.xml
+++ b/viewers/wicket/viewer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-wicket</artifactId>
-        <version>2.0.0-M3-SNAPSHOT</version>
+        <version>2.0.0-M3</version>
     </parent>
 
     <name>Apache Isis Viewer - Wicket (Viewer)</name>


[isis] 28/41: ISIS-2278: work in progress

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

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

commit 2a9031e6c59171f75f1802b77c3e8c8d738a52a3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 13 09:43:13 2020 +0100

    ISIS-2278: work in progress
---
 .../examples/services/wrapper/WrapperFactory.java  |  74 +++---
 .../modules/applib-svc/pages/WrapperFactory.adoc   |  69 ++++--
 .../isis/applib/services/wrapper/AsyncWrap.java    |   8 +-
 .../applib/services/wrapper/WrapperFactory.java    | 102 +++++---
 .../plugins/codegen/ProxyFactoryService.java       |  14 +-
 .../codegen/ProxyFactoryServiceAbstract.java       |  66 +++++
 .../classsubstitutor/ClassSubstitutorAbstract.java |   4 +-
 .../specloader/classsubstitutor/ProxyEnhanced.java |  28 ---
 .../runtimeservices/wrapper/AsyncWrapDefault.java  | 273 ++++++++++++++-------
 .../wrapper/WrapperFactoryDefault.java             |  12 +-
 .../wrapper/proxy/ProxyCreator.java                |  32 +--
 11 files changed, 428 insertions(+), 254 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
index 29425da..7d92b96 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
@@ -72,8 +72,12 @@ import lombok.experimental.UtilityClass;
  * </p>
  */
 // tag::refguide[]
+// tag::refguide-async[]
+// tag::refguide-listeners[]
 public interface WrapperFactory {
 
+    // end::refguide-listeners[]
+    // end::refguide-async[]
     // end::refguide[]
     /**
      * Whether interactions with the wrapper are actually passed onto the
@@ -151,21 +155,27 @@ public interface WrapperFactory {
     // end::refguide-2[]
 
     /**
-     * Provides the &quot;wrapper&quot; of the underlying domain object.
+     * Same as {@link #wrap(Object)}, except the actual execution occurs only if
+     * the <tt>execute</tt> parameter indicates.
      *
      * <p>
-     * If the object has (see {@link #isWrapper(Object)} already been wrapped),
-     * then should just return the object back unchanged.
+     * Otherwise, will do all the validations (raise exceptions as required
+     * etc.), but doesn't modify the model.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject);                                     // <.>
+    <T> T wrap(T domainObject,                                      // <.>
+               ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
-     * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
+     * Provides the &quot;wrapper&quot; of the underlying domain object.
+     *
+     * <p>
+     * If the object has (see {@link #isWrapper(Object)} already been wrapped),
+     * then should just return the object back unchanged.
      */
     // tag::refguide[]
-    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
+    <T> T wrap(T domainObject);                                     // <.>
 
     // end::refguide[]
     /**
@@ -193,16 +203,10 @@ public interface WrapperFactory {
 
     // end::refguide[]
     /**
-     * Same as {@link #wrap(Object)}, except the actual execution occurs only if
-     * the <tt>execute</tt> parameter indicates.
-     *
-     * <p>
-     * Otherwise, will do all the validations (raise exceptions as required
-     * etc.), but doesn't modify the model.
+     * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject,                                      // <.>
-               ImmutableEnumSet<ExecutionMode> mode);
+    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
 
     // end::refguide[]
     /**
@@ -229,6 +233,7 @@ public interface WrapperFactory {
 
     // end::refguide[]
 
+
     //
     // -- ASYNC WRAPPING
     //
@@ -243,11 +248,11 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
+    // tag::refguide-async[]
     <T> AsyncWrap<T> async(T domainObject,                          // <.>
                            ImmutableEnumSet<ExecutionMode> mode);
 
-    // end::refguide[]
+    // end::refguide-async[]
     /**
      * Shortcut for {@link #async(Object, ImmutableEnumSet)} using execution mode
      * {@link ExecutionModes#EXECUTE}.
@@ -256,17 +261,17 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
+    // tag::refguide-async[]
     default <T> AsyncWrap<T> async(T domainObject) {                // <.>
-        // end::refguide[]
+        // end::refguide-async[]
 
         return async(domainObject, ExecutionModes.EXECUTE);
 
-        // tag::refguide[]
+        // tag::refguide-async[]
         // ...
     }
 
-    // end::refguide[]
+    // end::refguide-async[]
     /**
      * Returns a {@link AsyncWrap} bound to the provided {@code mixinClass},
      * to prepare for type-safe asynchronous action execution.
@@ -278,12 +283,12 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
+    // tag::refguide-async[]
     <T> AsyncWrap<T> asyncMixin(                                    // <.>
                         Class<T> mixinClass, Object mixedIn,
                         ImmutableEnumSet<ExecutionMode> mode);
 
-    // end::refguide[]
+    // end::refguide-async[]
     /**
      * Shortcut for {@link #asyncMixin(Class, Object, ImmutableEnumSet)} using execution mode
      * {@link ExecutionModes#EXECUTE}.
@@ -293,17 +298,17 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
+    // tag::refguide-async[]
     default <T> AsyncWrap<T> asyncMixin(                            // <.>
                         Class<T> mixinClass, Object mixedIn) {
-        // end::refguide[]
+        // end::refguide-async[]
 
         return asyncMixin(mixinClass, mixedIn, ExecutionModes.EXECUTE);
 
-        // tag::refguide[]
+        // tag::refguide-async[]
         // ...
     }
-    // end::refguide[]
+    // end::refguide-async[]
 
 
     //
@@ -314,10 +319,11 @@ public interface WrapperFactory {
      * All {@link InteractionListener}s that have been registered using
      * {@link #addInteractionListener(InteractionListener)}.
      */
-    // tag::refguide[]
+    // tag::refguide-listeners[]
+    // ...
     List<InteractionListener> getListeners();                       // <.>
 
-    // end::refguide[]
+    // end::refguide-listeners[]
     /**
      * Registers an {@link InteractionListener}, to be notified of interactions
      * on all wrappers.
@@ -331,10 +337,10 @@ public interface WrapperFactory {
      * @param listener
      * @return
      */
-    // tag::refguide[]
+    // tag::refguide-listeners[]
     boolean addInteractionListener(InteractionListener listener);   // <.>
 
-    // end::refguide[]
+    // end::refguide-listeners[]
     /**
      * Remove an {@link InteractionListener}, to no longer be notified of
      * interactions on wrappers.
@@ -348,12 +354,16 @@ public interface WrapperFactory {
      * @param listener
      * @return
      */
-    // tag::refguide[]
+    // tag::refguide-listeners[]
     boolean removeInteractionListener(                              // <.>
                     InteractionListener listener);
 
     void notifyListeners(InteractionEvent ev);                      // <.>
+    // tag::refguide-async[]
+    // tag::refguide[]
+    // ...
 
 }
 // end::refguide[]
-w
\ No newline at end of file
+// end::refguide-listeners[]
+// end::refguide-async[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
index 660f040..fdd6f25 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
@@ -3,8 +3,7 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-Document `WrappingObject`, document `AsyncWrap`
+WARNING: Document `WrappingObject`, document `AsyncWrap`
 
 
 The `WrapperFactory` provides the ability to enforce business rules for programmatic interactions between domain objects.
@@ -20,50 +19,55 @@ For a discussion of the use of the `WrapperFactory` within integration tests (th
 
 This capability goes beyond enforcing the (imperative) constraints within the `hideXxx()`, `disableXxx()` and `validateXxx()` supporting methods; it also enforces (declarative) constraints such as those represented by annotations, eg `@Parameter(maxLength=...)` or `@Property(mustSatisfy=...)`.
 
-This capability is frequently used within xref:testing:integtestsupport:about.adoc[integration tests], but can also be used in production code. (There are analogies that can be drawn here with the way that JEE beans can interact through an EJB local interface).
-
+This capability is frequently used within xref:testing:integtestsupport:about.adoc[integration tests], but can also be used in production code.
 
+== API
 
+The API breaks into three.
 
-== API
+=== Main API
 
-The API provided by the service is:
+The main API provided by the service is:
 
 [source,java]
 ----
 include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide"]
 ----
-
+<.> wraps the underlying domain object with a wrapper configured with the set of ``ExecutionMode``s.
++
+If the domain object is already wrapped, then wrapping it again does nothing; the wrapper is returned unchanged.
++
+The `ExecutionMode` modifies the way in which the wrapper interacts with the underlying domain object:
++
 [source,java]
 ----
 include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide-1",indent=0]
 ----
++
+As a convenience, the `ExecutionModes` class defines some predefined sets of the `ExecutionMode` enum:
++
 [source,java]
 ----
 include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide-2",indent=0]
 ----
-<.> enumerates how the wrapper returned by `wrap(...)` interacts with the underlying domain object.
 
-<.> wraps the underlying domain object with a wrapper as specified by the execution mode.
+<.> wraps the underlying domain object with a wrapper that will validate all business rules and then execute if they pass.
 +
-If the domain object is already wrapped, then wrapping it again does nothing; the wrapper is returned unchanged.
+This is the same as invoke `wrap(...)` with `ExecutionModes.EXECUTE`.
 
-<.> wraps the underlying domain object with a wrapper that will validate all business rules and then execute if they pass.
+<.> wraps the underlying domain object with a wrapper that will validate all business rules and then execute if they pass, but will simply skip execution if any of the business rules fail (returning null).
 +
-This is the same as invoke `wrap(...)` with `ExecuteMode#EXECUTE`.
+This is the same as invoke `wrap(...)` with `ExecutionModes.TRY`.
 
 <.> wraps the underlying domain object with a wrapper that will validate all business rules but will not actually perform the interaction.
 +
-This is the same as invoke `wrap(...)` with `ExecuteMode#NO_EXECUTE`.
+This is the same as invoke `wrap(...)` with `ExecuteModes#NO_EXECUTE`.
 
 <.> wraps the underlying domain object with a wrapper that will NOT check any business rules and instead will just perform the interaction.
 +
 This is the same as invoke `wrap(...)` with `ExecuteMode#SKIP_RULES`.
 
-<.> wraps the underlying domain object with a wrapper that will validate the business rules, and just return `null` if any fail.
-If all business rules pass, then will just perform the interaction.
-+
-This is the same as invoke `wrap(...)` with `ExecuteMode#TRY`.
+<.> instantiates and wraps a mixin, with no modifiers to the execution.
 
 <.> Obtains the underlying domain object, if wrapped.
 +
@@ -71,10 +75,8 @@ If the object is not wrapped, returns back unchanged.
 
 <.> whether the supplied object has been wrapped.
 
-If the interface is performed (action invoked or property set), then - irrespective of whether the business rules were checked or skipped -  a xref:refguide:applib-ant:Action.adoc#command[command]s will be created and pre- and post-execute xref:refguide:applib-ant:Action.adoc#domainEvent[domain event]s) will be fired
 
-
-The service works by returning a "wrapper" around a supplied domain object (using a byte manipulation library such as link:http://www.javassist.org[javassist] or link:https://bytebuddy.net/[byte buddy]), and it is this wrapper that ensures that the hide/disable/validate rules implies by the Apache Isis programming model are enforced.
+The service works by returning a "wrapper" around a supplied domain object (using link:https://bytebuddy.net/[byte buddy]), and it is this wrapper that ensures that the hide/disable/validate rules implies by the Apache Isis programming model are enforced.
 The wrapper can be interacted with as follows:
 
 * a `get...()` method for properties or collections
@@ -93,8 +95,32 @@ In addition, the following methods may also be called:
 
 An exception will be thrown if any other methods are thrown.
 
+If the interface is performed (action invoked or property set), then - irrespective of whether the business rules were checked or skipped - a xref:refguide:applib-ant:Action.adoc#command[command] will be created and pre- and post-execute xref:refguide:applib-ant:Action.adoc#domainEvent[domain event]s) will be fired.
+
 
 
+=== `AsyncWrap` API
+
+The `WrapperFactory` also allows domain objects to be interacted with in an asynchronous fashion:
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide-async"]
+----
+<.> x
+<.> x
+<.> x
+<.> x
+
+WARNING: TODO: there are some caveats to using this approach.
+
+
+=== Listener API
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide-listeners"]
+----
 
 
 == Usage
@@ -134,9 +160,6 @@ This recognizer service would recognize the `InteractionException` and convert t
 At the time of writing Apache Isis does not provide an out-of-the-box implementation of such an `ExceptionRecognizer`; but it should be simple enough to write one…
 ====
 
-
-
-
 == Listener API
 
 The `WrapperFactory` also provides a listener API to allow other services to listen in on interactions.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
index 59e1ef2..585a8aa 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
@@ -47,13 +47,13 @@ public interface AsyncWrap<T> {
 
     // -- CONFIGURATION
     
-    ExecutorService getExecutor();
-    AsyncWrap<T> withExecutor(ExecutorService executor);
+    ExecutorService getExecutorService();
+    AsyncWrap<T> withExecutorService(ExecutorService executor);
     
     Consumer<Exception> getExceptionHandler();
     AsyncWrap<T> withExceptionHandler(Consumer<Exception> handler);
-    
-    ImmutableEnumSet<ExecutionMode> getExecutionMode();
+
+    ImmutableEnumSet<ExecutionMode> getExecutionModes();
     
     // -- INVOCATION (WITH RETURN VALUE)
     
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 72bbd83..0cfd47e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -19,7 +19,6 @@
 
 package org.apache.isis.applib.services.wrapper;
 
-import java.util.EnumSet;
 import java.util.List;
 
 import org.apache.isis.applib.services.factory.FactoryService;
@@ -72,8 +71,12 @@ import lombok.experimental.UtilityClass;
  * </p>
  */
 // tag::refguide[]
+// tag::refguide-async[]
+// tag::refguide-listeners[]
 public interface WrapperFactory {
 
+    // end::refguide-listeners[]
+    // end::refguide-async[]
     // end::refguide[]
     /**
      * Whether interactions with the wrapper are actually passed onto the
@@ -103,6 +106,7 @@ public interface WrapperFactory {
         // tag::refguide-1[]
         SWALLOW_EXCEPTIONS,
     }
+
     // end::refguide-1[]
 
     // tag::refguide-2[]
@@ -150,22 +154,35 @@ public interface WrapperFactory {
     }
     // end::refguide-2[]
 
+    // tag::refguide-2[]
+    enum RuleCheckingPolicy {
+        SYNC,   // <.>
+        ASYNC   // <.>
+    }
+    // tag::refguide-3[]
+
     /**
-     * Provides the &quot;wrapper&quot; of the underlying domain object.
+     * Same as {@link #wrap(Object)}, except the actual execution occurs only if
+     * the <tt>execute</tt> parameter indicates.
      *
      * <p>
-     * If the object has (see {@link #isWrapper(Object)} already been wrapped),
-     * then should just return the object back unchanged.
+     * Otherwise, will do all the validations (raise exceptions as required
+     * etc.), but doesn't modify the model.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject);                                     // <.>
+    <T> T wrap(T domainObject,                                      // <.>
+               ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
-     * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
+     * Provides the &quot;wrapper&quot; of the underlying domain object.
+     *
+     * <p>
+     * If the object has (see {@link #isWrapper(Object)} already been wrapped),
+     * then should just return the object back unchanged.
      */
     // tag::refguide[]
-    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
+    <T> T wrap(T domainObject);                                     // <.>
 
     // end::refguide[]
     /**
@@ -193,16 +210,10 @@ public interface WrapperFactory {
 
     // end::refguide[]
     /**
-     * Same as {@link #wrap(Object)}, except the actual execution occurs only if
-     * the <tt>execute</tt> parameter indicates.
-     *
-     * <p>
-     * Otherwise, will do all the validations (raise exceptions as required
-     * etc.), but doesn't modify the model.
+     * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject,                                      // <.>
-               ImmutableEnumSet<ExecutionMode> mode);
+    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
 
     // end::refguide[]
     /**
@@ -229,6 +240,7 @@ public interface WrapperFactory {
 
     // end::refguide[]
 
+
     //
     // -- ASYNC WRAPPING
     //
@@ -243,11 +255,17 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
-    <T> AsyncWrap<T> async(T domainObject,                          // <.>
-                           ImmutableEnumSet<ExecutionMode> mode);
+    // tag::refguide-async[]
+    <T> T async(T domainObject,                          // <.>
+                ImmutableEnumSet<ExecutionMode> mode,
+                RuleCheckingPolicy ruleCheckingPolicy);
 
-    // end::refguide[]
+    // end::refguide-async[]
+    // tag::refguide-async[]
+    <T> T async(T domainObject,                          // <.>
+                ImmutableEnumSet<ExecutionMode> mode);
+
+    // end::refguide-async[]
     /**
      * Shortcut for {@link #async(Object, ImmutableEnumSet)} using execution mode
      * {@link ExecutionModes#EXECUTE}.
@@ -256,17 +274,17 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
-    default <T> AsyncWrap<T> async(T domainObject) {                // <.>
-        // end::refguide[]
+    // tag::refguide-async[]
+    default <T> T async(T domainObject) {                // <.>
+        // end::refguide-async[]
 
         return async(domainObject, ExecutionModes.EXECUTE);
 
-        // tag::refguide[]
+        // tag::refguide-async[]
         // ...
     }
 
-    // end::refguide[]
+    // end::refguide-async[]
     /**
      * Returns a {@link AsyncWrap} bound to the provided {@code mixinClass},
      * to prepare for type-safe asynchronous action execution.
@@ -278,12 +296,12 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
-    <T> AsyncWrap<T> asyncMixin(                                    // <.>
-                        Class<T> mixinClass, Object mixedIn,
-                        ImmutableEnumSet<ExecutionMode> mode);
+    // tag::refguide-async[]
+    <T> T asyncMixin(                                    // <.>
+                Class<T> mixinClass, Object mixedIn,
+                ImmutableEnumSet<ExecutionMode> mode);
 
-    // end::refguide[]
+    // end::refguide-async[]
     /**
      * Shortcut for {@link #asyncMixin(Class, Object, ImmutableEnumSet)} using execution mode
      * {@link ExecutionModes#EXECUTE}.
@@ -293,17 +311,17 @@ public interface WrapperFactory {
      *
      * @since 2.0
      */
-    // tag::refguide[]
-    default <T> AsyncWrap<T> asyncMixin(                            // <.>
+    // tag::refguide-async[]
+    default <T> T asyncMixin(                            // <.>
                         Class<T> mixinClass, Object mixedIn) {
-        // end::refguide[]
+        // end::refguide-async[]
 
         return asyncMixin(mixinClass, mixedIn, ExecutionModes.EXECUTE);
 
-        // tag::refguide[]
+        // tag::refguide-async[]
         // ...
     }
-    // end::refguide[]
+    // end::refguide-async[]
 
 
     //
@@ -314,10 +332,11 @@ public interface WrapperFactory {
      * All {@link InteractionListener}s that have been registered using
      * {@link #addInteractionListener(InteractionListener)}.
      */
-    // tag::refguide[]
+    // tag::refguide-listeners[]
+    // ...
     List<InteractionListener> getListeners();                       // <.>
 
-    // end::refguide[]
+    // end::refguide-listeners[]
     /**
      * Registers an {@link InteractionListener}, to be notified of interactions
      * on all wrappers.
@@ -331,10 +350,10 @@ public interface WrapperFactory {
      * @param listener
      * @return
      */
-    // tag::refguide[]
+    // tag::refguide-listeners[]
     boolean addInteractionListener(InteractionListener listener);   // <.>
 
-    // end::refguide[]
+    // end::refguide-listeners[]
     /**
      * Remove an {@link InteractionListener}, to no longer be notified of
      * interactions on wrappers.
@@ -348,11 +367,16 @@ public interface WrapperFactory {
      * @param listener
      * @return
      */
-    // tag::refguide[]
+    // tag::refguide-listeners[]
     boolean removeInteractionListener(                              // <.>
                     InteractionListener listener);
 
     void notifyListeners(InteractionEvent ev);                      // <.>
+    // tag::refguide-async[]
+    // tag::refguide[]
+    // ...
 
 }
 // end::refguide[]
+// end::refguide-listeners[]
+// end::refguide-async[]
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryService.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryService.java
index c47b209..e71d758 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryService.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryService.java
@@ -20,15 +20,27 @@ package org.apache.isis.core.commons.internal.plugins.codegen;
 
 import javax.annotation.Nullable;
 
+import org.apache.isis.core.commons.internal.collections._Arrays;
+
 /**
  * Replaces the former ProxyFactoryPlugin
  * @since 2.0
  */
 public interface ProxyFactoryService {
 
-    public <T> ProxyFactory<T> factory(
+    <T> ProxyFactory<T> factory(
             Class<T> base,
             @Nullable Class<?>[] interfaces,
             @Nullable Class<?>[] constructorArgTypes);
 
+
+    <T> ProxyFactory<T> factory(Class<T> toProxyClass, Class<?> additionalClass);
+
+    /**
+     * Marker interface for entities/services that have been enhanced with
+     * the framework's proxy factory.
+     */
+    interface ProxyEnhanced {
+
+    }
 }
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryServiceAbstract.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryServiceAbstract.java
new file mode 100644
index 0000000..4e5b3c4
--- /dev/null
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/plugins/codegen/ProxyFactoryServiceAbstract.java
@@ -0,0 +1,66 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.commons.internal.plugins.codegen;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+import org.apache.isis.core.commons.internal.base._Casts;
+import org.apache.isis.core.commons.internal.collections._Arrays;
+
+import lombok.NonNull;
+
+/**
+ * Replaces the former ProxyFactoryPlugin
+ * @since 2.0
+ */
+public abstract class ProxyFactoryServiceAbstract implements ProxyFactoryService {
+
+    @NonNull
+    private final Map<Class<?>, ProxyFactory<?>> proxyFactoryByClass = Collections.synchronizedMap(new WeakHashMap<>());
+
+    @Override
+    public <T> ProxyFactory<T> factory(Class<T> toProxyClass, Class<?> additionalClass) {
+        ProxyFactory<T> proxyFactory = _Casts.uncheckedCast(proxyFactoryByClass.get(toProxyClass));
+        if(proxyFactory == null) {
+            proxyFactory = createFactory(toProxyClass, additionalClass);
+            proxyFactoryByClass.put(toProxyClass, proxyFactory);
+        }
+        return proxyFactory;
+
+    }
+
+    private <T> ProxyFactory<T> createFactory(
+            final Class<T> toProxyClass,
+            final Class<?> additionalClass) {
+
+        final Class<?>[] interfaces = _Arrays.combine(
+                toProxyClass.getInterfaces(),
+                ProxyEnhanced.class, additionalClass);
+
+        final ProxyFactory<T> proxyFactory = ProxyFactory.builder(toProxyClass)
+                .interfaces(interfaces)
+                .build(this);
+
+        return proxyFactory;
+    }
+
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java
index 301b411..b59eedc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/classsubstitutor/ClassSubstitutorAbstract.java
@@ -25,8 +25,8 @@ import java.util.Set;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.commons.internal.base._Blackhole;
 import org.apache.isis.core.commons.internal.collections._Sets;
+import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
 import org.apache.isis.core.metamodel.commons.ClassUtil;
-import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
 
 import lombok.NonNull;
 import lombok.val;
@@ -71,7 +71,7 @@ public abstract class ClassSubstitutorAbstract implements ClassSubstitutor {
         if(superclass != null && superclass.isEnum()) {
             return superclass;
         }
-        if (ClassUtil.directlyImplements(cls, ProxyEnhanced.class)) {
+        if (ClassUtil.directlyImplements(cls, ProxyFactoryService.ProxyEnhanced.class)) {
             // REVIEW: arguably this should now go back to the ClassSubstitorRegistry
             return getReplacement(cls.getSuperclass());
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ProxyEnhanced.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ProxyEnhanced.java
deleted file mode 100644
index e0c1d1f..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ProxyEnhanced.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.specloader.classsubstitutor;
-
-/**
- * Marker interface for entities/services that have been enhanced with
- * the framework's proxy factory.
- */
-public interface ProxyEnhanced {
-
-}
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
index cc4f688..9ed9851 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
@@ -25,6 +25,8 @@ import java.util.concurrent.Future;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.wrapper.AsyncWrap;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
@@ -39,11 +41,8 @@ import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.security.authentication.AuthenticationSessionTracker;
 
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NonNull;
-import lombok.With;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 /**
@@ -51,58 +50,143 @@ import lombok.extern.log4j.Log4j2;
  * @since 2.0
  *
  */
-@AllArgsConstructor
 @Log4j2
 class AsyncWrapDefault<T> implements AsyncWrap<T> {
     
-    @With(AccessLevel.PACKAGE) @NonNull
-    private WrapperFactory wrapper;
-    
-    @With(AccessLevel.PACKAGE) @NonNull
-    private IsisSessionFactory isisSessionFactory;
-    
-    @With(AccessLevel.PACKAGE) @NonNull
-    private AuthenticationSessionTracker authenticationSessionTracker;
+    @NonNull
+    private final WrapperFactory wrapperFactory;
     
-    @With(AccessLevel.PACKAGE) @NonNull
-    private TransactionService transactionService;
+    @NonNull
+    private final IsisSessionFactory isisSessionFactory;
     
-    @With(AccessLevel.PACKAGE) @NonNull
-    private T domainObject;
+    @NonNull
+    private final AuthenticationSessionTracker authenticationSessionTracker;
     
-    /*getter is API*/
-    @Getter(onMethod = @__(@Override)) @With(AccessLevel.PACKAGE) @NonNull 
-    private ImmutableEnumSet<ExecutionMode> executionMode;
+    @NonNull
+    private final TransactionService transactionService;
     
-    /*getter and wither are API*/
+    @NonNull
+    private final BookmarkService bookmarkService;
+
+    @NonNull
+    private final Bookmark bookmark;
+
+    private final Class<T> domainClass;
+
+    @Getter(onMethod = @__(@Override))
+    private ImmutableEnumSet<ExecutionMode> executionModes;
+
+    private ImmutableEnumSet<ExecutionMode> executionModesSync;
+
+    private ImmutableEnumSet<ExecutionMode> executionModesAsync;
+
     @NonNull
     @Getter(onMethod = @__({@Override})) 
-    @With(value = AccessLevel.PUBLIC, onMethod = @__(@Override)) 
-    private ExecutorService executor;  
+    private ExecutorService executorService;
     
-    /*getter and wither are API*/
     @NonNull
     @Getter(onMethod = @__({@Override})) 
-    @With(value = AccessLevel.PUBLIC, onMethod = @__(@Override)) 
     private Consumer<Exception> exceptionHandler;
 
-        
+    @NonNull
+    @Getter(onMethod = @__({@Override}))
+    private WrapperFactory.RuleCheckingPolicy ruleCheckingPolicy;
+
+    AsyncWrapDefault(
+            final WrapperFactory wrapperFactory,
+            final IsisSessionFactory isisSessionFactory,
+            final AuthenticationSessionTracker authenticationSessionTracker,
+            final TransactionService transactionService,
+            final BookmarkService bookmarkService,
+            final T domainObject,
+            final ImmutableEnumSet<ExecutionMode> executionModes,
+            final ExecutorService executorService,
+            final Consumer<Exception> exceptionHandler,
+            final WrapperFactory.RuleCheckingPolicy ruleCheckingPolicy) {
+
+        this.wrapperFactory = wrapperFactory;
+        this.isisSessionFactory = isisSessionFactory;
+        this.authenticationSessionTracker = authenticationSessionTracker;
+        this.transactionService = transactionService;
+        this.bookmarkService = bookmarkService;
+        this.bookmark = bookmarkService.bookmarkFor(domainObject);
+        this.domainClass = (Class<T>) domainObject.getClass();
+        this.executionModes = executionModes;
+
+        withRuleCheckingPolicy(ruleCheckingPolicy);
+        withExecutorService(executorService);
+        withExceptionHandler(exceptionHandler);
+    }
+
+    private void deriveExecutionModes() {
+
+        if(executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION)) {
+            // ruleCheckingPolicy doesn't matter
+            executionModesSync = WrapperFactory.ExecutionModes.NOOP;
+            executionModesAsync = executionModes;
+        } else {
+            switch (ruleCheckingPolicy) {
+                case SYNC:
+                    // move rule validation to be performed synchronously.
+                    executionModesSync = WrapperFactory.ExecutionModes.NO_EXECUTE;  // ie do check rules.
+                    val tmp = executionModes.toEnumSet();
+                    tmp.add(ExecutionMode.SKIP_RULE_VALIDATION);
+                    this.executionModesAsync = ImmutableEnumSet.from(tmp);
+                    break;
+                case ASYNC:
+                    executionModesSync = WrapperFactory.ExecutionModes.NOOP;
+                    this.executionModesAsync = executionModes;
+                    break;
+            }
+        }
+    }
+
+
+    /**
+     * Fine-tune the executor.
+     */
+    public AsyncWrap<T> withExecutorService(ExecutorService executorService) {
+        this.executorService = executorService;
+        return this;
+    }
+
+    /**
+     * Fine-tune the exception handler.
+     */
+    @Override
+    public AsyncWrap<T> withExceptionHandler(Consumer<Exception> handler) {
+        this.exceptionHandler = handler;
+        return this;
+    }
+
+    /**
+     * Adjust whether rule checking happens immediately or asynchronously.
+     */
+    @Override
+    public AsyncWrap<T> withRuleCheckingPolicy(WrapperFactory.RuleCheckingPolicy ruleCheckingPolicy) {
+        this.ruleCheckingPolicy = ruleCheckingPolicy;
+        deriveExecutionModes();
+        return this;
+    }
+
     // -- METHOD REFERENCE MATCHERS (WITH RETURN VALUE)
-    
+
     @Override
     public <R> Future<R> call(Call1<? extends R, ? super T> action) {
-        
-        if(shouldValidate()) {
-            // do validation synchronous (with the calling thread)
-            val proxy_validateOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.NO_EXECUTE);
-            action.call(proxy_validateOnly);
+
+        if(shouldValidateSync()) {
+            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
+            action.call(proxy);
         }
         
-        if(shouldExecute()) {
-            // to also trigger domain events, we need a proxy, but validation (if required)
-            // was already done above
-            val proxy_executeOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.SKIP_RULES);
-            return submit(()->action.call(proxy_executeOnly));
+        if(shouldValidateAsync() || shouldExecuteAsync()) {
+            return submit(()-> {
+
+                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
+                return action.call(proxy);
+            });
         }
         
         return CompletableFuture.completedFuture(null);
@@ -111,37 +195,41 @@ class AsyncWrapDefault<T> implements AsyncWrap<T> {
 
     @Override
     public <R, A1> Future<R> call(Call2<? extends R, ? super T, A1> action, A1 arg1) {
-        
-        if(shouldValidate()) {
-            // do validation synchronous (with the calling thread)
-            val proxy_validateOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.NO_EXECUTE);
-            action.call(proxy_validateOnly, arg1);
+
+        if(shouldValidateSync()) {
+            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
+            action.call(proxy, arg1);
         }
-        
-        if(shouldExecute()) {
-            // to also trigger domain events, we need a proxy, but validation (if required)
-            // was already done above
-            val proxy_executeOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.SKIP_RULES);
-            return submit(()->action.call(proxy_executeOnly, arg1));
+
+        if(shouldValidateAsync() || shouldExecuteAsync()) {
+            return submit(()-> {
+
+                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
+                return action.call(proxy, arg1);
+            });
         }
-        
+
         return CompletableFuture.completedFuture(null);
     }
 
     @Override
     public <R, A1, A2> Future<R> call(Call3<? extends R, ? super T, A1, A2> action, A1 arg1, A2 arg2) {
 
-        if(shouldValidate()) {
-            // do validation synchronous (with the calling thread)
-            val proxy_validateOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.NO_EXECUTE);
-            action.call(proxy_validateOnly, arg1, arg2);
+        if(shouldValidateSync()) {
+            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
+            action.call(proxy, arg1, arg2);
         }
-        
-        if(shouldExecute()) {
-            // to also trigger domain events, we need a proxy, but validation (if required)
-            // was already done above
-            val proxy_executeOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.SKIP_RULES);
-            return submit(()->action.call(proxy_executeOnly, arg1, arg2));
+
+        if(shouldValidateAsync() || shouldExecuteAsync()) {
+            return submit(()-> {
+
+                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
+                return action.call(proxy, arg1, arg2);
+            });
         }
         
         return CompletableFuture.completedFuture(null);
@@ -152,17 +240,19 @@ class AsyncWrapDefault<T> implements AsyncWrap<T> {
     public <R, A1, A2, A3> Future<R> call(Call4<? extends R, ? super T, A1, A2, A3> action, 
             A1 arg1, A2 arg2, A3 arg3) {
         
-        if(shouldValidate()) {
-            // do validation synchronous (with the calling thread)
-            val proxy_validateOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.NO_EXECUTE);
-            action.call(proxy_validateOnly, arg1, arg2, arg3);
+        if(shouldValidateSync()) {
+            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
+            action.call(proxy, arg1, arg2, arg3);
         }
-        
-        if(shouldExecute()) {
-         // to also trigger domain events, we need a proxy, but validation (if required)
-            // was already done above
-            val proxy_executeOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.SKIP_RULES);
-            return submit(()->action.call(proxy_executeOnly, arg1, arg2, arg3));
+
+        if(shouldValidateAsync() || shouldExecuteAsync()) {
+            return submit(()-> {
+
+                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
+                return action.call(proxy, arg1, arg2, arg3);
+            });
         }
         
         return CompletableFuture.completedFuture(null);
@@ -173,17 +263,19 @@ class AsyncWrapDefault<T> implements AsyncWrap<T> {
     public <R, A1, A2, A3, A4> Future<R> call(Call5<? extends R, ? super T, A1, A2, A3, A4> action, 
             A1 arg1, A2 arg2, A3 arg3, A4 arg4) {
 
-        if(shouldValidate()) {
-            // do validation synchronous (with the calling thread)
-            val proxy_validateOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.NO_EXECUTE);
-            action.call(proxy_validateOnly, arg1, arg2, arg3, arg4);
+        if(shouldValidateSync()) {
+            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
+            action.call(proxy, arg1, arg2, arg3, arg4);
         }
-        
-        if(shouldExecute()) {
-            // to also trigger domain events, we need a proxy, but validation (if required)
-            // was already done above
-            val proxy_executeOnly = wrapper.wrap(domainObject, WrapperFactory.ExecutionModes.SKIP_RULES);
-            return submit(()->action.call(proxy_executeOnly, arg1, arg2, arg3, arg4));
+
+        if(shouldValidateAsync() || shouldExecuteAsync()) {
+            return submit(()-> {
+
+                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
+                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
+                return action.call(proxy, arg1, arg2, arg3, arg4);
+            });
         }
         
         return CompletableFuture.completedFuture(null);
@@ -199,8 +291,6 @@ class AsyncWrapDefault<T> implements AsyncWrap<T> {
         Callable<R> asyncTask = ()->{
 
             try {
-                //transactionLatch.await(); // wait for transaction of the calling thread to complete
-
                 return isisSessionFactory.callAuthenticated(authenticationSession,
                         ()->transactionService.executeWithinTransaction(actionInvocation));
 
@@ -208,11 +298,12 @@ class AsyncWrapDefault<T> implements AsyncWrap<T> {
 
 //              val wrappedMethod = (Method) 
 //              proxy.getClass().getMethod("__isis_wrappedMethod", _Constants.emptyClasses);
-      
+
+                Object lookup = bookmarkService.lookup(bookmark);
                 val msg = 
-                        String.format("Async execution of action '%s' on type '%s' failed.",
+                        String.format("Async execution of action '%s' on domain object '%s' failed.",
                                 "[cannot resolve method name - not implemented]",//wrappedMethod.getName(),
-                                domainObject.getClass());
+                                bookmark);
                 
                 log.warn(msg, e);
                 
@@ -222,19 +313,21 @@ class AsyncWrapDefault<T> implements AsyncWrap<T> {
             }
         };
         
-        return executor.submit(asyncTask);
+        return executorService.submit(asyncTask);
     }
     
     // -- HELPER
     
-    private boolean shouldValidate() {
-        return !executionMode.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-    }
-    
-    private boolean shouldExecute() {
-        return !executionMode.contains(ExecutionMode.SKIP_EXECUTION);
+    private boolean shouldValidateSync() {
+        return !this.executionModesSync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
     }
 
+    private boolean shouldValidateAsync() {
+        return !this.executionModesAsync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+    }
 
+    private boolean shouldExecuteAsync() {
+        return !executionModesAsync.contains(ExecutionMode.SKIP_EXECUTION);
+    }
 
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 2949494..c3cf248 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -36,6 +36,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.AsyncWrap;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
@@ -88,6 +89,7 @@ import lombok.extern.log4j.Log4j2;
 public class WrapperFactoryDefault implements WrapperFactory {
     
     @Inject private FactoryService factoryService;
+    @Inject private BookmarkService bookmarkService;
     @Inject private MetaModelContext metaModelContext;
     @Inject private IsisSessionFactory isisSessionFactory;
     @Inject private TransactionService transactionService;
@@ -166,7 +168,6 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
     protected <T> T createProxy(T domainObject, ImmutableEnumSet<ExecutionMode> mode) {
-        
         return proxyContextHandler.proxy(metaModelContext, domainObject, mode);
     }
 
@@ -188,10 +189,13 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
     
     @Override
-    public <T> AsyncWrap<T> async(T domainObject, ImmutableEnumSet<ExecutionMode> mode) {
+    public <T> T async(T domainObject, ImmutableEnumSet<ExecutionMode> modes) {
         val executor = ForkJoinPool.commonPool(); // default, but can be overwritten through withers on the returned AsyncWrap
-        return new AsyncWrapDefault<T>(
-                this, isisSessionFactory, authenticationSessionTracker, transactionService, domainObject, mode, executor, log::error);
+        AsyncWrapDefault<T> tAsyncWrapDefault = new AsyncWrapDefault<>(
+                this, isisSessionFactory,
+                authenticationSessionTracker, transactionService, bookmarkService,
+                domainObject, modes, executor, log::error, RuleCheckingPolicy.ASYNC);
+        return proxyFactoryService.factory()tAsyncWrapDefault;
     }
     
     @Override
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java
index cc32b30..dea3aeb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java
@@ -21,16 +21,12 @@ package org.apache.isis.core.runtimeservices.wrapper.proxy;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
-import java.util.Collections;
-import java.util.Map;
-import java.util.WeakHashMap;
 
 import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactory;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
-import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
 import org.apache.isis.core.runtimeservices.wrapper.handlers.DelegatingInvocationHandler;
 
 import lombok.NonNull;
@@ -39,13 +35,8 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 public class ProxyCreator {
 
-    @NonNull private final Map<Class<?>, ProxyFactory<?>> proxyFactoryByClass;
     @NonNull private final ProxyFactoryService proxyFactoryService;
 
-    public ProxyCreator(final ProxyFactoryService proxyFactoryService) {
-        this(Collections.synchronizedMap(new WeakHashMap<>()), proxyFactoryService);
-    }
-
     public <T> T instantiateProxy(final DelegatingInvocationHandler<T> handler) {
 
         final T toProxy = handler.getDelegate();
@@ -55,34 +46,13 @@ public class ProxyCreator {
         if (base.isInterface()) {
             return createInstanceForInterface(base, handler, WrappingObject.class);
         } else {
-            final ProxyFactory<T> proxyFactory = proxyFactoryFor(base);
+            final ProxyFactory<T> proxyFactory = proxyFactoryService.factory(base, WrappingObject.class);
             return proxyFactory.createInstance(handler, false);
         }
     }
 
     // -- HELPER
 
-    private <T> ProxyFactory<T> proxyFactoryFor(final Class<T> toProxyClass) {
-        ProxyFactory<T> proxyFactory = _Casts.uncheckedCast(proxyFactoryByClass.get(toProxyClass));
-        if(proxyFactory == null) {
-            proxyFactory = createProxyFactoryFor(toProxyClass);
-            proxyFactoryByClass.put(toProxyClass, proxyFactory);
-        }
-        return proxyFactory;
-    }
-
-    private <T> ProxyFactory<T> createProxyFactoryFor(final Class<T> toProxyClass) {
-
-        final Class<?>[] interfaces = _Arrays.combine(
-                toProxyClass.getInterfaces(),
-                new Class<?>[] { ProxyEnhanced.class, WrappingObject.class });
-
-        final ProxyFactory<T> proxyFactory = ProxyFactory.builder(toProxyClass)
-                .interfaces(interfaces)
-                .build(proxyFactoryService);
-
-        return proxyFactory;
-    }
 
     @SuppressWarnings("unchecked")
     private static <T> T createInstanceForInterface(


[isis] 37/41: ISIS-2278: delegate to DOIH directly, rather than using a proxy

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

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

commit c8dc8e3d9af0ee38e71c6544ec82150ae84591bc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 09:49:45 2020 +0000

    ISIS-2278: delegate to DOIH directly, rather than using a proxy
---
 .../wrapper/WrapperFactoryDefault.java             | 11 ++--
 .../handlers/DomainObjectInvocationHandler.java    | 65 +++++++++++-----------
 2 files changed, 41 insertions(+), 35 deletions(-)

diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 5140a9e..567bda6 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -87,6 +87,7 @@ import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.session.IsisSessionTracker;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcher;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcherTypeSafe;
+import org.apache.isis.core.runtimeservices.wrapper.handlers.DomainObjectInvocationHandler;
 import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
@@ -223,8 +224,9 @@ public class WrapperFactoryDefault implements WrapperFactory {
                 }
 
                 if (asyncControlService.shouldCheckRules(asyncControl)) {
-                    T syncProxy = WrapperFactoryDefault.this.createProxy(domainObject, control().withNoExecute());
-                    method.invoke(syncProxy, args);
+                    val doih = new DomainObjectInvocationHandler<>(
+                            metaModelContext, domainObject, control().withNoExecute(), null);
+                    doih.invoke(null, method, args);
                 }
 
                 val actionAndTarget = forRegular(method, domainObject);
@@ -253,8 +255,9 @@ public class WrapperFactoryDefault implements WrapperFactory {
                 }
 
                 if (asyncControlService.shouldCheckRules(asyncControl)) {
-                    T syncProxy = WrapperFactoryDefault.this.createProxy(mixin, control().withNoExecute());
-                    method.invoke(syncProxy, args);
+                    val doih = new DomainObjectInvocationHandler<>(
+                            metaModelContext, mixin, control().withNoExecute(), null);
+                    doih.invoke(null, method, args);
                 }
 
                 val actionAndTarget = forMixin(method, mixedIn);
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index 858f4bc..6c50812 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -73,7 +73,7 @@ import lombok.val;
 
 public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandlerDefault<T> {
 
-    private final ProxyContextHandler proxy;
+    private final ProxyContextHandler proxyContextHandler;
     private final MetaModelContext mmContext;
 
     /**
@@ -101,14 +101,15 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     public DomainObjectInvocationHandler(
             final MetaModelContext metaModelContext,
             final T domainObject,
-            final SyncControl syncControl, final ProxyContextHandler proxy) {
+            final SyncControl syncControl,
+            final ProxyContextHandler proxyContextHandler) {
         super(metaModelContext.getServiceRegistry(), domainObject, syncControl);
 
         this.mmContext = metaModelContext;
-        this.proxy = proxy;
+        this.proxyContextHandler = proxyContextHandler;
 
         try {
-            titleMethod = domainObject.getClass().getMethod("title", new Class[]{});
+            titleMethod = getDelegate().getClass().getMethod("title", new Class[]{});
         } catch (final NoSuchMethodException e) {
             // ignore
         }
@@ -124,12 +125,21 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
                     nsme);
         }
 
-        entityFacet = metaModelContext.getSpecification(domainObject.getClass())
+        entityFacet = metaModelContext.getSpecification(getDelegate().getClass())
                 .getFacet(EntityFacet.class);
     }
 
+    /**
+     *
+     * @param proxyObjectUnused - not used.
+     * @param method - the method invoked on the proxy
+     * @param args - the args to the method invoked on the proxy
+     *
+     * @return
+     * @throws Throwable
+     */
     @Override
-    public Object invoke(final Object proxyObject, final Method method, final Object[] args) throws Throwable {
+    public Object invoke(final Object proxyObjectUnused, final Method method, final Object[] args) throws Throwable {
 
         if (isObjectMethod(method)) {
             return delegate(method, args);
@@ -139,10 +149,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             return delegate(method, args);
         }
 
-        if(isInjectMethod(method)) {
-            return delegate(method, args);
-        }
-
         final ManagedObject targetAdapter = getObjectManager().adapt(getDelegate());
 
         if (method.equals(titleMethod)) {
@@ -203,7 +209,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
             final OneToManyAssociation otma = (OneToManyAssociation) objectMember;
             if (intent == Intent.ACCESSOR) {
-                return handleGetterMethodOnCollection(targetAdapter, args, otma, method, memberName);
+                return handleGetterMethodOnCollection(targetAdapter, args, otma, memberName);
             }
             if (intent == Intent.MODIFY_COLLECTION_ADD) {
                 return handleCollectionAddToMethod(targetAdapter, args, otma);
@@ -243,7 +249,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
                         return handleGetterMethodOnProperty(contributeeAdapter, new Object[0], (OneToOneAssociation)mixinMember);
                     }
                     if(mixinMember instanceof OneToManyAssociation) {
-                        return handleGetterMethodOnCollection(contributeeAdapter, new Object[0], (OneToManyAssociation)mixinMember, method, memberName);
+                        return handleGetterMethodOnCollection(contributeeAdapter, new Object[0], (OneToManyAssociation)mixinMember, memberName);
                     }
                 } else {
                     throw _Exceptions.illegalState(String.format(
@@ -347,20 +353,11 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
                         : false;
     }
 
-    private static boolean isInjectMethod(final Method method) {
-        return methodStartsWith(method, "inject");
-    }
-
-    private static boolean methodStartsWith(final Method method, final String prefix) {
-        return method.getName().startsWith(prefix);
-    }
-
     // /////////////////////////////////////////////////////////////////
     // title
     // /////////////////////////////////////////////////////////////////
 
-    private Object handleTitleMethod(final ManagedObject targetAdapter)
-            throws IllegalAccessException, InvocationTargetException {
+    private Object handleTitleMethod(final ManagedObject targetAdapter) {
 
         resolveIfRequired(targetAdapter);
 
@@ -476,7 +473,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             final ManagedObject targetAdapter,
             final Object[] args,
             final OneToManyAssociation collection,
-            final Method method,
             final String memberName) {
 
         zeroArgsElseThrow(args, "get");
@@ -497,7 +493,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             val collectionAccessEvent = new CollectionAccessEvent(getDelegate(), collection.getIdentifier());
 
             if (currentReferencedObj instanceof Collection) {
-                val collectionViewObject = lookupWrappingObject(method, memberName,
+                val collectionViewObject = lookupWrappingObject(memberName,
                         (Collection<?>) currentReferencedObj, collection);
                 notifyListeners(collectionAccessEvent);
                 return collectionViewObject;
@@ -516,22 +512,29 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     }
 
     private Collection<?> lookupWrappingObject(
-            final Method method,
             final String memberName,
             final Collection<?> collectionToLookup,
             final OneToManyAssociation otma) {
-        return collectionToLookup instanceof WrappingObject
-                ? collectionToLookup
-                        : proxy.proxy(collectionToLookup, memberName, this, otma);
+        if (collectionToLookup instanceof WrappingObject) {
+            return collectionToLookup;
+        }
+        if(proxyContextHandler == null) {
+            throw new IllegalStateException("Unable to create proxy for collection; proxyContextHandler not provided");
+        }
+        return proxyContextHandler.proxy(collectionToLookup, memberName, this, otma);
     }
 
     private Map<?, ?> lookupWrappingObject(
             final String memberName,
             final Map<?, ?> mapToLookup,
             final OneToManyAssociation otma) {
-        return mapToLookup instanceof WrappingObject
-                ? mapToLookup
-                        : proxy.proxy(mapToLookup, memberName, this, otma);
+        if (mapToLookup instanceof WrappingObject) {
+            return mapToLookup;
+        }
+        if(proxyContextHandler == null) {
+            throw new IllegalStateException("Unable to create proxy for collection; proxyContextHandler not provided");
+        }
+        return proxyContextHandler.proxy(mapToLookup, memberName, this, otma);
     }
 
     // /////////////////////////////////////////////////////////////////


[isis] 36/41: ISIS-2278: makes reason shorter in UI (detail info still available in InteractoinException#interactionEvent).

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

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

commit 7a4b99e4dd9f18c6159464aea8098501ce5fcb0e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 09:49:22 2020 +0000

    ISIS-2278: makes reason shorter in UI (detail info still available in InteractoinException#interactionEvent).
---
 .../org/apache/isis/applib/services/wrapper/InteractionException.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InteractionException.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InteractionException.java
index ef7005d..23619e9 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InteractionException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InteractionException.java
@@ -30,7 +30,7 @@ public abstract class InteractionException extends RecoverableException {
     private final InteractionEvent interactionEvent;
 
     public InteractionException(final InteractionEvent interactionEvent) {
-        super(interactionEvent.getReasonMessage());
+        super(interactionEvent.getReason());
         this.interactionEvent = interactionEvent;
     }
 


[isis] 05/41: ISIS-2094: adds missing license statements

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

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

commit fc21f5b34f51fa2cbc34d7043378436a7a94ec41
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 16:55:52 2020 +0000

    ISIS-2094: adds missing license statements
---
 api/adoc/refguide/modules/ROOT/pages/about.adoc                        | 2 ++
 api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc           | 1 +
 api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc       | 1 -
 api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc       | 1 -
 api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc      | 1 -
 api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc     | 1 -
 api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc            | 1 +
 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc | 3 +++
 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc | 1 -
 api/schema/src/main/adoc/modules/schema/nav.adoc                       | 2 ++
 core/adoc/modules/archdesign/pages/about.adoc                          | 2 ++
 .../src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc           | 2 ++
 core/commons/src/main/adoc/modules/commons/nav.adoc                    | 2 ++
 core/commons/src/main/adoc/modules/commons/pages/about.adoc            | 2 ++
 core/config/src/main/adoc/modules/config/nav.adoc                      | 2 ++
 core/config/src/main/adoc/modules/config/pages/about.adoc              | 1 +
 core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc      | 2 ++
 .../src/main/adoc/modules/internaltestsupport/nav.adoc                 | 2 ++
 .../src/main/adoc/modules/internaltestsupport/pages/about.adoc         | 1 +
 core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc        | 2 ++
 core/runtime/src/main/adoc/modules/runtime/nav.adoc                    | 2 ++
 core/runtime/src/main/adoc/modules/runtime/pages/about.adoc            | 3 ++-
 core/security/src/main/adoc/modules/core/pages/about.adoc              | 3 +--
 core/webapp/src/main/adoc/modules/webapp/nav.adoc                      | 2 ++
 core/webapp/src/main/adoc/modules/webapp/pages/about.adoc              | 2 ++
 examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc  | 3 ++-
 extensions/adoc/modules/ROOT/partials/module-nav.adoc                  | 1 +
 extensions/core/flyway/adoc/modules/flyway/nav.adoc                    | 2 ++
 extensions/security/secman/adoc/modules/secman/nav.adoc                | 2 ++
 extensions/vro/cors/adoc/modules/cors/nav.adoc                         | 2 ++
 extensions/vw/exceldownload/adoc/modules/exceldownload/nav.adoc        | 2 ++
 .../vw/exceldownload/adoc/modules/exceldownload/pages/about.adoc       | 2 +-
 extensions/vw/fullcalendar/adoc/modules/fullcalendar/nav.adoc          | 2 ++
 extensions/vw/pdfjs/adoc/modules/pdfjs/nav.adoc                        | 2 ++
 legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/about.adoc   | 1 +
 mappings/adoc/modules/ROOT/pages/about.adoc                            | 3 +--
 mappings/jaxrsclient/adoc/modules/jaxrsclient/pages/about.adoc         | 3 +--
 mappings/minio/adoc/modules/minio/pages/about.adoc                     | 3 +--
 mappings/publisher/adoc/modules/publisher/pages/about.adoc             | 3 +--
 mappings/restclient/adoc/modules/restclient/pages/about.adoc           | 3 +--
 mappings/slack/adoc/modules/slack/pages/about.adoc                     | 3 +--
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc                     | 2 ++
 .../adoc/modules/shiro/pages/about/enhanced-wildcard-permission.adoc   | 1 -
 security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc  | 1 -
 security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc     | 1 -
 .../shiro/src/main/adoc/modules/shiro/pages/about/shiro-caching.adoc   | 1 -
 subdomains/adoc/modules/ROOT/pages/about.adoc                          | 3 +--
 subdomains/base/adoc/modules/base/pages/about.adoc                     | 3 +--
 subdomains/docx/adoc/modules/docx/pages/about.adoc                     | 3 +--
 subdomains/excel/adoc/modules/excel/pages/about.adoc                   | 3 +--
 subdomains/freemarker/adoc/modules/freemarker/pages/about.adoc         | 3 +--
 subdomains/ognl/adoc/modules/ognl/pages/about.adoc                     | 2 +-
 subdomains/pdfbox/adoc/modules/pdfbox/pages/about.adoc                 | 3 +--
 subdomains/spring/adoc/modules/spring/pages/about.adoc                 | 3 +--
 subdomains/xdocreport/adoc/modules/xdocreport/pages/about.adoc         | 3 +--
 subdomains/zip/adoc/modules/zip/pages/about.adoc                       | 3 +--
 testing/h2console/adoc/modules/h2console/pages/about.adoc              | 3 +--
 testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/about.adoc              | 3 +--
 valuetypes/adoc/modules/ROOT/pages/about.adoc                          | 3 +--
 valuetypes/asciidoc/adoc/modules/asciidoc/pages/about.adoc             | 3 +--
 valuetypes/markdown/adoc/modules/markdown/pages/about.adoc             | 3 +--
 valuetypes/sse/adoc/modules/sse/pages/about.adoc                       | 3 +--
 62 files changed, 77 insertions(+), 57 deletions(-)

diff --git a/api/adoc/refguide/modules/ROOT/pages/about.adoc b/api/adoc/refguide/modules/ROOT/pages/about.adoc
index 19f2967..9ba6818 100644
--- a/api/adoc/refguide/modules/ROOT/pages/about.adoc
+++ b/api/adoc/refguide/modules/ROOT/pages/about.adoc
@@ -1,4 +1,6 @@
 = Reference Guides
+: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 [...]
+
 :page-role: -toc
 
 The reference guides cover:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
index 4d23115..e5ca78f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
@@ -1,4 +1,5 @@
 = Annotations
+: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 [...]
 :page-partial:
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
index 6d977e4..f32139c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
@@ -1,4 +1,3 @@
-[[jdo]]
 = JDO Annotations
 :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 [...]
 :page-partial:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
index 7315166..097041c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
@@ -1,4 +1,3 @@
-[[jee]]
 = Java EE Annotations
 :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 [...]
 :page-partial:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc
index 8fac352..c1931b6 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc
@@ -1,4 +1,3 @@
-[[main]]
 = Core annotations
 :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 [...]
 :page-partial:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc
index 5da4243..c3d6ad0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc
@@ -1,4 +1,3 @@
-[[other]]
 = Other Apache Isis Annotations
 :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 [...]
 :page-partial:
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc
index 9919fde..13594b9 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc
@@ -1,4 +1,5 @@
 = Classes & Methods
+: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 [...]
 
 
 This reference guide lists and describes various elements of the the Apache Isis Programming Model, specifically reserved and prefix xref:refguide:applib-cm:methods.adoc[methods] (such as `title()` and `validate...()`) and various utility and supporting xref:refguide:applib-cm:classes.adoc[classes].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
index 8b13789..235c767 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
@@ -1 +1,4 @@
+== `ServiceInjector`
+: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 [...]
 
+WARNING: TODO
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
index 10ec8f7..dfd958c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
@@ -1,4 +1,3 @@
-[[ServiceRegistry]]
 = `ServiceRegistry`
 :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 [...]
 :page-partial:
diff --git a/api/schema/src/main/adoc/modules/schema/nav.adoc b/api/schema/src/main/adoc/modules/schema/nav.adoc
index f7f91c6..36e2aec 100644
--- a/api/schema/src/main/adoc/modules/schema/nav.adoc
+++ b/api/schema/src/main/adoc/modules/schema/nav.adoc
@@ -1 +1,3 @@
+: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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/core/adoc/modules/archdesign/pages/about.adoc b/core/adoc/modules/archdesign/pages/about.adoc
index 67f8125..9f7d8f3 100644
--- a/core/adoc/modules/archdesign/pages/about.adoc
+++ b/core/adoc/modules/archdesign/pages/about.adoc
@@ -1,4 +1,6 @@
 = Architecture & Design
+: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 [...]
+
 
 This guide describes the internal architecture and design of the framework.
 
diff --git a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc
index 7715654..925aa39 100644
--- a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc
+++ b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc
@@ -1,3 +1,5 @@
 = Byte Buddy Proxy Factory
+: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 [...]
 
+WARNING: TODO
 
diff --git a/core/commons/src/main/adoc/modules/commons/nav.adoc b/core/commons/src/main/adoc/modules/commons/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/commons/src/main/adoc/modules/commons/nav.adoc
+++ b/core/commons/src/main/adoc/modules/commons/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/commons/src/main/adoc/modules/commons/pages/about.adoc b/core/commons/src/main/adoc/modules/commons/pages/about.adoc
index 0945731..bb37f01 100644
--- a/core/commons/src/main/adoc/modules/commons/pages/about.adoc
+++ b/core/commons/src/main/adoc/modules/commons/pages/about.adoc
@@ -1,3 +1,5 @@
 = Commons
+: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 [...]
 
+WARNING: TODO
 
diff --git a/core/config/src/main/adoc/modules/config/nav.adoc b/core/config/src/main/adoc/modules/config/nav.adoc
index f7f91c6..36e2aec 100644
--- a/core/config/src/main/adoc/modules/config/nav.adoc
+++ b/core/config/src/main/adoc/modules/config/nav.adoc
@@ -1 +1,3 @@
+: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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/core/config/src/main/adoc/modules/config/pages/about.adoc b/core/config/src/main/adoc/modules/config/pages/about.adoc
index 3578ee1..b481273 100644
--- a/core/config/src/main/adoc/modules/config/pages/about.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/about.adoc
@@ -1,4 +1,5 @@
 = Configuration Guide
+: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 [...]
 
 Apache Isis' is a Spring Boot application, and so is typically configured using an `application.properties` or `application.yml` file.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
index 50051f8..672d387 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 ** xref:refguide:config:sections/isis.applib.adoc[Applib]
 ** xref:refguide:config:sections/isis.core.meta-model.adoc[Core MetaModel]
 ** xref:refguide:config:sections/isis.core.meta-model.introspector.adoc[Core MetaModel Introspection]
diff --git a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc
index 13d0804..740ef47 100644
--- a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc
+++ b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc
index faba4ee..544faf5 100644
--- a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc
+++ b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc
@@ -1,3 +1,4 @@
 = Internal Test Support
 :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 [...]
 
+WARNING: TODO
diff --git a/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc b/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
index 2e2dcb9..88ac07b 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
@@ -1,3 +1,5 @@
 = Metamodel
+: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 [...]
 
+WARNING: TODO
 
diff --git a/core/runtime/src/main/adoc/modules/runtime/nav.adoc b/core/runtime/src/main/adoc/modules/runtime/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/runtime/src/main/adoc/modules/runtime/nav.adoc
+++ b/core/runtime/src/main/adoc/modules/runtime/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc b/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
index d058699..49eaaf3 100644
--- a/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
+++ b/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
@@ -1,3 +1,4 @@
 = Runtime
+: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 [...]
 
-
+WARNING: TODO
diff --git a/core/security/src/main/adoc/modules/core/pages/about.adoc b/core/security/src/main/adoc/modules/core/pages/about.adoc
index 76c316b..9bce5dc 100644
--- a/core/security/src/main/adoc/modules/core/pages/about.adoc
+++ b/core/security/src/main/adoc/modules/core/pages/about.adoc
@@ -1,5 +1,4 @@
 = Security API
 :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 [...]
-:page-partial:
 
-TODO
+WARNING: TODO
diff --git a/core/webapp/src/main/adoc/modules/webapp/nav.adoc b/core/webapp/src/main/adoc/modules/webapp/nav.adoc
index 851799b..02a8182 100644
--- a/core/webapp/src/main/adoc/modules/webapp/nav.adoc
+++ b/core/webapp/src/main/adoc/modules/webapp/nav.adoc
@@ -1,2 +1,4 @@
+: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[]
 
diff --git a/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc b/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc
index ceb68b6..df5bb8b 100644
--- a/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc
+++ b/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc
@@ -1,3 +1,5 @@
 = Runtime Web
+: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 [...]
 
+WARNING: TODO
 
diff --git a/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc b/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc
index c5578e9..1a5ce17 100644
--- a/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc
+++ b/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc
@@ -1,3 +1,4 @@
 = SmokeTests
+: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 [...]
 
-WARNING: TODO: v2
+WARNING: TODO
diff --git a/extensions/adoc/modules/ROOT/partials/module-nav.adoc b/extensions/adoc/modules/ROOT/partials/module-nav.adoc
index e69de29..73999e3 100644
--- a/extensions/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/extensions/adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1 @@
+: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 [...]
diff --git a/extensions/core/flyway/adoc/modules/flyway/nav.adoc b/extensions/core/flyway/adoc/modules/flyway/nav.adoc
index dba32e5..c65af13 100644
--- a/extensions/core/flyway/adoc/modules/flyway/nav.adoc
+++ b/extensions/core/flyway/adoc/modules/flyway/nav.adoc
@@ -1 +1,3 @@
+: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::userguide:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/security/secman/adoc/modules/secman/nav.adoc b/extensions/security/secman/adoc/modules/secman/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/extensions/security/secman/adoc/modules/secman/nav.adoc
+++ b/extensions/security/secman/adoc/modules/secman/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/vro/cors/adoc/modules/cors/nav.adoc b/extensions/vro/cors/adoc/modules/cors/nav.adoc
index e4ac9a3..fa5f34d 100644
--- a/extensions/vro/cors/adoc/modules/cors/nav.adoc
+++ b/extensions/vro/cors/adoc/modules/cors/nav.adoc
@@ -1,2 +1,4 @@
+: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::vro:ROOT:partial$component-nav.adoc[]
 
diff --git a/extensions/vw/exceldownload/adoc/modules/exceldownload/nav.adoc b/extensions/vw/exceldownload/adoc/modules/exceldownload/nav.adoc
index bd5d2e6..64724cf 100644
--- a/extensions/vw/exceldownload/adoc/modules/exceldownload/nav.adoc
+++ b/extensions/vw/exceldownload/adoc/modules/exceldownload/nav.adoc
@@ -1 +1,3 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/vw/exceldownload/adoc/modules/exceldownload/pages/about.adoc b/extensions/vw/exceldownload/adoc/modules/exceldownload/pages/about.adoc
index 5e9d086..8d6cdb5 100644
--- a/extensions/vw/exceldownload/adoc/modules/exceldownload/pages/about.adoc
+++ b/extensions/vw/exceldownload/adoc/modules/exceldownload/pages/about.adoc
@@ -1,4 +1,4 @@
-= About
+= Excel Download
 :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 [...]
 
 
diff --git a/extensions/vw/fullcalendar/adoc/modules/fullcalendar/nav.adoc b/extensions/vw/fullcalendar/adoc/modules/fullcalendar/nav.adoc
index bd5d2e6..64724cf 100644
--- a/extensions/vw/fullcalendar/adoc/modules/fullcalendar/nav.adoc
+++ b/extensions/vw/fullcalendar/adoc/modules/fullcalendar/nav.adoc
@@ -1 +1,3 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/vw/pdfjs/adoc/modules/pdfjs/nav.adoc b/extensions/vw/pdfjs/adoc/modules/pdfjs/nav.adoc
index bd5d2e6..64724cf 100644
--- a/extensions/vw/pdfjs/adoc/modules/pdfjs/nav.adoc
+++ b/extensions/vw/pdfjs/adoc/modules/pdfjs/nav.adoc
@@ -1 +1,3 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/about.adoc b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/about.adoc
index e19a875..7ed1799 100644
--- a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/about.adoc
+++ b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/pages/about.adoc
@@ -1,4 +1,5 @@
 = Maven Plugin
+: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 [...]
 
 
 This reference guide describes the goals provided by Apache Isis' Maven plugin.
diff --git a/mappings/adoc/modules/ROOT/pages/about.adoc b/mappings/adoc/modules/ROOT/pages/about.adoc
index 12e63f7..cce6c41 100644
--- a/mappings/adoc/modules/ROOT/pages/about.adoc
+++ b/mappings/adoc/modules/ROOT/pages/about.adoc
@@ -1,5 +1,4 @@
 = Bounded Context Mapping Libraries
 :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 [...]
-:page-partial:
 
-TODO
+WARNING: TODO
diff --git a/mappings/jaxrsclient/adoc/modules/jaxrsclient/pages/about.adoc b/mappings/jaxrsclient/adoc/modules/jaxrsclient/pages/about.adoc
index 53a1a2f..e5073d2 100644
--- a/mappings/jaxrsclient/adoc/modules/jaxrsclient/pages/about.adoc
+++ b/mappings/jaxrsclient/adoc/modules/jaxrsclient/pages/about.adoc
@@ -1,5 +1,4 @@
 = JAX-RS Client Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/mappings/minio/adoc/modules/minio/pages/about.adoc b/mappings/minio/adoc/modules/minio/pages/about.adoc
index 788c81b..9159c79 100644
--- a/mappings/minio/adoc/modules/minio/pages/about.adoc
+++ b/mappings/minio/adoc/modules/minio/pages/about.adoc
@@ -1,5 +1,4 @@
 = Minio Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/mappings/publisher/adoc/modules/publisher/pages/about.adoc b/mappings/publisher/adoc/modules/publisher/pages/about.adoc
index 5a73610..b8461e1 100644
--- a/mappings/publisher/adoc/modules/publisher/pages/about.adoc
+++ b/mappings/publisher/adoc/modules/publisher/pages/about.adoc
@@ -1,5 +1,4 @@
 = Publisher
 :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 [...]
 
-WARNING: TODO: v2 - will move this into the framework, update these docs
-
+WARNING: TODO
diff --git a/mappings/restclient/adoc/modules/restclient/pages/about.adoc b/mappings/restclient/adoc/modules/restclient/pages/about.adoc
index 79416c2..24b009c 100644
--- a/mappings/restclient/adoc/modules/restclient/pages/about.adoc
+++ b/mappings/restclient/adoc/modules/restclient/pages/about.adoc
@@ -1,5 +1,4 @@
 = REST Client
 :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 [...]
 
-TODO: v2: placeholder for documentation about extensions/incubator
-
+WARNING: TODO
diff --git a/mappings/slack/adoc/modules/slack/pages/about.adoc b/mappings/slack/adoc/modules/slack/pages/about.adoc
index 13d0340..2e12159 100644
--- a/mappings/slack/adoc/modules/slack/pages/about.adoc
+++ b/mappings/slack/adoc/modules/slack/pages/about.adoc
@@ -1,5 +1,4 @@
 = Slack Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/persistence/jdo/adoc/modules/ROOT/pages/about.adoc b/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
index 1b15023..5f67bda 100644
--- a/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/pages/about.adoc
@@ -1,4 +1,6 @@
 = JDO/DataNucleus object store
+: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 [...]
+
 :page-toc: ~
 
 The JDO/DataNucleus object store enables domain objects to be persisted to relational as well as NoSQL databases.
diff --git a/security/shiro/src/main/adoc/modules/shiro/pages/about/enhanced-wildcard-permission.adoc b/security/shiro/src/main/adoc/modules/shiro/pages/about/enhanced-wildcard-permission.adoc
index 4988dd8..375df3d 100644
--- a/security/shiro/src/main/adoc/modules/shiro/pages/about/enhanced-wildcard-permission.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/pages/about/enhanced-wildcard-permission.adoc
@@ -1,4 +1,3 @@
-[[enhanced-wildcard-permission]]
 = Enhanced Wildcard Permission
 :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 [...]
 :page-partial:
diff --git a/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc b/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc
index 9078ac9..9fe1bf3 100644
--- a/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/pages/about/ini-realm.adoc
@@ -1,4 +1,3 @@
-[[ini-realm]]
 = Shiro Ini Realm
 :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 [...]
 :page-partial:
diff --git a/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc b/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc
index c5fa394..fb8c0d0 100644
--- a/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc
@@ -1,4 +1,3 @@
-[[run-as]]
 = Run-as
 :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 [...]
 :page-partial:
diff --git a/security/shiro/src/main/adoc/modules/shiro/pages/about/shiro-caching.adoc b/security/shiro/src/main/adoc/modules/shiro/pages/about/shiro-caching.adoc
index 5f44766..d815629 100644
--- a/security/shiro/src/main/adoc/modules/shiro/pages/about/shiro-caching.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/pages/about/shiro-caching.adoc
@@ -1,4 +1,3 @@
-[[shiro-caching]]
 = Caching and other Shiro Features
 :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 [...]
 :page-partial:
diff --git a/subdomains/adoc/modules/ROOT/pages/about.adoc b/subdomains/adoc/modules/ROOT/pages/about.adoc
index 4d65b55..d94ed6b 100644
--- a/subdomains/adoc/modules/ROOT/pages/about.adoc
+++ b/subdomains/adoc/modules/ROOT/pages/about.adoc
@@ -1,5 +1,4 @@
 = Subdomain Libraries
 :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 [...]
-:page-partial:
 
-TODO
+WARNING: TODO
diff --git a/subdomains/base/adoc/modules/base/pages/about.adoc b/subdomains/base/adoc/modules/base/pages/about.adoc
index f340e7f..e70d72e 100644
--- a/subdomains/base/adoc/modules/base/pages/about.adoc
+++ b/subdomains/base/adoc/modules/base/pages/about.adoc
@@ -1,5 +1,4 @@
 = Base Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/docx/adoc/modules/docx/pages/about.adoc b/subdomains/docx/adoc/modules/docx/pages/about.adoc
index 003f0ac..f95b19a 100644
--- a/subdomains/docx/adoc/modules/docx/pages/about.adoc
+++ b/subdomains/docx/adoc/modules/docx/pages/about.adoc
@@ -1,5 +1,4 @@
 = Docx Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/excel/adoc/modules/excel/pages/about.adoc b/subdomains/excel/adoc/modules/excel/pages/about.adoc
index 64c970c..776b0e4 100644
--- a/subdomains/excel/adoc/modules/excel/pages/about.adoc
+++ b/subdomains/excel/adoc/modules/excel/pages/about.adoc
@@ -1,5 +1,4 @@
 = Excel Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/freemarker/adoc/modules/freemarker/pages/about.adoc b/subdomains/freemarker/adoc/modules/freemarker/pages/about.adoc
index a6d2f22..6919c31 100644
--- a/subdomains/freemarker/adoc/modules/freemarker/pages/about.adoc
+++ b/subdomains/freemarker/adoc/modules/freemarker/pages/about.adoc
@@ -1,5 +1,4 @@
 = Freemarker Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/ognl/adoc/modules/ognl/pages/about.adoc b/subdomains/ognl/adoc/modules/ognl/pages/about.adoc
index 926c326..aa7dfe8 100644
--- a/subdomains/ognl/adoc/modules/ognl/pages/about.adoc
+++ b/subdomains/ognl/adoc/modules/ognl/pages/about.adoc
@@ -1,6 +1,6 @@
 = OGNL Library
 :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 [...]
 
-TODO
+WARNING: TODO
 
 // was stringinterpolator
diff --git a/subdomains/pdfbox/adoc/modules/pdfbox/pages/about.adoc b/subdomains/pdfbox/adoc/modules/pdfbox/pages/about.adoc
index d170683..2a35ad3 100644
--- a/subdomains/pdfbox/adoc/modules/pdfbox/pages/about.adoc
+++ b/subdomains/pdfbox/adoc/modules/pdfbox/pages/about.adoc
@@ -1,5 +1,4 @@
 = PDF Box Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/spring/adoc/modules/spring/pages/about.adoc b/subdomains/spring/adoc/modules/spring/pages/about.adoc
index 3b61b25..165787c 100644
--- a/subdomains/spring/adoc/modules/spring/pages/about.adoc
+++ b/subdomains/spring/adoc/modules/spring/pages/about.adoc
@@ -1,5 +1,4 @@
 = Spring
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/xdocreport/adoc/modules/xdocreport/pages/about.adoc b/subdomains/xdocreport/adoc/modules/xdocreport/pages/about.adoc
index 64206bb..e4c1fd1 100644
--- a/subdomains/xdocreport/adoc/modules/xdocreport/pages/about.adoc
+++ b/subdomains/xdocreport/adoc/modules/xdocreport/pages/about.adoc
@@ -1,5 +1,4 @@
 = XDocReport Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/subdomains/zip/adoc/modules/zip/pages/about.adoc b/subdomains/zip/adoc/modules/zip/pages/about.adoc
index 1d507a9..f40445c 100644
--- a/subdomains/zip/adoc/modules/zip/pages/about.adoc
+++ b/subdomains/zip/adoc/modules/zip/pages/about.adoc
@@ -1,5 +1,4 @@
 = Zip Library
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/testing/h2console/adoc/modules/h2console/pages/about.adoc b/testing/h2console/adoc/modules/h2console/pages/about.adoc
index d06a587..47be5a2 100644
--- a/testing/h2console/adoc/modules/h2console/pages/about.adoc
+++ b/testing/h2console/adoc/modules/h2console/pages/about.adoc
@@ -1,5 +1,4 @@
 = H2 Console
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/about.adoc b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/about.adoc
index 295de04..75ff7c1 100644
--- a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/about.adoc
+++ b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/about.adoc
@@ -1,5 +1,4 @@
 = HSQLDB Manager
 :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 [...]
 
-TODO
-
+WARNING: TODO
diff --git a/valuetypes/adoc/modules/ROOT/pages/about.adoc b/valuetypes/adoc/modules/ROOT/pages/about.adoc
index 1ccbb00..3a3b3de 100644
--- a/valuetypes/adoc/modules/ROOT/pages/about.adoc
+++ b/valuetypes/adoc/modules/ROOT/pages/about.adoc
@@ -1,5 +1,4 @@
 = Value Type Libraries
 :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 [...]
-:page-partial:
 
-TODO
+WARNING: TODO
diff --git a/valuetypes/asciidoc/adoc/modules/asciidoc/pages/about.adoc b/valuetypes/asciidoc/adoc/modules/asciidoc/pages/about.adoc
index 1e77f6f..0800901 100644
--- a/valuetypes/asciidoc/adoc/modules/asciidoc/pages/about.adoc
+++ b/valuetypes/asciidoc/adoc/modules/asciidoc/pages/about.adoc
@@ -1,5 +1,4 @@
 = Asciidoc Extension
 :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 [...]
 
-TODO: v2: placeholder for documentation about extensions/asciidoc
-
+WARNING: TODO
diff --git a/valuetypes/markdown/adoc/modules/markdown/pages/about.adoc b/valuetypes/markdown/adoc/modules/markdown/pages/about.adoc
index 34db995..00987c1 100644
--- a/valuetypes/markdown/adoc/modules/markdown/pages/about.adoc
+++ b/valuetypes/markdown/adoc/modules/markdown/pages/about.adoc
@@ -1,5 +1,4 @@
 = Markdown Extension
 :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 [...]
 
-TODO: v2: placeholder for documentation about extensions/markdown
-
+WARNING: TODO
diff --git a/valuetypes/sse/adoc/modules/sse/pages/about.adoc b/valuetypes/sse/adoc/modules/sse/pages/about.adoc
index 4b0b6e6..65df9bc 100644
--- a/valuetypes/sse/adoc/modules/sse/pages/about.adoc
+++ b/valuetypes/sse/adoc/modules/sse/pages/about.adoc
@@ -1,5 +1,4 @@
 = Server Side Events Extension
 :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 [...]
 
-TODO: v2: placeholder for documentation about extensions/vw/sse
-
+WARNING: TODO


[isis] 34/41: ISIS-2278: further polishing

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

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

commit 00c69dba874d8010f48bfb37056a5e6cacea9866
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 08:51:09 2020 +0000

    ISIS-2278: further polishing
---
 .../applib/services/wrapper/control/AsyncControlService.java   |  6 ++++++
 .../core/runtimeservices/wrapper/WrapperFactoryDefault.java    | 10 ++--------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
index 853c94c..51d4459 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
@@ -34,6 +34,7 @@ import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.Setter;
+import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 /**
@@ -53,4 +54,9 @@ public class AsyncControlService {
         return asyncControl;
     }
 
+    public <R> boolean shouldCheckRules(AsyncControl<R> asyncControl) {
+        val executionModes = asyncControl.getExecutionModes();
+        val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+        return !skipRules;
+    }
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index eaa599d..5140a9e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -222,7 +222,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
                     return method.invoke(domainObject, args);
                 }
 
-                if (shouldCheckRules(asyncControl)) {
+                if (asyncControlService.shouldCheckRules(asyncControl)) {
                     T syncProxy = WrapperFactoryDefault.this.createProxy(domainObject, control().withNoExecute());
                     method.invoke(syncProxy, args);
                 }
@@ -252,7 +252,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
                     return method.invoke(mixin, args);
                 }
 
-                if (shouldCheckRules(asyncControl)) {
+                if (asyncControlService.shouldCheckRules(asyncControl)) {
                     T syncProxy = WrapperFactoryDefault.this.createProxy(mixin, control().withNoExecute());
                     method.invoke(syncProxy, args);
                 }
@@ -271,12 +271,6 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return method.getDeclaringClass().equals(Object.class);
     }
 
-    private <R> boolean shouldCheckRules(AsyncControl<R> asyncControl) {
-        val executionModes = asyncControl.getExecutionModes();
-        val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-        return !skipRules;
-    }
-
     private <R> Object submitAsync(
             final ActionAndTarget actionAndTarget,
             final Object[] args,


[isis] 25/41: ISIS-2062: further docs, and fix for HealthCheck

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

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

commit af621719b16ca2fb86894d7fbc955f0a0675f8c9
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 11 07:35:44 2020 +0000

    ISIS-2062: further docs, and fix for HealthCheck
---
 .../modules/applib-svc/pages/HealthCheckService.adoc   | 18 +++++++++---------
 .../org/apache/isis/applib/services/health/Health.java |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
index 6210a86..bbfd529 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
@@ -4,14 +4,9 @@
 :page-partial:
 
 
-This service integrates with Spring Boot's link:https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/health/HealthIndicator.html[HealthIndicator] SPI, surfaced through the link:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html[Spring Boot Actuator].
+This SPI service integrates with Spring Boot's link:https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/health/HealthIndicator.html[HealthIndicator] SPI, surfaced through the link:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html[Spring Boot Actuator].
 
-WARNING: TODO: v2: update - rest of this documentation is out of date.
-
-
-
-This service, if implemented, is used to performs a health check to determine if the application is still available.
-The results of this service are made available through a REST resource, typically mounted at `/restful/health`.
+This is accessible from the `/actuator/health` endpoint.
 
 The service, when called, will be within the context of a special internal user `__health` with the internal role `__health-role`.
 
@@ -19,7 +14,7 @@ This service was introduced to allow deployment infrastructure to monitor the ap
 For example, if deploying to Docker then both Docker Swarm and Kubernetes are orchestrators that can perform this task.
 
 
-== SPI & Implementation
+== SPI
 
 The SPI defined by `HealthCheckService` is:
 
@@ -28,7 +23,9 @@ The SPI defined by `HealthCheckService` is:
 include::refguide:applib-svc:example$services/health/HealthCheckService.java[tags="refguide"]
 ----
 
-There is no default implementation, but the xref:docs:starters:simpleapp.adoc[simpleapp] starter app provides a sample implementation:
+== Implementation
+
+The framework provides no default implementation, but the xref:docs:starters:simpleapp.adoc[simpleapp] starter app provides a sample implementation:
 
 [source,java]
 ----
@@ -56,4 +53,7 @@ public class HealthCheckServiceImpl implements HealthCheckService {
 }
 ----
 
+== Related Services
+
+The internal domain service `o.a.i.core.webapp.health.HealthIndicatorUsingHealthCheckService` acts as the bridge between Spring and the `HealthCheckService' SPI.
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java b/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java
index c6f3e70..a125837 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java
@@ -40,6 +40,6 @@ public class Health {
     @Getter
     private final Throwable cause;
 
-    public boolean getResult() { return message == null || cause == null; }
+    public boolean getResult() { return message == null && cause == null; }
 }
 // end::refguide[]


[isis] 02/41: ISIS-2094: adds missing license statements

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

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

commit bd8f6a505274e8bad2e400caeb01bdcd916b9699
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 16:15:40 2020 +0000

    ISIS-2094: adds missing license statements
---
 antora/components/_component-template/antora.yml    | 17 +++++++++++++++++
 .../_component-template/modules/ROOT/nav.adoc       |  2 ++
 .../modules/_module-template/nav.adoc               |  2 ++
 antora/components/comguide/antora.yml               | 17 +++++++++++++++++
 antora/components/comguide/modules/ROOT/nav.adoc    |  2 ++
 .../modules/ROOT/pages/cutting-a-release.adoc       | 21 +++++++++------------
 antora/components/conguide/antora.yml               | 17 +++++++++++++++++
 antora/components/conguide/modules/ROOT/nav.adoc    |  2 ++
 .../conguide/modules/documentation/nav.adoc         |  2 ++
 antora/components/conguide/modules/eclipse/nav.adoc |  2 ++
 antora/components/conguide/modules/git/nav.adoc     |  2 ++
 .../components/conguide/modules/intellij/nav.adoc   |  2 ++
 antora/components/docs/antora.yml                   | 17 +++++++++++++++++
 antora/components/docs/modules/ROOT/nav.adoc        |  2 ++
 .../docs/modules/ROOT/partials/component-nav.adoc   |  3 +++
 .../ROOT/partials/module-nav/components.adoc        |  2 ++
 .../partials/module-nav/demos-and-tutorials.adoc    |  3 +++
 .../modules/ROOT/partials/module-nav/framework.adoc |  3 +++
 .../modules/ROOT/partials/module-nav/guides.adoc    |  3 +++
 .../modules/ROOT/partials/module-nav/libraries.adoc |  3 +++
 .../ROOT/partials/module-nav/quick-start.adoc       |  2 ++
 .../modules/ROOT/partials/module-nav/releases.adoc  |  2 ++
 .../modules/ROOT/partials/module-nav/resources.adoc |  2 ++
 .../partials/module-nav/what-is-apache-isis.adoc    |  2 ++
 antora/components/docs/modules/resources/nav.adoc   |  2 ++
 .../docs/modules/resources/partials/module-nav.adoc |  2 ++
 antora/components/docs/modules/support/nav.adoc     |  2 ++
 .../docs/modules/support/partials/module-nav.adoc   |  3 +++
 antora/components/relnotes/antora.yml               | 17 +++++++++++++++++
 antora/components/relnotes/modules/ROOT/nav.adoc    |  2 ++
 antora/components/setupguide/antora.yml             | 17 +++++++++++++++++
 antora/components/setupguide/modules/ROOT/nav.adoc  |  2 ++
 .../components/setupguide/modules/eclipse/nav.adoc  |  2 ++
 .../setupguide/modules/hints-and-tips/nav.adoc      |  2 ++
 .../components/setupguide/modules/intellij/nav.adoc |  2 ++
 antora/playbooks/site-comguide.yml                  | 17 +++++++++++++++++
 antora/playbooks/site-conguide.yml                  | 17 +++++++++++++++++
 antora/playbooks/site-core.yml                      | 17 +++++++++++++++++
 antora/playbooks/site-docs.yml                      | 17 +++++++++++++++++
 antora/playbooks/site-extensions.yml                | 17 +++++++++++++++++
 antora/playbooks/site-incubator.yml                 | 17 +++++++++++++++++
 antora/playbooks/site-legacy.yml                    | 17 +++++++++++++++++
 antora/playbooks/site-mappings.yml                  | 17 +++++++++++++++++
 antora/playbooks/site-persistence.yml               | 17 +++++++++++++++++
 antora/playbooks/site-refguide.yml                  | 17 +++++++++++++++++
 antora/playbooks/site-relnotes.yml                  | 17 +++++++++++++++++
 antora/playbooks/site-security.yml                  | 17 +++++++++++++++++
 antora/playbooks/site-setupguide.yml                | 17 +++++++++++++++++
 antora/playbooks/site-subdomains.yml                | 17 +++++++++++++++++
 antora/playbooks/site-testing.yml                   | 17 +++++++++++++++++
 antora/playbooks/site-userguide.yml                 | 17 +++++++++++++++++
 antora/playbooks/site-valuetypes.yml                | 17 +++++++++++++++++
 antora/playbooks/site-vro.yml                       | 17 +++++++++++++++++
 antora/playbooks/site-vw.yml                        | 17 +++++++++++++++++
 antora/playbooks/site.yml                           | 17 +++++++++++++++++
 api/adoc/refguide/antora.yml                        | 17 +++++++++++++++++
 .../modules/ROOT/partials/component-nav.adoc        |  3 +++
 api/adoc/userguide/antora.yml                       | 17 +++++++++++++++++
 .../modules/ROOT/partials/component-nav.adoc        |  3 +++
 .../userguide/modules/ROOT/partials/module-nav.adoc |  2 ++
 api/adoc/userguide/modules/_to-repurpose/nav.adoc   |  2 ++
 .../userguide/modules/btb/partials/module-nav.adoc  |  2 ++
 .../userguide/modules/fun/partials/module-nav.adoc  | 10 ++--------
 api/applib/src/main/adoc/antora.yml                 | 17 +++++++++++++++++
 .../src/main/adoc/modules/applib-ant/examples.sh    | 16 ++++++++++++++++
 .../src/main/adoc/modules/applib-ant/nav.adoc       |  2 ++
 .../applib-ant/pages/PropertyLayout/navigable.adoc  |  2 ++
 .../modules/applib-ant/partials/module-nav.adoc     |  2 ++
 .../src/main/adoc/modules/applib-cm/examples.sh     | 16 ++++++++++++++++
 api/applib/src/main/adoc/modules/applib-cm/nav.adoc |  2 ++
 .../adoc/modules/applib-cm/partials/module-nav.adoc |  2 ++
 .../src/main/adoc/modules/applib-svc/examples.sh    | 16 ++++++++++++++++
 .../src/main/adoc/modules/applib-svc/nav.adoc       |  2 ++
 .../modules/applib-svc/partials/module-nav.adoc     |  2 ++
 api/schema/src/main/adoc/antora.yml                 | 17 +++++++++++++++++
 .../adoc/modules/schema/partials/module-nav.adoc    |  2 ++
 core-parent/pom.xml                                 |  3 +++
 core/adoc/antora.yml                                | 17 +++++++++++++++++
 core/adoc/modules/ROOT/nav.adoc                     |  2 ++
 core/adoc/modules/ROOT/partials/component-nav.adoc  | 11 +++--------
 core/adoc/modules/ROOT/partials/module-nav.adoc     |  2 ++
 core/adoc/modules/archdesign/nav.adoc               |  2 ++
 .../modules/archdesign/partials/module-nav.adoc     |  2 ++
 core/codegen-bytebuddy/src/main/adoc/antora.yml     | 17 +++++++++++++++++
 .../main/adoc/modules/codegen-bytebuddy/nav.adoc    |  2 ++
 .../codegen-bytebuddy/partials/module-nav.adoc      |  2 ++
 core/commons/src/main/adoc/antora.yml               | 17 +++++++++++++++++
 .../adoc/modules/commons/partials/module-nav.adoc   |  2 ++
 core/config/src/main/adoc/antora.yml                | 17 +++++++++++++++++
 .../adoc/modules/config/partials/module-nav.adoc    |  2 ++
 core/internaltestsupport/src/main/adoc/antora.yml   | 17 +++++++++++++++++
 .../internaltestsupport/partials/module-nav.adoc    |  2 ++
 core/metamodel/src/main/adoc/antora.yml             | 17 +++++++++++++++++
 .../adoc/modules/metamodel/partials/module-nav.adoc |  2 ++
 core/runtime/src/main/adoc/antora.yml               | 17 +++++++++++++++++
 .../adoc/modules/runtime/partials/module-nav.adoc   |  2 ++
 core/runtimeservices/src/main/adoc/antora.yml       | 17 +++++++++++++++++
 .../src/main/adoc/modules/runtime-services/nav.adoc |  2 ++
 .../runtime-services/partials/module-nav.adoc       |  2 ++
 core/security/src/main/adoc/antora.yml              | 17 +++++++++++++++++
 .../main/adoc/modules/core/partials/module-nav.adoc |  2 ++
 core/webapp/src/main/adoc/antora.yml                | 17 +++++++++++++++++
 .../adoc/modules/webapp/partials/module-nav.adoc    |  2 ++
 examples/demo/src/main/adoc/antora.yml              | 17 +++++++++++++++++
 .../main/adoc/modules/demo/partials/module-nav.adoc |  2 ++
 examples/smoketests/src/main/adoc/antora.yml        | 17 +++++++++++++++++
 .../modules/smoketests/partials/module-nav.adoc     |  2 ++
 extensions/adoc/antora.yml                          | 17 +++++++++++++++++
 extensions/adoc/modules/ROOT/nav.adoc               |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 extensions/core/command-log/adoc/antora.yml         | 17 +++++++++++++++++
 .../command-log/adoc/modules/command-log/nav.adoc   |  2 ++
 .../modules/command-log/partials/module-nav.adoc    |  2 ++
 extensions/core/flyway/adoc/antora.yml              | 17 +++++++++++++++++
 .../adoc/modules/flyway/partials/module-nav.adoc    |  2 ++
 extensions/security/audit-trail/adoc/antora.yml     | 17 +++++++++++++++++
 .../audit-trail/adoc/modules/audit-trail/nav.adoc   |  2 ++
 .../modules/audit-trail/partials/module-nav.adoc    |  2 ++
 extensions/security/secman/adoc/antora.yml          | 17 +++++++++++++++++
 .../adoc/modules/secman/partials/module-nav.adoc    |  2 ++
 extensions/security/session-log/adoc/antora.yml     | 17 +++++++++++++++++
 .../session-log/adoc/modules/session-log/nav.adoc   |  2 ++
 .../modules/session-log/partials/module-nav.adoc    |  2 ++
 .../security/shiro-realm-ldap/adoc/antora.yml       | 17 +++++++++++++++++
 .../adoc/modules/shiro-realm-ldap/nav.adoc          |  2 ++
 .../shiro-realm-ldap/partials/module-nav.adoc       |  2 ++
 extensions/vro/cors/adoc/antora.yml                 | 17 +++++++++++++++++
 .../cors/adoc/modules/cors/partials/module-nav.adoc |  2 ++
 extensions/vw/exceldownload/adoc/antora.yml         | 17 +++++++++++++++++
 .../modules/exceldownload/partials/module-nav.adoc  |  2 ++
 extensions/vw/fullcalendar/adoc/antora.yml          | 17 +++++++++++++++++
 .../modules/fullcalendar/partials/module-nav.adoc   |  2 ++
 extensions/vw/pdfjs/adoc/antora.yml                 | 17 +++++++++++++++++
 .../adoc/modules/pdfjs/partials/module-nav.adoc     |  2 ++
 incubator/adoc/antora.yml                           | 17 +++++++++++++++++
 incubator/adoc/modules/ROOT/nav.adoc                |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 incubator/core/model/src/main/adoc/antora.yml       | 17 +++++++++++++++++
 .../adoc/modules/model/partials/module-nav.adoc     |  2 ++
 .../mappings/microprofile/src/main/adoc/antora.yml  | 17 +++++++++++++++++
 .../modules/microprofile/partials/module-nav.adoc   |  2 ++
 legacy/adoc/antora.yml                              | 17 +++++++++++++++++
 legacy/adoc/modules/ROOT/nav.adoc                   |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  2 ++
 legacy/adoc/modules/ROOT/partials/module-nav.adoc   |  2 ++
 .../extensions/core/applib/src/main/adoc/antora.yml | 17 +++++++++++++++++
 .../adoc/modules/applib/partials/module-nav.adoc    |  2 ++
 .../core/commons/src/main/adoc/antora.yml           | 17 +++++++++++++++++
 .../adoc/modules/commons/partials/module-nav.adoc   |  2 ++
 .../core/runtime/src/main/adoc/antora.yml           | 17 +++++++++++++++++
 .../adoc/modules/runtime/partials/module-nav.adoc   |  2 ++
 legacy/mappings/restclient/src/main/adoc/antora.yml | 17 +++++++++++++++++
 .../modules/restclient/partials/module-nav.adoc     |  2 ++
 .../subdomains/servletapi/src/main/adoc/antora.yml  | 17 +++++++++++++++++
 .../modules/servletapi/partials/module-nav.adoc     |  2 ++
 legacy/testing/mavenplugin/src/main/doc/antora.yml  | 17 +++++++++++++++++
 mappings/adoc/antora.yml                            | 17 +++++++++++++++++
 mappings/adoc/modules/ROOT/nav.adoc                 |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  2 ++
 mappings/adoc/modules/ROOT/partials/module-nav.adoc |  2 ++
 mappings/jaxrsclient/adoc/antora.yml                | 17 +++++++++++++++++
 .../modules/jaxrsclient/partials/module-nav.adoc    |  2 ++
 mappings/minio/adoc/antora.yml                      | 17 +++++++++++++++++
 .../adoc/modules/minio/partials/module-nav.adoc     |  2 ++
 mappings/publisher/adoc/antora.yml                  | 17 +++++++++++++++++
 .../adoc/modules/publisher/partials/module-nav.adoc |  2 ++
 mappings/restclient/adoc/antora.yml                 | 17 +++++++++++++++++
 .../modules/restclient/partials/module-nav.adoc     |  2 ++
 mappings/slack/adoc/antora.yml                      | 17 +++++++++++++++++
 .../adoc/modules/slack/partials/module-nav.adoc     |  2 ++
 mavendeps/adoc/antora.yml                           | 17 +++++++++++++++++
 mavendeps/adoc/modules/mavendeps/nav.adoc           |  2 ++
 .../adoc/modules/mavendeps/partials/module-nav.adoc |  2 ++
 persistence/jdo/adoc/antora.yml                     | 17 +++++++++++++++++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  2 ++
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc  |  2 ++
 pom.xml                                             | 20 --------------------
 scripts/ci/_adoc-antora.sh                          | 16 ++++++++++++++++
 scripts/ci/_adoc-copy-examples.sh                   | 17 +++++++++++++++++
 scripts/ci/_adoc-gen-config.sh                      | 17 +++++++++++++++++
 scripts/ci/_build-site.sh                           | 17 +++++++++++++++++
 scripts/ci/_print-environment.sh                    | 16 ++++++++++++++++
 scripts/ci/build-core.sh                            | 17 +++++++++++++++++
 scripts/ci/build-demo-app.sh                        | 17 +++++++++++++++++
 scripts/ci/build-site.sh                            | 16 ++++++++++++++++
 scripts/ci/build-smoketests.sh                      | 17 +++++++++++++++++
 scripts/ci/dry-run.sh                               | 17 +++++++++++++++++
 scripts/ci/install-nvm.sh                           | 17 +++++++++++++++++
 scripts/clean-up-tags-local.sh                      | 18 ++++++++++++++++++
 scripts/clean-up-tags-remote.sh                     | 18 ++++++++++++++++++
 scripts/jira-release-notes.sh                       | 18 ++++++++++++++++++
 scripts/ls-tags-remote.sh                           | 19 +++++++++++++++++++
 scripts/promoterctag.sh                             | 19 +++++++++++++++++++
 scripts/verify-isis-release.sh                      | 19 +++++++++++++++++++
 security/adoc/antora.yml                            | 17 +++++++++++++++++
 security/adoc/modules/ROOT/nav.adoc                 |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 .../adoc/modules/ROOT/partials/module-nav-end.adoc  |  2 ++
 security/bypass/src/main/adoc/antora.yml            | 17 +++++++++++++++++
 .../adoc/modules/bypass/partials/module-nav.adoc    |  2 ++
 security/keycloak/src/main/adoc/antora.yml          | 17 +++++++++++++++++
 .../adoc/modules/keycloak/partials/module-nav.adoc  |  2 ++
 security/shiro/src/main/adoc/antora.yml             | 17 +++++++++++++++++
 .../adoc/modules/shiro/partials/module-nav.adoc     |  2 ++
 starters/adoc/antora.yml                            | 17 +++++++++++++++++
 starters/adoc/modules/parent-pom/nav.adoc           |  2 ++
 .../modules/parent-pom/partials/module-nav.adoc     |  2 ++
 starters/adoc/modules/starters/nav.adoc             |  2 ++
 .../adoc/modules/starters/partials/module-nav.adoc  |  2 ++
 subdomains/adoc/antora.yml                          | 17 +++++++++++++++++
 subdomains/adoc/modules/ROOT/nav.adoc               |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 subdomains/base/adoc/antora.yml                     | 17 +++++++++++++++++
 .../base/adoc/modules/base/partials/module-nav.adoc |  2 ++
 subdomains/docx/adoc/antora.yml                     | 17 +++++++++++++++++
 .../docx/adoc/modules/docx/partials/module-nav.adoc |  2 ++
 subdomains/excel/adoc/antora.yml                    | 17 +++++++++++++++++
 .../adoc/modules/excel/partials/module-nav.adoc     |  2 ++
 subdomains/freemarker/adoc/antora.yml               | 17 +++++++++++++++++
 .../modules/freemarker/partials/module-nav.adoc     |  2 ++
 subdomains/ognl/adoc/antora.yml                     | 17 +++++++++++++++++
 .../ognl/adoc/modules/ognl/partials/module-nav.adoc |  2 ++
 subdomains/pdfbox/adoc/antora.yml                   | 17 +++++++++++++++++
 .../adoc/modules/pdfbox/partials/module-nav.adoc    |  2 ++
 subdomains/spring/adoc/antora.yml                   | 17 +++++++++++++++++
 .../adoc/modules/spring/partials/module-nav.adoc    |  2 ++
 subdomains/xdocreport/adoc/antora.yml               | 17 +++++++++++++++++
 .../modules/xdocreport/partials/module-nav.adoc     |  2 ++
 subdomains/zip/adoc/antora.yml                      | 17 +++++++++++++++++
 .../zip/adoc/modules/zip/partials/module-nav.adoc   |  2 ++
 testing/adoc/antora.yml                             | 17 +++++++++++++++++
 testing/adoc/modules/ROOT/nav.adoc                  |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 testing/adoc/modules/ROOT/partials/module-nav.adoc  |  2 ++
 testing/fakedata/adoc/antora.yml                    | 17 +++++++++++++++++
 .../adoc/modules/fakedata/partials/module-nav.adoc  |  2 ++
 testing/fixtures/adoc/antora.yml                    | 17 +++++++++++++++++
 .../adoc/modules/fixtures/partials/module-nav.adoc  |  2 ++
 testing/h2console/adoc/antora.yml                   | 17 +++++++++++++++++
 .../adoc/modules/h2console/partials/module-nav.adoc |  2 ++
 testing/hsqldbmgr/adoc/antora.yml                   | 17 +++++++++++++++++
 .../adoc/modules/hsqldbmgr/partials/module-nav.adoc |  2 ++
 testing/integtestsupport/adoc/antora.yml            | 17 +++++++++++++++++
 .../integtestsupport/partials/module-nav.adoc       |  2 ++
 testing/specsupport/adoc/antora.yml                 | 17 +++++++++++++++++
 .../modules/specsupport/partials/module-nav.adoc    |  2 ++
 testing/unittestsupport/adoc/antora.yml             | 17 +++++++++++++++++
 .../unittestsupport/partials/module-nav.adoc        |  2 ++
 valuetypes/adoc/antora.yml                          | 17 +++++++++++++++++
 valuetypes/adoc/modules/ROOT/nav.adoc               |  2 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 .../adoc/modules/ROOT/partials/module-nav.adoc      |  2 ++
 valuetypes/asciidoc/adoc/antora.yml                 | 17 +++++++++++++++++
 .../adoc/modules/asciidoc/partials/module-nav.adoc  |  2 ++
 valuetypes/markdown/adoc/antora.yml                 | 17 +++++++++++++++++
 .../adoc/modules/markdown/partials/module-nav.adoc  |  2 ++
 valuetypes/sse/adoc/antora.yml                      | 17 +++++++++++++++++
 .../sse/adoc/modules/sse/partials/module-nav.adoc   |  2 ++
 viewers/restfulobjects/adoc/antora.yml              | 17 +++++++++++++++++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  2 ++
 .../adoc/modules/ROOT/partials/module-nav.adoc      |  2 ++
 viewers/wicket/adoc/antora.yml                      | 17 +++++++++++++++++
 .../adoc/modules/ROOT/partials/component-nav.adoc   |  3 +++
 .../adoc/modules/ROOT/partials/module-nav.adoc      |  2 ++
 264 files changed, 2353 insertions(+), 48 deletions(-)

diff --git a/antora/components/_component-template/antora.yml b/antora/components/_component-template/antora.yml
index 9c226b8..2a5356d 100644
--- a/antora/components/_component-template/antora.yml
+++ b/antora/components/_component-template/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: _component-template
 title: "Component Template"
 version: master
diff --git a/antora/components/_component-template/modules/ROOT/nav.adoc b/antora/components/_component-template/modules/ROOT/nav.adoc
index cdf9630..65ff6c0 100644
--- a/antora/components/_component-template/modules/ROOT/nav.adoc
+++ b/antora/components/_component-template/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * About
diff --git a/antora/components/_component-template/modules/_module-template/nav.adoc b/antora/components/_component-template/modules/_module-template/nav.adoc
index 217ce49..20ac428 100644
--- a/antora/components/_component-template/modules/_module-template/nav.adoc
+++ b/antora/components/_component-template/modules/_module-template/nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * Module Template
 
 ** xref:about.adoc[About]
diff --git a/antora/components/comguide/antora.yml b/antora/components/comguide/antora.yml
index b7b4925..e21dcfe 100644
--- a/antora/components/comguide/antora.yml
+++ b/antora/components/comguide/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: comguide
 title: "Committers' Guide"
 version: master
diff --git a/antora/components/comguide/modules/ROOT/nav.adoc b/antora/components/comguide/modules/ROOT/nav.adoc
index ebd9206..3688968 100644
--- a/antora/components/comguide/modules/ROOT/nav.adoc
+++ b/antora/components/comguide/modules/ROOT/nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:merging-a-pull-request.adoc[Merging a Pull Request]
 * xref:applying-patches.adoc[Applying Patches]
 * xref:cutting-a-release.adoc[Cutting a Release]
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 a92f24f..bbba3b9 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -22,15 +22,12 @@ They should work on Linux and MacOS; for Windows, use mSysGit.
 
 == Obtain Consensus
 
-
 Before releasing the framework, ensure there is consensus on the xref:docs:support:mailing-list.adoc[dev mailing list] that this is the right time for a release.
 The discussion should include confirming the version number to be used, and to confirm content.
 
 These discussions should also confirm the version number of the module being released.
 This should be in line with our xref:comguide:ROOT:policies/versioning-policy.adoc#semantic-versioning[semantic versioning policy].
 
-
-
 Make sure you have a JIRA ticket open against which to perform all commits.
 In most cases a JIRA ticket will have been created at the beginning of the previous release cycle.
 
@@ -61,7 +58,6 @@ Obviously, alter ``$ISISREL`` as required, and bump ``$ISISRC`` for re-releasing
 Note that the branch name is intentionally *not* the same as the eventual tag names (eg `isis-{isisnext}`).
 ====
 
-
 == Pull down code to release
 
 Set the HEAD of your local git repo to the commit to be released.
@@ -120,8 +116,6 @@ so that they should read:
 
 NOTE: After release, there is a xref:comguide:ROOT:cutting-a-release.adoc#reset-revision[similar step at the end] to reset back to `2.0.0-SNAPSHOT`.
 
-
-
 === License headers
 
 The Apache Release Audit Tool `RAT` (from the http://creadur.apache.org[Apache Creadur] project) checks for missing license header files.
@@ -131,20 +125,24 @@ To run the RAT tool, use:
 
 [source,bash,subs="attributes+"]
 ----
-mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=50 -o && \
-for a in `/bin/find . -name rat.txt -print`; do grep '!???' $a; done || \
+mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=100000
+
+pushd ..
+for a in `/bin/find . -name rat.txt -print`; do grep '!???' $a; done
 for a in `/bin/find . -name rat.txt -print`; do grep '!AL' $a; done
+popd
 ----
 
-where `rat.numUnapprovedLicenses` property is set to a high figure, temporarily overriding the default value of 0. This will allow the command to run over all submodules, rather than failing after the first one.
+where `rat.numUnapprovedLicenses` property is set to a high figure, temporarily overriding the default value of 0.
+This will allow the command to run over all submodules, rather than failing after the first one.
 The command writes out a `target\rat.txt` for each submodule. missing license notes are indicated using the key `!???`.
 The `for` command collates all the errors.
 
 Investigate and fix any reported violations, typically by either:
 
 * adding genuinely missing license headers from Java (or other) source files, or
-* updating the `&lt;excludes&gt;` element for the `apache-rat-plugin` plugin to ignore test files, log files and any other non-source code files
-* also look to remove any stale `&lt;exclude&gt;` entries
+* updating the `<excludes>` element for the `apache-rat-plugin` plugin to ignore test files, log files and any other non-source code files
+* also look to remove any stale `<exclude>` entries
 
 Once you've fixed all issues, confirm once more that `apache-rat-plugin` no longer reports any license violations, this time leaving the `rat.numUnapprovedLicenses` property to its default, 0:
 
@@ -384,7 +382,6 @@ mvn -pl webapp spring-boot:run
 git push -u origin $ISISBRANCH
 ----
 
-
 == Voting
 
 Once the artifacts have been uploaded, you can call a vote.
diff --git a/antora/components/conguide/antora.yml b/antora/components/conguide/antora.yml
index 42e12fb..ff2e151 100644
--- a/antora/components/conguide/antora.yml
+++ b/antora/components/conguide/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: conguide
 title: "Contributors' Guide"
 version: master
diff --git a/antora/components/conguide/modules/ROOT/nav.adoc b/antora/components/conguide/modules/ROOT/nav.adoc
index ea2a65f..7ce009a 100644
--- a/antora/components/conguide/modules/ROOT/nav.adoc
+++ b/antora/components/conguide/modules/ROOT/nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:contributing.adoc[Contributing]
 * xref:building-apache-isis.adoc[Building Apache Isis]
 * xref:building-docs-and-website.adoc[Building Docs and Website]
diff --git a/antora/components/conguide/modules/documentation/nav.adoc b/antora/components/conguide/modules/documentation/nav.adoc
index 7e6281a..eee4101 100644
--- a/antora/components/conguide/modules/documentation/nav.adoc
+++ b/antora/components/conguide/modules/documentation/nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:conguide:documentation:about.adoc[Documentation]
 ** xref:conguide:documentation:about.adoc[Documentation]
diff --git a/antora/components/conguide/modules/eclipse/nav.adoc b/antora/components/conguide/modules/eclipse/nav.adoc
index 827db68..ab8388d 100644
--- a/antora/components/conguide/modules/eclipse/nav.adoc
+++ b/antora/components/conguide/modules/eclipse/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:conguide:eclipse:about.adoc[Eclipse]
diff --git a/antora/components/conguide/modules/git/nav.adoc b/antora/components/conguide/modules/git/nav.adoc
index bd05fc4..2c3eac6 100644
--- a/antora/components/conguide/modules/git/nav.adoc
+++ b/antora/components/conguide/modules/git/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:conguide:git:about.adoc[Git Cookbook]
diff --git a/antora/components/conguide/modules/intellij/nav.adoc b/antora/components/conguide/modules/intellij/nav.adoc
index 83adc2f..e722335 100644
--- a/antora/components/conguide/modules/intellij/nav.adoc
+++ b/antora/components/conguide/modules/intellij/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:conguide:intellij:about.adoc[IntelliJ]
diff --git a/antora/components/docs/antora.yml b/antora/components/docs/antora.yml
index 55ff7fe..2b2d23c 100644
--- a/antora/components/docs/antora.yml
+++ b/antora/components/docs/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: docs
 title: " "
 version: master
diff --git a/antora/components/docs/modules/ROOT/nav.adoc b/antora/components/docs/modules/ROOT/nav.adoc
index b573fca..fa6a178 100644
--- a/antora/components/docs/modules/ROOT/nav.adoc
+++ b/antora/components/docs/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/docs/modules/ROOT/partials/component-nav.adoc b/antora/components/docs/modules/ROOT/partials/component-nav.adoc
index 8cbdfeb..15a44b5 100644
--- a/antora/components/docs/modules/ROOT/partials/component-nav.adoc
+++ b/antora/components/docs/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::docs:ROOT:partial$module-nav/what-is-apache-isis.adoc[]
 include::docs:ROOT:partial$module-nav/quick-start.adoc[]
 include::docs:ROOT:partial$module-nav/demos-and-tutorials.adoc[]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
index 75cbead..5d3b4a4 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * Components
 
 ** Viewers
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc
index fd86aa1..c39aa9c 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc
@@ -1,3 +1,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 [...]
+
+
 * Demos & Tutorials
 
 include::docs:demo:partial$module-nav.adoc[]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc
index c4acdcc..4b3815f 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc
@@ -1,3 +1,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 [...]
+
+
 * Framework
 
 ** xref:conguide:ROOT:about.adoc[Contributors' Guide]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/guides.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/guides.adoc
index 283f0b8..e3f7d24 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/guides.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/guides.adoc
@@ -1,3 +1,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 [...]
+
+
 * Guides
 
 ** Development
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc
index f68d745..334cc5b 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc
@@ -1,3 +1,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 [...]
+
+
 * Libraries
 
 ** For Use in Apps
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc
index 48510cb..d2c79df 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * Quick Start
 
 ** xref:docs:starters:helloworld.adoc[HelloWorld]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc
index dab1ca2..894be31 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * Releases
 
 ** xref:docs:ROOT:downloads/how-to.adoc[Downloads]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc
index f21f978..1a44acb 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc
@@ -1 +1,3 @@
+: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::docs:resources:partial$module-nav.adoc[]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc
index d334f5e..8de2d32 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * What is Apache Isis?
 ** xref:what-is-apache-isis/isis-in-pictures.adoc[Apache Isis in pictures]
 ** xref:what-is-apache-isis/common-use-cases.adoc[Common Use Cases]
diff --git a/antora/components/docs/modules/resources/nav.adoc b/antora/components/docs/modules/resources/nav.adoc
index b573fca..fa6a178 100644
--- a/antora/components/docs/modules/resources/nav.adoc
+++ b/antora/components/docs/modules/resources/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/docs/modules/resources/partials/module-nav.adoc b/antora/components/docs/modules/resources/partials/module-nav.adoc
index 5be599f..5bee6a1 100644
--- a/antora/components/docs/modules/resources/partials/module-nav.adoc
+++ b/antora/components/docs/modules/resources/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * Resources
 
 ** xref:docs:resources:cheatsheet.adoc[Cheat Sheet]
diff --git a/antora/components/docs/modules/support/nav.adoc b/antora/components/docs/modules/support/nav.adoc
index b573fca..fa6a178 100644
--- a/antora/components/docs/modules/support/nav.adoc
+++ b/antora/components/docs/modules/support/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/docs/modules/support/partials/module-nav.adoc b/antora/components/docs/modules/support/partials/module-nav.adoc
index 876fbd0..344cf42 100644
--- a/antora/components/docs/modules/support/partials/module-nav.adoc
+++ b/antora/components/docs/modules/support/partials/module-nav.adoc
@@ -1,3 +1,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 [...]
+
+
 * Support
 
 ** xref:docs:support:slack-channel.adoc[Slack]
diff --git a/antora/components/relnotes/antora.yml b/antora/components/relnotes/antora.yml
index ea4f922..a5d53e0 100644
--- a/antora/components/relnotes/antora.yml
+++ b/antora/components/relnotes/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: relnotes
 title: "Release Notes"
 version: master
diff --git a/antora/components/relnotes/modules/ROOT/nav.adoc b/antora/components/relnotes/modules/ROOT/nav.adoc
index f418012..5b6f030 100644
--- a/antora/components/relnotes/modules/ROOT/nav.adoc
+++ b/antora/components/relnotes/modules/ROOT/nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * 2019
 
 ** xref:relnotes:ROOT:2019/2.0.0-M2/relnotes.adoc[2.0.0-M2]
diff --git a/antora/components/setupguide/antora.yml b/antora/components/setupguide/antora.yml
index b62ab14..d619208 100644
--- a/antora/components/setupguide/antora.yml
+++ b/antora/components/setupguide/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: setupguide
 title: "Setup Guide"
 version: master
diff --git a/antora/components/setupguide/modules/ROOT/nav.adoc b/antora/components/setupguide/modules/ROOT/nav.adoc
index e69de29..ca04c21 100644
--- a/antora/components/setupguide/modules/ROOT/nav.adoc
+++ b/antora/components/setupguide/modules/ROOT/nav.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/antora/components/setupguide/modules/eclipse/nav.adoc b/antora/components/setupguide/modules/eclipse/nav.adoc
index a2c0096..a82e4eb 100644
--- a/antora/components/setupguide/modules/eclipse/nav.adoc
+++ b/antora/components/setupguide/modules/eclipse/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:setupguide:eclipse:about.adoc[Using Eclipse]
diff --git a/antora/components/setupguide/modules/hints-and-tips/nav.adoc b/antora/components/setupguide/modules/hints-and-tips/nav.adoc
index f276da7..431aa4f 100644
--- a/antora/components/setupguide/modules/hints-and-tips/nav.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:setupguide:hints-and-tips:about.adoc[Hints & Tips]
diff --git a/antora/components/setupguide/modules/intellij/nav.adoc b/antora/components/setupguide/modules/intellij/nav.adoc
index a014be6..a0398c7 100644
--- a/antora/components/setupguide/modules/intellij/nav.adoc
+++ b/antora/components/setupguide/modules/intellij/nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:setupguide:intellij:about.adoc[Using IntelliJ]
diff --git a/antora/playbooks/site-comguide.yml b/antora/playbooks/site-comguide.yml
index b4a0262..3b94d4e 100644
--- a/antora/playbooks/site-comguide.yml
+++ b/antora/playbooks/site-comguide.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-conguide.yml b/antora/playbooks/site-conguide.yml
index a0b0849..4cc5082 100644
--- a/antora/playbooks/site-conguide.yml
+++ b/antora/playbooks/site-conguide.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-core.yml b/antora/playbooks/site-core.yml
index a4350c2..899635f 100644
--- a/antora/playbooks/site-core.yml
+++ b/antora/playbooks/site-core.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-docs.yml b/antora/playbooks/site-docs.yml
index 2a68198..2c958dd 100644
--- a/antora/playbooks/site-docs.yml
+++ b/antora/playbooks/site-docs.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-extensions.yml b/antora/playbooks/site-extensions.yml
index ab36187..b4a18c7 100644
--- a/antora/playbooks/site-extensions.yml
+++ b/antora/playbooks/site-extensions.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-incubator.yml b/antora/playbooks/site-incubator.yml
index 7f52021..6757835 100644
--- a/antora/playbooks/site-incubator.yml
+++ b/antora/playbooks/site-incubator.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-legacy.yml b/antora/playbooks/site-legacy.yml
index a6eac9b..a796cf9 100644
--- a/antora/playbooks/site-legacy.yml
+++ b/antora/playbooks/site-legacy.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-mappings.yml b/antora/playbooks/site-mappings.yml
index d4247c6..4b98668 100644
--- a/antora/playbooks/site-mappings.yml
+++ b/antora/playbooks/site-mappings.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-persistence.yml b/antora/playbooks/site-persistence.yml
index 36a7fe5..cf77cae 100644
--- a/antora/playbooks/site-persistence.yml
+++ b/antora/playbooks/site-persistence.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-refguide.yml b/antora/playbooks/site-refguide.yml
index 6a086ee..038460a 100644
--- a/antora/playbooks/site-refguide.yml
+++ b/antora/playbooks/site-refguide.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-relnotes.yml b/antora/playbooks/site-relnotes.yml
index fd8dbc4..b43bb5f 100644
--- a/antora/playbooks/site-relnotes.yml
+++ b/antora/playbooks/site-relnotes.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-security.yml b/antora/playbooks/site-security.yml
index bfce1b8..900d131 100644
--- a/antora/playbooks/site-security.yml
+++ b/antora/playbooks/site-security.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-setupguide.yml b/antora/playbooks/site-setupguide.yml
index 0666b04..6f6ee70 100644
--- a/antora/playbooks/site-setupguide.yml
+++ b/antora/playbooks/site-setupguide.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-subdomains.yml b/antora/playbooks/site-subdomains.yml
index 813a9f4..6e5a143 100644
--- a/antora/playbooks/site-subdomains.yml
+++ b/antora/playbooks/site-subdomains.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-testing.yml b/antora/playbooks/site-testing.yml
index 462b029..b728061 100644
--- a/antora/playbooks/site-testing.yml
+++ b/antora/playbooks/site-testing.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-userguide.yml b/antora/playbooks/site-userguide.yml
index 7ea398f..353ea2d 100644
--- a/antora/playbooks/site-userguide.yml
+++ b/antora/playbooks/site-userguide.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-valuetypes.yml b/antora/playbooks/site-valuetypes.yml
index 6e64be6..331553c 100644
--- a/antora/playbooks/site-valuetypes.yml
+++ b/antora/playbooks/site-valuetypes.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-vro.yml b/antora/playbooks/site-vro.yml
index 9ed8e9f..9679146 100644
--- a/antora/playbooks/site-vro.yml
+++ b/antora/playbooks/site-vro.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site-vw.yml b/antora/playbooks/site-vw.yml
index 4a456e0..47f0af9 100644
--- a/antora/playbooks/site-vw.yml
+++ b/antora/playbooks/site-vw.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/antora/playbooks/site.yml b/antora/playbooks/site.yml
index 6bb7179..e34375e 100644
--- a/antora/playbooks/site.yml
+++ b/antora/playbooks/site.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 site:
   title: Apache Isis
   url: https://isis.apache.org/
diff --git a/api/adoc/refguide/antora.yml b/api/adoc/refguide/antora.yml
index 1b9b964..68691ac 100644
--- a/api/adoc/refguide/antora.yml
+++ b/api/adoc/refguide/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: refguide
 title: "Reference Guide"
 version: master
diff --git a/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc b/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc
index 07389e3..a8ec043 100644
--- a/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc
+++ b/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::refguide:ROOT:partial$module-nav.adoc[]
 include::refguide:applib-ant:partial$module-nav.adoc[]
 include::refguide:applib-svc:partial$module-nav.adoc[]
diff --git a/api/adoc/userguide/antora.yml b/api/adoc/userguide/antora.yml
index fa81f6e..80d412b 100644
--- a/api/adoc/userguide/antora.yml
+++ b/api/adoc/userguide/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: userguide
 title: "User Guide"
 version: master
diff --git a/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc b/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc
index f35ad96..12eade5 100644
--- a/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc
+++ b/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::userguide:fun:partial$module-nav.adoc[]
 include::userguide:btb:partial$module-nav.adoc[]
 
diff --git a/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc b/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc
index 6b16313..79863b5 100644
--- a/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc
+++ b/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:userguide:ROOT:about.adoc[About the User Guide]
 
 
diff --git a/api/adoc/userguide/modules/_to-repurpose/nav.adoc b/api/adoc/userguide/modules/_to-repurpose/nav.adoc
index 217ce49..20ac428 100644
--- a/api/adoc/userguide/modules/_to-repurpose/nav.adoc
+++ b/api/adoc/userguide/modules/_to-repurpose/nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * Module Template
 
 ** xref:about.adoc[About]
diff --git a/api/adoc/userguide/modules/btb/partials/module-nav.adoc b/api/adoc/userguide/modules/btb/partials/module-nav.adoc
index 2c34602..2925533 100644
--- a/api/adoc/userguide/modules/btb/partials/module-nav.adoc
+++ b/api/adoc/userguide/modules/btb/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:userguide:btb:about.adoc[Beyond the Basics]
 
 ** xref:userguide:btb:i18n.adoc[i18n]
diff --git a/api/adoc/userguide/modules/fun/partials/module-nav.adoc b/api/adoc/userguide/modules/fun/partials/module-nav.adoc
index 25a0fa2..76e1419 100644
--- a/api/adoc/userguide/modules/fun/partials/module-nav.adoc
+++ b/api/adoc/userguide/modules/fun/partials/module-nav.adoc
@@ -1,19 +1,13 @@
-* xref:userguide:fun:about.adoc[Fundamentals]
+: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 [...]
 
+* xref:userguide:fun:about.adoc[Fundamentals]
 ** xref:userguide:fun:core-concepts.adoc[Core Concepts]
-
 ** xref:userguide:fun:building-blocks.adoc[Building Blocks]
-
 ** xref:userguide:fun:programming-model.adoc[Programming Model]
-
 ** xref:userguide:fun:ui-hints.adoc[UI Hints]
-
 ** xref:userguide:fun:crud.adoc[CRUD]
-
 ** xref:userguide:fun:business-rules.adoc[Business Rules]
-
 ** xref:userguide:fun:drop-downs-and-defaults.adoc[Drop downs and Defaults]
-
 ** xref:userguide:fun:available-domain-services.adoc[Available Domain Services]
 
 
diff --git a/api/applib/src/main/adoc/antora.yml b/api/applib/src/main/adoc/antora.yml
index 7ac2b7b..5a9e0d4 100644
--- a/api/applib/src/main/adoc/antora.yml
+++ b/api/applib/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: refguide
 version: master
diff --git a/api/applib/src/main/adoc/modules/applib-ant/examples.sh b/api/applib/src/main/adoc/modules/applib-ant/examples.sh
index 4f43ba3..5880b7b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/examples.sh
+++ b/api/applib/src/main/adoc/modules/applib-ant/examples.sh
@@ -1,4 +1,20 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
 
 SRC_MAIN_JAVA=../../../java
 SCRIPT_DIR=$( dirname "$0" )
diff --git a/api/applib/src/main/adoc/modules/applib-ant/nav.adoc b/api/applib/src/main/adoc/modules/applib-ant/nav.adoc
index f7f91c6..36e2aec 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/nav.adoc
@@ -1 +1,3 @@
+: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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
index f2f6b3e..f3facf1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 = `navigable`
 :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 [...]
 :page-partial:
diff --git a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
index 1f89078..a720493 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:refguide:applib-ant:about.adoc[Annotations]
 
 ** xref:refguide:applib-ant:Action.adoc[Action]
diff --git a/api/applib/src/main/adoc/modules/applib-cm/examples.sh b/api/applib/src/main/adoc/modules/applib-cm/examples.sh
index 0478d5d..cf41bd8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/examples.sh
+++ b/api/applib/src/main/adoc/modules/applib-cm/examples.sh
@@ -1,4 +1,20 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
 
 SRC_MAIN_JAVA=../../../java
 SCRIPT_DIR=$( dirname "$0" )
diff --git a/api/applib/src/main/adoc/modules/applib-cm/nav.adoc b/api/applib/src/main/adoc/modules/applib-cm/nav.adoc
index f7f91c6..36e2aec 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/nav.adoc
@@ -1 +1,3 @@
+: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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc
index 870bf71..07fd382 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:refguide:applib-cm:about.adoc[Classes & Methods]
 
 ** xref:refguide:applib-cm:methods.adoc[Methods]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples.sh b/api/applib/src/main/adoc/modules/applib-svc/examples.sh
index b4c97a8..51b5e0d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples.sh
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples.sh
@@ -1,4 +1,20 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
 
 SRC_MAIN_JAVA=../../../java
 SCRIPT_DIR=$( dirname "$0" )
diff --git a/api/applib/src/main/adoc/modules/applib-svc/nav.adoc b/api/applib/src/main/adoc/modules/applib-svc/nav.adoc
index f7f91c6..36e2aec 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/nav.adoc
@@ -1 +1,3 @@
+: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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
index 4c10be2..ce72549 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:refguide:applib-svc:about.adoc[Domain Services]
 
 ** xref:refguide:applib-svc:AcceptHeaderService.adoc[AcceptHeaderService]
diff --git a/api/schema/src/main/adoc/antora.yml b/api/schema/src/main/adoc/antora.yml
index 7ac2b7b..5a9e0d4 100644
--- a/api/schema/src/main/adoc/antora.yml
+++ b/api/schema/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: refguide
 version: master
diff --git a/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc b/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc
index 545f368..bdf7ebe 100644
--- a/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc
+++ b/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:refguide:schema:about.adoc[Schema]
 
 ** xref:refguide:schema:mml.adoc[MetaModel]
diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index 8427e18..8dbd784 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -513,6 +513,7 @@ under the License.
 						<excludes>
 							<exclude>**/target/**</exclude>
 							<exclude>**/target-ide/**</exclude>
+							<exclude>**/node_modules/**</exclude>
 
 							<exclude>**/*.project</exclude>
 							<exclude>**/.classpath</exclude>
@@ -561,6 +562,8 @@ under the License.
 							<exclude>**/swagger-ui/**</exclude>
 
 							<exclude>**/META-INF/services/**</exclude>
+
+							<exclude>**/.gitkeep</exclude>
 						</excludes>
 						<licenses>
 							<license
diff --git a/core/adoc/antora.yml b/core/adoc/antora.yml
index 204b988..fcf1dbb 100644
--- a/core/adoc/antora.yml
+++ b/core/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 title: "Core Framework"
 version: master
diff --git a/core/adoc/modules/ROOT/nav.adoc b/core/adoc/modules/ROOT/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/adoc/modules/ROOT/nav.adoc
+++ b/core/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/adoc/modules/ROOT/partials/component-nav.adoc b/core/adoc/modules/ROOT/partials/component-nav.adoc
index 05a0359..fe8f446 100644
--- a/core/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/core/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,18 +1,13 @@
-include::core:ROOT:partial$module-nav.adoc[]
+: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:archdesign:partial$module-nav.adoc[]
 
+include::core:ROOT:partial$module-nav.adoc[]
+include::core:archdesign:partial$module-nav.adoc[]
 include::core:commons:partial$module-nav.adoc[]
-
 include::core:codegen-bytebuddy:partial$module-nav.adoc[]
-
 include::core:metamodel:partial$module-nav.adoc[]
-
 include::core:runtime:partial$module-nav.adoc[]
-
 include::core:runtime-services:partial$module-nav.adoc[]
-
 include::core:webapp:partial$module-nav.adoc[]
-
 include::core:smoketests:partial$module-nav.adoc[]
 
diff --git a/core/adoc/modules/ROOT/partials/module-nav.adoc b/core/adoc/modules/ROOT/partials/module-nav.adoc
index 46becff..ac2b5e5 100644
--- a/core/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/core/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:core:ROOT:about.adoc[Core Framework]
 
 
diff --git a/core/adoc/modules/archdesign/nav.adoc b/core/adoc/modules/archdesign/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/adoc/modules/archdesign/nav.adoc
+++ b/core/adoc/modules/archdesign/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/adoc/modules/archdesign/partials/module-nav.adoc b/core/adoc/modules/archdesign/partials/module-nav.adoc
index 38be24f..e2ca499 100644
--- a/core/adoc/modules/archdesign/partials/module-nav.adoc
+++ b/core/adoc/modules/archdesign/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:core:archdesign:about.adoc[Architecture & Design]
 
 ** xref:core:archdesign:maven-modules.adoc[Maven Modules]
diff --git a/core/codegen-bytebuddy/src/main/adoc/antora.yml b/core/codegen-bytebuddy/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/codegen-bytebuddy/src/main/adoc/antora.yml
+++ b/core/codegen-bytebuddy/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc
+++ b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc
index 8e00155..488d7f3 100644
--- a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc
+++ b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:core:codegen-bytebuddy:about.adoc[Byte Buddy Proxy Factory]
diff --git a/core/commons/src/main/adoc/antora.yml b/core/commons/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/commons/src/main/adoc/antora.yml
+++ b/core/commons/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc b/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
index 5c35621..2717b8d 100644
--- a/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
+++ b/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:core:commons:about.adoc[Commons]
diff --git a/core/config/src/main/adoc/antora.yml b/core/config/src/main/adoc/antora.yml
index 7ac2b7b..5a9e0d4 100644
--- a/core/config/src/main/adoc/antora.yml
+++ b/core/config/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: refguide
 version: master
diff --git a/core/config/src/main/adoc/modules/config/partials/module-nav.adoc b/core/config/src/main/adoc/modules/config/partials/module-nav.adoc
index 1e91058..10da1e9 100644
--- a/core/config/src/main/adoc/modules/config/partials/module-nav.adoc
+++ b/core/config/src/main/adoc/modules/config/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:refguide:config:about.adoc[Configuration]
 
 include::refguide:config:page$sections/_nav.adoc[]
diff --git a/core/internaltestsupport/src/main/adoc/antora.yml b/core/internaltestsupport/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/internaltestsupport/src/main/adoc/antora.yml
+++ b/core/internaltestsupport/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc
index 241ce16..eb571c8 100644
--- a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc
+++ b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:testing:unittestsupport:about.adoc[Unit Test Support]
diff --git a/core/metamodel/src/main/adoc/antora.yml b/core/metamodel/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/metamodel/src/main/adoc/antora.yml
+++ b/core/metamodel/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc b/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
index 0316c0d..d4ce8fa 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:core:metamodel:about.adoc[MetaModel]
diff --git a/core/runtime/src/main/adoc/antora.yml b/core/runtime/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/runtime/src/main/adoc/antora.yml
+++ b/core/runtime/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc b/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
index 60d2df4..b876541 100644
--- a/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
+++ b/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:core:runtime:about.adoc[Runtime]
diff --git a/core/runtimeservices/src/main/adoc/antora.yml b/core/runtimeservices/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/runtimeservices/src/main/adoc/antora.yml
+++ b/core/runtimeservices/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc
index b1ccd65..4bc5e4f 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:core:runtime-services:about.adoc[Runtime Services]
 
 ** xref:core:runtime-services:ApplicationFeatureFactory.adoc[ApplicationFeatureFactory]
diff --git a/core/security/src/main/adoc/antora.yml b/core/security/src/main/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/core/security/src/main/adoc/antora.yml
+++ b/core/security/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/core/security/src/main/adoc/modules/core/partials/module-nav.adoc b/core/security/src/main/adoc/modules/core/partials/module-nav.adoc
index 0bf37dd..857e323 100644
--- a/core/security/src/main/adoc/modules/core/partials/module-nav.adoc
+++ b/core/security/src/main/adoc/modules/core/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:security:core:about.adoc[API]
 
diff --git a/core/webapp/src/main/adoc/antora.yml b/core/webapp/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/core/webapp/src/main/adoc/antora.yml
+++ b/core/webapp/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc b/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc
index 291b567..90c58e3 100644
--- a/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc
+++ b/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:core:webapp:about.adoc[Webapp]
diff --git a/examples/demo/src/main/adoc/antora.yml b/examples/demo/src/main/adoc/antora.yml
index 1691412..737b35a 100644
--- a/examples/demo/src/main/adoc/antora.yml
+++ b/examples/demo/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: docs
 version: master
diff --git a/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc b/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc
index 87ff756..6c4c976 100644
--- a/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc
+++ b/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 ** xref:docs:demo:about.adoc[Demo App]
diff --git a/examples/smoketests/src/main/adoc/antora.yml b/examples/smoketests/src/main/adoc/antora.yml
index 08ddbf7..df03a54 100644
--- a/examples/smoketests/src/main/adoc/antora.yml
+++ b/examples/smoketests/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: core
 version: master
diff --git a/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc b/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc
index 7ad2280..c11bcb4 100644
--- a/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc
+++ b/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:core:smoketests:about.adoc[SmokeTest app]
 
 
diff --git a/extensions/adoc/antora.yml b/extensions/adoc/antora.yml
index 8b972fc..4dae1f4 100644
--- a/extensions/adoc/antora.yml
+++ b/extensions/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: extensions
 title: "Extensions Catalog"
 version: master
diff --git a/extensions/adoc/modules/ROOT/nav.adoc b/extensions/adoc/modules/ROOT/nav.adoc
index 28945c3..548215e 100644
--- a/extensions/adoc/modules/ROOT/nav.adoc
+++ b/extensions/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/adoc/modules/ROOT/partials/component-nav.adoc b/extensions/adoc/modules/ROOT/partials/component-nav.adoc
index dc52c59..da244e6 100644
--- a/extensions/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/extensions/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::extensions:ROOT:partial$module-nav.adoc[]
 
 * Core
diff --git a/extensions/core/command-log/adoc/antora.yml b/extensions/core/command-log/adoc/antora.yml
index eeeeb1e..8f79622 100644
--- a/extensions/core/command-log/adoc/antora.yml
+++ b/extensions/core/command-log/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: extensions
 version: master
diff --git a/extensions/core/command-log/adoc/modules/command-log/nav.adoc b/extensions/core/command-log/adoc/modules/command-log/nav.adoc
index 28945c3..548215e 100644
--- a/extensions/core/command-log/adoc/modules/command-log/nav.adoc
+++ b/extensions/core/command-log/adoc/modules/command-log/nav.adoc
@@ -1 +1,3 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc b/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc
index 5e7aa20..5ca7c49 100644
--- a/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc
+++ b/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 ** xref:command-log:about.adoc[Command Log]
 
 
diff --git a/extensions/core/flyway/adoc/antora.yml b/extensions/core/flyway/adoc/antora.yml
index b12174d..37fdc2f 100644
--- a/extensions/core/flyway/adoc/antora.yml
+++ b/extensions/core/flyway/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: userguide
 version: master
diff --git a/extensions/core/flyway/adoc/modules/flyway/partials/module-nav.adoc b/extensions/core/flyway/adoc/modules/flyway/partials/module-nav.adoc
index 051f3e1..e8d1eaf 100644
--- a/extensions/core/flyway/adoc/modules/flyway/partials/module-nav.adoc
+++ b/extensions/core/flyway/adoc/modules/flyway/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 ** xref:userguide:flyway:about.adoc[Flyway]
 
 
diff --git a/extensions/security/audit-trail/adoc/antora.yml b/extensions/security/audit-trail/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/extensions/security/audit-trail/adoc/antora.yml
+++ b/extensions/security/audit-trail/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/extensions/security/audit-trail/adoc/modules/audit-trail/nav.adoc b/extensions/security/audit-trail/adoc/modules/audit-trail/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/extensions/security/audit-trail/adoc/modules/audit-trail/nav.adoc
+++ b/extensions/security/audit-trail/adoc/modules/audit-trail/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/security/audit-trail/adoc/modules/audit-trail/partials/module-nav.adoc b/extensions/security/audit-trail/adoc/modules/audit-trail/partials/module-nav.adoc
index d52f1c8..92a23af 100644
--- a/extensions/security/audit-trail/adoc/modules/audit-trail/partials/module-nav.adoc
+++ b/extensions/security/audit-trail/adoc/modules/audit-trail/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 ** xref:security:audit-trail:about.adoc[Audit Trail]
 
 
diff --git a/extensions/security/secman/adoc/antora.yml b/extensions/security/secman/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/extensions/security/secman/adoc/antora.yml
+++ b/extensions/security/secman/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/extensions/security/secman/adoc/modules/secman/partials/module-nav.adoc b/extensions/security/secman/adoc/modules/secman/partials/module-nav.adoc
index 41ad8dc..794b93d 100644
--- a/extensions/security/secman/adoc/modules/secman/partials/module-nav.adoc
+++ b/extensions/security/secman/adoc/modules/secman/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 ** xref:security:ROOT:about.adoc[Secman]
 *** xref:security:ROOT:api.adoc[API]
 *** xref:security:ROOT:model.adoc[Model]
diff --git a/extensions/security/session-log/adoc/antora.yml b/extensions/security/session-log/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/extensions/security/session-log/adoc/antora.yml
+++ b/extensions/security/session-log/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/extensions/security/session-log/adoc/modules/session-log/nav.adoc b/extensions/security/session-log/adoc/modules/session-log/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/extensions/security/session-log/adoc/modules/session-log/nav.adoc
+++ b/extensions/security/session-log/adoc/modules/session-log/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/security/session-log/adoc/modules/session-log/partials/module-nav.adoc b/extensions/security/session-log/adoc/modules/session-log/partials/module-nav.adoc
index f6a8c16..b7729bd 100644
--- a/extensions/security/session-log/adoc/modules/session-log/partials/module-nav.adoc
+++ b/extensions/security/session-log/adoc/modules/session-log/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 ** xref:security:session-log:about.adoc[Session Log]
 
 
diff --git a/extensions/security/shiro-realm-ldap/adoc/antora.yml b/extensions/security/shiro-realm-ldap/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/extensions/security/shiro-realm-ldap/adoc/antora.yml
+++ b/extensions/security/shiro-realm-ldap/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/nav.adoc b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/nav.adoc
+++ b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/partials/module-nav.adoc b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/partials/module-nav.adoc
index 8d22851..dcdb113 100644
--- a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/partials/module-nav.adoc
+++ b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 ** xref:security:shiro-realm-ldap:about.adoc[LDAP Realm for Shiro]
diff --git a/extensions/vro/cors/adoc/antora.yml b/extensions/vro/cors/adoc/antora.yml
index 576eb80..f81c19f 100644
--- a/extensions/vro/cors/adoc/antora.yml
+++ b/extensions/vro/cors/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: vro
 version: master
diff --git a/extensions/vro/cors/adoc/modules/cors/partials/module-nav.adoc b/extensions/vro/cors/adoc/modules/cors/partials/module-nav.adoc
index 8fd27ec..e579253 100644
--- a/extensions/vro/cors/adoc/modules/cors/partials/module-nav.adoc
+++ b/extensions/vro/cors/adoc/modules/cors/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 ** xref:vw:vro:about.adoc[CORS]
 
diff --git a/extensions/vw/exceldownload/adoc/antora.yml b/extensions/vw/exceldownload/adoc/antora.yml
index cb832ae..7c10473 100644
--- a/extensions/vw/exceldownload/adoc/antora.yml
+++ b/extensions/vw/exceldownload/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: vw
 version: master
diff --git a/extensions/vw/exceldownload/adoc/modules/exceldownload/partials/module-nav.adoc b/extensions/vw/exceldownload/adoc/modules/exceldownload/partials/module-nav.adoc
index 2ca24e0..1f440af 100644
--- a/extensions/vw/exceldownload/adoc/modules/exceldownload/partials/module-nav.adoc
+++ b/extensions/vw/exceldownload/adoc/modules/exceldownload/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 ** xref:vw:exceldownload:about.adoc[Excel Download]
 
diff --git a/extensions/vw/fullcalendar/adoc/antora.yml b/extensions/vw/fullcalendar/adoc/antora.yml
index cb832ae..7c10473 100644
--- a/extensions/vw/fullcalendar/adoc/antora.yml
+++ b/extensions/vw/fullcalendar/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: vw
 version: master
diff --git a/extensions/vw/fullcalendar/adoc/modules/fullcalendar/partials/module-nav.adoc b/extensions/vw/fullcalendar/adoc/modules/fullcalendar/partials/module-nav.adoc
index 256a568..178e2ab 100644
--- a/extensions/vw/fullcalendar/adoc/modules/fullcalendar/partials/module-nav.adoc
+++ b/extensions/vw/fullcalendar/adoc/modules/fullcalendar/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 ** xref:vw:fullcalendar:about.adoc[fullcalendar]
 
diff --git a/extensions/vw/pdfjs/adoc/antora.yml b/extensions/vw/pdfjs/adoc/antora.yml
index cb832ae..7c10473 100644
--- a/extensions/vw/pdfjs/adoc/antora.yml
+++ b/extensions/vw/pdfjs/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: vw
 version: master
diff --git a/extensions/vw/pdfjs/adoc/modules/pdfjs/partials/module-nav.adoc b/extensions/vw/pdfjs/adoc/modules/pdfjs/partials/module-nav.adoc
index 90019e5..af2e284 100644
--- a/extensions/vw/pdfjs/adoc/modules/pdfjs/partials/module-nav.adoc
+++ b/extensions/vw/pdfjs/adoc/modules/pdfjs/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 ** xref:vw:pdfjs:about.adoc[pdf.js]
 
diff --git a/incubator/adoc/antora.yml b/incubator/adoc/antora.yml
index 2cd7dc0..47d4439 100644
--- a/incubator/adoc/antora.yml
+++ b/incubator/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: incubator
 title: "Incubator Catalog"
 version: master
diff --git a/incubator/adoc/modules/ROOT/nav.adoc b/incubator/adoc/modules/ROOT/nav.adoc
index a946dfb..a947dcb 100644
--- a/incubator/adoc/modules/ROOT/nav.adoc
+++ b/incubator/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::incubator:ROOT:partial$component-nav.adoc[]
diff --git a/incubator/adoc/modules/ROOT/partials/component-nav.adoc b/incubator/adoc/modules/ROOT/partials/component-nav.adoc
index 46bf21a..5c88147 100644
--- a/incubator/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/incubator/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::incubator:ROOT:partial$module-nav.adoc[]
 include::incubator:model:partial$module-nav.adoc[]
 include::incubator:microprofile:partial$module-nav.adoc[]
diff --git a/incubator/core/model/src/main/adoc/antora.yml b/incubator/core/model/src/main/adoc/antora.yml
index 74244f9..c12ebb4 100644
--- a/incubator/core/model/src/main/adoc/antora.yml
+++ b/incubator/core/model/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: incubator
 version: master
diff --git a/incubator/core/model/src/main/adoc/modules/model/partials/module-nav.adoc b/incubator/core/model/src/main/adoc/modules/model/partials/module-nav.adoc
index 26d195f..a30e6d7 100644
--- a/incubator/core/model/src/main/adoc/modules/model/partials/module-nav.adoc
+++ b/incubator/core/model/src/main/adoc/modules/model/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:incubator:model:about.adoc[@Model]
 
 
diff --git a/incubator/mappings/microprofile/src/main/adoc/antora.yml b/incubator/mappings/microprofile/src/main/adoc/antora.yml
index 74244f9..c12ebb4 100644
--- a/incubator/mappings/microprofile/src/main/adoc/antora.yml
+++ b/incubator/mappings/microprofile/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: incubator
 version: master
diff --git a/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/partials/module-nav.adoc b/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/partials/module-nav.adoc
index 82ebf0f..b6da764 100644
--- a/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/partials/module-nav.adoc
+++ b/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:incubator:microprofile:about.adoc[MicroProfile]
 
 
diff --git a/legacy/adoc/antora.yml b/legacy/adoc/antora.yml
index b75df3f..8fd6ab3 100644
--- a/legacy/adoc/antora.yml
+++ b/legacy/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 title: "Legacy Catalog"
 version: master
diff --git a/legacy/adoc/modules/ROOT/nav.adoc b/legacy/adoc/modules/ROOT/nav.adoc
index a946dfb..a947dcb 100644
--- a/legacy/adoc/modules/ROOT/nav.adoc
+++ b/legacy/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::incubator:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/adoc/modules/ROOT/partials/component-nav.adoc b/legacy/adoc/modules/ROOT/partials/component-nav.adoc
index a2ef5bc..3b19bfb 100644
--- a/legacy/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/legacy/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,5 @@
+: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::legacy:ROOT:partial$module-nav.adoc[]
 include::legacy:applib:partial$module-nav.adoc[]
 include::legacy:commons:partial$module-nav.adoc[]
diff --git a/legacy/adoc/modules/ROOT/partials/module-nav.adoc b/legacy/adoc/modules/ROOT/partials/module-nav.adoc
index 0868297..ebc41eb 100644
--- a/legacy/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/legacy/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:legacy:ROOT:about.adoc[About the Legacy Catalog]
 
 
diff --git a/legacy/extensions/core/applib/src/main/adoc/antora.yml b/legacy/extensions/core/applib/src/main/adoc/antora.yml
index 0a5830f..2c98dd6 100644
--- a/legacy/extensions/core/applib/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/applib/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 version: master
diff --git a/legacy/extensions/core/applib/src/main/adoc/modules/applib/partials/module-nav.adoc b/legacy/extensions/core/applib/src/main/adoc/modules/applib/partials/module-nav.adoc
index 99c1753..2fd6d5f 100644
--- a/legacy/extensions/core/applib/src/main/adoc/modules/applib/partials/module-nav.adoc
+++ b/legacy/extensions/core/applib/src/main/adoc/modules/applib/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:legacy:applib:about.adoc[Applib]
 
 
diff --git a/legacy/extensions/core/commons/src/main/adoc/antora.yml b/legacy/extensions/core/commons/src/main/adoc/antora.yml
index 0a5830f..2c98dd6 100644
--- a/legacy/extensions/core/commons/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/commons/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 version: master
diff --git a/legacy/extensions/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc b/legacy/extensions/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
index 2cc4bbe..595768f 100644
--- a/legacy/extensions/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
+++ b/legacy/extensions/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:legacy:commons:about.adoc[Commons]
 
 
diff --git a/legacy/extensions/core/runtime/src/main/adoc/antora.yml b/legacy/extensions/core/runtime/src/main/adoc/antora.yml
index 0a5830f..2c98dd6 100644
--- a/legacy/extensions/core/runtime/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/runtime/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 version: master
diff --git a/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc b/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
index 7b27889..cc4a336 100644
--- a/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
+++ b/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:legacy:runtime:about.adoc[Runtime]
 
 
diff --git a/legacy/mappings/restclient/src/main/adoc/antora.yml b/legacy/mappings/restclient/src/main/adoc/antora.yml
index 0a5830f..2c98dd6 100644
--- a/legacy/mappings/restclient/src/main/adoc/antora.yml
+++ b/legacy/mappings/restclient/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 version: master
diff --git a/legacy/mappings/restclient/src/main/adoc/modules/restclient/partials/module-nav.adoc b/legacy/mappings/restclient/src/main/adoc/modules/restclient/partials/module-nav.adoc
index 3326290..a964718 100644
--- a/legacy/mappings/restclient/src/main/adoc/modules/restclient/partials/module-nav.adoc
+++ b/legacy/mappings/restclient/src/main/adoc/modules/restclient/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:legacy:restclient:about.adoc[REST Client]
 
 
diff --git a/legacy/subdomains/servletapi/src/main/adoc/antora.yml b/legacy/subdomains/servletapi/src/main/adoc/antora.yml
index 0a5830f..2c98dd6 100644
--- a/legacy/subdomains/servletapi/src/main/adoc/antora.yml
+++ b/legacy/subdomains/servletapi/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 version: master
diff --git a/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/partials/module-nav.adoc b/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/partials/module-nav.adoc
index 80256f4..8bfc3e5 100644
--- a/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/partials/module-nav.adoc
+++ b/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:vw:servletapi:about.adoc[Servlet API (Extension)]
 
 
diff --git a/legacy/testing/mavenplugin/src/main/doc/antora.yml b/legacy/testing/mavenplugin/src/main/doc/antora.yml
index 0a5830f..2c98dd6 100644
--- a/legacy/testing/mavenplugin/src/main/doc/antora.yml
+++ b/legacy/testing/mavenplugin/src/main/doc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: legacy
 version: master
diff --git a/mappings/adoc/antora.yml b/mappings/adoc/antora.yml
index 7eb4fea..7883d84 100644
--- a/mappings/adoc/antora.yml
+++ b/mappings/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: mappings
 title: "BC Mappings Catalog"
 version: master
diff --git a/mappings/adoc/modules/ROOT/nav.adoc b/mappings/adoc/modules/ROOT/nav.adoc
index c06de12..2bb78b2 100644
--- a/mappings/adoc/modules/ROOT/nav.adoc
+++ b/mappings/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::mappings:ROOT:partial$component-nav.adoc[]
diff --git a/mappings/adoc/modules/ROOT/partials/component-nav.adoc b/mappings/adoc/modules/ROOT/partials/component-nav.adoc
index 0b1ebf4..3d96cb1 100644
--- a/mappings/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/mappings/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,5 @@
+: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::mappings:ROOT:partial$module-nav.adoc[]
 
 include::mappings:publisher:partial$module-nav.adoc[]
diff --git a/mappings/adoc/modules/ROOT/partials/module-nav.adoc b/mappings/adoc/modules/ROOT/partials/module-nav.adoc
index e69de29..ca04c21 100644
--- a/mappings/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/mappings/adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/mappings/jaxrsclient/adoc/antora.yml b/mappings/jaxrsclient/adoc/antora.yml
index a6a9467..4937263 100644
--- a/mappings/jaxrsclient/adoc/antora.yml
+++ b/mappings/jaxrsclient/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: mappings
 version: master
diff --git a/mappings/jaxrsclient/adoc/modules/jaxrsclient/partials/module-nav.adoc b/mappings/jaxrsclient/adoc/modules/jaxrsclient/partials/module-nav.adoc
index 295fc97..4641392 100644
--- a/mappings/jaxrsclient/adoc/modules/jaxrsclient/partials/module-nav.adoc
+++ b/mappings/jaxrsclient/adoc/modules/jaxrsclient/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:mappings:jaxrsclient:about.adoc[JAX-RS Client Library]
 
 
diff --git a/mappings/minio/adoc/antora.yml b/mappings/minio/adoc/antora.yml
index a6a9467..4937263 100644
--- a/mappings/minio/adoc/antora.yml
+++ b/mappings/minio/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: mappings
 version: master
diff --git a/mappings/minio/adoc/modules/minio/partials/module-nav.adoc b/mappings/minio/adoc/modules/minio/partials/module-nav.adoc
index dd4c90b..ffe4a1d 100644
--- a/mappings/minio/adoc/modules/minio/partials/module-nav.adoc
+++ b/mappings/minio/adoc/modules/minio/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:mappings:minio:about.adoc[Minio Library]
 
 
diff --git a/mappings/publisher/adoc/antora.yml b/mappings/publisher/adoc/antora.yml
index a6a9467..4937263 100644
--- a/mappings/publisher/adoc/antora.yml
+++ b/mappings/publisher/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: mappings
 version: master
diff --git a/mappings/publisher/adoc/modules/publisher/partials/module-nav.adoc b/mappings/publisher/adoc/modules/publisher/partials/module-nav.adoc
index 5fb179b..ec9e430 100644
--- a/mappings/publisher/adoc/modules/publisher/partials/module-nav.adoc
+++ b/mappings/publisher/adoc/modules/publisher/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:publisher:about.adoc[Publisher]
 
 
diff --git a/mappings/restclient/adoc/antora.yml b/mappings/restclient/adoc/antora.yml
index a6a9467..4937263 100644
--- a/mappings/restclient/adoc/antora.yml
+++ b/mappings/restclient/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: mappings
 version: master
diff --git a/mappings/restclient/adoc/modules/restclient/partials/module-nav.adoc b/mappings/restclient/adoc/modules/restclient/partials/module-nav.adoc
index 24a40dd..cf0d1fd 100644
--- a/mappings/restclient/adoc/modules/restclient/partials/module-nav.adoc
+++ b/mappings/restclient/adoc/modules/restclient/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:mappings:restclient:about.adoc[REST Client]
 
 
diff --git a/mappings/slack/adoc/antora.yml b/mappings/slack/adoc/antora.yml
index a6a9467..4937263 100644
--- a/mappings/slack/adoc/antora.yml
+++ b/mappings/slack/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: mappings
 version: master
diff --git a/mappings/slack/adoc/modules/slack/partials/module-nav.adoc b/mappings/slack/adoc/modules/slack/partials/module-nav.adoc
index dad62fd..24b7cf3 100644
--- a/mappings/slack/adoc/modules/slack/partials/module-nav.adoc
+++ b/mappings/slack/adoc/modules/slack/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:mappings:slack:about.adoc[Slack Library]
 
 
diff --git a/mavendeps/adoc/antora.yml b/mavendeps/adoc/antora.yml
index 1691412..737b35a 100644
--- a/mavendeps/adoc/antora.yml
+++ b/mavendeps/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: docs
 version: master
diff --git a/mavendeps/adoc/modules/mavendeps/nav.adoc b/mavendeps/adoc/modules/mavendeps/nav.adoc
index b573fca..fa6a178 100644
--- a/mavendeps/adoc/modules/mavendeps/nav.adoc
+++ b/mavendeps/adoc/modules/mavendeps/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/mavendeps/adoc/modules/mavendeps/partials/module-nav.adoc b/mavendeps/adoc/modules/mavendeps/partials/module-nav.adoc
index 1969df3..08cef55 100644
--- a/mavendeps/adoc/modules/mavendeps/partials/module-nav.adoc
+++ b/mavendeps/adoc/modules/mavendeps/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:docs:mavendeps:about.adoc[Aggregator POMs]
diff --git a/persistence/jdo/adoc/antora.yml b/persistence/jdo/adoc/antora.yml
index 9de2b7c..01f1ac2 100644
--- a/persistence/jdo/adoc/antora.yml
+++ b/persistence/jdo/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: pjdo
 title: "JDO/DataNucleus"
 version: master
diff --git a/persistence/jdo/adoc/modules/ROOT/partials/component-nav.adoc b/persistence/jdo/adoc/modules/ROOT/partials/component-nav.adoc
index 49c1365..460e614 100644
--- a/persistence/jdo/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,2 +1,4 @@
+: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::pjdo:ROOT:partial$module-nav.adoc[]
 
diff --git a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
index 610e211..1d885f0 100644
--- a/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:pjdo:ROOT:configuring.adoc[Configuring]
 * xref:pjdo:ROOT:jdo-mappings.adoc[JDO Mappings]
 * xref:pjdo:ROOT:db-schemas.adoc[DB Schemas]
diff --git a/pom.xml b/pom.xml
index 454a79b..e9b75ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,24 +41,4 @@
 		<module>examples/smoketests</module>
 	</modules>
 
-	<profiles>
-		<profile>
-			<id>examples</id>
-			<activation>
-				<!--
-				only include within IDE as a convenience
-				-->
-				<property>
-					<name>idea.version</name>
-				</property>
-			</activation>
-			<modules>
-				<module>mixins</module>
-				<module>core</module>
-				<module>examples</module>
-			</modules>
-		</profile>
-
-	</profiles>
-
 </project>
diff --git a/scripts/ci/_adoc-antora.sh b/scripts/ci/_adoc-antora.sh
index 9c7b37c..ad958f9 100644
--- a/scripts/ci/_adoc-antora.sh
+++ b/scripts/ci/_adoc-antora.sh
@@ -1,4 +1,20 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
 
 PLAYBOOK_FILE=$1
 
diff --git a/scripts/ci/_adoc-copy-examples.sh b/scripts/ci/_adoc-copy-examples.sh
index 33ed8b6..abd4a2f 100644
--- a/scripts/ci/_adoc-copy-examples.sh
+++ b/scripts/ci/_adoc-copy-examples.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 set -e
 
 SCRIPT_DIR=$( dirname "$0" )
diff --git a/scripts/ci/_adoc-gen-config.sh b/scripts/ci/_adoc-gen-config.sh
index 1527a3c..b4db431 100644
--- a/scripts/ci/_adoc-gen-config.sh
+++ b/scripts/ci/_adoc-gen-config.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 
 SCRIPT_DIR=$( dirname "$0" )
 if [ -z "$PROJECT_ROOT_PATH" ]; then
diff --git a/scripts/ci/_build-site.sh b/scripts/ci/_build-site.sh
index f18f46d..cdd1790 100644
--- a/scripts/ci/_build-site.sh
+++ b/scripts/ci/_build-site.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 set -e
 
 SCRIPT_DIR=$( dirname "$0" )
diff --git a/scripts/ci/_print-environment.sh b/scripts/ci/_print-environment.sh
index fafd6a4..ce6f22b 100644
--- a/scripts/ci/_print-environment.sh
+++ b/scripts/ci/_print-environment.sh
@@ -1,4 +1,20 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
 
 echo ""
 
diff --git a/scripts/ci/build-core.sh b/scripts/ci/build-core.sh
index a212e2e..a96e9b5 100644
--- a/scripts/ci/build-core.sh
+++ b/scripts/ci/build-core.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 set -eo pipefail
 
 if [ -z "$BATCH_MODE_FLAG" ] || [ "$BATCH_MODE_FLAG" != "off" ]; then
diff --git a/scripts/ci/build-demo-app.sh b/scripts/ci/build-demo-app.sh
index 5b2dcc2..e616178 100644
--- a/scripts/ci/build-demo-app.sh
+++ b/scripts/ci/build-demo-app.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 set -e
 
 if [ -z "$BATCH_MODE_FLAG" ] || [ "$BATCH_MODE_FLAG" != "off" ]; then
diff --git a/scripts/ci/build-site.sh b/scripts/ci/build-site.sh
index 0cffba2..655fc2a 100644
--- a/scripts/ci/build-site.sh
+++ b/scripts/ci/build-site.sh
@@ -1,4 +1,20 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
 
 export SKIP_EXAMPLES=true
 export SKIP_CONFIGS=true
diff --git a/scripts/ci/build-smoketests.sh b/scripts/ci/build-smoketests.sh
index 9b7d5f7..f43220f 100644
--- a/scripts/ci/build-smoketests.sh
+++ b/scripts/ci/build-smoketests.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 set -e
 
 if [ -z "$BATCH_MODE_FLAG" ] || [ "$BATCH_MODE_FLAG" != "off" ]; then
diff --git a/scripts/ci/dry-run.sh b/scripts/ci/dry-run.sh
index 3dc4841..d327d32 100644
--- a/scripts/ci/dry-run.sh
+++ b/scripts/ci/dry-run.sh
@@ -1,4 +1,21 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 #set -x
 #trap read debug
 set -e
diff --git a/scripts/ci/install-nvm.sh b/scripts/ci/install-nvm.sh
index e95a2fc..90ba5bc 100644
--- a/scripts/ci/install-nvm.sh
+++ b/scripts/ci/install-nvm.sh
@@ -1,4 +1,21 @@
 #!/usr/bin/env bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 
 { # this ensures the entire script is downloaded #
 
diff --git a/scripts/clean-up-tags-local.sh b/scripts/clean-up-tags-local.sh
index a79d3ae..6e6cad9 100644
--- a/scripts/clean-up-tags-local.sh
+++ b/scripts/clean-up-tags-local.sh
@@ -1,3 +1,21 @@
+#!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # clean-up-tags-local
 
 for a in `git tag --list | grep origin`
diff --git a/scripts/clean-up-tags-remote.sh b/scripts/clean-up-tags-remote.sh
index e541411..5f97da6 100644
--- a/scripts/clean-up-tags-remote.sh
+++ b/scripts/clean-up-tags-remote.sh
@@ -1,3 +1,21 @@
+#!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # clean-up-tags-remote
 
 REMOTE=$1
diff --git a/scripts/jira-release-notes.sh b/scripts/jira-release-notes.sh
index 5f048eb..c8bb532 100644
--- a/scripts/jira-release-notes.sh
+++ b/scripts/jira-release-notes.sh
@@ -1,4 +1,22 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+
 #set -x
 #trap read debug
 set -o nounset
diff --git a/scripts/ls-tags-remote.sh b/scripts/ls-tags-remote.sh
index b6e4ec0..c19caa9 100644
--- a/scripts/ls-tags-remote.sh
+++ b/scripts/ls-tags-remote.sh
@@ -1,3 +1,22 @@
+#!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+
 # ls-tags-remote
 
 REMOTE=$1
diff --git a/scripts/promoterctag.sh b/scripts/promoterctag.sh
index e8ff296..fd4a2dd 100755
--- a/scripts/promoterctag.sh
+++ b/scripts/promoterctag.sh
@@ -1,4 +1,23 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+
+
 #
 # Removes an RC tag and replaces with final one
 #
diff --git a/scripts/verify-isis-release.sh b/scripts/verify-isis-release.sh
index 671c36f..cf42ffc 100755
--- a/scripts/verify-isis-release.sh
+++ b/scripts/verify-isis-release.sh
@@ -1,4 +1,23 @@
 #!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+
+
 #
 # usage: ./verify_isis_release.sh [nexus_repo_number] [isis_version]
 #
diff --git a/security/adoc/antora.yml b/security/adoc/antora.yml
index d13a222..708a07c 100644
--- a/security/adoc/antora.yml
+++ b/security/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 title: "Security Guide"
 version: master
diff --git a/security/adoc/modules/ROOT/nav.adoc b/security/adoc/modules/ROOT/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/security/adoc/modules/ROOT/nav.adoc
+++ b/security/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/security/adoc/modules/ROOT/partials/component-nav.adoc b/security/adoc/modules/ROOT/partials/component-nav.adoc
index e3d48c8..b604a18 100644
--- a/security/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/security/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::security:ROOT:partial$module-nav.adoc[]
 
 include::security:core:partial$module-nav.adoc[]
diff --git a/security/adoc/modules/ROOT/partials/module-nav-end.adoc b/security/adoc/modules/ROOT/partials/module-nav-end.adoc
index f3af975..a7c0682 100644
--- a/security/adoc/modules/ROOT/partials/module-nav-end.adoc
+++ b/security/adoc/modules/ROOT/partials/module-nav-end.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 
 * xref:security:ROOT:usage-by-isis-viewers.adoc[Usage by Isis Viewers]
 
diff --git a/security/bypass/src/main/adoc/antora.yml b/security/bypass/src/main/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/security/bypass/src/main/adoc/antora.yml
+++ b/security/bypass/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/security/bypass/src/main/adoc/modules/bypass/partials/module-nav.adoc b/security/bypass/src/main/adoc/modules/bypass/partials/module-nav.adoc
index 342f4e5..b1fb321 100644
--- a/security/bypass/src/main/adoc/modules/bypass/partials/module-nav.adoc
+++ b/security/bypass/src/main/adoc/modules/bypass/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:security:bypass:about.adoc[Bypass Implementation]
 
diff --git a/security/keycloak/src/main/adoc/antora.yml b/security/keycloak/src/main/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/security/keycloak/src/main/adoc/antora.yml
+++ b/security/keycloak/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/security/keycloak/src/main/adoc/modules/keycloak/partials/module-nav.adoc b/security/keycloak/src/main/adoc/modules/keycloak/partials/module-nav.adoc
index 4da6a3e..0a43149 100644
--- a/security/keycloak/src/main/adoc/modules/keycloak/partials/module-nav.adoc
+++ b/security/keycloak/src/main/adoc/modules/keycloak/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 * xref:security:keycloak:about.adoc[Keycloak Implementation]
diff --git a/security/shiro/src/main/adoc/antora.yml b/security/shiro/src/main/adoc/antora.yml
index 09a6b1a..27fdf15 100644
--- a/security/shiro/src/main/adoc/antora.yml
+++ b/security/shiro/src/main/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: security
 version: master
diff --git a/security/shiro/src/main/adoc/modules/shiro/partials/module-nav.adoc b/security/shiro/src/main/adoc/modules/shiro/partials/module-nav.adoc
index 229694f..f6c7a2c 100644
--- a/security/shiro/src/main/adoc/modules/shiro/partials/module-nav.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:security:shiro:about.adoc[Shiro Implementation]
 
diff --git a/starters/adoc/antora.yml b/starters/adoc/antora.yml
index 1691412..737b35a 100644
--- a/starters/adoc/antora.yml
+++ b/starters/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: docs
 version: master
diff --git a/starters/adoc/modules/parent-pom/nav.adoc b/starters/adoc/modules/parent-pom/nav.adoc
index b573fca..fa6a178 100644
--- a/starters/adoc/modules/parent-pom/nav.adoc
+++ b/starters/adoc/modules/parent-pom/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/starters/adoc/modules/parent-pom/partials/module-nav.adoc b/starters/adoc/modules/parent-pom/partials/module-nav.adoc
index c21571a..f27b0ea 100644
--- a/starters/adoc/modules/parent-pom/partials/module-nav.adoc
+++ b/starters/adoc/modules/parent-pom/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:docs:parent-pom:about.adoc[Parent POM]
 
 
diff --git a/starters/adoc/modules/starters/nav.adoc b/starters/adoc/modules/starters/nav.adoc
index b573fca..fa6a178 100644
--- a/starters/adoc/modules/starters/nav.adoc
+++ b/starters/adoc/modules/starters/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/starters/adoc/modules/starters/partials/module-nav.adoc b/starters/adoc/modules/starters/partials/module-nav.adoc
index 255e3d4..def2f80 100644
--- a/starters/adoc/modules/starters/partials/module-nav.adoc
+++ b/starters/adoc/modules/starters/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:docs:starters:helloworld.adoc[HelloWorld]
 * xref:docs:starters:simpleapp.adoc[SimpleApp]
 
diff --git a/subdomains/adoc/antora.yml b/subdomains/adoc/antora.yml
index ec01618..b1f1ed7 100644
--- a/subdomains/adoc/antora.yml
+++ b/subdomains/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 title: "Subdomains Catalog"
 version: master
diff --git a/subdomains/adoc/modules/ROOT/nav.adoc b/subdomains/adoc/modules/ROOT/nav.adoc
index 352c9ae..1dd2a9f 100644
--- a/subdomains/adoc/modules/ROOT/nav.adoc
+++ b/subdomains/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::subdomains:ROOT:partial$component-nav.adoc[]
diff --git a/subdomains/adoc/modules/ROOT/partials/component-nav.adoc b/subdomains/adoc/modules/ROOT/partials/component-nav.adoc
index a98ab5d..efd61b3 100644
--- a/subdomains/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/subdomains/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::subdomains:ROOT:partial$module-nav.adoc[]
 
 include::subdomains:base:partial$module-nav.adoc[]
diff --git a/subdomains/base/adoc/antora.yml b/subdomains/base/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/base/adoc/antora.yml
+++ b/subdomains/base/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/base/adoc/modules/base/partials/module-nav.adoc b/subdomains/base/adoc/modules/base/partials/module-nav.adoc
index 265f8f3..18df86b 100644
--- a/subdomains/base/adoc/modules/base/partials/module-nav.adoc
+++ b/subdomains/base/adoc/modules/base/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:base:about.adoc[Base Library]
 
 
diff --git a/subdomains/docx/adoc/antora.yml b/subdomains/docx/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/docx/adoc/antora.yml
+++ b/subdomains/docx/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/docx/adoc/modules/docx/partials/module-nav.adoc b/subdomains/docx/adoc/modules/docx/partials/module-nav.adoc
index d66a7bd..b6a2957 100644
--- a/subdomains/docx/adoc/modules/docx/partials/module-nav.adoc
+++ b/subdomains/docx/adoc/modules/docx/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:docx:about.adoc[Docx Library]
 
 
diff --git a/subdomains/excel/adoc/antora.yml b/subdomains/excel/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/excel/adoc/antora.yml
+++ b/subdomains/excel/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/excel/adoc/modules/excel/partials/module-nav.adoc b/subdomains/excel/adoc/modules/excel/partials/module-nav.adoc
index a87af24..8de8d75 100644
--- a/subdomains/excel/adoc/modules/excel/partials/module-nav.adoc
+++ b/subdomains/excel/adoc/modules/excel/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:excel:about.adoc[Excel Library]
 
 
diff --git a/subdomains/freemarker/adoc/antora.yml b/subdomains/freemarker/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/freemarker/adoc/antora.yml
+++ b/subdomains/freemarker/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/freemarker/adoc/modules/freemarker/partials/module-nav.adoc b/subdomains/freemarker/adoc/modules/freemarker/partials/module-nav.adoc
index b42b922..156f05c 100644
--- a/subdomains/freemarker/adoc/modules/freemarker/partials/module-nav.adoc
+++ b/subdomains/freemarker/adoc/modules/freemarker/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:freemarker:about.adoc[Freemarker Library]
 
 
diff --git a/subdomains/ognl/adoc/antora.yml b/subdomains/ognl/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/ognl/adoc/antora.yml
+++ b/subdomains/ognl/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/ognl/adoc/modules/ognl/partials/module-nav.adoc b/subdomains/ognl/adoc/modules/ognl/partials/module-nav.adoc
index db2400e..cc2339a 100644
--- a/subdomains/ognl/adoc/modules/ognl/partials/module-nav.adoc
+++ b/subdomains/ognl/adoc/modules/ognl/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:ognl:about.adoc[OGNL Library]
 
 
diff --git a/subdomains/pdfbox/adoc/antora.yml b/subdomains/pdfbox/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/pdfbox/adoc/antora.yml
+++ b/subdomains/pdfbox/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/pdfbox/adoc/modules/pdfbox/partials/module-nav.adoc b/subdomains/pdfbox/adoc/modules/pdfbox/partials/module-nav.adoc
index c87f763..efdf795 100644
--- a/subdomains/pdfbox/adoc/modules/pdfbox/partials/module-nav.adoc
+++ b/subdomains/pdfbox/adoc/modules/pdfbox/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:pdfbox:about.adoc[PDF Box Library]
 
 
diff --git a/subdomains/spring/adoc/antora.yml b/subdomains/spring/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/spring/adoc/antora.yml
+++ b/subdomains/spring/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/spring/adoc/modules/spring/partials/module-nav.adoc b/subdomains/spring/adoc/modules/spring/partials/module-nav.adoc
index 6194c0d..36f8c5b 100644
--- a/subdomains/spring/adoc/modules/spring/partials/module-nav.adoc
+++ b/subdomains/spring/adoc/modules/spring/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:spring:about.adoc[Spring]
 
 
diff --git a/subdomains/xdocreport/adoc/antora.yml b/subdomains/xdocreport/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/xdocreport/adoc/antora.yml
+++ b/subdomains/xdocreport/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/xdocreport/adoc/modules/xdocreport/partials/module-nav.adoc b/subdomains/xdocreport/adoc/modules/xdocreport/partials/module-nav.adoc
index 928fcec..ad1bb38 100644
--- a/subdomains/xdocreport/adoc/modules/xdocreport/partials/module-nav.adoc
+++ b/subdomains/xdocreport/adoc/modules/xdocreport/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:xdocreport:about.adoc[XDocReport Library]
 
 
diff --git a/subdomains/zip/adoc/antora.yml b/subdomains/zip/adoc/antora.yml
index 9811d3c..2428799 100644
--- a/subdomains/zip/adoc/antora.yml
+++ b/subdomains/zip/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: subdomains
 version: master
diff --git a/subdomains/zip/adoc/modules/zip/partials/module-nav.adoc b/subdomains/zip/adoc/modules/zip/partials/module-nav.adoc
index d2db3e5..7abe77b 100644
--- a/subdomains/zip/adoc/modules/zip/partials/module-nav.adoc
+++ b/subdomains/zip/adoc/modules/zip/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:subdomains:zip:about.adoc[Zip Library]
 
 
diff --git a/testing/adoc/antora.yml b/testing/adoc/antora.yml
index dd10636..15ed0a7 100644
--- a/testing/adoc/antora.yml
+++ b/testing/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 title: "Testing Guide"
 version: master
diff --git a/testing/adoc/modules/ROOT/nav.adoc b/testing/adoc/modules/ROOT/nav.adoc
index 13d0804..740ef47 100644
--- a/testing/adoc/modules/ROOT/nav.adoc
+++ b/testing/adoc/modules/ROOT/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/adoc/modules/ROOT/partials/component-nav.adoc b/testing/adoc/modules/ROOT/partials/component-nav.adoc
index 3d0138e..afa8161 100644
--- a/testing/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/testing/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::testing:ROOT:partial$module-nav.adoc[]
 include::testing:unittestsupport:partial$module-nav.adoc[]
 include::testing:integtestsupport:partial$module-nav.adoc[]
diff --git a/testing/adoc/modules/ROOT/partials/module-nav.adoc b/testing/adoc/modules/ROOT/partials/module-nav.adoc
index 8b13789..ba05247 100644
--- a/testing/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/testing/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/testing/fakedata/adoc/antora.yml b/testing/fakedata/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/fakedata/adoc/antora.yml
+++ b/testing/fakedata/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/fakedata/adoc/modules/fakedata/partials/module-nav.adoc b/testing/fakedata/adoc/modules/fakedata/partials/module-nav.adoc
index 873ff60..37a0b11 100644
--- a/testing/fakedata/adoc/modules/fakedata/partials/module-nav.adoc
+++ b/testing/fakedata/adoc/modules/fakedata/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:fakedata:about.adoc[Fakedata]
 
 
diff --git a/testing/fixtures/adoc/antora.yml b/testing/fixtures/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/fixtures/adoc/antora.yml
+++ b/testing/fixtures/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/fixtures/adoc/modules/fixtures/partials/module-nav.adoc b/testing/fixtures/adoc/modules/fixtures/partials/module-nav.adoc
index 2c15f55..d8e18b5 100644
--- a/testing/fixtures/adoc/modules/fixtures/partials/module-nav.adoc
+++ b/testing/fixtures/adoc/modules/fixtures/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:fixtures:about.adoc[Fixture Scripts]
 
 * Domain Services
diff --git a/testing/h2console/adoc/antora.yml b/testing/h2console/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/h2console/adoc/antora.yml
+++ b/testing/h2console/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/h2console/adoc/modules/h2console/partials/module-nav.adoc b/testing/h2console/adoc/modules/h2console/partials/module-nav.adoc
index fe07e77..74ed788 100644
--- a/testing/h2console/adoc/modules/h2console/partials/module-nav.adoc
+++ b/testing/h2console/adoc/modules/h2console/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:h2console:about.adoc[H2 Console]
 
 * Domain Services
diff --git a/testing/hsqldbmgr/adoc/antora.yml b/testing/hsqldbmgr/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/hsqldbmgr/adoc/antora.yml
+++ b/testing/hsqldbmgr/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/partials/module-nav.adoc b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/partials/module-nav.adoc
index 1204933..9899604 100644
--- a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/partials/module-nav.adoc
+++ b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:hsqldbmgr:about.adoc[HSQLDB Manager]
 
 * Domain Services
diff --git a/testing/integtestsupport/adoc/antora.yml b/testing/integtestsupport/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/integtestsupport/adoc/antora.yml
+++ b/testing/integtestsupport/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/integtestsupport/adoc/modules/integtestsupport/partials/module-nav.adoc b/testing/integtestsupport/adoc/modules/integtestsupport/partials/module-nav.adoc
index 37575df..0539ed0 100644
--- a/testing/integtestsupport/adoc/modules/integtestsupport/partials/module-nav.adoc
+++ b/testing/integtestsupport/adoc/modules/integtestsupport/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:integtestsupport:about.adoc[Integ Test Support]
 ** xref:testing:integtestsupport:domain-model-validator.adoc[Domain Model Validator]
 ** xref:testing:integtestsupport:swagger-exporter.adoc[Swagger Exporter]
diff --git a/testing/specsupport/adoc/antora.yml b/testing/specsupport/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/specsupport/adoc/antora.yml
+++ b/testing/specsupport/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/specsupport/adoc/modules/specsupport/partials/module-nav.adoc b/testing/specsupport/adoc/modules/specsupport/partials/module-nav.adoc
index 60142d3..0dbb531 100644
--- a/testing/specsupport/adoc/modules/specsupport/partials/module-nav.adoc
+++ b/testing/specsupport/adoc/modules/specsupport/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:specsupport:about.adoc[BDD Spec Support]
 
 
diff --git a/testing/unittestsupport/adoc/antora.yml b/testing/unittestsupport/adoc/antora.yml
index 0d34b75..3b42927 100644
--- a/testing/unittestsupport/adoc/antora.yml
+++ b/testing/unittestsupport/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: testing
 version: master
diff --git a/testing/unittestsupport/adoc/modules/unittestsupport/partials/module-nav.adoc b/testing/unittestsupport/adoc/modules/unittestsupport/partials/module-nav.adoc
index 6716a6f..00cec61 100644
--- a/testing/unittestsupport/adoc/modules/unittestsupport/partials/module-nav.adoc
+++ b/testing/unittestsupport/adoc/modules/unittestsupport/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:testing:unittestsupport:about.adoc[Unit Test Support]
 
 
diff --git a/valuetypes/adoc/antora.yml b/valuetypes/adoc/antora.yml
index 2f2fc75..bb6bf02 100644
--- a/valuetypes/adoc/antora.yml
+++ b/valuetypes/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: valuetypes
 title: "Value Types Catalog"
 version: master
diff --git a/valuetypes/adoc/modules/ROOT/nav.adoc b/valuetypes/adoc/modules/ROOT/nav.adoc
index ec97924..1c40bec 100644
--- a/valuetypes/adoc/modules/ROOT/nav.adoc
+++ b/valuetypes/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::valuetypes:ROOT:partial$component-nav.adoc[]
diff --git a/valuetypes/adoc/modules/ROOT/partials/component-nav.adoc b/valuetypes/adoc/modules/ROOT/partials/component-nav.adoc
index 0f48743..5ea83fa 100644
--- a/valuetypes/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/valuetypes/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::valuetypes:ROOT:partial$module-nav.adoc[]
 
 include::valuetypes:asciidoc:partial$module-nav.adoc[]
diff --git a/valuetypes/adoc/modules/ROOT/partials/module-nav.adoc b/valuetypes/adoc/modules/ROOT/partials/module-nav.adoc
index e69de29..ca04c21 100644
--- a/valuetypes/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/valuetypes/adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/valuetypes/asciidoc/adoc/antora.yml b/valuetypes/asciidoc/adoc/antora.yml
index cc4df21..f4a330b 100644
--- a/valuetypes/asciidoc/adoc/antora.yml
+++ b/valuetypes/asciidoc/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: valuetypes
 version: master
diff --git a/valuetypes/asciidoc/adoc/modules/asciidoc/partials/module-nav.adoc b/valuetypes/asciidoc/adoc/modules/asciidoc/partials/module-nav.adoc
index 04e713c..4010ea0 100644
--- a/valuetypes/asciidoc/adoc/modules/asciidoc/partials/module-nav.adoc
+++ b/valuetypes/asciidoc/adoc/modules/asciidoc/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:vw:asciidoc:about.adoc[Asciidoc]
 
diff --git a/valuetypes/markdown/adoc/antora.yml b/valuetypes/markdown/adoc/antora.yml
index cc4df21..f4a330b 100644
--- a/valuetypes/markdown/adoc/antora.yml
+++ b/valuetypes/markdown/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: valuetypes
 version: master
diff --git a/valuetypes/markdown/adoc/modules/markdown/partials/module-nav.adoc b/valuetypes/markdown/adoc/modules/markdown/partials/module-nav.adoc
index a866512..9264eee 100644
--- a/valuetypes/markdown/adoc/modules/markdown/partials/module-nav.adoc
+++ b/valuetypes/markdown/adoc/modules/markdown/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:vw:markdown:about.adoc[Markdown]
 
diff --git a/valuetypes/sse/adoc/antora.yml b/valuetypes/sse/adoc/antora.yml
index cc4df21..f4a330b 100644
--- a/valuetypes/sse/adoc/antora.yml
+++ b/valuetypes/sse/adoc/antora.yml
@@ -1,2 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: valuetypes
 version: master
diff --git a/valuetypes/sse/adoc/modules/sse/partials/module-nav.adoc b/valuetypes/sse/adoc/modules/sse/partials/module-nav.adoc
index 36195d4..2e96e4f 100644
--- a/valuetypes/sse/adoc/modules/sse/partials/module-nav.adoc
+++ b/valuetypes/sse/adoc/modules/sse/partials/module-nav.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 * xref:vw:sse:about.adoc[SSE]
 
diff --git a/viewers/restfulobjects/adoc/antora.yml b/viewers/restfulobjects/adoc/antora.yml
index 555a652..55c2df7 100644
--- a/viewers/restfulobjects/adoc/antora.yml
+++ b/viewers/restfulobjects/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: vro
 title: "Restful Objects Viewer"
 version: master
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/partials/component-nav.adoc b/viewers/restfulobjects/adoc/modules/ROOT/partials/component-nav.adoc
index 39c7a3a..731555b 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,5 @@
+: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::vro:ROOT:partial$module-nav.adoc[]
 
 * Extensions
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc b/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc
index 83f1084..991e475 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:vro:ROOT:ro-spec.adoc[RO Spec]
 * xref:vro:ROOT:architecture.adoc[Architecture]
 * xref:vro:ROOT:layout-resources.adoc[Layout Resources]
diff --git a/viewers/wicket/adoc/antora.yml b/viewers/wicket/adoc/antora.yml
index afe732b..217fe7e 100644
--- a/viewers/wicket/adoc/antora.yml
+++ b/viewers/wicket/adoc/antora.yml
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 name: vw
 title: "Wicket Viewer"
 version: master
diff --git a/viewers/wicket/adoc/modules/ROOT/partials/component-nav.adoc b/viewers/wicket/adoc/modules/ROOT/partials/component-nav.adoc
index 993fe1b..8dfd12e 100644
--- a/viewers/wicket/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,3 +1,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::vw:ROOT:partial$module-nav.adoc[]
 
 * Extensions
diff --git a/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc b/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc
index 19701d0..5e3fa86 100644
--- a/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:vw:ROOT:layout.adoc[Layout]
 * xref:vw:ROOT:menubars-layout.adoc[Menubars Layout]
 * xref:vw:ROOT:configuration-properties.adoc[Configuration Properties]


[isis] 06/41: ISIS-2094: adds missing license statements

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

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

commit 781952be266be3f73c5fdc27b40d6fab65d962a0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 17:23:20 2020 +0000

    ISIS-2094: adds missing license statements
---
 antora/playbooks/site-legacy.yml                   |  3 +++
 antora/playbooks/site.yml                          |  3 +++
 api/adoc/refguide/modules/ROOT/nav.adoc            |  2 ++
 api/adoc/userguide/modules/ROOT/nav.adoc           |  2 ++
 api/adoc/userguide/modules/btb/nav.adoc            |  2 ++
 api/adoc/userguide/modules/fun/nav.adoc            |  2 ++
 .../applib-ant/pages/PropertyLayout/navigable.adoc |  2 --
 .../bytebuddy/IsisModuleCoreCodegenByteBuddy.java  | 18 ++++++++++++++
 .../isis/core/commons/IsisModuleCoreCommons.java   | 18 ++++++++++++++
 .../core/commons/collections/ImmutableEnumSet.java | 18 ++++++++++++++
 .../core/commons/internal/primitives/_Ints.java    | 18 ++++++++++++++
 .../core/commons/internal/primitives/_Longs.java   | 18 ++++++++++++++
 .../commons/internal/collections/_SetsTest.java    | 19 +++++++++++++--
 .../core/commons/internal/strings/FormatTest.java  | 18 ++++++++++++++
 .../main/adoc/modules/config/partials/Other.adoc   |  4 ----
 .../config/beans/IsisBeanTypeRegistryHolder.java   | 18 ++++++++++++++
 .../core/config/converters/PatternsConverter.java  | 18 ++++++++++++++
 .../ApplicationFeaturesInitConfiguration.java      | 18 ++++++++++++++
 .../PatternOptionalStringConstraintValidator.java  | 18 ++++++++++++++
 ...ion_getMaxTitleLengthInParentedTables_Test.java | 18 ++++++++++++++
 ...n_getMaxTitleLengthInStandaloneTables_Test.java | 18 ++++++++++++++
 .../WebAppContextPath_setContextPath_Test.java     | 18 ++++++++++++++
 .../src/main/adoc/modules/metamodel/nav.adoc       |  2 ++
 .../facets/value/temporal/TemporalAdjustUtil.java  | 18 ++++++++++++++
 .../persistence/transaction/AuditEntry.java        | 18 ++++++++++++++
 core/security/src/main/adoc/modules/core/nav.adoc  |  2 ++
 .../HealthIndicatorUsingHealthCheckService.java    | 18 ++++++++++++++
 examples/demo/src/main/adoc/modules/demo/nav.adoc  |  2 ++
 .../src/main/adoc/modules/smoketests/nav.adoc      |  2 ++
 .../pdfjs/applib/annotations/PdfJsViewer.java      | 18 ++++++++++++++
 .../wicket/pdfjs/applib/config/PdfJsConfig.java    | 18 ++++++++++++++
 .../viewer/wicket/pdfjs/applib/config/Scale.java   | 18 ++++++++++++++
 .../pdfjs/applib/spi/PdfJsViewerAdvisor.java       | 18 ++++++++++++++
 .../wicket/pdfjs/fixture/PdfjsFixturesModule.java  | 18 ++++++++++++++
 .../demomodule/dom/PdfJsDemoObjectWithBlob.java    | 18 ++++++++++++++
 .../dom/PdfJsDemoObjectWithBlobMenu.java           | 18 ++++++++++++++
 ...fJsDemoObjectWithBlob_createUpTo5_fakeData.java | 18 ++++++++++++++
 .../PdfJsDemoObjectWithBlob_tearDown.java          | 18 ++++++++++++++
 .../metamodel/IsisModuleExtPdfjsMetaModel.java     | 18 ++++++++++++++
 .../pdfjs/metamodel/facet/PdfJsViewerFacet.java    | 18 ++++++++++++++
 .../metamodel/facet/PdfJsViewerFacetAbstract.java  | 18 ++++++++++++++
 .../facet/PdfJsViewerFacetFromAnnotation.java      | 18 ++++++++++++++
 .../PdfJsViewerFacetFromAnnotationFactory.java     | 18 ++++++++++++++
 .../wicket/pdfjs/ui/IsisModuleExtPdfjsUi.java      | 18 ++++++++++++++
 .../pdfjs/ui/components/PdfJsViewerPanel.java      | 18 ++++++++++++++
 .../PdfJsViewerPanelComponentFactory.java          | 18 ++++++++++++++
 .../pdfjs/ui/components/PdfJsViewerReference.java  | 18 ++++++++++++++
 .../java/org/wicketstuff/pdfjs/PdfJsPanel.java     | 18 ++++++++++++++
 .../java/org/wicketstuff/pdfjs/PdfJsReference.java | 18 ++++++++++++++
 .../pdfjs/WicketStuffPdfJsReference.java           | 18 ++++++++++++++
 incubator/core/jsr303/README.adoc                  |  7 ++++--
 .../model/src/main/adoc/modules/model/nav.adoc     |  2 ++
 .../src/main/adoc/modules/microprofile/nav.adoc    |  2 ++
 .../applib/src/main/adoc/modules/applib/nav.adoc   |  2 ++
 .../commons/src/main/adoc/modules/commons/nav.adoc |  2 ++
 .../core/metamodel/src/main/adoc/antora.yml        | 19 +++++++++++++++
 .../src/main/adoc/modules/runtime/nav.adoc         |  3 +++
 .../src/main/adoc/modules/runtime/pages/about.adoc |  5 ++++
 .../adoc/modules/runtime/partials/module-nav.adoc  |  6 +++++
 .../runtime/src/main/adoc/modules/runtime/nav.adoc |  2 ++
 .../src/main/adoc/modules/restclient/nav.adoc      |  2 ++
 .../src/main/adoc/modules/servletapi/nav.adoc      |  2 ++
 .../mavenplugin/src/main/doc/modules/mvn/nav.adoc  |  2 ++
 .../jaxrsclient/adoc/modules/jaxrsclient/nav.adoc  |  2 ++
 mappings/minio/adoc/modules/minio/nav.adoc         |  2 ++
 mappings/publisher/adoc/modules/publisher/nav.adoc |  2 ++
 .../restclient/adoc/modules/restclient/nav.adoc    |  2 ++
 .../restclient/IsisModuleExtRestClient.java        | 18 ++++++++++++++
 mappings/slack/adoc/modules/slack/nav.adoc         |  2 ++
 persistence/jdo/adoc/modules/ROOT/nav.adoc         |  2 ++
 .../bypass/src/main/adoc/modules/bypass/nav.adoc   |  2 ++
 .../src/main/adoc/modules/keycloak/nav.adoc        |  2 ++
 .../keycloak/webmodule/KeycloakFilter.java         | 18 ++++++++++++++
 .../shiro/src/main/adoc/modules/shiro/nav.adoc     |  2 ++
 subdomains/base/adoc/modules/base/nav.adoc         |  2 ++
 .../isis/subdomains/base/applib/Chained.java       | 18 ++++++++++++++
 .../apache/isis/subdomains/base/applib/Dflt.java   | 18 ++++++++++++++
 .../applib/IsisModuleSubdomainsBaseApplib.java     | 18 ++++++++++++++
 .../isis/subdomains/base/applib/PowerType.java     | 18 ++++++++++++++
 .../apache/isis/subdomains/base/applib/Titled.java | 18 ++++++++++++++
 .../isis/subdomains/base/applib/TitledEnum.java    | 18 ++++++++++++++
 .../base/applib/services/BaseServicesModule.java   | 18 ++++++++++++++
 .../applib/services/calendar/CalendarService.java  | 18 ++++++++++++++
 .../base/applib/types/DescriptionType.java         | 26 ++++++++++++++++----
 .../subdomains/base/applib/types/FqcnType.java     | 26 ++++++++++++++++----
 .../subdomains/base/applib/types/MoneyType.java    | 26 ++++++++++++++++----
 .../subdomains/base/applib/types/NameType.java     | 26 ++++++++++++++++----
 .../subdomains/base/applib/types/NotesType.java    | 26 ++++++++++++++++----
 .../base/applib/types/ObjectIdentifierType.java    | 26 ++++++++++++++++----
 .../base/applib/types/PercentageType.java          | 26 ++++++++++++++++----
 .../base/applib/types/ProperNameType.java          | 26 ++++++++++++++++----
 .../base/applib/types/ReferenceType.java           | 26 ++++++++++++++++----
 .../subdomains/base/applib/types/TitleType.java    | 28 +++++++++++++++++-----
 .../base/applib/types/UrlTemplateType.java         | 28 +++++++++++++++++-----
 .../subdomains/base/applib/types/UserNameType.java | 28 +++++++++++++++++-----
 .../isis/subdomains/base/applib/types/XxxType.java | 26 ++++++++++++++++----
 subdomains/docx/adoc/modules/docx/nav.adoc         |  2 ++
 subdomains/excel/adoc/modules/excel/nav.adoc       |  2 ++
 .../applib/IsisModuleSubdomainsExcelApplib.java    | 18 ++++++++++++++
 .../excel/applib/dom/AggregationType.java          | 18 ++++++++++++++
 .../excel/applib/dom/ExcelMetaDataEnabled.java     | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/ExcelService.java  | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/HyperLink.java     | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/PivotColumn.java   | 18 ++++++++++++++
 .../excel/applib/dom/PivotDecoration.java          | 18 ++++++++++++++
 .../isis/subdomains/excel/applib/dom/PivotRow.java | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/PivotValue.java    | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/RowHandler.java    | 18 ++++++++++++++
 .../excel/applib/dom/WorksheetContent.java         | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/WorksheetSpec.java | 18 ++++++++++++++
 .../excel/applib/dom/util/AnnotationList.java      | 18 ++++++++++++++
 .../excel/applib/dom/util/AnnotationTriplet.java   | 18 ++++++++++++++
 .../excel/applib/dom/util/CellMarshaller.java      | 18 ++++++++++++++
 .../excel/applib/dom/util/ExcelConverter.java      | 18 ++++++++++++++
 .../applib/dom/util/ExcelFileBlobConverter.java    | 18 ++++++++++++++
 .../excel/applib/dom/util/ExcelServiceImpl.java    | 18 ++++++++++++++
 .../subdomains/excel/applib/dom/util/Mode.java     | 18 ++++++++++++++
 .../excel/applib/dom/util/PivotUtils.java          | 18 ++++++++++++++
 .../excel/applib/dom/util/SheetPivoter.java        | 18 ++++++++++++++
 .../excel/applib/dom/util/AnnotationListTest.java  | 18 ++++++++++++++
 .../applib/dom/util/AnnotationTripletTest.java     | 18 ++++++++++++++
 .../excel/applib/dom/util/PivotUtilsTest.java      | 18 ++++++++++++++
 .../excel/applib/dom/util/SheetPivoterTest.java    | 18 ++++++++++++++
 .../IsisModuleSubdomainsExcelFixtures.java         | 18 ++++++++++++++
 .../contributions/ExcelDemoToDoItem_export.java    | 18 ++++++++++++++
 .../contributions/ExcelDemoToDoItem_export2.java   | 18 ++++++++++++++
 .../BulkUpdateLineItemForDemoToDoItem.java         | 18 ++++++++++++++
 .../BulkUpdateManagerForDemoToDoItem.java          | 18 ++++++++++++++
 .../bulkupdate/BulkUpdateMenuForDemoToDoItem.java  | 18 ++++++++++++++
 .../pivot/ExcelPivotByCategoryAndSubcategory.java  | 18 ++++++++++++++
 .../ExcelPivotByCategoryAndSubcategoryMenu.java    | 18 ++++++++++++++
 .../demotodoitem/DemoToDoItemRowHandler.java       | 18 ++++++++++++++
 .../demotodoitem/DemoToDoItemRowHandler2.java      | 18 ++++++++++++++
 .../ExcelUploadRowHandler4ToDoItem.java            | 18 ++++++++++++++
 .../ExcelUploadServiceForDemoToDoItem.java         | 18 ++++++++++++++
 .../DemoFixture_extending_ExcelFixture2.java       | 18 ++++++++++++++
 .../DemoToDoItem_create_usingExcelFixture.java     | 18 ++++++++++++++
 .../DemoToDoItem_recreate_usingExcelFixture.java   | 18 ++++++++++++++
 .../fixtures/demoapp/todomodule/dom/Category.java  | 18 ++++++++++++++
 .../todomodule/dom/DependenciesComparator.java     | 18 ++++++++++++++
 .../demoapp/todomodule/dom/ExcelDemoToDoItem.java  | 18 ++++++++++++++
 .../todomodule/dom/ExcelDemoToDoItemMenu.java      | 18 ++++++++++++++
 .../demoapp/todomodule/dom/Subcategory.java        | 18 ++++++++++++++
 .../ExcelDemoToDoItem_recreate5_for.java           | 18 ++++++++++++++
 .../ExcelDemoToDoItem_recreate5_forSven.java       | 18 ++++++++++++++
 .../fixturescripts/ExcelDemoToDoItem_tearDown.java | 18 ++++++++++++++
 .../ExcelDemoToDoItem_tearDown2.java               | 18 ++++++++++++++
 .../integtests/ExcelModuleIntegTestAbstract.java   | 18 ++++++++++++++
 .../ExcelModuleDemoMetaDataEnabled_IntegTest.java  | 18 ++++++++++++++
 ...uleDemoToDoItemBulkUpdateManager_IntegTest.java | 18 ++++++++++++++
 .../ExcelModuleDemoUploadService_IntegTest.java    | 18 ++++++++++++++
 .../subdomains/excel/testing/ExcelFixture.java     | 18 ++++++++++++++
 .../subdomains/excel/testing/ExcelFixture2.java    | 18 ++++++++++++++
 .../excel/testing/ExcelFixtureRowHandler.java      | 18 ++++++++++++++
 .../excel/testing/ExcelFixtureWorkbookHandler.java | 18 ++++++++++++++
 .../excel/testing/FixtureAwareRowHandler.java      | 18 ++++++++++++++
 .../testing/IsisModuleSubdomainsExcelTesting.java  | 18 ++++++++++++++
 .../freemarker/adoc/modules/freemarker/nav.adoc    |  2 ++
 subdomains/ognl/adoc/modules/ognl/nav.adoc         |  2 ++
 subdomains/pdfbox/adoc/modules/pdfbox/nav.adoc     |  2 ++
 subdomains/spring/adoc/modules/spring/nav.adoc     |  2 ++
 .../xdocreport/adoc/modules/xdocreport/nav.adoc    |  1 +
 subdomains/zip/adoc/modules/zip/nav.adoc           |  2 ++
 testing/fakedata/adoc/modules/fakedata/nav.adoc    |  2 ++
 .../applib/IsisModuleTestingFakeDataApplib.java    | 18 ++++++++++++++
 .../IsisModuleTestingFakeDataFixtures.java         | 18 ++++++++++++++
 testing/fixtures/adoc/modules/fixtures/nav.adoc    |  2 ++
 testing/h2console/adoc/modules/h2console/nav.adoc  |  2 ++
 testing/hsqldbmgr/adoc/modules/hsqldbmgr/nav.adoc  |  2 ++
 .../adoc/modules/integtestsupport/nav.adoc         |  2 ++
 .../specsupport/adoc/modules/specsupport/nav.adoc  |  2 ++
 .../applib/IsisModuleTestingSpecSupportApplib.java | 18 ++++++++++++++
 .../adoc/modules/unittestsupport/nav.adoc          |  2 ++
 valuetypes/asciidoc/adoc/modules/asciidoc/nav.adoc |  2 ++
 valuetypes/markdown/adoc/modules/markdown/nav.adoc |  2 ++
 .../applib/IsisModuleValMarkdownApplib.java        | 18 ++++++++++++++
 .../markdown/ui/IsisModuleValMarkdownUi.java       | 18 ++++++++++++++
 valuetypes/sse/adoc/modules/sse/nav.adoc           |  2 ++
 viewers/restfulobjects/adoc/modules/ROOT/nav.adoc  |  4 +++-
 .../IsisModuleViewerRestfulObjectsApplib.java      | 18 ++++++++++++++
 ...isModuleViewerRestfulObjectsJaxrsResteasy4.java | 18 ++++++++++++++
 .../IsisModuleRestfulObjectsRendering.java         | 18 ++++++++++++++
 viewers/wicket/adoc/modules/ROOT/nav.adoc          |  2 ++
 .../wicket/model/IsisModuleViewerWicketModel.java  | 18 ++++++++++++++
 184 files changed, 2509 insertions(+), 69 deletions(-)

diff --git a/antora/playbooks/site-legacy.yml b/antora/playbooks/site-legacy.yml
index a796cf9..50bd78e 100644
--- a/antora/playbooks/site-legacy.yml
+++ b/antora/playbooks/site-legacy.yml
@@ -43,6 +43,9 @@ content:
       start_path: legacy/extensions/core/commons/src/main/adoc # legacy
       branches: HEAD
     - url: .
+      start_path: legacy/extensions/core/metamodel/src/main/adoc # legacy
+      branches: HEAD
+    - url: .
       start_path: legacy/extensions/core/runtime/src/main/adoc # legacy
       branches: HEAD
     - url: .
diff --git a/antora/playbooks/site.yml b/antora/playbooks/site.yml
index e34375e..b44354e 100644
--- a/antora/playbooks/site.yml
+++ b/antora/playbooks/site.yml
@@ -155,6 +155,9 @@ content:
       start_path: legacy/extensions/core/commons/src/main/adoc # legacy
       branches: HEAD
     - url: .
+      start_path: legacy/extensions/core/metamodel/src/main/adoc # legacy
+      branches: HEAD
+    - url: .
       start_path: legacy/extensions/core/runtime/src/main/adoc # legacy
       branches: HEAD
     - url: .
diff --git a/api/adoc/refguide/modules/ROOT/nav.adoc b/api/adoc/refguide/modules/ROOT/nav.adoc
index f7f91c6..36e2aec 100644
--- a/api/adoc/refguide/modules/ROOT/nav.adoc
+++ b/api/adoc/refguide/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/adoc/userguide/modules/ROOT/nav.adoc b/api/adoc/userguide/modules/ROOT/nav.adoc
index e34fb4b..143e2a5 100644
--- a/api/adoc/userguide/modules/ROOT/nav.adoc
+++ b/api/adoc/userguide/modules/ROOT/nav.adoc
@@ -1,2 +1,4 @@
+: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::userguide:ROOT:partial$component-nav.adoc[]
 
diff --git a/api/adoc/userguide/modules/btb/nav.adoc b/api/adoc/userguide/modules/btb/nav.adoc
index dba32e5..c65af13 100644
--- a/api/adoc/userguide/modules/btb/nav.adoc
+++ b/api/adoc/userguide/modules/btb/nav.adoc
@@ -1 +1,3 @@
+: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::userguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/adoc/userguide/modules/fun/nav.adoc b/api/adoc/userguide/modules/fun/nav.adoc
index dba32e5..c65af13 100644
--- a/api/adoc/userguide/modules/fun/nav.adoc
+++ b/api/adoc/userguide/modules/fun/nav.adoc
@@ -1 +1,3 @@
+: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::userguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
index f3facf1..f2f6b3e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
@@ -1,5 +1,3 @@
-: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 [...]
-
 = `navigable`
 :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 [...]
 :page-partial:
diff --git a/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/IsisModuleCoreCodegenByteBuddy.java b/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/IsisModuleCoreCodegenByteBuddy.java
index 639d85e..0a1bae9 100644
--- a/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/IsisModuleCoreCodegenByteBuddy.java
+++ b/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/IsisModuleCoreCodegenByteBuddy.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.codegen.bytebuddy;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/IsisModuleCoreCommons.java b/core/commons/src/main/java/org/apache/isis/core/commons/IsisModuleCoreCommons.java
index 34b7747..94bb826 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/IsisModuleCoreCommons.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/IsisModuleCoreCommons.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.commons;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java b/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java
index d595ee6..d2f8054 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/collections/ImmutableEnumSet.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.commons.collections;
 
 import java.util.EnumSet;
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Ints.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Ints.java
index 90f794e..f93409d 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Ints.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Ints.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.commons.internal.primitives;
 
 import java.util.OptionalInt;
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Longs.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Longs.java
index 3eadc41..f26f7ae 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Longs.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/primitives/_Longs.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.commons.internal.primitives;
 
 import java.util.OptionalLong;
diff --git a/core/commons/src/test/java/org/apache/isis/core/commons/internal/collections/_SetsTest.java b/core/commons/src/test/java/org/apache/isis/core/commons/internal/collections/_SetsTest.java
index db09280..97ac9eb 100644
--- a/core/commons/src/test/java/org/apache/isis/core/commons/internal/collections/_SetsTest.java
+++ b/core/commons/src/test/java/org/apache/isis/core/commons/internal/collections/_SetsTest.java
@@ -1,5 +1,20 @@
-/**
- * 
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
  */
 package org.apache.isis.core.commons.internal.collections;
 
diff --git a/core/commons/src/test/java/org/apache/isis/core/commons/internal/strings/FormatTest.java b/core/commons/src/test/java/org/apache/isis/core/commons/internal/strings/FormatTest.java
index 2ac796a..892610a 100644
--- a/core/commons/src/test/java/org/apache/isis/core/commons/internal/strings/FormatTest.java
+++ b/core/commons/src/test/java/org/apache/isis/core/commons/internal/strings/FormatTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.commons.internal.strings;
 
 
diff --git a/core/config/src/main/adoc/modules/config/partials/Other.adoc b/core/config/src/main/adoc/modules/config/partials/Other.adoc
deleted file mode 100644
index 3b739d3..0000000
--- a/core/config/src/main/adoc/modules/config/partials/Other.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-| isis.objects.editing
-|
-|
-
diff --git a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistryHolder.java b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistryHolder.java
index 7a65713..9961fc9 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistryHolder.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistryHolder.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config.beans;
 
 public interface IsisBeanTypeRegistryHolder {
diff --git a/core/config/src/main/java/org/apache/isis/core/config/converters/PatternsConverter.java b/core/config/src/main/java/org/apache/isis/core/config/converters/PatternsConverter.java
index 1bbd316..839099a 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/converters/PatternsConverter.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/converters/PatternsConverter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config.converters;
 
 import java.util.Map;
diff --git a/core/config/src/main/java/org/apache/isis/core/config/metamodel/services/ApplicationFeaturesInitConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/metamodel/services/ApplicationFeaturesInitConfiguration.java
index e5012f5..e6a315e 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/metamodel/services/ApplicationFeaturesInitConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/metamodel/services/ApplicationFeaturesInitConfiguration.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config.metamodel.services;
 
 public enum ApplicationFeaturesInitConfiguration {
diff --git a/core/config/src/main/java/org/apache/isis/core/config/validators/PatternOptionalStringConstraintValidator.java b/core/config/src/main/java/org/apache/isis/core/config/validators/PatternOptionalStringConstraintValidator.java
index 14b53a9..3e970d3 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/validators/PatternOptionalStringConstraintValidator.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/validators/PatternOptionalStringConstraintValidator.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config.validators;
 
 import java.util.Optional;
diff --git a/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInParentedTables_Test.java b/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInParentedTables_Test.java
index 1018905..5419016 100644
--- a/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInParentedTables_Test.java
+++ b/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInParentedTables_Test.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config;
 
 import org.assertj.core.api.Assertions;
diff --git a/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInStandaloneTables_Test.java b/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInStandaloneTables_Test.java
index 41dbe5c..16b9747 100644
--- a/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInStandaloneTables_Test.java
+++ b/core/config/src/test/java/org/apache/isis/core/config/IsisConfiguration_getMaxTitleLengthInStandaloneTables_Test.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config;
 
 import org.assertj.core.api.Assertions;
diff --git a/core/config/src/test/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath_setContextPath_Test.java b/core/config/src/test/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath_setContextPath_Test.java
index ac13eec..28c2347 100644
--- a/core/config/src/test/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath_setContextPath_Test.java
+++ b/core/config/src/test/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath_setContextPath_Test.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.config.viewer.wicket;
 
 import org.assertj.core.api.Assertions;
diff --git a/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc b/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
index 3e815f1..5a9d48d 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
@@ -1 +1,3 @@
+: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[]
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java
index 9b114f3..2780303 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalAdjustUtil.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.metamodel.facets.value.temporal;
 
 import java.time.temporal.Temporal;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/AuditEntry.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/AuditEntry.java
index 218359c..f249922 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/AuditEntry.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/AuditEntry.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.runtime.persistence.transaction;
 
 import lombok.NonNull;
diff --git a/core/security/src/main/adoc/modules/core/nav.adoc b/core/security/src/main/adoc/modules/core/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/core/security/src/main/adoc/modules/core/nav.adoc
+++ b/core/security/src/main/adoc/modules/core/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java b/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java
index 65bf1f0..0f849c7 100644
--- a/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java
+++ b/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.core.webapp.health;
 
 import java.util.Optional;
diff --git a/examples/demo/src/main/adoc/modules/demo/nav.adoc b/examples/demo/src/main/adoc/modules/demo/nav.adoc
index b573fca..fa6a178 100644
--- a/examples/demo/src/main/adoc/modules/demo/nav.adoc
+++ b/examples/demo/src/main/adoc/modules/demo/nav.adoc
@@ -1 +1,3 @@
+: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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc b/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc
index cab6130..a9c2f1b 100644
--- a/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc
+++ b/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc
@@ -1,3 +1,5 @@
+: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[]
 
 
diff --git a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/annotations/PdfJsViewer.java b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/annotations/PdfJsViewer.java
index 3ed31f8..4f1df63 100644
--- a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/annotations/PdfJsViewer.java
+++ b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/annotations/PdfJsViewer.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.applib.annotations;
 
 import java.lang.annotation.ElementType;
diff --git a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/PdfJsConfig.java b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/PdfJsConfig.java
index 64e7a1c..fc7dfcd 100644
--- a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/PdfJsConfig.java
+++ b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/PdfJsConfig.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.applib.config;
 
 import org.apache.wicket.util.lang.Args;
diff --git a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/Scale.java b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/Scale.java
index a795d60..3b6779d 100644
--- a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/Scale.java
+++ b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/config/Scale.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.applib.config;
 
 import org.apache.wicket.util.lang.Objects;
diff --git a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/spi/PdfJsViewerAdvisor.java b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/spi/PdfJsViewerAdvisor.java
index 5570f83..33b54c4 100644
--- a/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/spi/PdfJsViewerAdvisor.java
+++ b/extensions/vw/pdfjs/applib/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/applib/spi/PdfJsViewerAdvisor.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.applib.spi;
 
 import java.io.Serializable;
diff --git a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/PdfjsFixturesModule.java b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/PdfjsFixturesModule.java
index bb7fc30..bfeb4bc 100644
--- a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/PdfjsFixturesModule.java
+++ b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/PdfjsFixturesModule.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.isisaddons.wicket.pdfjs.fixture;
 
 import javax.xml.bind.annotation.XmlRootElement;
diff --git a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlob.java b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlob.java
index 2981706..01d4cd8 100644
--- a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlob.java
+++ b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlob.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.isisaddons.wicket.pdfjs.fixture.demoapp.demomodule.dom;
 
 import java.net.MalformedURLException;
diff --git a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlobMenu.java b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlobMenu.java
index 5c92c84..de6a8fe 100644
--- a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlobMenu.java
+++ b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/dom/PdfJsDemoObjectWithBlobMenu.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.isisaddons.wicket.pdfjs.fixture.demoapp.demomodule.dom;
 
 import java.util.List;
diff --git a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_createUpTo5_fakeData.java b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_createUpTo5_fakeData.java
index 85fdcd4..7593b72 100644
--- a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_createUpTo5_fakeData.java
+++ b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_createUpTo5_fakeData.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.isisaddons.wicket.pdfjs.fixture.demoapp.demomodule.fixturescripts;
 
 import java.io.IOException;
diff --git a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_tearDown.java b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_tearDown.java
index 9b5b2dc..1087297 100644
--- a/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_tearDown.java
+++ b/extensions/vw/pdfjs/fixtures/src/main/java/org/isisaddons/wicket/pdfjs/fixture/demoapp/demomodule/fixturescripts/PdfJsDemoObjectWithBlob_tearDown.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.isisaddons.wicket.pdfjs.fixture.demoapp.demomodule.fixturescripts;
 
 import org.apache.isis.applib.fixturescripts.teardown.TeardownFixtureAbstract2;
diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/IsisModuleExtPdfjsMetaModel.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/IsisModuleExtPdfjsMetaModel.java
index bd34ea9..7cf228d 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/IsisModuleExtPdfjsMetaModel.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/IsisModuleExtPdfjsMetaModel.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.metamodel;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacet.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacet.java
index ad08ec7..9ed918b 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacet.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacet.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.metamodel.facet;
 
 import org.apache.isis.extensions.viewer.wicket.pdfjs.applib.config.PdfJsConfig;
diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetAbstract.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetAbstract.java
index e2fb9f1..d0941d6 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetAbstract.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetAbstract.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.metamodel.facet;
 
 import org.apache.isis.extensions.viewer.wicket.pdfjs.applib.config.PdfJsConfig;
diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java
index 71425d9..2721aa4 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotation.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.metamodel.facet;
 
 import java.util.List;
diff --git a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotationFactory.java b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotationFactory.java
index fa4a620..1b25a7c 100644
--- a/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotationFactory.java
+++ b/extensions/vw/pdfjs/metamodel/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/metamodel/facet/PdfJsViewerFacetFromAnnotationFactory.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.metamodel.facet;
 
 import java.lang.reflect.Method;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/IsisModuleExtPdfjsUi.java b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/IsisModuleExtPdfjsUi.java
index 79601df..53ea359 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/IsisModuleExtPdfjsUi.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/IsisModuleExtPdfjsUi.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.ui;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java
index ed2261a..8e697d8 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.ui.components;
 
 import java.io.IOException;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelComponentFactory.java b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelComponentFactory.java
index da8e90e..e553479 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelComponentFactory.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelComponentFactory.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.ui.components;
 
 import java.util.Objects;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerReference.java b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerReference.java
index 5bbe7dd..b1e6de0 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerReference.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerReference.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.viewer.wicket.pdfjs.ui.components;
 
 import java.util.List;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsPanel.java b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsPanel.java
index 34e3e8a..9c8c062 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsPanel.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsPanel.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.wicketstuff.pdfjs;
 
 import org.apache.wicket.markup.head.IHeaderResponse;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsReference.java b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsReference.java
index a579147..9edcedf 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsReference.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/PdfJsReference.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.wicketstuff.pdfjs;
 
 import java.util.List;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/WicketStuffPdfJsReference.java b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/WicketStuffPdfJsReference.java
index 29744f7..c2a335f 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/WicketStuffPdfJsReference.java
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/WicketStuffPdfJsReference.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.wicketstuff.pdfjs;
 
 import org.apache.wicket.markup.head.HeaderItem;
diff --git a/incubator/core/jsr303/README.adoc b/incubator/core/jsr303/README.adoc
index 1bcd51f..f2ffc0b 100644
--- a/incubator/core/jsr303/README.adoc
+++ b/incubator/core/jsr303/README.adoc
@@ -1,3 +1,6 @@
-= jsr303
+= JSR303
+: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 [...]
 
-TODO: this is a sketch from a long while back.  I think it could be easily brought to life, though.
\ No newline at end of file
+
+TODO: this is a sketch from a long while back.
+I think it could be easily brought to life, though.
diff --git a/incubator/core/model/src/main/adoc/modules/model/nav.adoc b/incubator/core/model/src/main/adoc/modules/model/nav.adoc
index a946dfb..a947dcb 100644
--- a/incubator/core/model/src/main/adoc/modules/model/nav.adoc
+++ b/incubator/core/model/src/main/adoc/modules/model/nav.adoc
@@ -1 +1,3 @@
+: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::incubator:ROOT:partial$component-nav.adoc[]
diff --git a/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/nav.adoc b/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/nav.adoc
index a946dfb..a947dcb 100644
--- a/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/nav.adoc
+++ b/incubator/mappings/microprofile/src/main/adoc/modules/microprofile/nav.adoc
@@ -1 +1,3 @@
+: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::incubator:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/extensions/core/applib/src/main/adoc/modules/applib/nav.adoc b/legacy/extensions/core/applib/src/main/adoc/modules/applib/nav.adoc
index 42fa9f2..2f52537 100644
--- a/legacy/extensions/core/applib/src/main/adoc/modules/applib/nav.adoc
+++ b/legacy/extensions/core/applib/src/main/adoc/modules/applib/nav.adoc
@@ -1 +1,3 @@
+: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::legacy:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/extensions/core/commons/src/main/adoc/modules/commons/nav.adoc b/legacy/extensions/core/commons/src/main/adoc/modules/commons/nav.adoc
index 42fa9f2..2f52537 100644
--- a/legacy/extensions/core/commons/src/main/adoc/modules/commons/nav.adoc
+++ b/legacy/extensions/core/commons/src/main/adoc/modules/commons/nav.adoc
@@ -1 +1,3 @@
+: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::legacy:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/antora.yml b/legacy/extensions/core/metamodel/src/main/adoc/antora.yml
new file mode 100644
index 0000000..2c98dd6
--- /dev/null
+++ b/legacy/extensions/core/metamodel/src/main/adoc/antora.yml
@@ -0,0 +1,19 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+name: legacy
+version: master
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/nav.adoc b/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/nav.adoc
new file mode 100644
index 0000000..2f52537
--- /dev/null
+++ b/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/nav.adoc
@@ -0,0 +1,3 @@
+: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::legacy:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/pages/about.adoc b/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/pages/about.adoc
new file mode 100644
index 0000000..72804ac
--- /dev/null
+++ b/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/pages/about.adoc
@@ -0,0 +1,5 @@
+= MetaModel
+: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 [...]
+
+TODO: v2: placeholder for documentation about legacy/commons
+
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/partials/module-nav.adoc b/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/partials/module-nav.adoc
new file mode 100644
index 0000000..b9d6bd6
--- /dev/null
+++ b/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/partials/module-nav.adoc
@@ -0,0 +1,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 [...]
+
+* xref:legacy:metamodel:about.adoc[MetaModel]
+
+
+
diff --git a/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/nav.adoc b/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/nav.adoc
index 42fa9f2..2f52537 100644
--- a/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/nav.adoc
+++ b/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/nav.adoc
@@ -1 +1,3 @@
+: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::legacy:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/mappings/restclient/src/main/adoc/modules/restclient/nav.adoc b/legacy/mappings/restclient/src/main/adoc/modules/restclient/nav.adoc
index 42fa9f2..2f52537 100644
--- a/legacy/mappings/restclient/src/main/adoc/modules/restclient/nav.adoc
+++ b/legacy/mappings/restclient/src/main/adoc/modules/restclient/nav.adoc
@@ -1 +1,3 @@
+: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::legacy:ROOT:partial$component-nav.adoc[]
diff --git a/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/nav.adoc b/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/nav.adoc
+++ b/legacy/subdomains/servletapi/src/main/adoc/modules/servletapi/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/nav.adoc b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/nav.adoc
index 13d0804..740ef47 100644
--- a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/nav.adoc
+++ b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/mappings/jaxrsclient/adoc/modules/jaxrsclient/nav.adoc b/mappings/jaxrsclient/adoc/modules/jaxrsclient/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/mappings/jaxrsclient/adoc/modules/jaxrsclient/nav.adoc
+++ b/mappings/jaxrsclient/adoc/modules/jaxrsclient/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/mappings/minio/adoc/modules/minio/nav.adoc b/mappings/minio/adoc/modules/minio/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/mappings/minio/adoc/modules/minio/nav.adoc
+++ b/mappings/minio/adoc/modules/minio/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/mappings/publisher/adoc/modules/publisher/nav.adoc b/mappings/publisher/adoc/modules/publisher/nav.adoc
index c06de12..2bb78b2 100644
--- a/mappings/publisher/adoc/modules/publisher/nav.adoc
+++ b/mappings/publisher/adoc/modules/publisher/nav.adoc
@@ -1 +1,3 @@
+: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::mappings:ROOT:partial$component-nav.adoc[]
diff --git a/mappings/restclient/adoc/modules/restclient/nav.adoc b/mappings/restclient/adoc/modules/restclient/nav.adoc
index 3a5d0ea..6bdec65 100644
--- a/mappings/restclient/adoc/modules/restclient/nav.adoc
+++ b/mappings/restclient/adoc/modules/restclient/nav.adoc
@@ -1 +1,3 @@
+: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::vro:ROOT:partial$component-nav.adoc[]
diff --git a/mappings/restclient/api/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java b/mappings/restclient/api/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java
index d0b6aa6..2de0526 100644
--- a/mappings/restclient/api/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java
+++ b/mappings/restclient/api/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.restclient;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/mappings/slack/adoc/modules/slack/nav.adoc b/mappings/slack/adoc/modules/slack/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/mappings/slack/adoc/modules/slack/nav.adoc
+++ b/mappings/slack/adoc/modules/slack/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/persistence/jdo/adoc/modules/ROOT/nav.adoc b/persistence/jdo/adoc/modules/ROOT/nav.adoc
index 7986c6c..b8668fb 100644
--- a/persistence/jdo/adoc/modules/ROOT/nav.adoc
+++ b/persistence/jdo/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::pjdo:ROOT:partial$component-nav.adoc[]
diff --git a/security/bypass/src/main/adoc/modules/bypass/nav.adoc b/security/bypass/src/main/adoc/modules/bypass/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/security/bypass/src/main/adoc/modules/bypass/nav.adoc
+++ b/security/bypass/src/main/adoc/modules/bypass/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/security/keycloak/src/main/adoc/modules/keycloak/nav.adoc b/security/keycloak/src/main/adoc/modules/keycloak/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/security/keycloak/src/main/adoc/modules/keycloak/nav.adoc
+++ b/security/keycloak/src/main/adoc/modules/keycloak/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/KeycloakFilter.java b/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/KeycloakFilter.java
index 8f021fc..995121c 100644
--- a/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/KeycloakFilter.java
+++ b/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/KeycloakFilter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.security.keycloak.webmodule;
 
 import java.io.IOException;
diff --git a/security/shiro/src/main/adoc/modules/shiro/nav.adoc b/security/shiro/src/main/adoc/modules/shiro/nav.adoc
index 4ec4e15..6f4f86a 100644
--- a/security/shiro/src/main/adoc/modules/shiro/nav.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/nav.adoc
@@ -1 +1,3 @@
+: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::security:ROOT:partial$component-nav.adoc[]
diff --git a/subdomains/base/adoc/modules/base/nav.adoc b/subdomains/base/adoc/modules/base/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/base/adoc/modules/base/nav.adoc
+++ b/subdomains/base/adoc/modules/base/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Chained.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Chained.java
index bd29567..b936e8e 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Chained.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Chained.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 import org.apache.isis.applib.annotation.Editing;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Dflt.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Dflt.java
index 6b6f721..71f59da 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Dflt.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Dflt.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 import java.util.Collection;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/IsisModuleSubdomainsBaseApplib.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/IsisModuleSubdomainsBaseApplib.java
index 3af6745..ce171d5 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/IsisModuleSubdomainsBaseApplib.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/IsisModuleSubdomainsBaseApplib.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/PowerType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/PowerType.java
index 76bb1c4..75daaad 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/PowerType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/PowerType.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 import org.apache.isis.applib.services.factory.FactoryService;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Titled.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Titled.java
index 6a51da8..7556838 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Titled.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/Titled.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 public interface Titled {
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/TitledEnum.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/TitledEnum.java
index d16dd74..ef8b209 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/TitledEnum.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/TitledEnum.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 import org.apache.isis.subdomains.base.applib.utils.StringUtils;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/BaseServicesModule.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/BaseServicesModule.java
index 637fda6..bd0065c 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/BaseServicesModule.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/BaseServicesModule.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.services;
 
 import org.springframework.context.annotation.ComponentScan;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java
index 27a40a4..02fb055 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarService.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.services.calendar;
 
 import java.time.LocalDate;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/DescriptionType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/DescriptionType.java
index a782149..b553516 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/DescriptionType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/DescriptionType.java
@@ -1,16 +1,34 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class DescriptionType {
+import lombok.experimental.UtilityClass;
 
-    private DescriptionType() {}
+@UtilityClass
+public class DescriptionType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 254;
         public static final int MULTI_LINE = 5;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/FqcnType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/FqcnType.java
index e41987f..33f19aa 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/FqcnType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/FqcnType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class FqcnType {
+import lombok.experimental.UtilityClass;
 
-    private FqcnType() {}
+@UtilityClass
+public class FqcnType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 254;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/MoneyType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/MoneyType.java
index 845e969..217545a 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/MoneyType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/MoneyType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class MoneyType {
+import lombok.experimental.UtilityClass;
 
-    private MoneyType() {}
+@UtilityClass
+public class MoneyType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int SCALE = 2;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NameType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NameType.java
index ccaa26f..db835d0 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NameType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NameType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class NameType {
+import lombok.experimental.UtilityClass;
 
-    private NameType() {}
+@UtilityClass
+public class NameType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 50;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NotesType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NotesType.java
index 2227a82..15c8c25 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NotesType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/NotesType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class NotesType {
+import lombok.experimental.UtilityClass;
 
-    private NotesType() {}
+@UtilityClass
+public class NotesType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 4000;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ObjectIdentifierType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ObjectIdentifierType.java
index 11a0eb8..0dc1e3b 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ObjectIdentifierType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ObjectIdentifierType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class ObjectIdentifierType {
+import lombok.experimental.UtilityClass;
 
-    private ObjectIdentifierType() {}
+@UtilityClass
+public class ObjectIdentifierType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 20;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/PercentageType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/PercentageType.java
index 0881636..46002dc 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/PercentageType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/PercentageType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class PercentageType {
+import lombok.experimental.UtilityClass;
 
-    private PercentageType() {}
+@UtilityClass
+public class PercentageType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int SCALE = 2;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ProperNameType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ProperNameType.java
index 105617d..374965f 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ProperNameType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ProperNameType.java
@@ -1,15 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class ProperNameType {
+import lombok.experimental.UtilityClass;
 
-    private ProperNameType() {}
+@UtilityClass
+public class ProperNameType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 50;
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ReferenceType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ReferenceType.java
index 746dbdb..eb5e67d 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ReferenceType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/ReferenceType.java
@@ -1,9 +1,29 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class ReferenceType {
+import lombok.experimental.UtilityClass;
 
-    private ReferenceType() {}
+@UtilityClass
+public class ReferenceType {
 
+    @UtilityClass
     public static class Meta {
 
         public static final int MAX_LEN = 24;
@@ -11,8 +31,6 @@ public class ReferenceType {
         public static final String REGEX = "[ -/_A-Z0-9]+";
         public static final String REGEX_DESCRIPTION = "Only capital letters, numbers and 3 symbols being: \"_\" , \"-\" and \"/\" are allowed";
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/TitleType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/TitleType.java
index 7259cbb..884e823 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/TitleType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/TitleType.java
@@ -1,15 +1,31 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class TitleType {
+import lombok.experimental.UtilityClass;
 
-    private TitleType() {}
+@UtilityClass
+public class TitleType {
 
+    @UtilityClass
     public static class Meta {
-
         public static final int MAX_LEN = 50;
-
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UrlTemplateType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UrlTemplateType.java
index 0fc8493..390f7ef 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UrlTemplateType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UrlTemplateType.java
@@ -1,15 +1,31 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class UrlTemplateType {
+import lombok.experimental.UtilityClass;
 
-    private UrlTemplateType() {}
+@UtilityClass
+public class UrlTemplateType {
 
+    @UtilityClass
     public static class Meta {
-
         public static final int MAX_LEN = 254;
-
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UserNameType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UserNameType.java
index f07a64c..3fadb11 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UserNameType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/UserNameType.java
@@ -1,15 +1,31 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class UserNameType {
+import lombok.experimental.UtilityClass;
 
-    private UserNameType() {}
+@UtilityClass
+public class UserNameType {
 
+    @UtilityClass
     public static class Meta {
-
         public static final int MAX_LEN = 50;
-
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/XxxType.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/XxxType.java
index 41799d5..f05d812 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/XxxType.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/types/XxxType.java
@@ -1,13 +1,31 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.types;
 
-public class XxxType {
+import lombok.experimental.UtilityClass;
 
-    private XxxType() {}
+@UtilityClass
+public class XxxType {
 
+    @UtilityClass
     public static class Meta {
 
-        private Meta() {}
-
     }
 
 }
diff --git a/subdomains/docx/adoc/modules/docx/nav.adoc b/subdomains/docx/adoc/modules/docx/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/docx/adoc/modules/docx/nav.adoc
+++ b/subdomains/docx/adoc/modules/docx/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/excel/adoc/modules/excel/nav.adoc b/subdomains/excel/adoc/modules/excel/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/excel/adoc/modules/excel/nav.adoc
+++ b/subdomains/excel/adoc/modules/excel/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubdomainsExcelApplib.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubdomainsExcelApplib.java
index 3e7d23e..94a450b 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubdomainsExcelApplib.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/IsisModuleSubdomainsExcelApplib.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib;
 
 import org.springframework.context.annotation.ComponentScan;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java
index 9921c3c..9a07a4a 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/AggregationType.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 public enum AggregationType {
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java
index c80e3a4..1acb438 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelMetaDataEnabled.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java
index c46d628..2627f66 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/ExcelService.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.io.ByteArrayInputStream;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java
index 52fc543..d8811d4 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/HyperLink.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java
index 80da3e7..3927224 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotColumn.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java
index cdf97f6..1e7f218 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotDecoration.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java
index 5a67e5d..c95d150 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotRow.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java
index 82ae0e4..063495c 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/PivotValue.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.lang.annotation.Retention;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java
index 46fe479..81dcdc5 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/RowHandler.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 public interface RowHandler<T extends RowHandler<T>> {
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java
index b9701a9..f3bdb90 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetContent.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.util.List;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java
index aba72ec..6cf8966 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/WorksheetSpec.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom;
 
 import java.util.List;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java
index 7129633..c3a3a7d 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationList.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.ArrayList;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java
index 651cbcb..77820f8 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTriplet.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 public class AnnotationTriplet implements Comparable<AnnotationTriplet>{
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java
index 48a53ca..a785d09 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/CellMarshaller.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
index cf092e6..3731621 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelConverter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.io.ByteArrayInputStream;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java
index 035d64b..5cb2711 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelFileBlobConverter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.io.ByteArrayOutputStream;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java
index e245894..837128e 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/ExcelServiceImpl.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.io.File;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java
index d519e7e..4e7d076 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/Mode.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 /**
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java
index b13017c..4085327 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtils.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.List;
diff --git a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java
index 678d01e..ae432e8 100644
--- a/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java
+++ b/subdomains/excel/applib/src/main/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.ArrayList;
diff --git a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java
index 1380664..2d2883a 100644
--- a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationListTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
diff --git a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java
index 4838f29..a6ba754 100644
--- a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/AnnotationTripletTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
diff --git a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java
index 2d90767..8351f0c 100644
--- a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/PivotUtilsTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
diff --git a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java
index 6b66420..7f5225e 100644
--- a/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java
+++ b/subdomains/excel/applib/src/test/java/org/apache/isis/subdomains/excel/applib/dom/util/SheetPivoterTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.applib.dom.util;
 
 import java.util.Arrays;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubdomainsExcelFixtures.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubdomainsExcelFixtures.java
index f66e979..3a53e00 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubdomainsExcelFixtures.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/IsisModuleSubdomainsExcelFixtures.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures;
 
 import org.springframework.context.annotation.ComponentScan;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
index 9239582..3af5e00 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.contributions;
 
 import javax.inject.Inject;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
index e5ee13d..2e08e1c 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/contributions/ExcelDemoToDoItem_export2.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.contributions;
 
 import javax.inject.Inject;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
index 0eccfd3..bf447c6 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
index 2e2f930..1225ef2 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
 import java.util.List;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
index a1da3b8..58803d6 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.bulkupdate;
 
 import javax.inject.Inject;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
index 4eb68b9..1f4939d 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategory.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.pivot;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
index e6b1d3f..eac1286 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.dom.pivot;
 
 import java.util.ArrayList;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
index ea7cdcd..1f79ae9 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
index 24d0fc6..649b05a 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/demotodoitem/DemoToDoItemRowHandler2.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.demotodoitem;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
index 9557604..a1710f2 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadRowHandler4ToDoItem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
index 40b3efa..39fdce2 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturehandlers.excelupload;
 
 import java.util.List;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
index 7a308df..967fcb6 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoFixture_extending_ExcelFixture2.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts;
 
 import com.google.common.io.Resources;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
index f159d50..466125e 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_create_usingExcelFixture.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts;
 
 import java.net.URL;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
index 794ad54..098bebf 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/fixturescripts/DemoToDoItem_recreate_usingExcelFixture.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.demomodule.fixturescripts;
 
 
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java
index d102cdf..ae4fcad 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Category.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.util.Arrays;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
index 462c613..6dd9944 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/DependenciesComparator.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.util.Comparator;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
index 6a871ce..a533e65 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
index 253b3c4..8ca6588 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
index fb4d6aa..5e77853 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/Subcategory.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom;
 
 import java.util.Collections;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
index 2f253ad..10d8252 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_for.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 import java.math.BigDecimal;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
index 9a56036..f4afbd9 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_recreate5_forSven.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 public class ExcelDemoToDoItem_recreate5_forSven extends ExcelDemoToDoItem_recreate5_for {
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
index 02d9fcf..77ea94e 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 import org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
index 48b5ac7..7aa07c3 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 import javax.inject.Inject;
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java
index ef64591..9272aee 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/ExcelModuleIntegTestAbstract.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.integtests;
 
 import org.springframework.boot.test.context.SpringBootTest;
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
index dbc4a3f..2a8ba3a 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.integtests.tests;
 
 import java.util.ArrayList;
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
index e8a1650..809e9e9 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoToDoItemBulkUpdateManager_IntegTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.integtests.tests;
 
 import java.io.ByteArrayOutputStream;
diff --git a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
index bd02fcf..99661bb 100644
--- a/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
+++ b/subdomains/excel/integtests/src/test/java/org/apache/isis/subdomains/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.integtests.tests;
 
 import java.net.URL;
diff --git a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java
index 03d7d5f..ed5673e 100644
--- a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.testing;
 
 import java.io.IOException;
diff --git a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java
index 0afed88..12f0e2d 100644
--- a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixture2.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.testing;
 
 import java.io.IOException;
diff --git a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java
index 0b80230..63cbde1 100644
--- a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureRowHandler.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.testing;
 
 import java.util.List;
diff --git a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java
index b5df801..6b91843 100644
--- a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/ExcelFixtureWorkbookHandler.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.testing;
 
 import java.util.List;
diff --git a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java
index ea8d2ab..d8d0575 100644
--- a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/FixtureAwareRowHandler.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.testing;
 
 
diff --git a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubdomainsExcelTesting.java b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubdomainsExcelTesting.java
index c1bcd52..562cc7b 100644
--- a/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubdomainsExcelTesting.java
+++ b/subdomains/excel/testing/src/main/java/org/apache/isis/subdomains/excel/testing/IsisModuleSubdomainsExcelTesting.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.excel.testing;
 
 import org.springframework.context.annotation.ComponentScan;
diff --git a/subdomains/freemarker/adoc/modules/freemarker/nav.adoc b/subdomains/freemarker/adoc/modules/freemarker/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/freemarker/adoc/modules/freemarker/nav.adoc
+++ b/subdomains/freemarker/adoc/modules/freemarker/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/ognl/adoc/modules/ognl/nav.adoc b/subdomains/ognl/adoc/modules/ognl/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/ognl/adoc/modules/ognl/nav.adoc
+++ b/subdomains/ognl/adoc/modules/ognl/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/pdfbox/adoc/modules/pdfbox/nav.adoc b/subdomains/pdfbox/adoc/modules/pdfbox/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/pdfbox/adoc/modules/pdfbox/nav.adoc
+++ b/subdomains/pdfbox/adoc/modules/pdfbox/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/spring/adoc/modules/spring/nav.adoc b/subdomains/spring/adoc/modules/spring/nav.adoc
index 8189461..3a927e5 100644
--- a/subdomains/spring/adoc/modules/spring/nav.adoc
+++ b/subdomains/spring/adoc/modules/spring/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:spring:partial$component-nav.adoc[]
 
diff --git a/subdomains/xdocreport/adoc/modules/xdocreport/nav.adoc b/subdomains/xdocreport/adoc/modules/xdocreport/nav.adoc
index 4cd6b10..1808f71 100644
--- a/subdomains/xdocreport/adoc/modules/xdocreport/nav.adoc
+++ b/subdomains/xdocreport/adoc/modules/xdocreport/nav.adoc
@@ -1,2 +1,3 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/subdomains/zip/adoc/modules/zip/nav.adoc b/subdomains/zip/adoc/modules/zip/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/subdomains/zip/adoc/modules/zip/nav.adoc
+++ b/subdomains/zip/adoc/modules/zip/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/fakedata/adoc/modules/fakedata/nav.adoc b/testing/fakedata/adoc/modules/fakedata/nav.adoc
index 13d0804..740ef47 100644
--- a/testing/fakedata/adoc/modules/fakedata/nav.adoc
+++ b/testing/fakedata/adoc/modules/fakedata/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/IsisModuleTestingFakeDataApplib.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/IsisModuleTestingFakeDataApplib.java
index b85eade..f2d66b0 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/IsisModuleTestingFakeDataApplib.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/IsisModuleTestingFakeDataApplib.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib;
 
 import org.springframework.context.annotation.ComponentScan;
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/IsisModuleTestingFakeDataFixtures.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/IsisModuleTestingFakeDataFixtures.java
index 21ce1c3..090aff5 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/IsisModuleTestingFakeDataFixtures.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/IsisModuleTestingFakeDataFixtures.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures;
 
 import org.springframework.context.annotation.ComponentScan;
diff --git a/testing/fixtures/adoc/modules/fixtures/nav.adoc b/testing/fixtures/adoc/modules/fixtures/nav.adoc
index 13d0804..740ef47 100644
--- a/testing/fixtures/adoc/modules/fixtures/nav.adoc
+++ b/testing/fixtures/adoc/modules/fixtures/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/h2console/adoc/modules/h2console/nav.adoc b/testing/h2console/adoc/modules/h2console/nav.adoc
index 4cd6b10..62a4a70 100644
--- a/testing/h2console/adoc/modules/h2console/nav.adoc
+++ b/testing/h2console/adoc/modules/h2console/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/nav.adoc b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/nav.adoc
index 206afc5..0463c55 100644
--- a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/nav.adoc
+++ b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/nav.adoc
@@ -1,2 +1,4 @@
+: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::extensions:hsqldbmgr:partial$component-nav.adoc[]
 
diff --git a/testing/integtestsupport/adoc/modules/integtestsupport/nav.adoc b/testing/integtestsupport/adoc/modules/integtestsupport/nav.adoc
index 13d0804..740ef47 100644
--- a/testing/integtestsupport/adoc/modules/integtestsupport/nav.adoc
+++ b/testing/integtestsupport/adoc/modules/integtestsupport/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/specsupport/adoc/modules/specsupport/nav.adoc b/testing/specsupport/adoc/modules/specsupport/nav.adoc
index 13d0804..740ef47 100644
--- a/testing/specsupport/adoc/modules/specsupport/nav.adoc
+++ b/testing/specsupport/adoc/modules/specsupport/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/testing/specsupport/applib/src/main/java/org/apache/isis/testing/specsupport/applib/IsisModuleTestingSpecSupportApplib.java b/testing/specsupport/applib/src/main/java/org/apache/isis/testing/specsupport/applib/IsisModuleTestingSpecSupportApplib.java
index 0466316..5b1ccce 100644
--- a/testing/specsupport/applib/src/main/java/org/apache/isis/testing/specsupport/applib/IsisModuleTestingSpecSupportApplib.java
+++ b/testing/specsupport/applib/src/main/java/org/apache/isis/testing/specsupport/applib/IsisModuleTestingSpecSupportApplib.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.specsupport.applib;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/testing/unittestsupport/adoc/modules/unittestsupport/nav.adoc b/testing/unittestsupport/adoc/modules/unittestsupport/nav.adoc
index 13d0804..740ef47 100644
--- a/testing/unittestsupport/adoc/modules/unittestsupport/nav.adoc
+++ b/testing/unittestsupport/adoc/modules/unittestsupport/nav.adoc
@@ -1,2 +1,4 @@
+: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::testing:ROOT:partial$component-nav.adoc[]
 
diff --git a/valuetypes/asciidoc/adoc/modules/asciidoc/nav.adoc b/valuetypes/asciidoc/adoc/modules/asciidoc/nav.adoc
index bd5d2e6..64724cf 100644
--- a/valuetypes/asciidoc/adoc/modules/asciidoc/nav.adoc
+++ b/valuetypes/asciidoc/adoc/modules/asciidoc/nav.adoc
@@ -1 +1,3 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
diff --git a/valuetypes/markdown/adoc/modules/markdown/nav.adoc b/valuetypes/markdown/adoc/modules/markdown/nav.adoc
index bd5d2e6..64724cf 100644
--- a/valuetypes/markdown/adoc/modules/markdown/nav.adoc
+++ b/valuetypes/markdown/adoc/modules/markdown/nav.adoc
@@ -1 +1,3 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
diff --git a/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/IsisModuleValMarkdownApplib.java b/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/IsisModuleValMarkdownApplib.java
index 3684c81..c9cb291 100644
--- a/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/IsisModuleValMarkdownApplib.java
+++ b/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/IsisModuleValMarkdownApplib.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.valuetypes.markdown.applib;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/valuetypes/markdown/ui/src/main/java/org/apache/isis/valuetypes/markdown/ui/IsisModuleValMarkdownUi.java b/valuetypes/markdown/ui/src/main/java/org/apache/isis/valuetypes/markdown/ui/IsisModuleValMarkdownUi.java
index dedd22d..6b5673c 100644
--- a/valuetypes/markdown/ui/src/main/java/org/apache/isis/valuetypes/markdown/ui/IsisModuleValMarkdownUi.java
+++ b/valuetypes/markdown/ui/src/main/java/org/apache/isis/valuetypes/markdown/ui/IsisModuleValMarkdownUi.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.valuetypes.markdown.ui;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/valuetypes/sse/adoc/modules/sse/nav.adoc b/valuetypes/sse/adoc/modules/sse/nav.adoc
index e63c989..5e2f5b9 100644
--- a/valuetypes/sse/adoc/modules/sse/nav.adoc
+++ b/valuetypes/sse/adoc/modules/sse/nav.adoc
@@ -1,2 +1,4 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
 
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/nav.adoc b/viewers/restfulobjects/adoc/modules/ROOT/nav.adoc
index 9342c8d..6bdec65 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/nav.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
-include::vro:ROOT:partial$component-nav.adoc[]
\ No newline at end of file
+: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::vro:ROOT:partial$component-nav.adoc[]
diff --git a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleViewerRestfulObjectsApplib.java b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleViewerRestfulObjectsApplib.java
index 7432a1e..8c04929 100644
--- a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleViewerRestfulObjectsApplib.java
+++ b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleViewerRestfulObjectsApplib.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.viewer.restfulobjects.applib;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleViewerRestfulObjectsJaxrsResteasy4.java b/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleViewerRestfulObjectsJaxrsResteasy4.java
index e2a0fbc..c4eb63f 100644
--- a/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleViewerRestfulObjectsJaxrsResteasy4.java
+++ b/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleViewerRestfulObjectsJaxrsResteasy4.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.viewer.restfulobjects.jaxrsresteasy4;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
index 7c589a7..2e2e300 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.viewer.restfulobjects.rendering;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/viewers/wicket/adoc/modules/ROOT/nav.adoc b/viewers/wicket/adoc/modules/ROOT/nav.adoc
index bd5d2e6..64724cf 100644
--- a/viewers/wicket/adoc/modules/ROOT/nav.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/nav.adoc
@@ -1 +1,3 @@
+: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::vw:ROOT:partial$component-nav.adoc[]
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleViewerWicketModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleViewerWicketModel.java
index 0ab3aea..77f8f81 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleViewerWicketModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleViewerWicketModel.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.viewer.wicket.model;
 
 import org.springframework.context.annotation.Configuration;


[isis] 18/41: ISIS-2062: fixes positioning of :Notice: license in .adoc files

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

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

commit 3663fcd807bbdcfebd27540c1819034684e58750
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 9 23:42:23 2020 +0000

    ISIS-2062: fixes positioning of :Notice: license in .adoc files
---
 .../_component-template/modules/ROOT/nav.adoc      |  1 +
 .../modules/ROOT/pages/about.adoc                  |  3 +-
 .../modules/_module-template/nav.adoc              |  1 +
 .../modules/_module-template/pages/about.adoc      |  1 +
 antora/components/comguide/modules/ROOT/nav.adoc   |  1 +
 .../comguide/modules/ROOT/pages/about.adoc         |  3 +-
 .../ROOT/pages/antora-publish-procedure.adoc       |  1 +
 .../modules/ROOT/pages/applying-patches.adoc       |  1 +
 .../modules/ROOT/pages/cutting-a-release.adoc      | 74 ++++++++++++++++++++--
 .../modules/ROOT/pages/key-generation.adoc         |  1 +
 .../modules/ROOT/pages/merging-a-pull-request.adoc |  1 +
 .../comguide/modules/ROOT/pages/pmc-notes.adoc     |  1 +
 .../comguide/modules/ROOT/pages/policies.adoc      |  1 +
 .../modules/ROOT/pages/policies/git-policy.adoc    |  1 +
 .../ROOT/pages/policies/versioning-policy.adoc     |  1 +
 .../ROOT/pages/post-release-successful.adoc        |  1 +
 .../ROOT/pages/post-release-unsuccessful.adoc      |  1 +
 .../release-process-for-interim-releases.adoc      |  1 +
 .../ROOT/pages/release-process-prereqs.adoc        |  1 +
 .../modules/ROOT/pages/verifying-releases.adoc     |  1 +
 antora/components/conguide/modules/ROOT/nav.adoc   |  1 +
 .../conguide/modules/ROOT/pages/about.adoc         |  1 +
 .../conguide/modules/ROOT/pages/agilej.adoc        |  1 +
 .../modules/ROOT/pages/building-apache-isis.adoc   |  1 +
 .../ROOT/pages/building-docs-and-website.adoc      |  1 +
 .../conguide/modules/ROOT/pages/cmd-line.adoc      |  1 +
 .../conguide/modules/ROOT/pages/contributing.adoc  |  1 +
 .../conguide/modules/documentation/nav.adoc        |  1 +
 .../modules/documentation/pages/about.adoc         |  1 +
 .../documentation/pages/asciidoc-syntax.adoc       |  1 +
 .../pages/building-docs-and-website.adoc           |  1 +
 .../components/conguide/modules/eclipse/nav.adoc   |  1 +
 .../conguide/modules/eclipse/pages/about.adoc      |  1 +
 antora/components/conguide/modules/git/nav.adoc    |  1 +
 .../conguide/modules/git/pages/about.adoc          |  1 +
 .../components/conguide/modules/intellij/nav.adoc  |  1 +
 .../conguide/modules/intellij/pages/about.adoc     |  1 +
 antora/components/docs/modules/ROOT/nav.adoc       |  1 +
 .../components/docs/modules/ROOT/pages/about.adoc  |  3 +-
 .../docs/modules/ROOT/pages/downloads/how-to.adoc  |  1 +
 .../going-deeper/articles-and-presentations.adoc   |  1 +
 .../modules/ROOT/pages/going-deeper/books.adoc     |  1 +
 .../ROOT/pages/landing-page/components.adoc        |  1 +
 .../modules/ROOT/pages/landing-page/guides.adoc    |  1 +
 .../modules/ROOT/pages/landing-page/internal.adoc  |  1 +
 .../modules/ROOT/pages/landing-page/libraries.adoc |  1 +
 .../modules/ROOT/pages/landing-page/releases.adoc  |  1 +
 .../ROOT/pages/more-thanks/more-thanks.adoc        |  1 +
 .../what-is-apache-isis/common-use-cases.adoc      |  1 +
 .../what-is-apache-isis/isis-in-pictures.adoc      |  1 +
 .../ROOT/pages/what-is-apache-isis/powered-by.adoc |  1 +
 .../what-is-apache-isis/powered-by/commapp.adoc    |  1 +
 .../what-is-apache-isis/powered-by/contactapp.adoc |  1 +
 .../pages/what-is-apache-isis/powered-by/cqnz.adoc |  1 +
 .../what-is-apache-isis/powered-by/estatio.adoc    |  1 +
 .../powered-by/gesconsultor-grc.adoc               |  1 +
 .../powered-by/transport-planner.adoc              |  1 +
 .../what-is-apache-isis/screencasts-older.adoc     |  1 +
 .../pages/what-is-apache-isis/screencasts.adoc     |  3 +-
 .../what-is-apache-isis/screencasts/playlists.adoc |  1 +
 .../docs/modules/ROOT/partials/component-nav.adoc  |  3 -
 .../ROOT/partials/module-nav/components.adoc       |  2 +
 .../partials/module-nav/demos-and-tutorials.adoc   |  1 +
 .../ROOT/partials/module-nav/framework.adoc        |  1 +
 .../ROOT/partials/module-nav/libraries.adoc        |  3 +-
 .../ROOT/partials/module-nav/quick-start.adoc      |  1 +
 .../modules/ROOT/partials/module-nav/releases.adoc |  1 +
 .../ROOT/partials/module-nav/resources.adoc        |  1 +
 .../partials/module-nav/what-is-apache-isis.adoc   |  1 +
 antora/components/docs/modules/resources/nav.adoc  |  1 +
 .../docs/modules/resources/pages/about.adoc        |  1 +
 .../docs/modules/resources/pages/cheatsheet.adoc   |  3 +-
 .../docs/modules/resources/pages/icons.adoc        |  4 +-
 .../modules/resources/partials/module-nav.adoc     |  3 +-
 antora/components/docs/modules/support/nav.adoc    |  1 +
 .../docs/modules/support/pages/about.adoc          |  1 +
 .../docs/modules/support/pages/mailing-list.adoc   |  1 +
 .../docs/modules/support/pages/slack-channel.adoc  |  1 +
 .../docs/modules/support/partials/module-nav.adoc  |  3 +-
 antora/components/relnotes/modules/ROOT/nav.adoc   |  1 +
 .../modules/ROOT/pages/2012/1.0.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2013/1.0.1/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2013/1.1.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2013/1.2.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2013/1.3.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2013/1.3.1/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2014/1.4.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2014/1.4.1/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2014/1.5.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2014/1.6.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2014/1.7.0/mignotes.adoc    |  1 +
 .../modules/ROOT/pages/2014/1.7.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2015/1.10.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2015/1.10.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2015/1.8.0/mignotes.adoc    |  1 +
 .../modules/ROOT/pages/2015/1.8.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2015/1.9.0/mignotes.adoc    |  1 +
 .../mignotes/bootstrapping-using-AppManifest.adoc  |  1 +
 .../2015/1.9.0/mignotes/exception-recognizer.adoc  |  1 +
 .../fixture-scripts-specification-provider.adoc    |  1 +
 .../1.9.0/mignotes/specify-all-dom-packages.adoc   |  1 +
 .../2015/1.9.0/mignotes/upgrading-to-dn4.adoc      |  1 +
 .../2015/1.9.0/mignotes/upgrading-to-java8.adoc    |  1 +
 .../pages/2015/1.9.0/mignotes/war-packaging.adoc   |  1 +
 .../modules/ROOT/pages/2015/1.9.0/relnotes.adoc    |  1 +
 .../modules/ROOT/pages/2016/1.11.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.11.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.11.1/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.12.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.12.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.12.1/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.12.2/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.13.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.13.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.13.1/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2016/1.13.2/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc |  1 +
 .../modules/ROOT/pages/2017/1.14.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2017/1.14.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2017/1.15.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2017/1.15.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2017/1.15.1/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2018/1.16.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2018/1.16.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2018/1.16.1/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2018/1.16.2/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2018/2.0.0-M1/mignotes.adoc |  1 +
 .../2018/2.0.0-M1/mignotes/legacy-modules.adoc     |  1 +
 .../2018/2.0.0-M1/mignotes/meta-annotations.adoc   |  1 +
 .../pages/2018/2.0.0-M1/mignotes/moved-types.adoc  |  1 +
 .../2018/2.0.0-M1/mignotes/other-changes.adoc      |  1 +
 .../2.0.0-M1/mignotes/removed-annotations.adoc     |  1 +
 .../mignotes/removed-configuration-properties.adoc |  1 +
 .../2018/2.0.0-M1/mignotes/removed-types.adoc      |  1 +
 .../2.0.0-M1/mignotes/updated-annotations.adoc     |  1 +
 .../2018/2.0.0-M1/mignotes/updated-classes.adoc    |  1 +
 .../modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc |  1 +
 .../modules/ROOT/pages/2019/1.17.0/mignotes.adoc   |  1 +
 .../modules/ROOT/pages/2019/1.17.0/relnotes.adoc   |  1 +
 .../modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc |  1 +
 .../relnotes/modules/ROOT/pages/about.adoc         |  3 +-
 antora/components/setupguide/modules/ROOT/nav.adoc |  1 +
 .../setupguide/modules/ROOT/pages/about.adoc       |  3 +-
 .../components/setupguide/modules/eclipse/nav.adoc |  1 +
 .../setupguide/modules/eclipse/pages/eclipse.adoc  |  1 +
 .../setupguide/modules/hints-and-tips/nav.adoc     |  1 +
 .../modules/hints-and-tips/pages/about.adoc        |  1 +
 .../partials/datanucleus-enhancer.adoc             |  1 +
 .../hints-and-tips/partials/enhance-only.adoc      |  1 +
 .../partials/how-run-fixtures-on-app-startup.adoc  |  1 +
 .../hints-and-tips/partials/project-lombok.adoc    |  1 +
 .../partials/switching-between-directories.adoc    |  1 +
 .../setupguide/modules/intellij/nav.adoc           |  1 +
 .../setupguide/modules/intellij/pages/about.adoc   |  1 +
 .../modules/intellij/pages/hints-and-tips.adoc     |  1 +
 .../intellij/partials/UNUSED/coding-standards.adoc |  1 +
 .../partials/UNUSED/faster-turnaround-times.adoc   |  1 +
 .../intellij/partials/UNUSED/file-templates.adoc   |  1 +
 .../intellij/partials/UNUSED/live-templates.adoc   |  1 +
 api/adoc/refguide/modules/ROOT/nav.adoc            |  1 +
 api/adoc/refguide/modules/ROOT/pages/about.adoc    |  3 +-
 .../modules/ROOT/partials/component-nav.adoc       |  3 -
 api/adoc/userguide/modules/ROOT/nav.adoc           |  1 +
 api/adoc/userguide/modules/ROOT/pages/about.adoc   |  3 +-
 .../modules/ROOT/partials/component-nav.adoc       |  3 -
 .../modules/ROOT/partials/module-nav.adoc          |  3 +-
 api/adoc/userguide/modules/_to-repurpose/nav.adoc  |  1 +
 .../modules/_to-repurpose/pages/about.adoc         |  1 +
 api/adoc/userguide/modules/btb/nav.adoc            |  1 +
 api/adoc/userguide/modules/btb/pages/about.adoc    |  1 +
 .../userguide/modules/btb/pages/deployment.adoc    |  1 +
 .../modules/btb/pages/deployment/cmd-line.adoc     |  1 +
 .../modules/btb/pages/deployment/docker.adoc       |  1 +
 .../deployment/externalized-configuration.adoc     |  1 +
 .../modules/btb/pages/deployment/gae.adoc          |  1 +
 .../modules/btb/pages/deployment/jvm-flags.adoc    |  1 +
 .../modules/btb/pages/deployment/neo4j.adoc        |  1 +
 .../modules/btb/pages/deployment/tomcat.adoc       |  1 +
 .../modules/btb/pages/headless-access.adoc         |  1 +
 .../AbstractIsisSessionTemplate.adoc               |  1 +
 .../BackgroundCommandExecution.adoc                |  1 +
 .../modules/btb/pages/hints-and-tips.adoc          |  1 +
 .../btb/pages/hints-and-tips/are-you-sure.adoc     |  1 +
 .../how-to-handle-void-and-null-results.adoc       |  1 +
 .../how-to-implement-a-spellchecker.adoc           |  1 +
 .../btb/pages/hints-and-tips/multi-tenancy.adoc    |  1 +
 .../btb/pages/hints-and-tips/persisted-title.adoc  |  1 +
 .../btb/pages/hints-and-tips/pushing-changes.adoc  |  1 +
 .../replacing-default-service-implementations.adoc |  1 +
 .../simulating-collections-of-values.adoc          |  1 +
 .../subclass-properties-in-tables.adoc             |  1 +
 .../hints-and-tips/transactions-and-errors.adoc    |  1 +
 .../pages/hints-and-tips/vetoing-visibility.adoc   |  1 +
 .../hints-and-tips/view-model-instantiation.adoc   |  1 +
 api/adoc/userguide/modules/btb/pages/i18n.adoc     |  1 +
 .../modules/btb/pages/other-techniques.adoc        |  1 +
 .../modules/btb/pages/programming-model.adoc       |  1 +
 .../pages/programming-model/custom-validator.adoc  |  1 +
 .../btb/pages/programming-model/finetuning.adoc    |  1 +
 api/adoc/userguide/modules/btb/pages/web-xml.adoc  |  1 +
 .../userguide/modules/btb/partials/module-nav.adoc |  3 +-
 api/adoc/userguide/modules/fun/nav.adoc            |  1 +
 api/adoc/userguide/modules/fun/pages/about.adoc    |  1 +
 .../fun/pages/available-domain-services.adoc       |  1 +
 .../framework-provided.adoc                        |  1 +
 .../available-domain-services/incode-platform.adoc |  1 +
 .../modules/fun/pages/building-blocks.adoc         |  1 +
 .../modules/fun/pages/building-blocks/events.adoc  |  1 +
 .../building-blocks/events/domain-events.adoc      |  1 +
 .../building-blocks/events/lifecycle-events.adoc   |  1 +
 .../pages/building-blocks/events/ui-events.adoc    |  1 +
 .../fun/pages/building-blocks/identifiers.adoc     |  1 +
 .../fun/pages/building-blocks/identifiers/oid.adoc |  1 +
 .../identifiers/title-and-icon-and-css-class.adoc  |  1 +
 .../fun/pages/building-blocks/metamodel.adoc       |  1 +
 .../modules/fun/pages/building-blocks/modules.adoc |  1 +
 .../fun/pages/building-blocks/object-members.adoc  |  1 +
 .../building-blocks/types-of-domain-objects.adoc   |  1 +
 .../types-of-domain-objects/domain-entities.adoc   |  1 +
 .../types-of-domain-objects/domain-services.adoc   |  1 +
 .../types-of-domain-objects/mixins.adoc            |  1 +
 .../types-of-domain-objects/view-models.adoc       |  1 +
 .../modules/fun/pages/business-rules.adoc          |  1 +
 .../modules/fun/pages/business-rules/actions.adoc  |  1 +
 .../fun/pages/business-rules/side-effects.adoc     |  1 +
 .../fun/pages/business-rules/usability.adoc        |  1 +
 .../modules/fun/pages/business-rules/validity.adoc |  1 +
 .../fun/pages/business-rules/visibility.adoc       |  1 +
 .../userguide/modules/fun/pages/core-concepts.adoc |  1 +
 .../fun/pages/core-concepts/apache-isis-vs.adoc    |  1 +
 .../pages/core-concepts/apache-isis-vs/cqrs.adoc   |  1 +
 .../apache-isis-vs/event-sourcing.adoc             |  1 +
 .../apache-isis-vs/mvc-server-side.adoc            |  1 +
 .../pages/core-concepts/deployment-options.adoc    |  1 +
 .../fun/pages/core-concepts/philosophy.adoc        |  1 +
 .../fun/pages/core-concepts/philosophy/aop.adoc    |  1 +
 .../fun/pages/core-concepts/philosophy/dci.adoc    |  1 +
 .../philosophy/domain-driven-design.adoc           |  1 +
 .../philosophy/hexagonal-architecture.adoc         |  1 +
 .../core-concepts/philosophy/how-eases-ddd.adoc    |  1 +
 .../philosophy/naked-objects-pattern.adoc          |  1 +
 .../fun/pages/core-concepts/principles.adoc        |  1 +
 .../core-concepts/principles/build-not-buy.adoc    |  1 +
 .../principles/for-the-long-term.adoc              |  1 +
 .../core-concepts/principles/isis-itself.adoc      |  1 +
 .../principles/isis-itself/focuses-on-its-usp.adoc |  1 +
 .../isis-itself/full-stack-but-extensible.adoc     |  1 +
 .../core-concepts/principles/lego-blocks.adoc      |  1 +
 .../pages/core-concepts/principles/testable.adoc   |  1 +
 api/adoc/userguide/modules/fun/pages/crud.adoc     |  1 +
 .../userguide/modules/fun/pages/crud/deleting.adoc |  1 +
 .../userguide/modules/fun/pages/crud/finding.adoc  |  1 +
 .../modules/fun/pages/crud/instantiating.adoc      |  1 +
 .../modules/fun/pages/crud/persisting.adoc         |  1 +
 .../userguide/modules/fun/pages/crud/updating.adoc |  1 +
 .../modules/fun/pages/drop-downs-and-defaults.adoc |  1 +
 .../modules/fun/pages/programming-model.adoc       |  1 +
 .../fun/pages/programming-model/actions.adoc       |  1 +
 .../fun/pages/programming-model/collections.adoc   |  1 +
 .../pages/programming-model/domain-entities.adoc   |  1 +
 .../pages/programming-model/domain-services.adoc   |  1 +
 .../domain-services/event-subscribers.adoc         |  1 +
 .../domain-services/initialization.adoc            |  1 +
 .../programming-model/domain-services/menu.adoc    |  1 +
 .../domain-services/organizing-services.adoc       |  1 +
 .../domain-services/registering.adoc               |  1 +
 .../domain-services/repository-and-factory.adoc    |  1 +
 .../domain-services/scoped-services.adoc           |  1 +
 .../pages/programming-model/inject-services.adoc   |  1 +
 .../fun/pages/programming-model/mixins.adoc        |  1 +
 .../mixins/contributed-action.adoc                 |  1 +
 .../mixins/contributed-collection.adoc             |  1 +
 .../mixins/contributed-property.adoc               |  1 +
 .../programming-model/mixins/inferred-name.adoc    |  1 +
 .../mixins/nested-static-classes.adoc              |  1 +
 .../mixins/programmatic-usage.adoc                 |  1 +
 .../properties-vs-parameters.adoc                  |  1 +
 .../fun/pages/programming-model/properties.adoc    |  1 +
 .../fun/pages/programming-model/view-models.adoc   |  1 +
 .../pages/programming-model/view-models/dto.adoc   |  1 +
 .../view-models/dto/dto-consumers.adoc             |  1 +
 .../view-models/dto/generating-xsds.adoc           |  1 +
 .../view-models/dto/versioning.adoc                |  1 +
 .../pages/programming-model/view-models/jaxb.adoc  |  1 +
 .../view-models/jaxb/joda-datatypes.adoc           |  1 +
 .../jaxb/referencing-domain-entities.adoc          |  1 +
 .../programming-model/view-models/non-jaxb.adoc    |  1 +
 api/adoc/userguide/modules/fun/pages/ui-hints.adoc |  1 +
 .../fun/pages/ui-hints/action-icons-and-css.adoc   |  1 +
 .../fun/pages/ui-hints/eager-rendering.adoc        |  1 +
 .../modules/fun/pages/ui-hints/layout.adoc         |  1 +
 .../fun/pages/ui-hints/names-and-descriptions.adoc |  1 +
 .../pages/ui-hints/object-titles-and-icons.adoc    |  1 +
 .../userguide/modules/fun/partials/module-nav.adoc |  3 +-
 .../src/main/adoc/modules/applib-ant/nav.adoc      |  1 +
 .../main/adoc/modules/applib-ant/pages/Action.adoc |  1 +
 .../applib-ant/pages/Action/associateWith.adoc     |  1 +
 .../modules/applib-ant/pages/Action/command.adoc   |  1 +
 .../applib-ant/pages/Action/domainEvent.adoc       |  1 +
 .../modules/applib-ant/pages/Action/hidden.adoc    |  1 +
 .../modules/applib-ant/pages/Action/invokeOn.adoc  |  1 +
 .../applib-ant/pages/Action/publishing.adoc        |  1 +
 .../applib-ant/pages/Action/restrictTo.adoc        |  1 +
 .../modules/applib-ant/pages/Action/semantics.adoc |  1 +
 .../modules/applib-ant/pages/Action/typeOf.adoc    |  1 +
 .../modules/applib-ant/pages/ActionLayout.adoc     |  1 +
 .../applib-ant/pages/ActionLayout/bookmarking.adoc |  1 +
 .../pages/ActionLayout/contributedAs.adoc          |  1 +
 .../applib-ant/pages/ActionLayout/cssClass.adoc    |  1 +
 .../applib-ant/pages/ActionLayout/cssClassFa.adoc  |  1 +
 .../applib-ant/pages/ActionLayout/describedAs.adoc |  1 +
 .../applib-ant/pages/ActionLayout/hidden.adoc      |  1 +
 .../applib-ant/pages/ActionLayout/named.adoc       |  1 +
 .../applib-ant/pages/ActionLayout/position.adoc    |  1 +
 .../applib-ant/pages/ActionLayout/promptStyle.adoc |  1 +
 .../applib-ant/pages/ActionLayout/redirect.adoc    |  1 +
 .../adoc/modules/applib-ant/pages/Collection.adoc  |  1 +
 .../applib-ant/pages/Collection/domainEvent.adoc   |  1 +
 .../applib-ant/pages/Collection/editing.adoc       |  1 +
 .../applib-ant/pages/Collection/hidden.adoc        |  1 +
 .../applib-ant/pages/Collection/notPersisted.adoc  |  1 +
 .../applib-ant/pages/Collection/typeOf.adoc        |  1 +
 .../modules/applib-ant/pages/CollectionLayout.adoc |  1 +
 .../pages/CollectionLayout/cssClass.adoc           |  1 +
 .../pages/CollectionLayout/defaultView.adoc        |  1 +
 .../pages/CollectionLayout/describedAs.adoc        |  1 +
 .../applib-ant/pages/CollectionLayout/hidden.adoc  |  1 +
 .../applib-ant/pages/CollectionLayout/named.adoc   |  1 +
 .../applib-ant/pages/CollectionLayout/paged.adoc   |  1 +
 .../pages/CollectionLayout/sortedBy.adoc           |  1 +
 .../main/adoc/modules/applib-ant/pages/Column.adoc |  1 +
 .../main/adoc/modules/applib-ant/pages/Digits.adoc |  1 +
 .../modules/applib-ant/pages/Discriminator.adoc    |  1 +
 .../modules/applib-ant/pages/DomainObject.adoc     |  1 +
 .../pages/DomainObject/actionDomainEvent.adoc      |  1 +
 .../applib-ant/pages/DomainObject/auditing.adoc    |  1 +
 .../pages/DomainObject/autoCompleteRepository.adoc |  1 +
 .../applib-ant/pages/DomainObject/bounding.adoc    |  1 +
 .../pages/DomainObject/collectionDomainEvent.adoc  |  1 +
 .../pages/DomainObject/createdLifecycleEvent.adoc  |  1 +
 .../applib-ant/pages/DomainObject/editing.adoc     |  1 +
 .../pages/DomainObject/loadedLifecycleEvent.adoc   |  1 +
 .../applib-ant/pages/DomainObject/mixinMethod.adoc |  1 +
 .../applib-ant/pages/DomainObject/nature.adoc      |  1 +
 .../applib-ant/pages/DomainObject/objectType.adoc  |  1 +
 .../DomainObject/persistedLifecycleEvent.adoc      |  1 +
 .../DomainObject/persistingLifecycleEvent.adoc     |  1 +
 .../pages/DomainObject/propertyDomainEvent.adoc    |  1 +
 .../applib-ant/pages/DomainObject/publishing.adoc  |  1 +
 .../pages/DomainObject/removingLifecycleEvent.adoc |  1 +
 .../pages/DomainObject/updatedLifecycleEvent.adoc  |  1 +
 .../pages/DomainObject/updatingLifecycleEvent.adoc |  1 +
 .../applib-ant/pages/DomainObjectLayout.adoc       |  1 +
 .../pages/DomainObjectLayout/bookmarking.adoc      |  1 +
 .../pages/DomainObjectLayout/cssClass.adoc         |  1 +
 .../pages/DomainObjectLayout/cssClassFa.adoc       |  1 +
 .../pages/DomainObjectLayout/cssClassUiEvent.adoc  |  1 +
 .../pages/DomainObjectLayout/describedAs.adoc      |  1 +
 .../pages/DomainObjectLayout/iconUiEvent.adoc      |  1 +
 .../pages/DomainObjectLayout/layoutUiEvent.adoc    |  1 +
 .../applib-ant/pages/DomainObjectLayout/named.adoc |  1 +
 .../applib-ant/pages/DomainObjectLayout/paged.adoc |  1 +
 .../pages/DomainObjectLayout/plural.adoc           |  1 +
 .../pages/DomainObjectLayout/titleUiEvent.adoc     |  1 +
 .../modules/applib-ant/pages/DomainService.adoc    |  1 +
 .../applib-ant/pages/DomainService/nature.adoc     |  1 +
 .../applib-ant/pages/DomainService/objectType.adoc |  1 +
 .../pages/DomainService/repositoryFor.adoc         |  1 +
 .../applib-ant/pages/DomainServiceLayout.adoc      |  1 +
 .../pages/DomainServiceLayout/menuBar.adoc         |  1 +
 .../pages/DomainServiceLayout/menuOrder.adoc       |  1 +
 .../pages/DomainServiceLayout/named.adoc           |  1 +
 .../main/adoc/modules/applib-ant/pages/Facets.adoc |  1 +
 .../adoc/modules/applib-ant/pages/HomePage.adoc    |  1 +
 .../main/adoc/modules/applib-ant/pages/Inject.adoc |  1 +
 .../applib-ant/pages/MemberGroupLayout.adoc        |  1 +
 .../adoc/modules/applib-ant/pages/MemberOrder.adoc |  1 +
 .../modules/applib-ant/pages/MemberOrder/name.adoc |  1 +
 .../applib-ant/pages/MemberOrder/sequence.adoc     |  1 +
 .../adoc/modules/applib-ant/pages/MinLength.adoc   |  1 +
 .../main/adoc/modules/applib-ant/pages/Mixin.adoc  |  1 +
 .../modules/applib-ant/pages/Mixin/method.adoc     |  1 +
 .../modules/applib-ant/pages/NotPersistent.adoc    |  1 +
 .../adoc/modules/applib-ant/pages/Nullable.adoc    |  1 +
 .../adoc/modules/applib-ant/pages/Parameter.adoc   |  1 +
 .../applib-ant/pages/Parameter/fileAccept.adoc     |  1 +
 .../applib-ant/pages/Parameter/maxLength.adoc      |  1 +
 .../applib-ant/pages/Parameter/mustSatisfy.adoc    |  1 +
 .../applib-ant/pages/Parameter/optionality.adoc    |  1 +
 .../applib-ant/pages/Parameter/regexPattern.adoc   |  1 +
 .../modules/applib-ant/pages/ParameterLayout.adoc  |  1 +
 .../applib-ant/pages/ParameterLayout/cssClass.adoc |  1 +
 .../pages/ParameterLayout/describedAs.adoc         |  1 +
 .../pages/ParameterLayout/labelPosition.adoc       |  1 +
 .../pages/ParameterLayout/multiLine.adoc           |  1 +
 .../applib-ant/pages/ParameterLayout/named.adoc    |  1 +
 .../pages/ParameterLayout/renderedAsDayBefore.adoc |  1 +
 .../pages/ParameterLayout/typicalLength.adoc       |  1 +
 .../adoc/modules/applib-ant/pages/Pattern.adoc     |  1 +
 .../applib-ant/pages/PersistenceCapable.adoc       |  1 +
 .../modules/applib-ant/pages/PostConstruct.adoc    |  1 +
 .../adoc/modules/applib-ant/pages/PreDestroy.adoc  |  1 +
 .../adoc/modules/applib-ant/pages/PrimaryKey.adoc  |  1 +
 .../modules/applib-ant/pages/Programmatic.adoc     |  1 +
 .../adoc/modules/applib-ant/pages/Property.adoc    |  1 +
 .../modules/applib-ant/pages/Property/command.adoc |  1 +
 .../applib-ant/pages/Property/domainEvent.adoc     |  1 +
 .../modules/applib-ant/pages/Property/editing.adoc |  1 +
 .../applib-ant/pages/Property/fileAccept.adoc      |  1 +
 .../modules/applib-ant/pages/Property/hidden.adoc  |  1 +
 .../applib-ant/pages/Property/maxLength.adoc       |  1 +
 .../applib-ant/pages/Property/mustSatisfy.adoc     |  1 +
 .../applib-ant/pages/Property/notPersisted.adoc    |  1 +
 .../applib-ant/pages/Property/optionality.adoc     |  1 +
 .../applib-ant/pages/Property/projecting.adoc      |  1 +
 .../applib-ant/pages/Property/publishing.adoc      |  1 +
 .../applib-ant/pages/Property/regexPattern.adoc    |  1 +
 .../modules/applib-ant/pages/PropertyLayout.adoc   |  1 +
 .../applib-ant/pages/PropertyLayout/cssClass.adoc  |  1 +
 .../pages/PropertyLayout/describedAs.adoc          |  1 +
 .../applib-ant/pages/PropertyLayout/hidden.adoc    |  1 +
 .../pages/PropertyLayout/labelPosition.adoc        |  1 +
 .../applib-ant/pages/PropertyLayout/multiLine.adoc |  1 +
 .../applib-ant/pages/PropertyLayout/named.adoc     |  1 +
 .../applib-ant/pages/PropertyLayout/navigable.adoc |  1 +
 .../pages/PropertyLayout/promptStyle.adoc          |  1 +
 .../pages/PropertyLayout/renderedAsDayBefore.adoc  |  1 +
 .../pages/PropertyLayout/typicalLength.adoc        |  1 +
 .../pages/PropertyLayout/unchanging.adoc           |  1 +
 .../modules/applib-ant/pages/RequestScoped.adoc    |  1 +
 .../main/adoc/modules/applib-ant/pages/Title.adoc  |  1 +
 .../adoc/modules/applib-ant/pages/ViewModel.adoc   |  1 +
 .../applib-ant/pages/ViewModel/objectType.adoc     |  1 +
 .../modules/applib-ant/pages/ViewModelLayout.adoc  |  1 +
 .../pages/ViewModelLayout/bookmarking.adoc         |  1 +
 .../applib-ant/pages/ViewModelLayout/cssClass.adoc |  1 +
 .../pages/ViewModelLayout/cssClassFa.adoc          |  1 +
 .../pages/ViewModelLayout/cssClassUiEvent.adoc     |  1 +
 .../pages/ViewModelLayout/describedAs.adoc         |  1 +
 .../pages/ViewModelLayout/iconUiEvent.adoc         |  1 +
 .../pages/ViewModelLayout/layoutUiEvent.adoc       |  1 +
 .../applib-ant/pages/ViewModelLayout/named.adoc    |  1 +
 .../applib-ant/pages/ViewModelLayout/paged.adoc    |  1 +
 .../applib-ant/pages/ViewModelLayout/plural.adoc   |  1 +
 .../pages/ViewModelLayout/titleUiEvent.adoc        |  1 +
 .../applib-ant/pages/XmlJavaTypeAdapter.adoc       |  1 +
 .../modules/applib-ant/pages/XmlRootElement.adoc   |  1 +
 .../main/adoc/modules/applib-ant/pages/about.adoc  |  1 +
 .../adoc/modules/applib-ant/pages/about/jdo.adoc   |  1 +
 .../adoc/modules/applib-ant/pages/about/jee.adoc   |  1 +
 .../adoc/modules/applib-ant/pages/about/main.adoc  |  1 +
 .../adoc/modules/applib-ant/pages/about/other.adoc |  1 +
 .../modules/applib-ant/pages/about/partial.adoc    |  1 +
 .../modules/applib-ant/partials/module-nav.adoc    |  3 +-
 .../src/main/adoc/modules/applib-cm/nav.adoc       |  1 +
 .../main/adoc/modules/applib-cm/pages/about.adoc   |  1 +
 .../main/adoc/modules/applib-cm/pages/classes.adoc |  1 +
 .../pages/classes/AppManifest-bootstrapping.adoc   |  1 +
 .../pages/classes/AppManifest2-bootstrapping.adoc  |  1 +
 .../applib-cm/pages/classes/contributee.adoc       |  1 +
 .../pages/classes/contributee/HasUniqueId.adoc     |  1 +
 .../pages/classes/contributee/HasUserName.adoc     |  1 +
 .../applib-cm/pages/classes/domainevent.adoc       |  1 +
 .../classes/domainevent/AbstractDomainEvent.adoc   |  1 +
 .../classes/domainevent/ActionDomainEvent.adoc     |  1 +
 .../classes/domainevent/CollectionDomainEvent.adoc |  1 +
 .../classes/domainevent/PropertyDomainEvent.adoc   |  1 +
 .../adoc/modules/applib-cm/pages/classes/i18n.adoc |  1 +
 .../pages/classes/i18n/TranslatableString.adoc     |  1 +
 .../modules/applib-cm/pages/classes/layout.adoc    |  1 +
 .../applib-cm/pages/classes/lifecycleevent.adoc    |  1 +
 .../lifecycleevent/AbstractLifecycleEvent.adoc     |  1 +
 .../classes/lifecycleevent/ObjectCreatedEvent.adoc |  1 +
 .../classes/lifecycleevent/ObjectLoadedEvent.adoc  |  1 +
 .../lifecycleevent/ObjectPersistedEvent.adoc       |  1 +
 .../lifecycleevent/ObjectPersistingEvent.adoc      |  1 +
 .../lifecycleevent/ObjectRemovingEvent.adoc        |  1 +
 .../classes/lifecycleevent/ObjectUpdatedEvent.adoc |  1 +
 .../lifecycleevent/ObjectUpdatingEvent.adoc        |  1 +
 .../modules/applib-cm/pages/classes/menubars.adoc  |  1 +
 .../modules/applib-cm/pages/classes/mixins.adoc    |  1 +
 .../applib-cm/pages/classes/mixins/Dto.adoc        |  1 +
 .../applib-cm/pages/classes/mixins/Object.adoc     |  1 +
 .../pages/classes/mixins/Persistable.adoc          |  1 +
 .../modules/applib-cm/pages/classes/roles.adoc     |  1 +
 .../pages/classes/roles/HoldsUpdatedAt.adoc        |  1 +
 .../pages/classes/roles/HoldsUpdatedBy.adoc        |  1 +
 .../pages/classes/roles/Timestampable.adoc         |  1 +
 .../adoc/modules/applib-cm/pages/classes/spec.adoc |  1 +
 .../modules/applib-cm/pages/classes/super.adoc     |  1 +
 .../pages/classes/super/AbstractService.adoc       |  1 +
 .../pages/classes/super/AbstractSubscriber.adoc    |  1 +
 .../pages/classes/super/AbstractViewModel.adoc     |  1 +
 .../pages/classes/super/FixtureScript.adoc         |  1 +
 .../pages/classes/super/FixtureScripts.adoc        |  1 +
 .../modules/applib-cm/pages/classes/uievent.adoc   |  1 +
 .../pages/classes/uievent/CssClassUiEvent.adoc     |  1 +
 .../pages/classes/uievent/IconUiEvent.adoc         |  1 +
 .../pages/classes/uievent/TitleUiEvent.adoc        |  1 +
 .../modules/applib-cm/pages/classes/utility.adoc   |  1 +
 .../applib-cm/pages/classes/utility/Enums.adoc     |  1 +
 .../pages/classes/utility/ObjectContracts.adoc     |  1 +
 .../applib-cm/pages/classes/utility/Reasons.adoc   |  1 +
 .../pages/classes/utility/TitleBuffer.adoc         |  1 +
 .../applib-cm/pages/classes/value-types.adoc       |  1 +
 .../applib-cm/pages/classes/value-types/Blob.adoc  |  1 +
 .../applib-cm/pages/classes/value-types/Clob.adoc  |  1 +
 .../applib-cm/pages/classes/value-types/Color.adoc |  1 +
 .../pages/classes/value-types/Markup.adoc          |  1 +
 .../applib-cm/pages/classes/value-types/Money.adoc |  1 +
 .../pages/classes/value-types/Password.adoc        |  1 +
 .../main/adoc/modules/applib-cm/pages/methods.adoc |  1 +
 .../modules/applib-cm/pages/methods/lifecycle.adoc |  1 +
 .../applib-cm/pages/methods/lifecycle/created.adoc |  1 +
 .../applib-cm/pages/methods/lifecycle/jdo-api.adoc |  1 +
 .../applib-cm/pages/methods/lifecycle/loaded.adoc  |  1 +
 .../pages/methods/lifecycle/persisted.adoc         |  1 +
 .../pages/methods/lifecycle/persisting.adoc        |  1 +
 .../applib-cm/pages/methods/lifecycle/removed.adoc |  1 +
 .../pages/methods/lifecycle/removing.adoc          |  1 +
 .../applib-cm/pages/methods/lifecycle/updated.adoc |  1 +
 .../pages/methods/lifecycle/updating.adoc          |  1 +
 .../modules/applib-cm/pages/methods/prefixes.adoc  |  1 +
 .../applib-cm/pages/methods/prefixes/addTo.adoc    |  1 +
 .../pages/methods/prefixes/autoComplete.adoc       |  1 +
 .../applib-cm/pages/methods/prefixes/choices.adoc  |  1 +
 .../applib-cm/pages/methods/prefixes/clear.adoc    |  1 +
 .../applib-cm/pages/methods/prefixes/default.adoc  |  1 +
 .../applib-cm/pages/methods/prefixes/disable.adoc  |  1 +
 .../applib-cm/pages/methods/prefixes/get.adoc      |  1 +
 .../applib-cm/pages/methods/prefixes/hide.adoc     |  1 +
 .../applib-cm/pages/methods/prefixes/modify.adoc   |  1 +
 .../pages/methods/prefixes/removeFrom.adoc         |  1 +
 .../applib-cm/pages/methods/prefixes/set.adoc      |  1 +
 .../applib-cm/pages/methods/prefixes/validate.adoc |  1 +
 .../pages/methods/prefixes/validateAddTo.adoc      |  1 +
 .../pages/methods/prefixes/validateRemoveFrom.adoc |  1 +
 .../modules/applib-cm/pages/methods/reserved.adoc  |  1 +
 .../applib-cm/pages/methods/reserved/cssClass.adoc |  1 +
 .../applib-cm/pages/methods/reserved/disable.adoc  |  1 +
 .../applib-cm/pages/methods/reserved/getId.adoc    |  1 +
 .../applib-cm/pages/methods/reserved/hide.adoc     |  1 +
 .../applib-cm/pages/methods/reserved/iconName.adoc |  1 +
 .../applib-cm/pages/methods/reserved/layout.adoc   |  1 +
 .../applib-cm/pages/methods/reserved/title.adoc    |  1 +
 .../applib-cm/pages/methods/reserved/validate.adoc |  1 +
 .../main/adoc/modules/applib-cm/pages/rgcms.adoc   |  1 +
 .../modules/applib-cm/partials/module-nav.adoc     |  3 +-
 .../src/main/adoc/modules/applib-svc/nav.adoc      |  1 +
 .../applib-svc/pages/AcceptHeaderService.adoc      |  1 +
 .../pages/ApplicationFeatureRepository.adoc        |  1 +
 .../modules/applib-svc/pages/AuditerService.adoc   |  1 +
 .../modules/applib-svc/pages/BookmarkService.adoc  |  1 +
 .../applib-svc/pages/BookmarkUiService.adoc        |  1 +
 .../modules/applib-svc/pages/ClockService.adoc     |  1 +
 .../modules/applib-svc/pages/CommandContext.adoc   |  1 +
 .../pages/CommandDtoProcessorService.adoc          |  1 +
 .../applib-svc/pages/CommandExecutorService.adoc   |  1 +
 .../modules/applib-svc/pages/CommandService.adoc   |  1 +
 .../applib-svc/pages/ConfigurationMenu.adoc        |  1 +
 .../applib-svc/pages/ConfigurationViewService.adoc |  1 +
 .../applib-svc/pages/ContentMappingService.adoc    |  1 +
 .../modules/applib-svc/pages/DeepLinkService.adoc  |  1 +
 .../applib-svc/pages/EmailNotificationService.adoc |  1 +
 .../modules/applib-svc/pages/EmailService.adoc     |  1 +
 .../applib-svc/pages/ErrorReportingService.adoc    |  1 +
 .../modules/applib-svc/pages/EventBusService.adoc  |  1 +
 .../applib-svc/pages/ExceptionRecognizer.adoc      |  1 +
 .../pages/ExceptionRecognizerService.adoc          |  1 +
 .../modules/applib-svc/pages/FactoryService.adoc   |  1 +
 .../applib-svc/pages/GridLoaderService.adoc        |  1 +
 .../adoc/modules/applib-svc/pages/GridService.adoc |  1 +
 .../applib-svc/pages/GridSystemService.adoc        |  1 +
 .../applib-svc/pages/HealthCheckService.adoc       |  1 +
 .../adoc/modules/applib-svc/pages/HintStore.adoc   |  1 +
 .../applib-svc/pages/HomePageResolverService.adoc  |  1 +
 .../applib-svc/pages/InteractionContext.adoc       |  1 +
 .../adoc/modules/applib-svc/pages/JaxbService.adoc |  1 +
 .../modules/applib-svc/pages/LayoutService.adoc    |  1 +
 .../applib-svc/pages/LayoutServiceMenu.adoc        |  1 +
 .../modules/applib-svc/pages/LocaleProvider.adoc   |  1 +
 .../applib-svc/pages/MenuBarsLoaderService.adoc    |  1 +
 .../modules/applib-svc/pages/MenuBarsService.adoc  |  1 +
 .../modules/applib-svc/pages/MessageService.adoc   |  1 +
 .../modules/applib-svc/pages/MetaModelService.adoc |  1 +
 .../applib-svc/pages/MetaModelServiceMenu.adoc     |  1 +
 .../modules/applib-svc/pages/MetricsService.adoc   |  1 +
 .../modules/applib-svc/pages/PublisherService.adoc |  1 +
 .../applib-svc/pages/QueryResultsCache.adoc        |  1 +
 .../applib-svc/pages/QueryResultsCacheControl.adoc |  1 +
 .../applib-svc/pages/RepositoryService.adoc        |  1 +
 .../modules/applib-svc/pages/RoutingService.adoc   |  1 +
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |  1 +
 .../modules/applib-svc/pages/ServiceInjector.adoc  |  1 +
 .../modules/applib-svc/pages/ServiceRegistry.adoc  |  1 +
 .../applib-svc/pages/SessionLoggingService.adoc    |  1 +
 .../adoc/modules/applib-svc/pages/SudoService.adoc |  1 +
 .../modules/applib-svc/pages/SwaggerService.adoc   |  1 +
 .../applib-svc/pages/TableColumnOrderService.adoc  |  1 +
 .../modules/applib-svc/pages/TitleService.adoc     |  1 +
 .../applib-svc/pages/TransactionService.adoc       |  1 +
 .../applib-svc/pages/TranslationService.adoc       |  1 +
 .../applib-svc/pages/TranslationsResolver.adoc     |  1 +
 .../applib-svc/pages/UrlEncodingService.adoc       |  1 +
 .../applib-svc/pages/UserProfileService.adoc       |  1 +
 .../applib-svc/pages/UserRegistrationService.adoc  |  1 +
 .../adoc/modules/applib-svc/pages/UserService.adoc |  1 +
 .../modules/applib-svc/pages/WrapperFactory.adoc   |  1 +
 .../applib-svc/pages/XmlSnapshotService.adoc       |  1 +
 .../pages/_BackgroundCommandService.adoc           |  1 +
 .../applib-svc/pages/_BackgroundService.adoc       |  1 +
 .../_BackgroundCommandExecution.adoc               |  1 +
 .../pages/_BackgroundService/_Quartz.adoc          |  1 +
 .../main/adoc/modules/applib-svc/pages/about.adoc  |  1 +
 .../partials/_application-layer-api.adoc           |  1 +
 .../partials/_application-layer-spi.adoc           |  1 +
 .../applib-svc/partials/_core-domain-api.adoc      |  1 +
 .../applib-svc/partials/_integration-api.adoc      |  1 +
 .../applib-svc/partials/_integration-spi.adoc      |  1 +
 .../modules/applib-svc/partials/_metadata-api.adoc |  1 +
 .../modules/applib-svc/partials/_metadata-spi.adoc |  1 +
 .../partials/_persistence-layer-api.adoc           |  1 +
 .../partials/_persistence-layer-spi.adoc           |  1 +
 .../partials/_presentation-layer-api.adoc          |  1 +
 .../partials/_presentation-layer-spi.adoc          |  1 +
 .../modules/applib-svc/partials/_security-spi.adoc |  1 +
 .../modules/applib-svc/partials/module-nav.adoc    |  3 +-
 api/schema/src/main/adoc/modules/schema/nav.adoc   |  1 +
 .../src/main/adoc/modules/schema/pages/about.adoc  |  1 +
 .../src/main/adoc/modules/schema/pages/aim.adoc    |  1 +
 .../src/main/adoc/modules/schema/pages/chg.adoc    |  1 +
 .../src/main/adoc/modules/schema/pages/cmd.adoc    |  1 +
 .../src/main/adoc/modules/schema/pages/common.adoc |  1 +
 .../src/main/adoc/modules/schema/pages/ixn.adoc    |  1 +
 .../src/main/adoc/modules/schema/pages/mml.adoc    |  1 +
 .../adoc/modules/schema/partials/module-nav.adoc   |  3 +-
 core/adoc/modules/ROOT/nav.adoc                    |  1 +
 core/adoc/modules/ROOT/pages/about.adoc            |  1 +
 core/adoc/modules/ROOT/partials/component-nav.adoc |  3 -
 core/adoc/modules/ROOT/partials/module-nav.adoc    |  2 -
 core/adoc/modules/archdesign/nav.adoc              |  1 +
 core/adoc/modules/archdesign/pages/about.adoc      |  1 +
 .../archdesign/pages/concurrent-task-list.adoc     |  1 +
 .../modules/archdesign/pages/maven-modules.adoc    |  1 +
 core/adoc/modules/archdesign/pages/metamodel.adoc  |  1 +
 core/adoc/modules/archdesign/pages/webmodules.adoc |  1 +
 .../modules/archdesign/partials/module-nav.adoc    |  3 +-
 .../main/adoc/modules/codegen-bytebuddy/nav.adoc   |  1 +
 .../modules/codegen-bytebuddy/pages/about.adoc     |  1 +
 .../codegen-bytebuddy/partials/module-nav.adoc     |  3 +-
 .../commons/src/main/adoc/modules/commons/nav.adoc |  1 +
 .../src/main/adoc/modules/commons/pages/about.adoc |  1 +
 .../adoc/modules/commons/partials/module-nav.adoc  |  3 +-
 core/config/src/main/adoc/modules/config/nav.adoc  |  1 +
 .../src/main/adoc/modules/config/pages/about.adoc  |  1 +
 .../config/pages/section-hooks/Other~post.adoc     |  1 +
 .../config/pages/section-hooks/Other~pre.adoc      |  1 +
 .../pages/section-hooks/isis.applib~post.adoc      |  1 +
 .../pages/section-hooks/isis.applib~pre.adoc       |  1 +
 .../isis.core.meta-model.introspector~post.adoc    |  1 +
 .../isis.core.meta-model.introspector~pre.adoc     |  1 +
 .../isis.core.meta-model.validator~post.adoc       |  1 +
 .../isis.core.meta-model.validator~pre.adoc        |  1 +
 .../section-hooks/isis.core.meta-model~post.adoc   |  1 +
 .../section-hooks/isis.core.meta-model~pre.adoc    |  1 +
 .../isis.core.runtime-services~post.adoc           |  1 +
 .../isis.core.runtime-services~pre.adoc            |  1 +
 .../section-hooks/isis.core.runtime~post.adoc      |  1 +
 .../pages/section-hooks/isis.core.runtime~pre.adoc |  1 +
 .../pages/section-hooks/isis.extensions~post.adoc  |  1 +
 .../pages/section-hooks/isis.extensions~pre.adoc   |  1 +
 .../pages/section-hooks/isis.incubator~post.adoc   |  1 +
 .../pages/section-hooks/isis.incubator~pre.adoc    |  1 +
 .../pages/section-hooks/isis.legacy~post.adoc      |  1 +
 .../pages/section-hooks/isis.legacy~pre.adoc       |  1 +
 .../pages/section-hooks/isis.mappings~post.adoc    |  1 +
 .../pages/section-hooks/isis.mappings~pre.adoc     |  1 +
 ...isis.persistence.jdo-datanucleus.impl~post.adoc |  1 +
 .../isis.persistence.jdo-datanucleus.impl~pre.adoc |  1 +
 .../isis.persistence.jdo-datanucleus~post.adoc     |  1 +
 .../isis.persistence.jdo-datanucleus~pre.adoc      |  1 +
 .../section-hooks/isis.security.shiro~post.adoc    |  1 +
 .../section-hooks/isis.security.shiro~pre.adoc     |  1 +
 .../pages/section-hooks/isis.subdomains~post.adoc  |  1 +
 .../pages/section-hooks/isis.subdomains~pre.adoc   |  1 +
 .../pages/section-hooks/isis.testing~post.adoc     |  1 +
 .../pages/section-hooks/isis.testing~pre.adoc      |  1 +
 .../pages/section-hooks/isis.value-types~post.adoc |  1 +
 .../pages/section-hooks/isis.value-types~pre.adoc  |  1 +
 .../isis.viewer.restfulobjects~post.adoc           |  1 +
 .../isis.viewer.restfulobjects~pre.adoc            |  1 +
 .../section-hooks/isis.viewer.wicket~post.adoc     |  1 +
 .../section-hooks/isis.viewer.wicket~pre.adoc      |  1 +
 .../config/pages/section-hooks/resteasy~post.adoc  |  1 +
 .../config/pages/section-hooks/resteasy~pre.adoc   |  1 +
 .../config/pages/section-hooks/spring~post.adoc    |  1 +
 .../config/pages/section-hooks/spring~pre.adoc     |  1 +
 .../adoc/modules/config/pages/sections/Other.adoc  |  5 +-
 .../adoc/modules/config/pages/sections/_nav.adoc   |  2 -
 .../modules/config/pages/sections/isis.applib.adoc | 31 ++++-----
 .../pages/sections/isis.core.meta-model.adoc       |  3 +-
 .../isis.core.meta-model.introspector.adoc         |  3 +-
 .../sections/isis.core.meta-model.validator.adoc   |  7 +-
 .../pages/sections/isis.core.runtime-services.adoc | 23 +++----
 .../config/pages/sections/isis.core.runtime.adoc   |  5 +-
 .../config/pages/sections/isis.extensions.adoc     |  5 +-
 .../modules/config/pages/sections/isis.legacy.adoc |  5 +-
 .../sections/isis.persistence.jdo-datanucleus.adoc |  1 +
 .../isis.persistence.jdo-datanucleus.impl.adoc     | 57 +++++++++--------
 .../config/pages/sections/isis.security.shiro.adoc |  3 +-
 .../config/pages/sections/isis.testing.adoc        |  3 +-
 .../config/pages/sections/isis.value-types.adoc    | 19 +++---
 .../pages/sections/isis.viewer.restfulobjects.adoc | 21 +++---
 .../config/pages/sections/isis.viewer.wicket.adoc  | 55 ++++++++--------
 .../modules/config/pages/sections/resteasy.adoc    | 13 ++--
 .../adoc/modules/config/partials/module-nav.adoc   |  3 +-
 .../main/adoc/modules/internaltestsupport/nav.adoc |  1 +
 .../modules/internaltestsupport/pages/about.adoc   |  1 +
 .../internaltestsupport/partials/module-nav.adoc   |  3 +-
 .../src/main/adoc/modules/metamodel/nav.adoc       |  1 +
 .../main/adoc/modules/metamodel/pages/about.adoc   |  1 +
 .../modules/metamodel/partials/module-nav.adoc     |  3 +-
 .../runtime/src/main/adoc/modules/runtime/nav.adoc |  1 +
 .../src/main/adoc/modules/runtime/pages/about.adoc |  1 +
 .../adoc/modules/runtime/partials/module-nav.adoc  |  3 +-
 .../main/adoc/modules/runtime-services/nav.adoc    |  1 +
 .../pages/ApplicationFeatureFactory.adoc           |  1 +
 .../pages/AuditerDispatchService.adoc              |  1 +
 .../pages/AuthenticationSessionProvider.adoc       |  1 +
 .../pages/ChangedObjectsService.adoc               |  1 +
 .../pages/CommandDtoServiceInternal.adoc           |  1 +
 .../pages/ContentNegotiationService.adoc           |  1 +
 .../pages/InteractionDtoServiceInternal.adoc       |  1 +
 .../pages/PersistenceSessionServiceInternal.adoc   |  1 +
 .../pages/PublisherDispatchService.adoc            |  1 +
 .../pages/RepresentationService.adoc               |  1 +
 .../adoc/modules/runtime-services/pages/about.adoc |  3 +-
 .../partials/_application-layer.adoc               |  1 +
 .../partials/_persistence-layer.adoc               |  1 +
 .../partials/_presentation-layer.adoc              |  1 +
 .../runtime-services/partials/module-nav.adoc      |  3 +-
 core/security/src/main/adoc/modules/core/nav.adoc  |  1 +
 .../src/main/adoc/modules/core/pages/about.adoc    |  1 +
 .../adoc/modules/core/partials/module-nav.adoc     |  3 +-
 core/webapp/src/main/adoc/modules/webapp/nav.adoc  |  1 +
 .../src/main/adoc/modules/webapp/pages/about.adoc  |  1 +
 .../adoc/modules/webapp/partials/module-nav.adoc   |  3 +-
 examples/demo/src/main/adoc/modules/demo/nav.adoc  |  1 +
 .../src/main/adoc/modules/demo/pages/about.adoc    |  1 +
 .../adoc/modules/demo/partials/module-nav.adoc     |  2 -
 .../src/main/adoc/modules/smoketests/nav.adoc      |  1 +
 .../main/adoc/modules/smoketests/pages/about.adoc  |  1 +
 .../modules/smoketests/partials/module-nav.adoc    |  3 +-
 extensions/adoc/modules/ROOT/nav.adoc              |  1 +
 extensions/adoc/modules/ROOT/pages/about.adoc      |  2 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 -
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 .../command-log/adoc/modules/command-log/nav.adoc  |  1 +
 .../adoc/modules/command-log/pages/about.adoc      |  1 +
 .../modules/command-log/partials/module-nav.adoc   |  3 +-
 .../core/flyway/adoc/modules/flyway/nav.adoc       |  1 +
 .../flyway/adoc/modules/flyway/pages/about.adoc    |  1 +
 .../adoc/modules/flyway/partials/module-nav.adoc   |  3 +-
 .../audit-trail/adoc/modules/audit-trail/nav.adoc  |  1 +
 .../adoc/modules/audit-trail/pages/about.adoc      |  1 +
 .../modules/audit-trail/partials/module-nav.adoc   |  3 +-
 .../security/secman/adoc/modules/secman/nav.adoc   |  1 +
 .../secman/adoc/modules/secman/pages/about.adoc    |  1 +
 .../secman/adoc/modules/secman/pages/api.adoc      |  1 +
 .../modules/secman/pages/jbcrypt-encryption.adoc   |  1 +
 .../adoc/modules/secman/pages/jdo-persistence.adoc |  1 +
 .../secman/adoc/modules/secman/pages/model.adoc    |  1 +
 .../adoc/modules/secman/pages/shiro-realm.adoc     |  1 +
 .../adoc/modules/secman/partials/module-nav.adoc   |  3 +-
 .../session-log/adoc/modules/session-log/nav.adoc  |  1 +
 .../adoc/modules/session-log/pages/about.adoc      |  1 +
 .../modules/session-log/partials/module-nav.adoc   |  3 +-
 .../adoc/modules/shiro-realm-ldap/nav.adoc         |  1 +
 .../adoc/modules/shiro-realm-ldap/pages/about.adoc |  1 +
 .../shiro-realm-ldap/partials/module-nav.adoc      |  3 +-
 extensions/vro/cors/adoc/modules/cors/nav.adoc     |  1 +
 .../vro/cors/adoc/modules/cors/pages/about.adoc    |  1 +
 .../adoc/modules/cors/partials/module-nav.adoc     |  3 +-
 .../adoc/modules/exceldownload/nav.adoc            |  1 +
 .../adoc/modules/exceldownload/pages/about.adoc    |  1 +
 .../modules/exceldownload/partials/module-nav.adoc |  3 +-
 .../adoc/modules/fullcalendar/nav.adoc             |  1 +
 .../adoc/modules/fullcalendar/pages/about.adoc     |  1 +
 .../modules/fullcalendar/partials/module-nav.adoc  |  3 +-
 extensions/vw/pdfjs/adoc/modules/pdfjs/nav.adoc    |  1 +
 .../vw/pdfjs/adoc/modules/pdfjs/pages/about.adoc   |  1 +
 .../adoc/modules/pdfjs/partials/module-nav.adoc    |  3 +-
 incubator/adoc/modules/ROOT/nav.adoc               |  1 +
 incubator/adoc/modules/ROOT/pages/about.adoc       |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 -
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 incubator/core/jsr303/README.adoc                  |  1 +
 .../model/src/main/adoc/modules/model/nav.adoc     |  1 +
 .../src/main/adoc/modules/model/pages/about.adoc   |  1 +
 .../adoc/modules/model/partials/module-nav.adoc    |  3 +-
 .../src/main/adoc/modules/microprofile/nav.adoc    |  1 +
 .../adoc/modules/microprofile/pages/about.adoc     |  1 +
 .../modules/microprofile/partials/module-nav.adoc  |  3 +-
 legacy/adoc/modules/ROOT/nav.adoc                  |  1 +
 legacy/adoc/modules/ROOT/pages/about.adoc          |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  2 -
 legacy/adoc/modules/ROOT/partials/module-nav.adoc  |  3 +-
 .../applib/src/main/adoc/modules/applib/nav.adoc   |  1 +
 .../src/main/adoc/modules/applib/pages/about.adoc  |  1 +
 .../adoc/modules/applib/partials/module-nav.adoc   |  3 +-
 .../commons/src/main/adoc/modules/commons/nav.adoc |  1 +
 .../src/main/adoc/modules/commons/pages/about.adoc |  1 +
 .../adoc/modules/commons/partials/module-nav.adoc  |  3 +-
 .../src/main/adoc/modules/metamodel/nav.adoc       |  1 +
 .../main/adoc/modules/metamodel/pages/about.adoc   |  1 +
 .../modules/metamodel/partials/module-nav.adoc     |  3 +-
 .../runtime/src/main/adoc/modules/runtime/nav.adoc |  1 +
 .../src/main/adoc/modules/runtime/pages/about.adoc |  1 +
 .../adoc/modules/runtime/partials/module-nav.adoc  |  3 +-
 .../src/main/adoc/modules/restclient/nav.adoc      |  1 +
 .../main/adoc/modules/restclient/pages/about.adoc  |  1 +
 .../modules/restclient/partials/module-nav.adoc    |  3 +-
 .../src/main/adoc/modules/servletapi/nav.adoc      |  1 +
 .../main/adoc/modules/servletapi/pages/about.adoc  |  1 +
 .../modules/servletapi/partials/module-nav.adoc    |  3 +-
 .../mavenplugin/src/main/doc/modules/mvn/nav.adoc  |  1 +
 .../src/main/doc/modules/mvn/pages/about.adoc      |  1 +
 .../src/main/doc/modules/mvn/pages/intro.adoc      |  1 +
 .../src/main/doc/modules/mvn/pages/swagger.adoc    |  1 +
 .../src/main/doc/modules/mvn/pages/validate.adoc   |  1 +
 .../src/main/doc/modules/mvn/pages/xsd.adoc        |  1 +
 .../src/main/doc/modules/mvn/partials/nav.adoc     |  1 +
 mappings/adoc/modules/ROOT/nav.adoc                |  1 +
 mappings/adoc/modules/ROOT/pages/about.adoc        |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  2 -
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 .../jaxrsclient/adoc/modules/jaxrsclient/nav.adoc  |  1 +
 .../adoc/modules/jaxrsclient/pages/about.adoc      |  1 +
 .../modules/jaxrsclient/partials/module-nav.adoc   |  3 +-
 mappings/minio/adoc/modules/minio/nav.adoc         |  1 +
 mappings/minio/adoc/modules/minio/pages/about.adoc |  1 +
 .../adoc/modules/minio/partials/module-nav.adoc    |  3 +-
 mappings/publisher/adoc/modules/publisher/nav.adoc |  1 +
 .../adoc/modules/publisher/pages/about.adoc        |  1 +
 .../modules/publisher/partials/module-nav.adoc     |  3 +-
 .../restclient/adoc/modules/restclient/nav.adoc    |  1 +
 .../adoc/modules/restclient/pages/about.adoc       |  1 +
 .../modules/restclient/partials/module-nav.adoc    |  3 +-
 mappings/slack/adoc/modules/slack/nav.adoc         |  1 +
 mappings/slack/adoc/modules/slack/pages/about.adoc |  1 +
 .../adoc/modules/slack/partials/module-nav.adoc    |  3 +-
 mavendeps/adoc/modules/mavendeps/nav.adoc          |  1 +
 mavendeps/adoc/modules/mavendeps/pages/about.adoc  |  1 +
 .../modules/mavendeps/partials/module-nav.adoc     |  3 +-
 persistence/jdo/adoc/modules/ROOT/nav.adoc         |  1 +
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc |  1 +
 .../jdo/adoc/modules/ROOT/pages/configuring.adoc   |  1 +
 .../modules/ROOT/pages/configuring/bulk-load.adoc  |  1 +
 .../disabling-persistence-by-reachability.adoc     |  1 +
 .../ROOT/pages/configuring/persistence-xml.adoc    |  1 +
 .../modules/ROOT/pages/configuring/properties.adoc |  1 +
 .../pages/configuring/using-jndi-data-source.adoc  |  1 +
 .../jdo/adoc/modules/ROOT/pages/db-schemas.adoc    |  1 +
 .../adoc/modules/ROOT/pages/hints-and-tips.adoc    |  1 +
 .../pages/hints-and-tips/diagnosing-n-plus-1.adoc  |  1 +
 .../modules/ROOT/pages/hints-and-tips/java8.adoc   |  1 +
 .../pages/hints-and-tips/jdoql-and-timestamps.adoc |  1 +
 .../hints-and-tips/overriding-jdo-annotations.adoc |  1 +
 .../subtype-entity-not-fully-populated.adoc        |  1 +
 .../typesafe-queries-and-fetchgroups.adoc          |  1 +
 .../jdo/adoc/modules/ROOT/pages/jdo-mappings.adoc  |  1 +
 .../mandatory-properties-in-subtypes.adoc          |  1 +
 .../ROOT/pages/jdo-mappings/mapping-to-a-view.adoc |  1 +
 .../one-to-m-bidirectional-relationships.adoc      |  1 +
 .../ROOT/pages/services/IsisJdoSupport.adoc        |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  2 -
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |  3 +-
 security/adoc/modules/ROOT/nav.adoc                |  1 +
 security/adoc/modules/ROOT/pages/about.adoc        |  1 +
 .../domain-services-api-for-applications.adoc      |  1 +
 .../modules/ROOT/pages/usage-by-isis-viewers.adoc  |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 -
 .../adoc/modules/ROOT/partials/module-nav-end.adoc |  2 -
 .../bypass/src/main/adoc/modules/bypass/nav.adoc   |  1 +
 .../src/main/adoc/modules/bypass/pages/about.adoc  |  1 +
 .../adoc/modules/bypass/partials/module-nav.adoc   |  3 +-
 .../src/main/adoc/modules/keycloak/nav.adoc        |  1 +
 .../main/adoc/modules/keycloak/pages/about.adoc    |  1 +
 .../adoc/modules/keycloak/partials/module-nav.adoc |  3 +-
 .../shiro/src/main/adoc/modules/shiro/nav.adoc     |  1 +
 .../src/main/adoc/modules/shiro/pages/about.adoc   |  1 +
 .../pages/about/configuring-isis-to-use-shiro.adoc |  1 +
 .../pages/about/enhanced-wildcard-permission.adoc  |  1 +
 .../adoc/modules/shiro/pages/about/ini-realm.adoc  |  1 +
 .../adoc/modules/shiro/pages/about/jdbc-realm.adoc |  1 +
 .../adoc/modules/shiro/pages/about/ldap-realm.adoc |  1 +
 .../adoc/modules/shiro/pages/about/run-as.adoc     |  1 +
 .../modules/shiro/pages/about/shiro-caching.adoc   |  1 +
 .../adoc/modules/shiro/partials/module-nav.adoc    |  3 +-
 starters/adoc/modules/parent-pom/nav.adoc          |  1 +
 starters/adoc/modules/parent-pom/pages/about.adoc  |  1 +
 .../modules/parent-pom/partials/module-nav.adoc    |  3 +-
 starters/adoc/modules/starters/nav.adoc            |  1 +
 starters/adoc/modules/starters/pages/about.adoc    |  1 +
 .../modules/starters/pages/helloworld-script.adoc  |  1 +
 .../adoc/modules/starters/pages/helloworld.adoc    |  1 +
 .../modules/starters/pages/simpleapp-script.adoc   |  1 +
 .../adoc/modules/starters/pages/simpleapp.adoc     |  1 +
 .../adoc/modules/starters/partials/module-nav.adoc |  3 +-
 subdomains/adoc/modules/ROOT/nav.adoc              |  1 +
 subdomains/adoc/modules/ROOT/pages/about.adoc      |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 -
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 subdomains/base/adoc/modules/base/nav.adoc         |  1 +
 subdomains/base/adoc/modules/base/pages/about.adoc |  1 +
 .../adoc/modules/base/partials/module-nav.adoc     |  3 +-
 subdomains/docx/adoc/modules/docx/nav.adoc         |  1 +
 subdomains/docx/adoc/modules/docx/pages/about.adoc |  1 +
 .../adoc/modules/docx/partials/module-nav.adoc     |  3 +-
 subdomains/excel/adoc/modules/excel/nav.adoc       |  1 +
 .../excel/adoc/modules/excel/pages/about.adoc      |  1 +
 .../adoc/modules/excel/partials/module-nav.adoc    |  3 +-
 .../freemarker/adoc/modules/freemarker/nav.adoc    |  1 +
 .../adoc/modules/freemarker/pages/about.adoc       |  1 +
 .../modules/freemarker/partials/module-nav.adoc    |  3 +-
 subdomains/ognl/adoc/modules/ognl/nav.adoc         |  1 +
 subdomains/ognl/adoc/modules/ognl/pages/about.adoc |  1 +
 .../adoc/modules/ognl/partials/module-nav.adoc     |  3 +-
 subdomains/pdfbox/adoc/modules/pdfbox/nav.adoc     |  1 +
 .../pdfbox/adoc/modules/pdfbox/pages/about.adoc    |  1 +
 .../adoc/modules/pdfbox/partials/module-nav.adoc   |  3 +-
 subdomains/spring/adoc/modules/spring/nav.adoc     |  1 +
 .../spring/adoc/modules/spring/pages/about.adoc    |  1 +
 .../adoc/modules/spring/partials/module-nav.adoc   |  3 +-
 .../xdocreport/adoc/modules/xdocreport/nav.adoc    |  1 +
 .../adoc/modules/xdocreport/pages/about.adoc       |  1 +
 .../modules/xdocreport/partials/module-nav.adoc    |  3 +-
 subdomains/zip/adoc/modules/zip/nav.adoc           |  1 +
 subdomains/zip/adoc/modules/zip/pages/about.adoc   |  1 +
 .../zip/adoc/modules/zip/partials/module-nav.adoc  |  3 +-
 testing/adoc/modules/ROOT/nav.adoc                 |  1 +
 testing/adoc/modules/ROOT/pages/about.adoc         |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 +-
 testing/adoc/modules/ROOT/partials/module-nav.adoc |  3 +-
 .../partials/surefire-configuration-caution.adoc   |  1 +
 testing/fakedata/adoc/modules/fakedata/nav.adoc    |  1 +
 .../adoc/modules/fakedata/pages/about.adoc         |  1 +
 .../adoc/modules/fakedata/partials/intro.adoc      |  1 +
 .../adoc/modules/fakedata/partials/module-nav.adoc |  3 +-
 testing/fixtures/adoc/modules/fixtures/nav.adoc    |  1 +
 .../adoc/modules/fixtures/pages/about.adoc         |  1 +
 .../pages/fixture-scripts/api-and-usage.adoc       |  1 +
 .../pages/fixture-scripts/mocking-the-clock.adoc   |  1 +
 .../pages/fixture-scripts/sudo-service.adoc        |  1 +
 .../pages/services/ExecutionParametersService.adoc |  1 +
 .../fixtures/pages/services/FixtureScripts.adoc    |  1 +
 .../FixtureScriptsSpecificationProvider.adoc       |  1 +
 .../adoc/modules/fixtures/partials/module-nav.adoc |  3 +-
 testing/h2console/adoc/modules/h2console/nav.adoc  |  1 +
 .../adoc/modules/h2console/pages/about.adoc        |  1 +
 .../h2console/pages/services/H2ManagerMenu.adoc    |  1 +
 .../modules/h2console/partials/module-nav.adoc     |  3 +-
 testing/hsqldbmgr/adoc/modules/hsqldbmgr/nav.adoc  |  1 +
 .../adoc/modules/hsqldbmgr/pages/about.adoc        |  1 +
 .../pages/services/HsqlDbManagerMenu.adoc          |  1 +
 .../modules/hsqldbmgr/partials/module-nav.adoc     |  3 +-
 .../adoc/modules/integtestsupport/nav.adoc         |  1 +
 .../adoc/modules/integtestsupport/pages/about.adoc |  1 +
 .../pages/domain-model-validator.adoc              |  3 +-
 .../integtestsupport/pages/swagger-exporter.adoc   |  3 +-
 .../integtestsupport/partials/module-nav.adoc      |  3 +-
 .../specsupport/adoc/modules/specsupport/nav.adoc  |  1 +
 .../adoc/modules/specsupport/pages/about.adoc      |  1 +
 .../modules/specsupport/partials/module-nav.adoc   |  3 +-
 .../adoc/modules/unittestsupport/nav.adoc          |  1 +
 .../adoc/modules/unittestsupport/pages/about.adoc  |  1 +
 .../unittestsupport/partials/module-nav.adoc       |  3 +-
 valuetypes/adoc/modules/ROOT/nav.adoc              |  1 +
 valuetypes/adoc/modules/ROOT/pages/about.adoc      |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 valuetypes/asciidoc/adoc/modules/asciidoc/nav.adoc |  1 +
 .../adoc/modules/asciidoc/pages/about.adoc         |  1 +
 .../adoc/modules/asciidoc/partials/module-nav.adoc |  3 +-
 valuetypes/markdown/adoc/modules/markdown/nav.adoc |  1 +
 .../adoc/modules/markdown/pages/about.adoc         |  1 +
 .../adoc/modules/markdown/partials/module-nav.adoc |  3 +-
 valuetypes/sse/adoc/modules/sse/nav.adoc           |  1 +
 valuetypes/sse/adoc/modules/sse/pages/about.adoc   |  1 +
 .../sse/adoc/modules/sse/partials/module-nav.adoc  |  3 +-
 viewers/restfulobjects/adoc/modules/ROOT/nav.adoc  |  1 +
 .../adoc/modules/ROOT/pages/about.adoc             |  1 +
 .../adoc/modules/ROOT/pages/architecture.adoc      |  1 +
 .../ROOT/pages/configuration-properties.adoc       |  1 +
 .../adoc/modules/ROOT/pages/health-check.adoc      |  1 +
 .../adoc/modules/ROOT/pages/hints-and-tips.adoc    |  1 +
 .../ROOT/pages/hints-and-tips/angular-tips.adoc    |  1 +
 .../ROOT/pages/hints-and-tips/pretty-printing.adoc |  1 +
 .../hints-and-tips/restful-image-property.adoc     |  1 +
 .../ROOT/pages/hints-and-tips/troubleshooting.adoc |  1 +
 .../hints-and-tips/using-chrome-devtools.adoc      |  1 +
 .../hints-and-tips/view-model-as-parameter.adoc    |  1 +
 .../adoc/modules/ROOT/pages/layout-resources.adoc  |  1 +
 .../adoc/modules/ROOT/pages/ro-spec.adoc           |  1 +
 .../adoc/modules/ROOT/pages/security.adoc          |  1 +
 .../ROOT/pages/simplified-representations.adoc     |  1 +
 .../action-invocation.adoc                         |  1 +
 .../apache-isis-profile.adoc                       |  1 +
 .../configuration-properties.adoc                  |  1 +
 .../simplified-representations/domain-object.adoc  |  1 +
 .../object-collection.adoc                         |  1 +
 .../other-representations.adoc                     |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 .../ROOT/partials/security/user-registration.adoc  |  1 +
 .../modules/ROOT/partials/security/web-xml.adoc    |  1 +
 viewers/wicket/adoc/modules/ROOT/nav.adoc          |  1 +
 viewers/wicket/adoc/modules/ROOT/pages/about.adoc  |  1 +
 .../ROOT/pages/configuration-properties.adoc       |  1 +
 .../adoc/modules/ROOT/pages/customisation.adoc     |  1 +
 .../ROOT/pages/customisation/about-page.adoc       |  1 +
 .../ROOT/pages/customisation/auto-refresh.adoc     |  1 +
 .../ROOT/pages/customisation/brand-logo.adoc       |  1 +
 .../customisation/cheap-n-cheerful-theme.adoc      |  1 +
 .../pages/customisation/custom-javascript.adoc     |  1 +
 .../pages/customisation/request-parameters.adoc    |  1 +
 .../pages/customisation/top-level-index-page.adoc  |  1 +
 .../pages/customisation/tweaking-css-classes.adoc  |  1 +
 .../customisation/using-different-css-file.adoc    |  1 +
 .../ROOT/pages/customisation/welcome-page.adoc     |  1 +
 .../wicket/adoc/modules/ROOT/pages/extending.adoc  |  1 +
 .../pages/extending/custom-bootstrap-theme.adoc    |  1 +
 .../modules/ROOT/pages/extending/custom-pages.adoc |  1 +
 .../login-via-query-args-prototyping.adoc          |  1 +
 .../pages/extending/replacing-page-elements.adoc   |  1 +
 .../wicket/adoc/modules/ROOT/pages/features.adoc   |  1 +
 .../ROOT/pages/features/blob-attachments.adoc      |  1 +
 .../ROOT/pages/features/bookmarked-pages.adoc      |  1 +
 .../ROOT/pages/features/hints-and-copy-url.adoc    |  1 +
 .../modules/ROOT/pages/features/recent-pages.adoc  |  1 +
 .../pages/features/sidebar-vs-modal-dialogs.adoc   |  1 +
 .../ROOT/pages/features/titles-in-tables.adoc      |  1 +
 .../ROOT/pages/features/user-registration.adoc     |  1 +
 .../modules/ROOT/pages/features/where-am-i.adoc    |  1 +
 .../adoc/modules/ROOT/pages/hints-and-tips.adoc    |  1 +
 .../hints-and-tips/highlight-current-row.adoc      |  1 +
 .../i18n-label-in-wicket-viewer.adoc               |  1 +
 .../ROOT/pages/hints-and-tips/per-user-themes.adoc |  1 +
 .../ROOT/pages/hints-and-tips/svg-support.adoc     |  1 +
 .../adoc/modules/ROOT/pages/incode-platform.adoc   |  1 +
 viewers/wicket/adoc/modules/ROOT/pages/layout.adoc |  1 +
 .../ROOT/pages/layout/annotation-based.adoc        |  1 +
 .../adoc/modules/ROOT/pages/layout/file-based.adoc |  1 +
 .../modules/ROOT/pages/layout/table-columns.adoc   |  1 +
 .../adoc/modules/ROOT/pages/menubars-layout.adoc   |  1 +
 .../pages/menubars-layout/annotation-based.adoc    |  1 +
 .../ROOT/pages/menubars-layout/file-based.adoc     |  1 +
 .../wicket/adoc/modules/ROOT/pages/security.adoc   |  1 +
 .../adoc/modules/ROOT/partials/component-nav.adoc  |  3 +-
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  3 +-
 .../adoc/modules/ROOT/partials/security/pages.adoc |  1 +
 .../ROOT/partials/security/user-registration.adoc  |  1 +
 1062 files changed, 1333 insertions(+), 262 deletions(-)

diff --git a/antora/components/_component-template/modules/ROOT/nav.adoc b/antora/components/_component-template/modules/ROOT/nav.adoc
index 65ff6c0..ff2ca13 100644
--- a/antora/components/_component-template/modules/ROOT/nav.adoc
+++ b/antora/components/_component-template/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * About
diff --git a/antora/components/_component-template/modules/ROOT/pages/about.adoc b/antora/components/_component-template/modules/ROOT/pages/about.adoc
index 5bc1d38..6166063 100644
--- a/antora/components/_component-template/modules/ROOT/pages/about.adoc
+++ b/antora/components/_component-template/modules/ROOT/pages/about.adoc
@@ -1,5 +1,6 @@
 = About
-: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 [...]
 :page-role: -toc -title
 
+: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 [...]
+
 
diff --git a/antora/components/_component-template/modules/_module-template/nav.adoc b/antora/components/_component-template/modules/_module-template/nav.adoc
index 20ac428..ec6e4b9 100644
--- a/antora/components/_component-template/modules/_module-template/nav.adoc
+++ b/antora/components/_component-template/modules/_module-template/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * Module Template
diff --git a/antora/components/_component-template/modules/_module-template/pages/about.adoc b/antora/components/_component-template/modules/_module-template/pages/about.adoc
index c6c0c9d..b5c499f 100644
--- a/antora/components/_component-template/modules/_module-template/pages/about.adoc
+++ b/antora/components/_component-template/modules/_module-template/pages/about.adoc
@@ -1,4 +1,5 @@
 = About
+
 :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 [...]
 
 This doc module is empty, intended for use as a template when creating new modules.
diff --git a/antora/components/comguide/modules/ROOT/nav.adoc b/antora/components/comguide/modules/ROOT/nav.adoc
index 3825f86..354a550 100644
--- a/antora/components/comguide/modules/ROOT/nav.adoc
+++ b/antora/components/comguide/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:merging-a-pull-request.adoc[Merging a Pull Request]
diff --git a/antora/components/comguide/modules/ROOT/pages/about.adoc b/antora/components/comguide/modules/ROOT/pages/about.adoc
index ffcaba4..750f13e 100644
--- a/antora/components/comguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/about.adoc
@@ -1,7 +1,8 @@
 = Committers' Guide
-: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 [...]
 :page-role: -toc
 
+: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 [...]
+
 This committers' guide is for committers of Apache Isis itself who want guidance on release process, publishing documents and other related procedures.
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
index 4c5e1e3..21a1a71 100644
--- a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
@@ -1,5 +1,6 @@
 [[antora-publish-procedure]]
 = Publishing the Docs
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc b/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
index 1ed5485..e9f7feb 100644
--- a/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
@@ -1,5 +1,6 @@
 [[applying-patches]]
 = Applying Patches
+
 :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 [...]
 :page-partial:
 
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 85a1fdf..e3b7123 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -1,4 +1,5 @@
 = Cutting a Release
+
 :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 [...]
 :page-partial:
 
@@ -204,10 +205,7 @@ cd core-parent
 
 === Bump `revision` property to `$ISISREL`
 
-Previously we used the `maven-release-plugin` which took responsibility for bumping the `<version>` from -SNAPSHOT to release, and then onto the next -SNAPSHOT.
-However, we now use a simpler process, and just use `mvn versions:set`.
-
-So, bump to the release version:
+We use `mvn versions:set` to manually bump the release version:
 
 [source,bash,subs="attributes+"]
 ----
@@ -420,6 +418,72 @@ mvn -pl webapp spring-boot:run
 git push -u origin $ISISBRANCH
 ----
 
+== Preview website
+
+We also prepare a preview of the next version of the website, then made accessible from link:https://isis.staged.apache.org[].
+
+* Prerequisites:
+
+** clone the link:https://github.com/apache/isis-site[] repo, alongside the `isis` repo:
++
+[source,bash,subs="attributes+"]
+----
+git clone https://github.com/apache/isis-site ../isis-site
+----
+
+** in the `isis-site` repo, check out the `asf-staging` branch:
++
+[source,bash,subs="attributes+"]
+----
+cd ../isis-site
+
+git checkout asf-staging
+git pull origin/asf-staging --ff-only
+----
+
+* still in the `isis-site` repo, delete all the files in `content/` _except_ for the `schema` and `versions` directories:
++
+[source,bash,subs="attributes+"]
+----
+pushd content
+for a in $(ls -1 | grep -v schema | grep -v versions)
+do
+    rm -rf $a
+done
+popd
+----
+
+* Back in the `isis` repo, generate the Antora site (from the top-level directory):
++
+[source,bash,subs="attributes+"]
+----
+cd ../isis
+
+sh preview.sh
+----
+
+* Copy the generated Antora site to `isis-site` repo's `contents` directory:
++
+[source,bash,subs="attributes+"]
+----
+cp -Rf antora/target/site/* ../isis-site/content/.
+----
+
+* Back in the `isis-site` repo, commit the changes and preview:
++
+[source,bash,subs="attributes+"]
+----
+cd ../isis-site
+
+git add .
+git commit -m "$ISISJIRA : staging changes to website"
+sh preview.sh
+----
+
+
+
+
+
 == Voting
 
 Once the artifacts have been uploaded, you can call a vote.
@@ -435,7 +499,7 @@ Adapt as required:
 
 Use the following subject, eg:
 
-[source,bash,subs="attributes+"]
+[source,subs="attributes+"]
 ----
 [VOTE] Apache Isis Core release {isisnext} RC1
 ----
diff --git a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
index 724c255..2ea766a 100644
--- a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
@@ -1,5 +1,6 @@
 [[key-generation]]
 = Key Generation
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc b/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
index 4f5de92..a954a62 100644
--- a/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
@@ -1,5 +1,6 @@
 [[merging-a-pull-request]]
 = Merging a Pull Request
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
index 5921caf..637158c 100644
--- a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
@@ -1,4 +1,5 @@
 = Appendix: PMC
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/policies.adoc b/antora/components/comguide/modules/ROOT/pages/policies.adoc
index c810fec..5bc0546 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies.adoc
@@ -1,4 +1,5 @@
 = Policies
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc b/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
index 32172b8..e29abec 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
@@ -1,5 +1,6 @@
 [[git-policy]]
 = Git Policy
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc b/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
index 201a18a..9281f84 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
@@ -1,4 +1,5 @@
 = Versioning Policy
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index 78d17be..b14fef8 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -1,4 +1,5 @@
 = Post Release (Successful)
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
index e35e5f5..4709685 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
@@ -1,4 +1,5 @@
 = Post Release (Unsuccessful)
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
index 03b5c90..08c8cd4 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
@@ -1,5 +1,6 @@
 [[release-process-for-interim-releases]]
 = Interim Releases
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
index 3ddfceb..e4386d3 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
@@ -1,5 +1,6 @@
 [[release-process-prereqs]]
 = Appendix: Release Prereqs
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
index 610bf66..d66cc4a 100644
--- a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
@@ -1,5 +1,6 @@
 [[verifying-releases]]
 = Verifying a Release
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/ROOT/nav.adoc b/antora/components/conguide/modules/ROOT/nav.adoc
index 7ce009a..9f7fa37 100644
--- a/antora/components/conguide/modules/ROOT/nav.adoc
+++ b/antora/components/conguide/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:contributing.adoc[Contributing]
diff --git a/antora/components/conguide/modules/ROOT/pages/about.adoc b/antora/components/conguide/modules/ROOT/pages/about.adoc
index 2669c9b..7438bd5 100644
--- a/antora/components/conguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/about.adoc
@@ -1,4 +1,5 @@
 = Contributors' Guide
+
 :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 [...]
 
 This guide provides guidance to anyone in the community wanting to contribute to Apache Isis' ongoing development.
diff --git a/antora/components/conguide/modules/ROOT/pages/agilej.adoc b/antora/components/conguide/modules/ROOT/pages/agilej.adoc
index 667c472..a418b14 100644
--- a/antora/components/conguide/modules/ROOT/pages/agilej.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/agilej.adoc
@@ -1,5 +1,6 @@
 [[agilej]]
 = Appendix: AgileJ
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc b/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc
index 9504299..e054426 100644
--- a/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc
@@ -1,5 +1,6 @@
 [[building-apache-isis]]
 = Building Apache Isis
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc b/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc
index 1d4555b..6bd8d87 100644
--- a/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc
@@ -1,5 +1,6 @@
 [[building-docs-and-website]]
 = Building Docs and Website
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/ROOT/pages/cmd-line.adoc b/antora/components/conguide/modules/ROOT/pages/cmd-line.adoc
index 6aaa8aa..6c71067 100644
--- a/antora/components/conguide/modules/ROOT/pages/cmd-line.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/cmd-line.adoc
@@ -1,5 +1,6 @@
 [[cmd-line]]
 = Command Line and CI
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/ROOT/pages/contributing.adoc b/antora/components/conguide/modules/ROOT/pages/contributing.adoc
index 50bd425..b7c9671 100644
--- a/antora/components/conguide/modules/ROOT/pages/contributing.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/contributing.adoc
@@ -1,5 +1,6 @@
 [[contributing]]
 = Contributing
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/documentation/nav.adoc b/antora/components/conguide/modules/documentation/nav.adoc
index eee4101..5e58d73 100644
--- a/antora/components/conguide/modules/documentation/nav.adoc
+++ b/antora/components/conguide/modules/documentation/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:conguide:documentation:about.adoc[Documentation]
diff --git a/antora/components/conguide/modules/documentation/pages/about.adoc b/antora/components/conguide/modules/documentation/pages/about.adoc
index 5c4a1be..1dc5d9c 100644
--- a/antora/components/conguide/modules/documentation/pages/about.adoc
+++ b/antora/components/conguide/modules/documentation/pages/about.adoc
@@ -1,4 +1,5 @@
 = Documentation
+
 :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 [...]
 
 
diff --git a/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc b/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc
index 3d43df9..d2df5ca 100644
--- a/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc
+++ b/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc
@@ -1,4 +1,5 @@
 = Asciidoc Syntax
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc b/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc
index d0dda73..89125f1 100644
--- a/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc
+++ b/antora/components/conguide/modules/documentation/pages/building-docs-and-website.adoc
@@ -1,4 +1,5 @@
 = Building Docs and Website
+
 :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 [...]
 
 
diff --git a/antora/components/conguide/modules/eclipse/nav.adoc b/antora/components/conguide/modules/eclipse/nav.adoc
index ab8388d..bb493e5 100644
--- a/antora/components/conguide/modules/eclipse/nav.adoc
+++ b/antora/components/conguide/modules/eclipse/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:conguide:eclipse:about.adoc[Eclipse]
diff --git a/antora/components/conguide/modules/eclipse/pages/about.adoc b/antora/components/conguide/modules/eclipse/pages/about.adoc
index 8915015..e4f968c 100644
--- a/antora/components/conguide/modules/eclipse/pages/about.adoc
+++ b/antora/components/conguide/modules/eclipse/pages/about.adoc
@@ -1,4 +1,5 @@
 = Eclipse
+
 :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 [...]
 
 Additional configuration of Eclipse for contributors (and committers):
diff --git a/antora/components/conguide/modules/git/nav.adoc b/antora/components/conguide/modules/git/nav.adoc
index 2c3eac6..2757905 100644
--- a/antora/components/conguide/modules/git/nav.adoc
+++ b/antora/components/conguide/modules/git/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:conguide:git:about.adoc[Git Cookbook]
diff --git a/antora/components/conguide/modules/git/pages/about.adoc b/antora/components/conguide/modules/git/pages/about.adoc
index 40a4c83..e932432 100644
--- a/antora/components/conguide/modules/git/pages/about.adoc
+++ b/antora/components/conguide/modules/git/pages/about.adoc
@@ -1,4 +1,5 @@
 = Git Cookbook
+
 :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 [...]
 
 
diff --git a/antora/components/conguide/modules/intellij/nav.adoc b/antora/components/conguide/modules/intellij/nav.adoc
index e722335..f8b1866 100644
--- a/antora/components/conguide/modules/intellij/nav.adoc
+++ b/antora/components/conguide/modules/intellij/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:conguide:intellij:about.adoc[IntelliJ]
diff --git a/antora/components/conguide/modules/intellij/pages/about.adoc b/antora/components/conguide/modules/intellij/pages/about.adoc
index 8a8550a..60c21d5 100644
--- a/antora/components/conguide/modules/intellij/pages/about.adoc
+++ b/antora/components/conguide/modules/intellij/pages/about.adoc
@@ -1,4 +1,5 @@
 = IntelliJ
+
 :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 [...]
 
 Additional configuration of IntelliJ for contributors (and committers).
diff --git a/antora/components/docs/modules/ROOT/nav.adoc b/antora/components/docs/modules/ROOT/nav.adoc
index fa6a178..20be835 100644
--- a/antora/components/docs/modules/ROOT/nav.adoc
+++ b/antora/components/docs/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/docs/modules/ROOT/pages/about.adoc b/antora/components/docs/modules/ROOT/pages/about.adoc
index cc460b9..5546611 100644
--- a/antora/components/docs/modules/ROOT/pages/about.adoc
+++ b/antora/components/docs/modules/ROOT/pages/about.adoc
@@ -1,7 +1,8 @@
 = Menu
-: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 [...]
 :page-role: -narrow -title
 
+: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 [...]
+
 
 [.nogrid]
 [cols="1a,1a,1a",frame="none", grid="none", stripes="none"]
diff --git a/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc b/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
index 3e9e008..1ace3be 100644
--- a/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
+++ b/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
@@ -1,4 +1,5 @@
 = Downloads
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc b/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc
index f6846c6..b2c6570 100644
--- a/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc
+++ b/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc
@@ -1,4 +1,5 @@
 = Articles, Conference Sessions, Podcasts
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc b/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc
index bdc4c77..72fa499 100644
--- a/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc
+++ b/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc
@@ -1,5 +1,6 @@
 [[books]]
 = Books
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
index 177af7e..4c80dfe 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
@@ -1,4 +1,5 @@
 = Components
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc
index a4c9cf2..bba22c0 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc
@@ -1,4 +1,5 @@
 = Guides
+
 :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 [...]
 
 This page lists the user and reference guides available for developers to create applications with the framework:
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc
index 38a8dcc..e0f9672 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc
@@ -1,4 +1,5 @@
 = Framework
+
 :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 [...]
 
 These guides and documents relate to the framework itself, so will be of interest to contributors and committers only.
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc
index 64f7241..c238d22 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc
@@ -1,4 +1,5 @@
 = Libraries
+
 :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 [...]
 
 Included with the framework are several catalogues of libraries:
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc
index c5ca749..107edd9 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc
@@ -1,4 +1,5 @@
 = Releases
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc b/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc
index 93a454f..6e99f17 100644
--- a/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc
+++ b/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc
@@ -1,4 +1,5 @@
 = With thanks
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc
index 16537a0..dab2934 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc
@@ -1,4 +1,5 @@
 = Common Use Cases
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc
index 69c6136..7311f01 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/isis-in-pictures.adoc
@@ -1,4 +1,5 @@
 = Apache Isis in Pictures
+
 :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 [...]
 
 // TODO: v2: NICE-TO-HAVE: these screenshots should be updated, but first need to port the todoapp over first (which also means the various modules from incode-platform)
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
index bde0a3e..651a224 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
@@ -1,4 +1,5 @@
 = Powered By
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc
index 4c1b175..ec3d8ec 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc
@@ -1,4 +1,5 @@
 = CommApp
+
 :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 [...]
 :page-partial:r
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc
index ddc190e..4bb6054 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc
@@ -1,4 +1,5 @@
 = Contact App
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc
index 47118f9..2f3f49e 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc
@@ -1,4 +1,5 @@
 = CQNZ (Sequence)
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc
index fe5dd2f..36eac29 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc
@@ -1,4 +1,5 @@
 = Estatio
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc
index a56e492..4097e07 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc
@@ -1,4 +1,5 @@
 = GESCONSULTOR GRC
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc
index e7911d6..2c2eafe 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc
@@ -1,4 +1,5 @@
 = TransportPlanner
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
index 16478e5..9ad01bf 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
@@ -1,5 +1,6 @@
 [[screencasts-older]]
 = (Older) Screencasts
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
index aaf0d0f..6c9b3ee 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
@@ -1,7 +1,8 @@
 = Screencasts
-: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 [...]
 :page-role: -toc
 
+: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 [...]
+
 
 // TODO: v2: NICE-TO-HAVE: update these screenshots for v2
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc
index dd99d79..a5414ea 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 :page-partial:
diff --git a/antora/components/docs/modules/ROOT/partials/component-nav.adoc b/antora/components/docs/modules/ROOT/partials/component-nav.adoc
index 15a44b5..8cbdfeb 100644
--- a/antora/components/docs/modules/ROOT/partials/component-nav.adoc
+++ b/antora/components/docs/modules/ROOT/partials/component-nav.adoc
@@ -1,6 +1,3 @@
-: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::docs:ROOT:partial$module-nav/what-is-apache-isis.adoc[]
 include::docs:ROOT:partial$module-nav/quick-start.adoc[]
 include::docs:ROOT:partial$module-nav/demos-and-tutorials.adoc[]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
index 5d3b4a4..bfba594 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc
@@ -1,8 +1,10 @@
+
 :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 [...]
 
 * Components
 
 ** Viewers
+
 *** xref:vw:ROOT:about.adoc[Wicket UI]
 *** xref:vro:ROOT:about.adoc[Restful Objects (REST API)]
 
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc
index c39aa9c..e3d47e7 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/demos-and-tutorials.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc
index 4b3815f..7b9ca5d 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/framework.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc
index 334cc5b..5750468 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/libraries.adoc
@@ -1,15 +1,14 @@
+
 :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 [...]
 
 
 * Libraries
 
 ** For Use in Apps
-
 ***  xref:subdomains:ROOT:about.adoc[Subdomain Libraries]
 ***  xref:valuetypes:ROOT:about.adoc[Value Types]
 
 ** Integrate between Apps
-
 ***  xref:mappings:ROOT:about.adoc[Bounded Context Mapping Libraries]
 
 ** Other
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc
index d2c79df..e89a19f 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/quick-start.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * Quick Start
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc
index 894be31..8dfe567 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/releases.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * Releases
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc
index 1a44acb..d06617c 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/resources.adoc
@@ -1,3 +1,4 @@
+
 :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::docs:resources:partial$module-nav.adoc[]
diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc
index 8de2d32..429ec1d 100644
--- a/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc
+++ b/antora/components/docs/modules/ROOT/partials/module-nav/what-is-apache-isis.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * What is Apache Isis?
diff --git a/antora/components/docs/modules/resources/nav.adoc b/antora/components/docs/modules/resources/nav.adoc
index fa6a178..20be835 100644
--- a/antora/components/docs/modules/resources/nav.adoc
+++ b/antora/components/docs/modules/resources/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/docs/modules/resources/pages/about.adoc b/antora/components/docs/modules/resources/pages/about.adoc
index a8c49b8..4ed1a1d 100644
--- a/antora/components/docs/modules/resources/pages/about.adoc
+++ b/antora/components/docs/modules/resources/pages/about.adoc
@@ -1,4 +1,5 @@
 = Resources
+
 :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 [...]
 
 The following resources are available to help you develop your Apache Isis applications:
diff --git a/antora/components/docs/modules/resources/pages/cheatsheet.adoc b/antora/components/docs/modules/resources/pages/cheatsheet.adoc
index e085c11..240ec55 100644
--- a/antora/components/docs/modules/resources/pages/cheatsheet.adoc
+++ b/antora/components/docs/modules/resources/pages/cheatsheet.adoc
@@ -1,7 +1,8 @@
 = Cheat Sheet
-: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 [...]
 :page-role: -toc
 
+: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 [...]
+
 This "one-pager" cheat sheet summarises the main programming conventions to follow when writing an Apache Isis application.
 
 pass:[<br/>]
diff --git a/antora/components/docs/modules/resources/pages/icons.adoc b/antora/components/docs/modules/resources/pages/icons.adoc
index 65fd040..9f1e466 100644
--- a/antora/components/docs/modules/resources/pages/icons.adoc
+++ b/antora/components/docs/modules/resources/pages/icons.adoc
@@ -1,8 +1,8 @@
 = Icons
-: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 [...]
-
 :page-role: -toc
 
+: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 [...]
+
 Most Apache Isis viewers use icons to help identify domain objects in the user interface.
 It's a good idea to ensure that these are styled consistently.
 Here are some open source icon sets for both personal and commercial use (though some require a link back to the authors website):
diff --git a/antora/components/docs/modules/resources/partials/module-nav.adoc b/antora/components/docs/modules/resources/partials/module-nav.adoc
index 5bee6a1..a6ef7f0 100644
--- a/antora/components/docs/modules/resources/partials/module-nav.adoc
+++ b/antora/components/docs/modules/resources/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * Resources
 
diff --git a/antora/components/docs/modules/support/nav.adoc b/antora/components/docs/modules/support/nav.adoc
index fa6a178..20be835 100644
--- a/antora/components/docs/modules/support/nav.adoc
+++ b/antora/components/docs/modules/support/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/docs/modules/support/pages/about.adoc b/antora/components/docs/modules/support/pages/about.adoc
index 2745b72..f7890d5 100644
--- a/antora/components/docs/modules/support/pages/about.adoc
+++ b/antora/components/docs/modules/support/pages/about.adoc
@@ -1,4 +1,5 @@
 = Support & Releases
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/support/pages/mailing-list.adoc b/antora/components/docs/modules/support/pages/mailing-list.adoc
index 1d03c5b..f7aa1f3 100644
--- a/antora/components/docs/modules/support/pages/mailing-list.adoc
+++ b/antora/components/docs/modules/support/pages/mailing-list.adoc
@@ -1,4 +1,5 @@
 = Mailing lists
+
 :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 [...]
 :page-aliases: mailing-list/how-to-subscribe.adoc
 
diff --git a/antora/components/docs/modules/support/pages/slack-channel.adoc b/antora/components/docs/modules/support/pages/slack-channel.adoc
index cb245dd..9c5c5eb 100644
--- a/antora/components/docs/modules/support/pages/slack-channel.adoc
+++ b/antora/components/docs/modules/support/pages/slack-channel.adoc
@@ -1,4 +1,5 @@
 = Slack Channel
+
 :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 [...]
 
 
diff --git a/antora/components/docs/modules/support/partials/module-nav.adoc b/antora/components/docs/modules/support/partials/module-nav.adoc
index 344cf42..cc6e06d 100644
--- a/antora/components/docs/modules/support/partials/module-nav.adoc
+++ b/antora/components/docs/modules/support/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 
 * Support
diff --git a/antora/components/relnotes/modules/ROOT/nav.adoc b/antora/components/relnotes/modules/ROOT/nav.adoc
index 5b6f030..7c59977 100644
--- a/antora/components/relnotes/modules/ROOT/nav.adoc
+++ b/antora/components/relnotes/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * 2019
diff --git a/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc
index cdd6981..c303d83 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.0.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc
index c23cd8c..253c32a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.0.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc
index 2ff891d..c588a0e 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.1.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc
index f6562d3..e7ea8bd 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.2.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc
index b210c79..4e18eb6 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.3.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc
index 60c618f..91dc5f4 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.3.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc
index f66c8f9..5020d7b 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.4.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc
index aea70b9..f5a885a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.4.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc
index 15ef92b..cfe2d3f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.5.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc
index 8b26ac8..dafb67b 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.6.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/mignotes.adoc
index f944e93..cfcf21e 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.6.0 to 1.7.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc
index 1f5eeb8..48ebe02 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.7.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/mignotes.adoc
index 50b5a90..33e43c5 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.9.0 to 1.10.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc
index 8b1bb97..58f3c1c 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.10.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/mignotes.adoc
index 3676bdb..8f439af 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.7.0 to 1.8.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc
index 76967b3..6b1553a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.8.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes.adoc
index 96a029e..dd026c9 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = Migrating from v1.8.0 to 1.9.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/bootstrapping-using-AppManifest.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/bootstrapping-using-AppManifest.adoc
index 6702f55..7a34366 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/bootstrapping-using-AppManifest.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/bootstrapping-using-AppManifest.adoc
@@ -1,4 +1,5 @@
 = Bootstrapping using `AppManifest`
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/exception-recognizer.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/exception-recognizer.adoc
index 293d6aa..987896a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/exception-recognizer.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/exception-recognizer.adoc
@@ -1,4 +1,5 @@
 = `ExceptionRecognizerCompositeForJdoObjectStore`
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/fixture-scripts-specification-provider.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/fixture-scripts-specification-provider.adoc
index b2a6b29..474e309 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/fixture-scripts-specification-provider.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/fixture-scripts-specification-provider.adoc
@@ -1,4 +1,5 @@
 = `FixtureScriptsSpecificationProvider`
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/specify-all-dom-packages.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/specify-all-dom-packages.adoc
index 6bde1dc..f948c3a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/specify-all-dom-packages.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/specify-all-dom-packages.adoc
@@ -1,4 +1,5 @@
 = Specify all `dom` packages
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-dn4.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-dn4.adoc
index c510b04..f5e583f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-dn4.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-dn4.adoc
@@ -1,4 +1,5 @@
 = Upgrading to DataNucleus 4
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-java8.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-java8.adoc
index 9822f0f..0a8b96e 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-java8.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/upgrading-to-java8.adoc
@@ -1,4 +1,5 @@
 = Upgrading to Java 8
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/war-packaging.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/war-packaging.adoc
index 6d64cfc..aa1da7f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/war-packaging.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/mignotes/war-packaging.adoc
@@ -1,4 +1,5 @@
 = War packaging
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc
index 2cba35f..7921ecf 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.9.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/mignotes.adoc
index 2b4dae4..086e5ef 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.10.0 to 1.11.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc
index d37d35c..9ed1c21 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.11.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc
index 66c14f0..37bd93d 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.11.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc
index cccf64a..139ec81 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.11.0 to 1.12.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
index f5811ad..329f451 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.12.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc
index a5df0c9..1a09a90 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.12.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc
index 9d6c9d2..8528440 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.12.2
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/mignotes.adoc
index f0f904a..abef8d6 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.12.x to 1.13.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc
index 0e9811b..c6416a9 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.13.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc
index 1b11ea4..4e263b7 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.13.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc
index a2eedff..f0a8b12 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.13.2
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc
index c482af8..a1e2b5a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.13.2.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/mignotes.adoc
index e61f6af..bb20c86 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.13.x to 1.14.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc
index 7cb22f3..72e3a96 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.14.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/mignotes.adoc
index 67f2c1c..18fe911 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.14.x to 1.15.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc
index 6f3accb..861397f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.15.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc
index d594aef..4b04b03 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.15.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/mignotes.adoc
index e589e18..1b12466 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.15.x to 1.16.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc
index 054eac6..4a0269e 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.16.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc
index 767d267..57f09e0 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.16.1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc
index 9c49d68..ce6e5b1 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.16.2
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes.adoc
index 39728bd..69ebeb3 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.16.x to 2.0.0-M1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/legacy-modules.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/legacy-modules.adoc
index 6ef46eb..b4737e0 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/legacy-modules.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/legacy-modules.adoc
@@ -1,4 +1,5 @@
 = Legacy Modules
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/meta-annotations.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/meta-annotations.adoc
index ffee1a6..21d31e2 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/meta-annotations.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/meta-annotations.adoc
@@ -1,4 +1,5 @@
 = Meta annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/moved-types.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/moved-types.adoc
index d3965a9..e0f103c 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/moved-types.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/moved-types.adoc
@@ -1,4 +1,5 @@
 = Moved types
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/other-changes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/other-changes.adoc
index 3d2eda1..ef2dc24 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/other-changes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/other-changes.adoc
@@ -1,4 +1,5 @@
 = Other Changes
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-annotations.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-annotations.adoc
index af044e7..71f1d6a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-annotations.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-annotations.adoc
@@ -1,4 +1,5 @@
 = Removed annotations/attributes
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-configuration-properties.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-configuration-properties.adoc
index 161f19c..c43a0d4 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-configuration-properties.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-configuration-properties.adoc
@@ -1,4 +1,5 @@
 = Removed configuration properties
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-types.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-types.adoc
index 354eeb8..526b99f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-types.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/removed-types.adoc
@@ -1,4 +1,5 @@
 = Removed types
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-annotations.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-annotations.adoc
index dc5d546..fce030f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-annotations.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-annotations.adoc
@@ -1,4 +1,5 @@
 = Updated annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-classes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-classes.adoc
index cb283cb..57d231a 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-classes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/mignotes/updated-classes.adoc
@@ -1,5 +1,6 @@
 
 = Updated classes
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc
index b1e8b48..14100e5 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc
@@ -1,4 +1,5 @@
 = 2.0.0-M1
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/mignotes.adoc
index f07590d..c47e747 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/mignotes.adoc
@@ -1,4 +1,5 @@
 = From v1.16.x to 1.17.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
index 6c1e645..b563f13 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
@@ -1,4 +1,5 @@
 = 1.17.0
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc
index 53519bb..82de2f4 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc
@@ -1,4 +1,5 @@
 = 2.0.0-M2
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/about.adoc b/antora/components/relnotes/modules/ROOT/pages/about.adoc
index 0535447..5c276a5 100644
--- a/antora/components/relnotes/modules/ROOT/pages/about.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/about.adoc
@@ -1,7 +1,8 @@
 = Release Notes
-: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 [...]
 :page-role: -toc
 
+: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 [...]
+
 
 This table summarises all releases of Apache Isis to date.
 
diff --git a/antora/components/setupguide/modules/ROOT/nav.adoc b/antora/components/setupguide/modules/ROOT/nav.adoc
index ca04c21..9e0d1b7 100644
--- a/antora/components/setupguide/modules/ROOT/nav.adoc
+++ b/antora/components/setupguide/modules/ROOT/nav.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/antora/components/setupguide/modules/ROOT/pages/about.adoc b/antora/components/setupguide/modules/ROOT/pages/about.adoc
index ef902a1..b4d005e 100644
--- a/antora/components/setupguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/setupguide/modules/ROOT/pages/about.adoc
@@ -1,7 +1,8 @@
 = Setup Guide
-: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 [...]
 :page-role: -toc
 
+: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 [...]
+
 
 The vast majority of Java developers use an IDE to assist with developing their code, and we highly recommend that you do likewise as you develop your Apache Isis applications using an IDE.
 
diff --git a/antora/components/setupguide/modules/eclipse/nav.adoc b/antora/components/setupguide/modules/eclipse/nav.adoc
index a82e4eb..d184098 100644
--- a/antora/components/setupguide/modules/eclipse/nav.adoc
+++ b/antora/components/setupguide/modules/eclipse/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:setupguide:eclipse:about.adoc[Using Eclipse]
diff --git a/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc b/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc
index 46719fa..964db6f 100644
--- a/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc
+++ b/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc
@@ -1,5 +1,6 @@
 [[eclipse]]
 = Developing using Eclipse
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/nav.adoc b/antora/components/setupguide/modules/hints-and-tips/nav.adoc
index 431aa4f..40a33d7 100644
--- a/antora/components/setupguide/modules/hints-and-tips/nav.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:setupguide:hints-and-tips:about.adoc[Hints & Tips]
diff --git a/antora/components/setupguide/modules/hints-and-tips/pages/about.adoc b/antora/components/setupguide/modules/hints-and-tips/pages/about.adoc
index edd6692..962d702 100644
--- a/antora/components/setupguide/modules/hints-and-tips/pages/about.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/pages/about.adoc
@@ -1,4 +1,5 @@
 = Hints and Tips
+
 :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 [...]
 
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc
index fc8618b..d9ac972 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc
@@ -1,4 +1,5 @@
 = Datanucleus Enhancer
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc
index 92cdbe3..1134e32 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc
@@ -1,4 +1,5 @@
 = Enhance only (IntelliJ)
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc
index 8f72df6..b42c172 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc
@@ -1,4 +1,5 @@
 = How run fixtures on startup?
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/project-lombok.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/project-lombok.adoc
index 6252193..b3c4870 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/project-lombok.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/project-lombok.adoc
@@ -1,4 +1,5 @@
 = Project Lombok
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/switching-between-directories.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/switching-between-directories.adoc
index d573c1b..48c6255 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/switching-between-directories.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/switching-between-directories.adoc
@@ -1,4 +1,5 @@
 = Bash Utilities
+
 :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 [...]
 
 
diff --git a/antora/components/setupguide/modules/intellij/nav.adoc b/antora/components/setupguide/modules/intellij/nav.adoc
index a0398c7..f676c8f 100644
--- a/antora/components/setupguide/modules/intellij/nav.adoc
+++ b/antora/components/setupguide/modules/intellij/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * xref:setupguide:intellij:about.adoc[Using IntelliJ]
diff --git a/antora/components/setupguide/modules/intellij/pages/about.adoc b/antora/components/setupguide/modules/intellij/pages/about.adoc
index 4b007d0..b1e4d9c 100644
--- a/antora/components/setupguide/modules/intellij/pages/about.adoc
+++ b/antora/components/setupguide/modules/intellij/pages/about.adoc
@@ -1,4 +1,5 @@
 = IntelliJ IDEA
+
 :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 [...]
 
 This section describes how to install and setup JetBrains' IntelliJ IDEA, then how to import an application into IntelliJ and run it.
diff --git a/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc b/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc
index 5ead825..0206d77 100644
--- a/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc
+++ b/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc
@@ -1,4 +1,5 @@
 = Hints and Tips
+
 :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 [...]
 
 
diff --git a/antora/components/setupguide/modules/intellij/partials/UNUSED/coding-standards.adoc b/antora/components/setupguide/modules/intellij/partials/UNUSED/coding-standards.adoc
index aa62e87..0af1301 100644
--- a/antora/components/setupguide/modules/intellij/partials/UNUSED/coding-standards.adoc
+++ b/antora/components/setupguide/modules/intellij/partials/UNUSED/coding-standards.adoc
@@ -1,4 +1,5 @@
 = Coding Standards
+
 :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 [...]
 
 CAUTION: seem to have mislaid this file... would need verifying/updating anyway, I think.
diff --git a/antora/components/setupguide/modules/intellij/partials/UNUSED/faster-turnaround-times.adoc b/antora/components/setupguide/modules/intellij/partials/UNUSED/faster-turnaround-times.adoc
index 9d9df9e..19a5d81 100644
--- a/antora/components/setupguide/modules/intellij/partials/UNUSED/faster-turnaround-times.adoc
+++ b/antora/components/setupguide/modules/intellij/partials/UNUSED/faster-turnaround-times.adoc
@@ -1,4 +1,5 @@
 = Faster Turnaround Times
+
 :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 [...]
 This section describes how to install and setup JetBrains' IntelliJ IDEA, then how to import an application into IntelliJ and run it.
 
diff --git a/antora/components/setupguide/modules/intellij/partials/UNUSED/file-templates.adoc b/antora/components/setupguide/modules/intellij/partials/UNUSED/file-templates.adoc
index c5787dd..10a1c52 100644
--- a/antora/components/setupguide/modules/intellij/partials/UNUSED/file-templates.adoc
+++ b/antora/components/setupguide/modules/intellij/partials/UNUSED/file-templates.adoc
@@ -1,4 +1,5 @@
 = File Templates
+
 :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 [...]
 :page-partial:
 
diff --git a/antora/components/setupguide/modules/intellij/partials/UNUSED/live-templates.adoc b/antora/components/setupguide/modules/intellij/partials/UNUSED/live-templates.adoc
index eb3061c..0ad2d66 100644
--- a/antora/components/setupguide/modules/intellij/partials/UNUSED/live-templates.adoc
+++ b/antora/components/setupguide/modules/intellij/partials/UNUSED/live-templates.adoc
@@ -1,4 +1,5 @@
 = Live Templates
+
 :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 [...]
 
 
diff --git a/api/adoc/refguide/modules/ROOT/nav.adoc b/api/adoc/refguide/modules/ROOT/nav.adoc
index 36e2aec..39d9f6b 100644
--- a/api/adoc/refguide/modules/ROOT/nav.adoc
+++ b/api/adoc/refguide/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/adoc/refguide/modules/ROOT/pages/about.adoc b/api/adoc/refguide/modules/ROOT/pages/about.adoc
index 9ba6818..96c7448 100644
--- a/api/adoc/refguide/modules/ROOT/pages/about.adoc
+++ b/api/adoc/refguide/modules/ROOT/pages/about.adoc
@@ -1,7 +1,8 @@
 = Reference Guides
+:page-role: -toc
+
 :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 [...]
 
-:page-role: -toc
 
 The reference guides cover:
 
diff --git a/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc b/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc
index a8ec043..07389e3 100644
--- a/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc
+++ b/api/adoc/refguide/modules/ROOT/partials/component-nav.adoc
@@ -1,6 +1,3 @@
-: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::refguide:ROOT:partial$module-nav.adoc[]
 include::refguide:applib-ant:partial$module-nav.adoc[]
 include::refguide:applib-svc:partial$module-nav.adoc[]
diff --git a/api/adoc/userguide/modules/ROOT/nav.adoc b/api/adoc/userguide/modules/ROOT/nav.adoc
index 143e2a5..7fc432a 100644
--- a/api/adoc/userguide/modules/ROOT/nav.adoc
+++ b/api/adoc/userguide/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::userguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/adoc/userguide/modules/ROOT/pages/about.adoc b/api/adoc/userguide/modules/ROOT/pages/about.adoc
index 8910fbe..4db27d7 100644
--- a/api/adoc/userguide/modules/ROOT/pages/about.adoc
+++ b/api/adoc/userguide/modules/ROOT/pages/about.adoc
@@ -1,7 +1,8 @@
 = User Guides
-: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 [...]
 :page-role: -toc
 
+: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 [...]
+
 The user guide breaks into two main sections:
 
 * xref:userguide:fun:about.adoc[Fundamentals]
diff --git a/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc b/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc
index 12eade5..f35ad96 100644
--- a/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc
+++ b/api/adoc/userguide/modules/ROOT/partials/component-nav.adoc
@@ -1,6 +1,3 @@
-: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::userguide:fun:partial$module-nav.adoc[]
 include::userguide:btb:partial$module-nav.adoc[]
 
diff --git a/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc b/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc
index 79863b5..a1b8311 100644
--- a/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc
+++ b/api/adoc/userguide/modules/ROOT/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:userguide:ROOT:about.adoc[About the User Guide]
 
diff --git a/api/adoc/userguide/modules/_to-repurpose/nav.adoc b/api/adoc/userguide/modules/_to-repurpose/nav.adoc
index 20ac428..ec6e4b9 100644
--- a/api/adoc/userguide/modules/_to-repurpose/nav.adoc
+++ b/api/adoc/userguide/modules/_to-repurpose/nav.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 * Module Template
diff --git a/api/adoc/userguide/modules/_to-repurpose/pages/about.adoc b/api/adoc/userguide/modules/_to-repurpose/pages/about.adoc
index c6c0c9d..b5c499f 100644
--- a/api/adoc/userguide/modules/_to-repurpose/pages/about.adoc
+++ b/api/adoc/userguide/modules/_to-repurpose/pages/about.adoc
@@ -1,4 +1,5 @@
 = About
+
 :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 [...]
 
 This doc module is empty, intended for use as a template when creating new modules.
diff --git a/api/adoc/userguide/modules/btb/nav.adoc b/api/adoc/userguide/modules/btb/nav.adoc
index c65af13..35b7262 100644
--- a/api/adoc/userguide/modules/btb/nav.adoc
+++ b/api/adoc/userguide/modules/btb/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::userguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/adoc/userguide/modules/btb/pages/about.adoc b/api/adoc/userguide/modules/btb/pages/about.adoc
index 02da3ce..6bc6d8a 100644
--- a/api/adoc/userguide/modules/btb/pages/about.adoc
+++ b/api/adoc/userguide/modules/btb/pages/about.adoc
@@ -1,4 +1,5 @@
 = Beyond the Basics
+
 :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 [...]
 
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment.adoc b/api/adoc/userguide/modules/btb/pages/deployment.adoc
index 4e2f472..bed28d5 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment.adoc
@@ -1,5 +1,6 @@
 [[deployment]]
 = Deployment
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/cmd-line.adoc b/api/adoc/userguide/modules/btb/pages/deployment/cmd-line.adoc
index 16a210e..a7c7812 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/cmd-line.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/cmd-line.adoc
@@ -1,5 +1,6 @@
 [[cmd-line]]
 = Command Line (`WebServer`)
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/docker.adoc b/api/adoc/userguide/modules/btb/pages/deployment/docker.adoc
index d097939..da49915 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/docker.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/docker.adoc
@@ -1,5 +1,6 @@
 [[docker]]
 = Docker
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/externalized-configuration.adoc b/api/adoc/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
index 4c659bd..d0abfd2 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
@@ -1,5 +1,6 @@
 [[externalized-configuration]]
 = Externalized Configuration
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/gae.adoc b/api/adoc/userguide/modules/btb/pages/deployment/gae.adoc
index 000c7dd..63ad20a 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/gae.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/gae.adoc
@@ -1,5 +1,6 @@
 [[gae]]
 = Deploying to Google App Engine
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/jvm-flags.adoc b/api/adoc/userguide/modules/btb/pages/deployment/jvm-flags.adoc
index 3753a86..d05db5f 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/jvm-flags.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/jvm-flags.adoc
@@ -1,5 +1,6 @@
 [[jvm-flags]]
 = JVM Flags
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc b/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc
index 1211773..26acabc 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/neo4j.adoc
@@ -1,5 +1,6 @@
 [[neo4j]]
 = Neo4J
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/deployment/tomcat.adoc b/api/adoc/userguide/modules/btb/pages/deployment/tomcat.adoc
index c00afb1..91a5e5a 100644
--- a/api/adoc/userguide/modules/btb/pages/deployment/tomcat.adoc
+++ b/api/adoc/userguide/modules/btb/pages/deployment/tomcat.adoc
@@ -1,5 +1,6 @@
 [[tomcat]]
 = Deploying to Tomcat
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/headless-access.adoc b/api/adoc/userguide/modules/btb/pages/headless-access.adoc
index 6ce816e..05b31f2 100644
--- a/api/adoc/userguide/modules/btb/pages/headless-access.adoc
+++ b/api/adoc/userguide/modules/btb/pages/headless-access.adoc
@@ -1,5 +1,6 @@
 [[headless-access]]
 = Headless access
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/headless-access/AbstractIsisSessionTemplate.adoc b/api/adoc/userguide/modules/btb/pages/headless-access/AbstractIsisSessionTemplate.adoc
index c927421..e2bc769 100644
--- a/api/adoc/userguide/modules/btb/pages/headless-access/AbstractIsisSessionTemplate.adoc
+++ b/api/adoc/userguide/modules/btb/pages/headless-access/AbstractIsisSessionTemplate.adoc
@@ -1,5 +1,6 @@
 [[AbstractIsisSessionTemplate]]
 = AbstractIsisSessionTemplate
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc b/api/adoc/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc
index c9e1f31..f32849f 100644
--- a/api/adoc/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc
+++ b/api/adoc/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc
@@ -1,4 +1,5 @@
 = BackgroundCommandExecution
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips.adoc
index 7c92caa..85787f0 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips.adoc
@@ -1,5 +1,6 @@
 [[hints-and-tips]]
 = Hints and Tips
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc
index fd16a5f..89a13e4 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc
@@ -1,5 +1,6 @@
 [[are-you-sure]]
 = 'Are you sure?' idiom
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
index b6c0084..a8bb243 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
@@ -1,5 +1,6 @@
 [[how-to-handle-void-and-null-results]]
 = How to handle void/null results
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
index 8749060..2cfae5e 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
@@ -1,5 +1,6 @@
 [[how-to-implement-a-spellchecker]]
 = How to implement a spellchecker?
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/multi-tenancy.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/multi-tenancy.adoc
index 5a9c81d..8c4d348 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/multi-tenancy.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/multi-tenancy.adoc
@@ -1,5 +1,6 @@
 [[multi-tenancy]]
 = Multi-tenancy
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
index 86f2e37..a82d5f2 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
@@ -1,5 +1,6 @@
 [[persisted-title]]
 = Persisted Title
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc
index 52c3f68..bebd239 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc
@@ -1,5 +1,6 @@
 [[pushing-changes]]
 = Pushing Changes (deprecated)
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc
index b5004ec..fa89cbb 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc
@@ -1,5 +1,6 @@
 [[replacing-default-service-implementations]]
 = Overriding Default Service Implns
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc
index 6b74ce4..bf3730d 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc
@@ -1,5 +1,6 @@
 [[simulating-collections-of-values]]
 = Collections of values
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/subclass-properties-in-tables.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/subclass-properties-in-tables.adoc
index ff023ec..ffffef2 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/subclass-properties-in-tables.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/subclass-properties-in-tables.adoc
@@ -1,5 +1,6 @@
 [[subclass-properties-in-tables]]
 = Subclass properties in tables
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc
index e546b8b..d0dd399 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc
@@ -1,5 +1,6 @@
 [[transactions-and-errors]]
 = Transactions and Errors
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc
index 2e7fc7d..cabf7e2 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc
@@ -1,5 +1,6 @@
 [[vetoing-visibility]]
 = Vetoing Visibility
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc
index 29d9c51..2e2195a 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc
@@ -1,5 +1,6 @@
 [[view-model-instantiation]]
 = View Model Instantiation
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/i18n.adoc b/api/adoc/userguide/modules/btb/pages/i18n.adoc
index 93b65a4..4a73b0e 100644
--- a/api/adoc/userguide/modules/btb/pages/i18n.adoc
+++ b/api/adoc/userguide/modules/btb/pages/i18n.adoc
@@ -1,5 +1,6 @@
 [[i18n]]
 = i18n
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/other-techniques.adoc b/api/adoc/userguide/modules/btb/pages/other-techniques.adoc
index 57e15f5..4f74dc3 100644
--- a/api/adoc/userguide/modules/btb/pages/other-techniques.adoc
+++ b/api/adoc/userguide/modules/btb/pages/other-techniques.adoc
@@ -1,5 +1,6 @@
 [[other-techniques]]
 = Other Techniques
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/programming-model.adoc b/api/adoc/userguide/modules/btb/pages/programming-model.adoc
index 711bce5..13a2fd6 100644
--- a/api/adoc/userguide/modules/btb/pages/programming-model.adoc
+++ b/api/adoc/userguide/modules/btb/pages/programming-model.adoc
@@ -1,5 +1,6 @@
 [[programming-model]]
 = Customizing the Prog Model
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/programming-model/custom-validator.adoc b/api/adoc/userguide/modules/btb/pages/programming-model/custom-validator.adoc
index cdb7843..58b5916 100644
--- a/api/adoc/userguide/modules/btb/pages/programming-model/custom-validator.adoc
+++ b/api/adoc/userguide/modules/btb/pages/programming-model/custom-validator.adoc
@@ -1,5 +1,6 @@
 [[custom-validator]]
 = Custom validator
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/programming-model/finetuning.adoc b/api/adoc/userguide/modules/btb/pages/programming-model/finetuning.adoc
index 10bef10..424ee16 100644
--- a/api/adoc/userguide/modules/btb/pages/programming-model/finetuning.adoc
+++ b/api/adoc/userguide/modules/btb/pages/programming-model/finetuning.adoc
@@ -1,5 +1,6 @@
 [[finetuning]]
 = Finetuning
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/pages/web-xml.adoc b/api/adoc/userguide/modules/btb/pages/web-xml.adoc
index 0386a48..8e9d7f0 100644
--- a/api/adoc/userguide/modules/btb/pages/web-xml.adoc
+++ b/api/adoc/userguide/modules/btb/pages/web-xml.adoc
@@ -1,5 +1,6 @@
 [[web-xml]]
 = `web.xml`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/btb/partials/module-nav.adoc b/api/adoc/userguide/modules/btb/partials/module-nav.adoc
index 2925533..136b983 100644
--- a/api/adoc/userguide/modules/btb/partials/module-nav.adoc
+++ b/api/adoc/userguide/modules/btb/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:userguide:btb:about.adoc[Beyond the Basics]
 
diff --git a/api/adoc/userguide/modules/fun/nav.adoc b/api/adoc/userguide/modules/fun/nav.adoc
index c65af13..35b7262 100644
--- a/api/adoc/userguide/modules/fun/nav.adoc
+++ b/api/adoc/userguide/modules/fun/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::userguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/adoc/userguide/modules/fun/pages/about.adoc b/api/adoc/userguide/modules/fun/pages/about.adoc
index 1e837b2..d1518de 100644
--- a/api/adoc/userguide/modules/fun/pages/about.adoc
+++ b/api/adoc/userguide/modules/fun/pages/about.adoc
@@ -1,4 +1,5 @@
 = Fundamentals
+
 :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 [...]
 
 This guide introduces the xref:userguide:fun:core-concepts.adoc[core concepts] and the xref:userguide:fun:building-blocks.adoc[building blocks] of Apache Isis, and tells you how to get started with the xref:docs:starters:helloworld.adoc[HelloWorld] starter app.
diff --git a/api/adoc/userguide/modules/fun/pages/available-domain-services.adoc b/api/adoc/userguide/modules/fun/pages/available-domain-services.adoc
index f70707b..c641c14 100644
--- a/api/adoc/userguide/modules/fun/pages/available-domain-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/available-domain-services.adoc
@@ -1,4 +1,5 @@
 = Available Domain Services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc b/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
index 059a886..0a5a42a 100644
--- a/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
+++ b/api/adoc/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
@@ -1,5 +1,6 @@
 [[framework-provided]]
 = Framework-provided Services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/available-domain-services/incode-platform.adoc b/api/adoc/userguide/modules/fun/pages/available-domain-services/incode-platform.adoc
index 87cbfb5..fdb9fcc 100644
--- a/api/adoc/userguide/modules/fun/pages/available-domain-services/incode-platform.adoc
+++ b/api/adoc/userguide/modules/fun/pages/available-domain-services/incode-platform.adoc
@@ -1,4 +1,5 @@
 = Incode Platform
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks.adoc
index 1feffe5..c025eae 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks.adoc
@@ -1,4 +1,5 @@
 = Building Blocks
+
 :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 [...]
 
 In this section we run through the main building blocks that make up an Apache Isis application.
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/events.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/events.adoc
index 13b44b3..b73c497 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/events.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/events.adoc
@@ -1,4 +1,5 @@
 = Events
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc
index f022ed8..49ee587 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc
@@ -1,4 +1,5 @@
 = Domain Events
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc
index 7a3a403..2566577 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc
@@ -1,4 +1,5 @@
 = Lifecycle Events
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc
index d05f848..ed74f14 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc
@@ -1,4 +1,5 @@
 = UI Events
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers.adoc
index 315b57d..0ea79bd 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers.adoc
@@ -1,4 +1,5 @@
 = Identifiers
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc
index b242f55..0f71764 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc
@@ -1,5 +1,6 @@
 [[oid]]
 = OIDs
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/title-and-icon-and-css-class.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/title-and-icon-and-css-class.adoc
index 990fa0b..f15ca10 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/title-and-icon-and-css-class.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/identifiers/title-and-icon-and-css-class.adoc
@@ -1,5 +1,6 @@
 [[title-and-icon-and-css-class]]
 = Title, Icon and CSS Class
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/metamodel.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/metamodel.adoc
index c2f03d2..ef97385 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/metamodel.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/metamodel.adoc
@@ -1,5 +1,6 @@
 [[metamodel]]
 = A MetaModel
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc
index 0a4a8cd..0e97fc5 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/modules.adoc
@@ -1,4 +1,5 @@
 = Modules
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/object-members.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/object-members.adoc
index a3d8ccc..4d7ba44 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/object-members.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/object-members.adoc
@@ -1,4 +1,5 @@
 = Object Members
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects.adoc
index ef490c6..c717f74 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects.adoc
@@ -1,4 +1,5 @@
 = Type of Domain Objects
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-entities.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-entities.adoc
index db37d6f..94ff5a1 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-entities.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-entities.adoc
@@ -1,4 +1,5 @@
 = Domain Entities
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc
index 6464217..288aeca 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/domain-services.adoc
@@ -1,4 +1,5 @@
 = Domain Services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/mixins.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/mixins.adoc
index 52155b3..1aad033 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/mixins.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/mixins.adoc
@@ -1,4 +1,5 @@
 = Mixins
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
index 0bcf9a9..b701359 100644
--- a/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
+++ b/api/adoc/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
@@ -1,4 +1,5 @@
 = View Models
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/business-rules.adoc b/api/adoc/userguide/modules/fun/pages/business-rules.adoc
index 795537d..3dd8451 100644
--- a/api/adoc/userguide/modules/fun/pages/business-rules.adoc
+++ b/api/adoc/userguide/modules/fun/pages/business-rules.adoc
@@ -1,4 +1,5 @@
 = Business Rules
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/business-rules/actions.adoc b/api/adoc/userguide/modules/fun/pages/business-rules/actions.adoc
index be786a9..aca1dce 100644
--- a/api/adoc/userguide/modules/fun/pages/business-rules/actions.adoc
+++ b/api/adoc/userguide/modules/fun/pages/business-rules/actions.adoc
@@ -1,4 +1,5 @@
 = Actions
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/business-rules/side-effects.adoc b/api/adoc/userguide/modules/fun/pages/business-rules/side-effects.adoc
index 5c78264..fba022d 100644
--- a/api/adoc/userguide/modules/fun/pages/business-rules/side-effects.adoc
+++ b/api/adoc/userguide/modules/fun/pages/business-rules/side-effects.adoc
@@ -1,4 +1,5 @@
 = Side effects
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/business-rules/usability.adoc b/api/adoc/userguide/modules/fun/pages/business-rules/usability.adoc
index 9fc48a1..b97004b 100644
--- a/api/adoc/userguide/modules/fun/pages/business-rules/usability.adoc
+++ b/api/adoc/userguide/modules/fun/pages/business-rules/usability.adoc
@@ -1,5 +1,6 @@
 [[usability]]
 = Usability ("use it")
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/business-rules/validity.adoc b/api/adoc/userguide/modules/fun/pages/business-rules/validity.adoc
index cc697ae..827c7cd 100644
--- a/api/adoc/userguide/modules/fun/pages/business-rules/validity.adoc
+++ b/api/adoc/userguide/modules/fun/pages/business-rules/validity.adoc
@@ -1,5 +1,6 @@
 [[validity]]
 = Validity ("do it")
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/business-rules/visibility.adoc b/api/adoc/userguide/modules/fun/pages/business-rules/visibility.adoc
index 8358a86..06f5b95 100644
--- a/api/adoc/userguide/modules/fun/pages/business-rules/visibility.adoc
+++ b/api/adoc/userguide/modules/fun/pages/business-rules/visibility.adoc
@@ -1,5 +1,6 @@
 [[visibility]]
 = Visibility ("see it")
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts.adoc
index 7b41519..68a46e0 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts.adoc
@@ -1,4 +1,5 @@
 = Core Concepts
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs.adoc
index 9e4daa6..f9b7199 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs.adoc
@@ -1,5 +1,6 @@
 [[apache-isis-vs]]
 = Apache Isis vs ...
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
index baaccf3..3c49d96 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
@@ -1,5 +1,6 @@
 [[cqrs]]
 = Apache Isis vs CQRS
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
index 1ec6396..ef8c3a9 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
@@ -1,5 +1,6 @@
 [[event-sourcing]]
 = Apache Isis vs Event Sourcing
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/mvc-server-side.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/mvc-server-side.adoc
index a34a30c..b6c47c5 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/mvc-server-side.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/mvc-server-side.adoc
@@ -1,5 +1,6 @@
 [[mvc-server-side]]
 = Apache Isis vs MVC server-side
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/deployment-options.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/deployment-options.adoc
index d3a7e8b..d0c1ea0 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/deployment-options.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/deployment-options.adoc
@@ -1,4 +1,5 @@
 = Deployment Options
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy.adoc
index 7d4d808..ccc6cef 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy.adoc
@@ -1,5 +1,6 @@
 [[philosophy]]
 = Philosophy and Architecture
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/aop.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/aop.adoc
index b990c52..b15b6b9 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/aop.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/aop.adoc
@@ -1,5 +1,6 @@
 [[aop]]
 = Aspect Oriented
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/dci.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/dci.adoc
index 4e78951..972555c 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/dci.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/dci.adoc
@@ -1,4 +1,5 @@
 = DCI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/domain-driven-design.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/domain-driven-design.adoc
index 9e5d5c8..c716281 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/domain-driven-design.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/domain-driven-design.adoc
@@ -1,5 +1,6 @@
 [[domain-driven-design]]
 = Domain-Driven Design
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/hexagonal-architecture.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/hexagonal-architecture.adoc
index 6c76e61..55f23f8 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/hexagonal-architecture.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/hexagonal-architecture.adoc
@@ -1,4 +1,5 @@
 = Hexagonal Architecture
+
 :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 [...]
 //:page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/how-eases-ddd.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/how-eases-ddd.adoc
index 586a327..3913631 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/how-eases-ddd.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/how-eases-ddd.adoc
@@ -1,5 +1,6 @@
 [[how-eases-ddd]]
 = How Apache Isis eases DDD
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/naked-objects-pattern.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/naked-objects-pattern.adoc
index 371b65f..9e69daa 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/naked-objects-pattern.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/philosophy/naked-objects-pattern.adoc
@@ -1,4 +1,5 @@
 = Naked Objects Pattern
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles.adoc
index 1690875..39033ac 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles.adoc
@@ -1,5 +1,6 @@
 [[principles]]
 = Principles and Values
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/build-not-buy.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/build-not-buy.adoc
index 7ee940d..2f30011 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/build-not-buy.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/build-not-buy.adoc
@@ -1,5 +1,6 @@
 [[build-not-buy]]
 = Why Build instead of Buy?
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc
index 3ca1781..3cc7f83 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc
@@ -1,4 +1,5 @@
 = For the long-term
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself.adoc
index 49b369c..eb0795f 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself.adoc
@@ -1,5 +1,6 @@
 [[isis-itself]]
 = Apache Isis itself
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc
index 49a46b4..82aef7e 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/focuses-on-its-usp.adoc
@@ -1,4 +1,5 @@
 = Focuses on its USP
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/full-stack-but-extensible.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/full-stack-but-extensible.adoc
index 96dd452..d128341 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/full-stack-but-extensible.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/isis-itself/full-stack-but-extensible.adoc
@@ -1,4 +1,5 @@
 = Full-stack but Extensible
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/lego-blocks.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/lego-blocks.adoc
index fa31be9..e93c3d9 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/lego-blocks.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/lego-blocks.adoc
@@ -1,4 +1,5 @@
 = Lego Blocks
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/testable.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/testable.adoc
index 05e9f16..0ac5d17 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/principles/testable.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/principles/testable.adoc
@@ -1,4 +1,5 @@
 = Testable
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud.adoc b/api/adoc/userguide/modules/fun/pages/crud.adoc
index 02ceaa3..36597dc 100644
--- a/api/adoc/userguide/modules/fun/pages/crud.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud.adoc
@@ -1,4 +1,5 @@
 = Object Management (CRUD)
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud/deleting.adoc b/api/adoc/userguide/modules/fun/pages/crud/deleting.adoc
index 0f4c756..82a5373 100644
--- a/api/adoc/userguide/modules/fun/pages/crud/deleting.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud/deleting.adoc
@@ -1,5 +1,6 @@
 [[deleting]]
 = Deleting Objects
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud/finding.adoc b/api/adoc/userguide/modules/fun/pages/crud/finding.adoc
index a950940..44a0fbc 100644
--- a/api/adoc/userguide/modules/fun/pages/crud/finding.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud/finding.adoc
@@ -1,5 +1,6 @@
 [[finding]]
 = Finding Objects
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud/instantiating.adoc b/api/adoc/userguide/modules/fun/pages/crud/instantiating.adoc
index a57ed0d..5f9d161 100644
--- a/api/adoc/userguide/modules/fun/pages/crud/instantiating.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud/instantiating.adoc
@@ -1,5 +1,6 @@
 [[instantiating]]
 = Instantiating
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud/persisting.adoc b/api/adoc/userguide/modules/fun/pages/crud/persisting.adoc
index 771ed4a..ff36c38 100644
--- a/api/adoc/userguide/modules/fun/pages/crud/persisting.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud/persisting.adoc
@@ -1,5 +1,6 @@
 [[persisting]]
 = Persisting
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud/updating.adoc b/api/adoc/userguide/modules/fun/pages/crud/updating.adoc
index d008b24..ed38a50 100644
--- a/api/adoc/userguide/modules/fun/pages/crud/updating.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud/updating.adoc
@@ -1,5 +1,6 @@
 [[updating]]
 = Updating Objects
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/drop-downs-and-defaults.adoc b/api/adoc/userguide/modules/fun/pages/drop-downs-and-defaults.adoc
index 268873d..b6dfb13 100644
--- a/api/adoc/userguide/modules/fun/pages/drop-downs-and-defaults.adoc
+++ b/api/adoc/userguide/modules/fun/pages/drop-downs-and-defaults.adoc
@@ -1,4 +1,5 @@
 = Drop Downs and Defaults
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model.adoc b/api/adoc/userguide/modules/fun/pages/programming-model.adoc
index f591e8f..02fe812 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model.adoc
@@ -1,4 +1,5 @@
 = Programming Model
+
 :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 [...]
 
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/actions.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/actions.adoc
index 47fde1e..85c5832 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/actions.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/actions.adoc
@@ -1,4 +1,5 @@
 = Actions
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/collections.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/collections.adoc
index 48c62d7..a1a8bc9 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/collections.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/collections.adoc
@@ -1,4 +1,5 @@
 = Collections
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-entities.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-entities.adoc
index 5dab55c..1e5c5b7 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-entities.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-entities.adoc
@@ -1,4 +1,5 @@
 = Domain Entities
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services.adoc
index b1cbaf7..8e3747c 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services.adoc
@@ -1,4 +1,5 @@
 = Domain Services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
index aa5381b..651524d 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
@@ -1,4 +1,5 @@
 = Event Subscribers
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc
index 42f5f60..4bba3a9 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc
@@ -1,4 +1,5 @@
 = Initialization
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc
index f50a5d3..e6ac8dd 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc
@@ -1,4 +1,5 @@
 = Menu
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/organizing-services.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/organizing-services.adoc
index bf5781e..78c2658 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/organizing-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/organizing-services.adoc
@@ -1,4 +1,5 @@
 = Organizing Services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
index 15bb26e..10e4f6c 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
@@ -1,4 +1,5 @@
 = Registering
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc
index 4fe5354..ec912e4 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc
@@ -1,4 +1,5 @@
 = Repository and Factory
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc
index e06ef68..f11b72c 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc
@@ -1,4 +1,5 @@
 = Scoped services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/inject-services.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/inject-services.adoc
index e2d1cad..0d67738 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/inject-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/inject-services.adoc
@@ -1,4 +1,5 @@
 = Injecting services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins.adoc
index a98cab6..8da90e9 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins.adoc
@@ -1,4 +1,5 @@
 = Mixins
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-action.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-action.adoc
index 0f8a116..a8e7379 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-action.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-action.adoc
@@ -1,4 +1,5 @@
 = Contributed Action
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-collection.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-collection.adoc
index afdf212..5f26b1f 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-collection.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-collection.adoc
@@ -1,4 +1,5 @@
 = Contributed Collection
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-property.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-property.adoc
index e286919..274255c 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-property.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/contributed-property.adoc
@@ -1,4 +1,5 @@
 = Contributed Property
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/inferred-name.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/inferred-name.adoc
index 891902a..2c305b4 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/inferred-name.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/inferred-name.adoc
@@ -1,4 +1,5 @@
 = Inferred Name
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/nested-static-classes.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/nested-static-classes.adoc
index d54ff22..a2504e2 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/nested-static-classes.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/nested-static-classes.adoc
@@ -1,5 +1,6 @@
 [[nested-static-classes]]
 = As Nested Static Classes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc
index 4d3c16b..e5781b8 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc
@@ -1,4 +1,5 @@
 = Programmatic usage
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/properties-vs-parameters.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/properties-vs-parameters.adoc
index a1847f3..b06040c 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/properties-vs-parameters.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/properties-vs-parameters.adoc
@@ -1,4 +1,5 @@
 = Properties vs Parameters
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc
index a4c1ff5..9026909 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/properties.adoc
@@ -1,4 +1,5 @@
 = Properties
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models.adoc
index 1a99d8d..4a6b091 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models.adoc
@@ -1,4 +1,5 @@
 = View Models
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
index 550c8ef..c2731f1 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
@@ -1,5 +1,6 @@
 [[dto]]
 = DTOs
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc
index d45b6c8..4759ca8 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc
@@ -1,4 +1,5 @@
 = DTO Consumers
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc
index 160af7a..a78163e 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/generating-xsds.adoc
@@ -1,5 +1,6 @@
 [[generating-xsds]]
 = Generating XSDs and DTOs
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/versioning.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/versioning.adoc
index 14533f3..826959b 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/versioning.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/dto/versioning.adoc
@@ -1,4 +1,5 @@
 = Versioning
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc
index d8e8eca..2739114 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc
@@ -1,5 +1,6 @@
 [[jaxb]]
 = JAXB View Models
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/joda-datatypes.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/joda-datatypes.adoc
index cf7951c..a81132d 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/joda-datatypes.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/joda-datatypes.adoc
@@ -1,5 +1,6 @@
 [[joda-datatypes]]
 = JODA Time Datatypes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc
index b5f0b7b..e8c83ac 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc
@@ -1,4 +1,5 @@
 = Referencing Domain Entities
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc
index 28c7b84..95a6c0b 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc
@@ -1,5 +1,6 @@
 [[non-jaxb]]
 = Non-JAXB View Models
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints.adoc
index bf637c5..98e517d 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints.adoc
@@ -1,4 +1,5 @@
 = UI Hints
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc
index 86ed87a..d80aec6 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc
@@ -1,4 +1,5 @@
 = Action Icons and CSS
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc
index 2b4b453..13f4809 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc
@@ -1,4 +1,5 @@
 = Eager Rendering
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints/layout.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints/layout.adoc
index 67c401d..ffcdec5 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints/layout.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints/layout.adoc
@@ -1,4 +1,5 @@
 = Layout
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc
index 015cb36..a229f36 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc
@@ -1,4 +1,5 @@
 = Names and Descriptions
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
index 927ad02..44d1b70 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
@@ -1,4 +1,5 @@
 = Object Titles and Icons
+
 :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 [...]
 :page-partial:
 
diff --git a/api/adoc/userguide/modules/fun/partials/module-nav.adoc b/api/adoc/userguide/modules/fun/partials/module-nav.adoc
index 76e1419..6ea78ba 100644
--- a/api/adoc/userguide/modules/fun/partials/module-nav.adoc
+++ b/api/adoc/userguide/modules/fun/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:userguide:fun:about.adoc[Fundamentals]
 ** xref:userguide:fun:core-concepts.adoc[Core Concepts]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/nav.adoc b/api/applib/src/main/adoc/modules/applib-ant/nav.adoc
index 36e2aec..39d9f6b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc
index 5d87acf..b764016 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc
@@ -1,4 +1,5 @@
 = `@Action`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/associateWith.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/associateWith.adoc
index ed75078..5a6e74e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/associateWith.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/associateWith.adoc
@@ -1,4 +1,5 @@
 = `associateWith`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/command.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/command.adoc
index fc91453..4e4ef51 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/command.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/command.adoc
@@ -1,5 +1,6 @@
 [[command]]
 = Command Persistence and Processing
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
index 5beb3fa..44f8ba0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
@@ -1,4 +1,5 @@
 = `domainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/hidden.adoc
index 0e66d16..edcaa1f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/hidden.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/hidden.adoc
@@ -1,4 +1,5 @@
 = `hidden`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/invokeOn.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/invokeOn.adoc
index 21a6ed2..10a139b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/invokeOn.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/invokeOn.adoc
@@ -1,4 +1,5 @@
 = `invokeOn`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/publishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/publishing.adoc
index ce6f273..6171e14 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/publishing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/publishing.adoc
@@ -1,4 +1,5 @@
 = `publishing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/restrictTo.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/restrictTo.adoc
index f3f5b06..05386fa 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/restrictTo.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/restrictTo.adoc
@@ -1,4 +1,5 @@
 = `restrictTo`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/semantics.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/semantics.adoc
index 55716d0..a0d47fe 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/semantics.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/semantics.adoc
@@ -1,4 +1,5 @@
 = `semantics`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/typeOf.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/typeOf.adoc
index 7ae093d..aa0f1a0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/typeOf.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/typeOf.adoc
@@ -1,4 +1,5 @@
 = `typeOf`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc
index 99d4b86..d363879 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc
@@ -1,4 +1,5 @@
 = `@ActionLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/bookmarking.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/bookmarking.adoc
index e8b8a9c..6f9bcd2 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/bookmarking.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/bookmarking.adoc
@@ -1,4 +1,5 @@
 = `bookmarking`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/contributedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/contributedAs.adoc
index 1c39a74..3a5cb7e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/contributedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/contributedAs.adoc
@@ -1,4 +1,5 @@
 = `contributedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClass.adoc
index 38cb23a..5019f8b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClass.adoc
@@ -1,4 +1,5 @@
 = `cssClass`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClassFa.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClassFa.adoc
index 384740c..5ed2da0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClassFa.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClassFa.adoc
@@ -1,4 +1,5 @@
 = `cssClassFa`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/describedAs.adoc
index 0ee9ff2..44edcd7 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/describedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/describedAs.adoc
@@ -1,4 +1,5 @@
 = `describedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/hidden.adoc
index acd6dbf..d752b54 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/hidden.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/hidden.adoc
@@ -1,4 +1,5 @@
 = `hidden`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/named.adoc
index 12f25b5..0c9f1df 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/named.adoc
@@ -1,4 +1,5 @@
 = `named`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/position.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/position.adoc
index ed0e086..96a192c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/position.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/position.adoc
@@ -1,4 +1,5 @@
 = `position`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/promptStyle.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/promptStyle.adoc
index 55983c66..cfd9f32 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/promptStyle.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/promptStyle.adoc
@@ -1,4 +1,5 @@
 = `promptStyle`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/redirect.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/redirect.adoc
index c51814a..6f4913a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/redirect.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/redirect.adoc
@@ -1,4 +1,5 @@
 = `redirect`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc
index a4fc1a5..370aa18 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc
@@ -1,4 +1,5 @@
 = `@Collection`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
index 648311b..0449666 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
@@ -1,4 +1,5 @@
 = `domainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/editing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/editing.adoc
index 80ea087..2ffb4ee 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/editing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/editing.adoc
@@ -1,4 +1,5 @@
 = `editing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/hidden.adoc
index 07e2a79..5b08668 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/hidden.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/hidden.adoc
@@ -1,4 +1,5 @@
 = `hidden`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/notPersisted.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/notPersisted.adoc
index 014bb79..23dd429 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/notPersisted.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/notPersisted.adoc
@@ -1,4 +1,5 @@
 = `notPersisted`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/typeOf.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/typeOf.adoc
index 7f66672..5751815 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/typeOf.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/typeOf.adoc
@@ -1,4 +1,5 @@
 = `typeOf`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc
index 98f4652..72a4d06 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc
@@ -1,4 +1,5 @@
 = `@CollectionLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/cssClass.adoc
index 4a29fe3..363ff4a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/cssClass.adoc
@@ -1,4 +1,5 @@
 = `cssClass`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/defaultView.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/defaultView.adoc
index f748489..3ab8bd2 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/defaultView.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/defaultView.adoc
@@ -1,4 +1,5 @@
 = `defaultView`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/describedAs.adoc
index 224b3ae..a15376c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/describedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/describedAs.adoc
@@ -1,4 +1,5 @@
 = `describedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/hidden.adoc
index 54605f9..2052e24 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/hidden.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/hidden.adoc
@@ -1,4 +1,5 @@
 = `hidden`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/named.adoc
index ea0096d..b25c959 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/named.adoc
@@ -1,4 +1,5 @@
 = `named`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/paged.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/paged.adoc
index 40d49074..2657800 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/paged.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/paged.adoc
@@ -1,4 +1,5 @@
 = `paged`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/sortedBy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/sortedBy.adoc
index aea4dcb..42c4426 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/sortedBy.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/sortedBy.adoc
@@ -1,4 +1,5 @@
 = `sortedBy`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc
index c1a67d0..c4672a1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Column.adoc
@@ -1,4 +1,5 @@
 = `@Column` (`javax.jdo`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc
index f3ea124..420f38e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Digits.adoc
@@ -1,4 +1,5 @@
 = `@Digits` (`javax`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Discriminator.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Discriminator.adoc
index 1efeb0a..7b65cfa 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Discriminator.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Discriminator.adoc
@@ -1,4 +1,5 @@
 = `@Discriminator` (`javax.jdo`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc
index c7ab1e2..1e0093b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc
@@ -1,4 +1,5 @@
 = `@DomainObject`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/actionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/actionDomainEvent.adoc
index 1b2406c..665fa68 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/actionDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/actionDomainEvent.adoc
@@ -1,4 +1,5 @@
 = `actionDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/auditing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/auditing.adoc
index 6816600..75922dc 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/auditing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/auditing.adoc
@@ -1,4 +1,5 @@
 = `auditing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/autoCompleteRepository.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/autoCompleteRepository.adoc
index c8d62a1..8bada33 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/autoCompleteRepository.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/autoCompleteRepository.adoc
@@ -1,4 +1,5 @@
 = `autoCompleteRepository()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/bounding.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/bounding.adoc
index 4b74ad7..cf1c9fe 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/bounding.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/bounding.adoc
@@ -1,4 +1,5 @@
 = `bounding`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/collectionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/collectionDomainEvent.adoc
index bf85966..50b6b0c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/collectionDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/collectionDomainEvent.adoc
@@ -1,4 +1,5 @@
 = `collectionDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
index aeafc4e..256d76b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = createdLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/editing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/editing.adoc
index 93795f8..b24209b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/editing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/editing.adoc
@@ -1,4 +1,5 @@
 = `editing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
index f215c0c..0933b41 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = loadedLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/mixinMethod.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/mixinMethod.adoc
index 95e00f5..1add191 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/mixinMethod.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/mixinMethod.adoc
@@ -1,4 +1,5 @@
 = `mixinMethod`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc
index 7f677e6..81beb9e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc
@@ -1,4 +1,5 @@
 = `nature`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/objectType.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/objectType.adoc
index 39725c7..a5b587c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/objectType.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/objectType.adoc
@@ -1,4 +1,5 @@
 = `objectType`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
index c83a9ca..2eb2f34 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = persistedLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
index f35bd7a..8f231ed 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = persistingLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/propertyDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/propertyDomainEvent.adoc
index 1ef9d68..f0a62e7 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/propertyDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/propertyDomainEvent.adoc
@@ -1,4 +1,5 @@
 = `propertyDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/publishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/publishing.adoc
index 8199700..6fa9087 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/publishing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/publishing.adoc
@@ -1,4 +1,5 @@
 = `publishing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
index 3f08edb..3c65eb1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = removingLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
index cf4b005..053d259 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = updatedLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
index 348ad14..0a73164 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
@@ -1,4 +1,5 @@
 = updatingLifecycleEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc
index 3b39b92..bdeebe8 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc
@@ -1,4 +1,5 @@
 = `@DomainObjectLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/bookmarking.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/bookmarking.adoc
index 6bff5ed..19753da 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/bookmarking.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/bookmarking.adoc
@@ -1,4 +1,5 @@
 = `bookmarking`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClass.adoc
index b455d45..a296477 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClass.adoc
@@ -1,4 +1,5 @@
 = `cssClass`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassFa.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassFa.adoc
index 3a445e3..8c08fc6 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassFa.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassFa.adoc
@@ -1,4 +1,5 @@
 = `cssClassFa`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
index efa935a..766874d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
@@ -1,4 +1,5 @@
 = cssClassUiEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/describedAs.adoc
index 4fa5b15..d45071d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/describedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/describedAs.adoc
@@ -1,4 +1,5 @@
 = `describedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
index 5a62f77..94bf150 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
@@ -1,4 +1,5 @@
 = iconUiEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
index 1cdb9a2..cb20452 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
@@ -1,4 +1,5 @@
 = layoutUiEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/named.adoc
index c93fbc3..8d7c116 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/named.adoc
@@ -1,4 +1,5 @@
 = `named`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/paged.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/paged.adoc
index 7dd342c..b2b20ea 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/paged.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/paged.adoc
@@ -1,4 +1,5 @@
 = `paged`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/plural.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/plural.adoc
index 2a18b7b..d434626 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/plural.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/plural.adoc
@@ -1,4 +1,5 @@
 = `plural`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
index e34a637..dd7b095 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
@@ -1,4 +1,5 @@
 = titleUiEvent
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc
index 9e104d3..1b35d9d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc
@@ -1,4 +1,5 @@
 = `@DomainService`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/nature.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/nature.adoc
index 83c2f62..99d28dd 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/nature.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/nature.adoc
@@ -1,4 +1,5 @@
 = `nature`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/objectType.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/objectType.adoc
index f569abf..16c6cab 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/objectType.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/objectType.adoc
@@ -1,4 +1,5 @@
 = `objectType`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/repositoryFor.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/repositoryFor.adoc
index 711dd39..7afa9b3 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/repositoryFor.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/repositoryFor.adoc
@@ -1,4 +1,5 @@
 = `repositoryFor`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc
index 43109e6..39c8844 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc
@@ -1,4 +1,5 @@
 = `@DomainServiceLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuBar.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuBar.adoc
index bd19aa2..5867814 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuBar.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuBar.adoc
@@ -1,4 +1,5 @@
 = `menuBar`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc
index 91e9264..fca80f8f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuOrder.adoc
@@ -1,4 +1,5 @@
 = `menuOrder`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/named.adoc
index bb98137..730c09d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/named.adoc
@@ -1,4 +1,5 @@
 = `named`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc
index 41d8220..6bfa700 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc
@@ -1,4 +1,5 @@
 = `@Facets`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
index bd7f3c3..d60a42b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
@@ -1,4 +1,5 @@
 = `@HomePage`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc
index b09c51a..4cc79a5 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Inject.adoc
@@ -1,4 +1,5 @@
 = `@Inject` (`javax`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberGroupLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberGroupLayout.adoc
index df29d27..ffeb430 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberGroupLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberGroupLayout.adoc
@@ -1,4 +1,5 @@
 = `@MemberGroupLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc
index a0f8fb2..580c001 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc
@@ -1,4 +1,5 @@
 = `@MemberOrder`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/name.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/name.adoc
index 26531a2..2eb8cea 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/name.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/name.adoc
@@ -1,4 +1,5 @@
 = `name`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/sequence.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/sequence.adoc
index 461d658..73827a4 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/sequence.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/sequence.adoc
@@ -1,4 +1,5 @@
 = `sequence`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc
index d0028e2..7a32622 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc
@@ -1,4 +1,5 @@
 = `@MinLength`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin.adoc
index 2fd29de..972f403 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin.adoc
@@ -1,4 +1,5 @@
 = `@Mixin`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin/method.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin/method.adoc
index 455f3c6..e8864f5 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin/method.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Mixin/method.adoc
@@ -1,4 +1,5 @@
 = `method`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc
index 8a41c74..fbaf275 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc
@@ -1,4 +1,5 @@
 = `@NotPersistent` (`javax.jdo`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Nullable.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Nullable.adoc
index 7139959..e266304 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Nullable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Nullable.adoc
@@ -1,4 +1,5 @@
 = `@Nullable` (`javax`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc
index 57cb03c..896216b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc
@@ -1,4 +1,5 @@
 = `@Parameter`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/fileAccept.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/fileAccept.adoc
index 8ed0501..f7e263b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/fileAccept.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/fileAccept.adoc
@@ -1,5 +1,6 @@
 [[fileAccept]]
 = `fileAccept()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/maxLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/maxLength.adoc
index f799631..f1e44f2 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/maxLength.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/maxLength.adoc
@@ -1,5 +1,6 @@
 [[maxLength]]
 = `maxLength()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/mustSatisfy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/mustSatisfy.adoc
index e14d9ce..be2cfcc 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/mustSatisfy.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/mustSatisfy.adoc
@@ -1,5 +1,6 @@
 [[mustSatisfy]]
 = `mustSatisfy()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/optionality.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/optionality.adoc
index f8f7f7f..dc379f1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/optionality.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/optionality.adoc
@@ -1,5 +1,6 @@
 [[optionality]]
 = `optionality()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/regexPattern.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/regexPattern.adoc
index 8af1618..59cef2c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/regexPattern.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/regexPattern.adoc
@@ -1,5 +1,6 @@
 [[regexPattern]]
 = `regexPattern()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc
index 8feec9d..ba2bb8a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc
@@ -1,4 +1,5 @@
 = `@ParameterLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/cssClass.adoc
index c06b519..949ae7a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/cssClass.adoc
@@ -1,4 +1,5 @@
 = `cssClass`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/describedAs.adoc
index cb22200..def27b4 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/describedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/describedAs.adoc
@@ -1,4 +1,5 @@
 = `describedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/labelPosition.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/labelPosition.adoc
index a5516e4..744aeb1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/labelPosition.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/labelPosition.adoc
@@ -1,4 +1,5 @@
 = `labelPosition`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/multiLine.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/multiLine.adoc
index 25772a6..e745e46 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/multiLine.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/multiLine.adoc
@@ -1,4 +1,5 @@
 = `multiLine`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/named.adoc
index 7f11fdc..1b89a1f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/named.adoc
@@ -1,4 +1,5 @@
 = `named`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/renderedAsDayBefore.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/renderedAsDayBefore.adoc
index ebc6981..5342c16 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/renderedAsDayBefore.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/renderedAsDayBefore.adoc
@@ -1,4 +1,5 @@
 = `renderedAsDayBefore`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/typicalLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/typicalLength.adoc
index 9f887cc..9b39a2b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/typicalLength.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/typicalLength.adoc
@@ -1,4 +1,5 @@
 = `typicalLength`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Pattern.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Pattern.adoc
index 8f535ce..17a9ffb 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Pattern.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Pattern.adoc
@@ -1,4 +1,5 @@
 = `@Pattern` (`javax`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PersistenceCapable.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PersistenceCapable.adoc
index 22a46bd..73c6266 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PersistenceCapable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PersistenceCapable.adoc
@@ -1,4 +1,5 @@
 = `@PersistenceCapable` (`javax.jdo`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc
index fd4f37b..b27b709 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc
@@ -1,4 +1,5 @@
 = `@PostConstruct` (`javax`)
+
 :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 [...]
 
 WARNING: TODO: v2 - the init with args is no longer supported; instead use IsisConfiguration injected or any Spring Boot `@ConfigurationProperties` class.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc
index 25be527..dd3f871 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc
@@ -1,4 +1,5 @@
 = `@PreDestroy` (`javax`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PrimaryKey.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PrimaryKey.adoc
index dc931b8..b84f578 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PrimaryKey.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PrimaryKey.adoc
@@ -1,4 +1,5 @@
 = `@PrimaryKey` (`javax.jdo`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Programmatic.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Programmatic.adoc
index b1c1e44..8677aee 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Programmatic.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Programmatic.adoc
@@ -1,4 +1,5 @@
 = `@Programmatic`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc
index 4d1cc0b..58d188d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc
@@ -1,4 +1,5 @@
 = `@Property`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/command.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/command.adoc
index 40140f3..d308347 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/command.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/command.adoc
@@ -1,5 +1,6 @@
 [[command]]
 = Command Persistence and Processing
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
index f683b0b..df1e24d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
@@ -1,4 +1,5 @@
 = `domainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/editing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/editing.adoc
index 619d792..a446ddf 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/editing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/editing.adoc
@@ -1,4 +1,5 @@
 = `editing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/fileAccept.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/fileAccept.adoc
index 184f3b4..754c10c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/fileAccept.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/fileAccept.adoc
@@ -1,4 +1,5 @@
 = `fileAccept`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/hidden.adoc
index 5ed7f3a..e869a8a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/hidden.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/hidden.adoc
@@ -1,5 +1,6 @@
 [[hidden]]
 = `hidden()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/maxLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/maxLength.adoc
index 8f65350..c2369d0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/maxLength.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/maxLength.adoc
@@ -1,5 +1,6 @@
 [[maxLength]]
 = `maxLength()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/mustSatisfy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/mustSatisfy.adoc
index c82598b..ca9c0a4 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/mustSatisfy.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/mustSatisfy.adoc
@@ -1,4 +1,5 @@
 = `mustSatisfy`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/notPersisted.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/notPersisted.adoc
index cef8f40..b5a7e50 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/notPersisted.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/notPersisted.adoc
@@ -1,5 +1,6 @@
 [[notPersisted]]
 = `notPersisted()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/optionality.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/optionality.adoc
index 684e0cd..d13b4bc 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/optionality.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/optionality.adoc
@@ -1,4 +1,5 @@
 = `optionality`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/projecting.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/projecting.adoc
index cf3d12c..51aad3c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/projecting.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/projecting.adoc
@@ -1,5 +1,6 @@
 [[projecting]]
 = `projecting()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/publishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/publishing.adoc
index 885f722..1549ed7 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/publishing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/publishing.adoc
@@ -1,4 +1,5 @@
 = `publishing`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/regexPattern.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/regexPattern.adoc
index 77af039..064363d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/regexPattern.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/regexPattern.adoc
@@ -1,4 +1,5 @@
 = `regexPattern`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc
index 7857e75..96a4622 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc
@@ -1,4 +1,5 @@
 = `@PropertyLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/cssClass.adoc
index c6814cd..8d8e61c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/cssClass.adoc
@@ -1,4 +1,5 @@
 = `cssClass`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/describedAs.adoc
index f9d0815..0be6703 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/describedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/describedAs.adoc
@@ -1,4 +1,5 @@
 = `describedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/hidden.adoc
index 5fdbfff..f275248 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/hidden.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/hidden.adoc
@@ -1,4 +1,5 @@
 = `hidden`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
index 805d8cb..bcb5bfc 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
@@ -1,4 +1,5 @@
 = `labelPosition`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/multiLine.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/multiLine.adoc
index a143171..ed139fc 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/multiLine.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/multiLine.adoc
@@ -1,4 +1,5 @@
 = `multiLine`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/named.adoc
index 6888c78..f62903d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/named.adoc
@@ -1,4 +1,5 @@
 = named
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
index f2f6b3e..f27009d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
@@ -1,4 +1,5 @@
 = `navigable`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/promptStyle.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/promptStyle.adoc
index cbfd6bc..ca945f3 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/promptStyle.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/promptStyle.adoc
@@ -1,4 +1,5 @@
 = `promptStyle`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/renderedAsDayBefore.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/renderedAsDayBefore.adoc
index 3033807..7a2dcbb 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/renderedAsDayBefore.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/renderedAsDayBefore.adoc
@@ -1,4 +1,5 @@
 = `renderedAsDayBefore`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/typicalLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/typicalLength.adoc
index f2f517a..e3301e1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/typicalLength.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/typicalLength.adoc
@@ -1,4 +1,5 @@
 = `typicalLength`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/unchanging.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/unchanging.adoc
index dd780f7..5562d2d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/unchanging.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/unchanging.adoc
@@ -1,4 +1,5 @@
 = `unchanging`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc
index a77b04e..886305b 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc
@@ -1,4 +1,5 @@
 = `@RequestScoped` (`javax`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc
index 1346bca..01135b2 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc
@@ -1,4 +1,5 @@
 = `@Title`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel.adoc
index 83529bf..75a84b0 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel.adoc
@@ -1,4 +1,5 @@
 = `@ViewModel`
+
 :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 [...]
 
 WARNING: TODO: v2 - not currently supported, need to reinstate MementoService
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel/objectType.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel/objectType.adoc
index ae65bdc..368ab4d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel/objectType.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModel/objectType.adoc
@@ -1,5 +1,6 @@
 [[objectType]]
 = `objectType()`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout.adoc
index 1d30003..6b4537a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout.adoc
@@ -1,4 +1,5 @@
 = `@ViewModelLayout`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/bookmarking.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/bookmarking.adoc
index 250f5fc..7c1f0d8 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/bookmarking.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/bookmarking.adoc
@@ -1,4 +1,5 @@
 = `bookmarking`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClass.adoc
index dfa8c9b..f4d5a49 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClass.adoc
@@ -1,4 +1,5 @@
 = `cssClass`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassFa.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassFa.adoc
index f353665..98e6a68 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassFa.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassFa.adoc
@@ -1,4 +1,5 @@
 = `cssClassFa`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassUiEvent.adoc
index 3897ddf..77845d6 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/cssClassUiEvent.adoc
@@ -1,4 +1,5 @@
 = `cssClassUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/describedAs.adoc
index 92fd2cd..9aa0479 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/describedAs.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/describedAs.adoc
@@ -1,4 +1,5 @@
 = `describedAs`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/iconUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/iconUiEvent.adoc
index 099220d..16ab00f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/iconUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/iconUiEvent.adoc
@@ -1,4 +1,5 @@
 = `iconUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/layoutUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/layoutUiEvent.adoc
index 4ff2c48..a57e892 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/layoutUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/layoutUiEvent.adoc
@@ -1,4 +1,5 @@
 = `layoutUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/named.adoc
index 81dd4c1..5e46bdb 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/named.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/named.adoc
@@ -1,4 +1,5 @@
 = `named`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/paged.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/paged.adoc
index 310765a..ecbc2e6 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/paged.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/paged.adoc
@@ -1,4 +1,5 @@
 = `paged`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/plural.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/plural.adoc
index a82cb18..8f74333 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/plural.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/plural.adoc
@@ -1,4 +1,5 @@
 = `plural`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/titleUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/titleUiEvent.adoc
index f9449f8..823c98c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/titleUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ViewModelLayout/titleUiEvent.adoc
@@ -1,4 +1,5 @@
 = `titleUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/XmlJavaTypeAdapter.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/XmlJavaTypeAdapter.adoc
index 92f51c1..1776b72 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/XmlJavaTypeAdapter.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/XmlJavaTypeAdapter.adoc
@@ -1,4 +1,5 @@
 = `@XmlJavaTypeAdapter` (`jaxb`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc
index 2c35f82..7965c14 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/XmlRootElement.adoc
@@ -1,4 +1,5 @@
 = `@XmlRootElement` (`jaxb`)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
index e5ca78f..6486e47 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
@@ -1,4 +1,5 @@
 = Annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
index f32139c..65b230e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
@@ -1,4 +1,5 @@
 = JDO Annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
index 097041c..adaac5f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
@@ -1,4 +1,5 @@
 = Java EE Annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc
index c1931b6..58ec795 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/main.adoc
@@ -1,4 +1,5 @@
 = Core annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc
index c3d6ad0..5f9885d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/other.adoc
@@ -1,4 +1,5 @@
 = Other Apache Isis Annotations
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/partial.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/partial.adoc
index 8075cc5..87fc8f4 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/partial.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/partial.adoc
@@ -1,5 +1,6 @@
 [[partial]]
 = Incomplete/partial support
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
index a720493..688523a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:refguide:applib-ant:about.adoc[Annotations]
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/nav.adoc b/api/applib/src/main/adoc/modules/applib-cm/nav.adoc
index 36e2aec..39d9f6b 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc
index 13594b9..4f83412 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/about.adoc
@@ -1,4 +1,5 @@
 = Classes & Methods
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes.adoc
index f41d399..47b45c7 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes.adoc
@@ -1,4 +1,5 @@
 = Classes and Interfaces
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc
index b40629c..78c15fc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest-bootstrapping.adoc
@@ -1,4 +1,5 @@
 = `AppManifest` (bootstrapping)
+
 :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 [...]
 
 // TODO: v2: this is all out of date, instead bootstrap with @SpringBootApplication
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest2-bootstrapping.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest2-bootstrapping.adoc
index ecb38b8..a37502e 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest2-bootstrapping.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/AppManifest2-bootstrapping.adoc
@@ -1,5 +1,6 @@
 [[AppManifest2-bootstrapping]]
 = `AppManifest2` (and `Module`)
+
 :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 [...]
 
 WARNING: TODO: v2: this is all out of date - we use `@Configuration` and `@SpringBootApplication` or `@SpringBootTest`
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee.adoc
index a438bfe..d83dafc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee.adoc
@@ -1,4 +1,5 @@
 = Contributee
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUniqueId.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUniqueId.adoc
index 8977e38..104f62f 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUniqueId.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUniqueId.adoc
@@ -1,5 +1,6 @@
 [[HasUniqueId]]
 = `HasUniqueId`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUserName.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUserName.adoc
index 502e68e..3c2440c 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUserName.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/contributee/HasUserName.adoc
@@ -1,5 +1,6 @@
 [[HasUserName]]
 = `HasUsername`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent.adoc
index 22ecc2d..e4de741 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent.adoc
@@ -1,4 +1,5 @@
 = Domain Event Classes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/AbstractDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/AbstractDomainEvent.adoc
index d5002f1..e2f04b2 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/AbstractDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/AbstractDomainEvent.adoc
@@ -1,5 +1,6 @@
 [[AbstractDomainEvent]]
 = `AbstractDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/ActionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/ActionDomainEvent.adoc
index 18a1397..b145abd 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/ActionDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/ActionDomainEvent.adoc
@@ -1,5 +1,6 @@
 [[ActionDomainEvent]]
 = `ActionDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/CollectionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/CollectionDomainEvent.adoc
index c60d9d4..983128d 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/CollectionDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/CollectionDomainEvent.adoc
@@ -1,5 +1,6 @@
 [[CollectionDomainEvent]]
 = `CollectionDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/PropertyDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/PropertyDomainEvent.adoc
index e448b1f..40dbc8b 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/PropertyDomainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/domainevent/PropertyDomainEvent.adoc
@@ -1,5 +1,6 @@
 [[PropertyDomainEvent]]
 = `PropertyDomainEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n.adoc
index f78c756..b57f81c 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n.adoc
@@ -1,4 +1,5 @@
 = i18n support
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n/TranslatableString.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n/TranslatableString.adoc
index bfd8154..9b841f3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n/TranslatableString.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/i18n/TranslatableString.adoc
@@ -1,5 +1,6 @@
 [[TranslatableString]]
 = `TranslatableString`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/layout.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/layout.adoc
index 7efdb11..c0fbb7f 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/layout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/layout.adoc
@@ -1,4 +1,5 @@
 = (Object) Layout
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent.adoc
index 787e6ee..12d0bb1 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent.adoc
@@ -1,4 +1,5 @@
 = Lifecycle Events
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc
index 7e7a338..8fbf0fd 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc
@@ -1,5 +1,6 @@
 [[AbstractLifecycleEvent]]
 = `AbstractLifecycleEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc
index 819bded..a18e6c8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectCreatedEvent]]
 = `ObjectCreatedEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc
index 88dec71..5ba0bfc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectLoadedEvent]]
 = `ObjectLoadedEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc
index d5da80a..aa20248 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectPersistedEvent]]
 = `ObjectPersistedEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc
index b362448..734c7e8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectPersistingEvent]]
 = `ObjectPersistingEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc
index 26e76c2..978bfa1 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectRemovingEvent]]
 = `ObjectRemovingEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc
index 85c4037..2b0fc0a 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectUpdatedEvent]]
 = `ObjectUpdatedEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc
index e2596ea..6bfdb1f 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc
@@ -1,5 +1,6 @@
 [[ObjectUpdatingEvent]]
 = `ObjectUpdatingEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/menubars.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/menubars.adoc
index 4600d67..1c65e15 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/menubars.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/menubars.adoc
@@ -1,4 +1,5 @@
 = MenuBars Layout
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins.adoc
index bad1a4e..b11dc5d 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins.adoc
@@ -1,4 +1,5 @@
 = Mixins
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Dto.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Dto.adoc
index d23d772..662ba4a 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Dto.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Dto.adoc
@@ -1,5 +1,6 @@
 [[Dto]]
 = `Dto`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Object.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Object.adoc
index 1c9384d..f537d60 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Object.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Object.adoc
@@ -1,5 +1,6 @@
 [[Object]]
 = `Object`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Persistable.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Persistable.adoc
index b87a2e1..fe6ef5b 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Persistable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/mixins/Persistable.adoc
@@ -1,5 +1,6 @@
 [[Persistable]]
 = `Persistable`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles.adoc
index 899192d..d2e1ad8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles.adoc
@@ -1,4 +1,5 @@
 = Roles
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedAt.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedAt.adoc
index a3b6634..fc501f0 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedAt.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedAt.adoc
@@ -1,5 +1,6 @@
 [[HoldsUpdatedAt]]
 = `HoldsUpdatedAt`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedBy.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedBy.adoc
index ef49b20..a6541ae 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedBy.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/HoldsUpdatedBy.adoc
@@ -1,5 +1,6 @@
 [[HoldsUpdatedBy]]
 = `HoldsUpdatedBy`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/Timestampable.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/Timestampable.adoc
index c335ddb..d140606 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/Timestampable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/roles/Timestampable.adoc
@@ -1,5 +1,6 @@
 [[Timestampable]]
 = `Timestampable`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/spec.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/spec.adoc
index 6814a0a..74b9455 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/spec.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/spec.adoc
@@ -1,4 +1,5 @@
 = Specification pattern
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc
index 803eefb..3de7bf2 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc
@@ -1,4 +1,5 @@
 = Superclasses
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractService.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractService.adoc
index 4fd0a16..6440df9 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractService.adoc
@@ -1,5 +1,6 @@
 [[AbstractService]]
 = `AbstractService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc
index 37d1ad4..3582791 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc
@@ -1,5 +1,6 @@
 [[AbstractSubscriber]]
 = `AbstractSubscriber`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractViewModel.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractViewModel.adoc
index a5112a9..d44d1fc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractViewModel.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractViewModel.adoc
@@ -1,5 +1,6 @@
 [[AbstractViewModel]]
 = `AbstractViewModel`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScript.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScript.adoc
index 7cddcaa..6aa8baa 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScript.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScript.adoc
@@ -1,5 +1,6 @@
 [[FixtureScript]]
 = `FixtureScript`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScripts.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScripts.adoc
index ac260cc..2a379d8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScripts.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/FixtureScripts.adoc
@@ -1,5 +1,6 @@
 [[FixtureScripts]]
 = `FixtureScripts`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent.adoc
index fc8de65..a42b221 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent.adoc
@@ -1,4 +1,5 @@
 = UI Event Classes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/CssClassUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/CssClassUiEvent.adoc
index 026f3c7..5471923 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/CssClassUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/CssClassUiEvent.adoc
@@ -1,5 +1,6 @@
 [[CssClassUiEvent]]
 = `CssClassUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/IconUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/IconUiEvent.adoc
index 235489e..976d7d0 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/IconUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/IconUiEvent.adoc
@@ -1,5 +1,6 @@
 [[IconUiEvent]]
 = `IconUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/TitleUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/TitleUiEvent.adoc
index d911d95..b81de18 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/TitleUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/uievent/TitleUiEvent.adoc
@@ -1,5 +1,6 @@
 [[TitleUiEvent]]
 = `TitleUiEvent`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility.adoc
index 5ba538d..ed49457 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility.adoc
@@ -1,4 +1,5 @@
 = Applib Utility Classes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Enums.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Enums.adoc
index c9d5221..4bb48d3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Enums.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Enums.adoc
@@ -1,5 +1,6 @@
 [[Enums]]
 = `Enums`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/ObjectContracts.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/ObjectContracts.adoc
index ba199fd..4ae4042 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/ObjectContracts.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/ObjectContracts.adoc
@@ -1,5 +1,6 @@
 [[ObjectContracts]]
 = `ObjectContracts2`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Reasons.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Reasons.adoc
index 80b72bd..467cc6d 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Reasons.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/Reasons.adoc
@@ -1,5 +1,6 @@
 [[Reasons]]
 = `Reasons`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/TitleBuffer.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/TitleBuffer.adoc
index 6d516ff..89d7cba 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/TitleBuffer.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/utility/TitleBuffer.adoc
@@ -1,5 +1,6 @@
 [[TitleBuffer]]
 = `TitleBuffer`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types.adoc
index e10d942..496d654 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types.adoc
@@ -1,4 +1,5 @@
 = Value Types
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Blob.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Blob.adoc
index 1c6f8a5..39b5a13 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Blob.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Blob.adoc
@@ -1,4 +1,5 @@
 = `Blob`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Clob.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Clob.adoc
index 9f9ee3a..ca3b4bf 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Clob.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Clob.adoc
@@ -1,4 +1,5 @@
 = `Clob`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Color.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Color.adoc
index 0c7b603..4eeb5d6 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Color.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Color.adoc
@@ -1,4 +1,5 @@
 = `Color`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Markup.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Markup.adoc
index aefd75a..2aaf24b 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Markup.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Markup.adoc
@@ -1,4 +1,5 @@
 = `Markup`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Money.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Money.adoc
index a4f47e4..b1f4391 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Money.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Money.adoc
@@ -1,4 +1,5 @@
 = `Money`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Password.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Password.adoc
index 78ce569..7cdb5c0 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Password.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/value-types/Password.adoc
@@ -1,4 +1,5 @@
 = `Password`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods.adoc
index f8daa42..4fac1d3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods.adoc
@@ -1,4 +1,5 @@
 = Methods
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle.adoc
index f272f13..665593a 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle.adoc
@@ -1,4 +1,5 @@
 = Lifecycle Methods
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc
index 6381d4f..ea5e12b 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc
@@ -1,5 +1,6 @@
 [[created]]
 = `created()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc
index 7443e31..2fead74 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc
@@ -1,5 +1,6 @@
 [[jdo-api]]
 = Using the JDO API
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc
index 0146677..1ba3c48 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc
@@ -1,5 +1,6 @@
 [[loaded]]
 = `loaded()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc
index d130bb1..07de659 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc
@@ -1,5 +1,6 @@
 [[persisted]]
 = `persisted()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc
index 44de55f..afc1413 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc
@@ -1,5 +1,6 @@
 [[persisting]]
 = `persisting()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc
index 79ac202..6c0854d 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc
@@ -1,5 +1,6 @@
 [[removed]]
 = `removed()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc
index a920f98..058dee7 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc
@@ -1,5 +1,6 @@
 [[removing]]
 = `removing()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc
index 2656dd7..b96fab0 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc
@@ -1,5 +1,6 @@
 [[updated]]
 = `updated()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc
index cb65e02..09e5392 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc
@@ -1,5 +1,6 @@
 [[updating]]
 = `updating()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes.adoc
index 86deb78..c49d812 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes.adoc
@@ -1,4 +1,5 @@
 = Supporting Method Prefixes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/addTo.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/addTo.adoc
index 8dacf37..9e0667e 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/addTo.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/addTo.adoc
@@ -1,5 +1,6 @@
 [[addTo]]
 = `addTo...()` (deprecated)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/autoComplete.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/autoComplete.adoc
index 8673faa..bfb182c 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/autoComplete.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/autoComplete.adoc
@@ -1,5 +1,6 @@
 [[autoComplete]]
 = `autoComplete...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc
index 9aee459..588b914 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/choices.adoc
@@ -1,5 +1,6 @@
 [[choices]]
 = `choices...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/clear.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/clear.adoc
index bdb1e41..4014cc3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/clear.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/clear.adoc
@@ -1,5 +1,6 @@
 [[clear]]
 = `clear...()` (deprecated)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc
index 687dda3..cec80e5 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/default.adoc
@@ -1,5 +1,6 @@
 [[default]]
 = `default...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/disable.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/disable.adoc
index 66ce1a5..128a124 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/disable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/disable.adoc
@@ -1,5 +1,6 @@
 [[disable]]
 = `disable...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/get.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/get.adoc
index 750943b..467a876 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/get.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/get.adoc
@@ -1,5 +1,6 @@
 [[get]]
 = `get...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/hide.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/hide.adoc
index dad69c4..01d368b 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/hide.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/hide.adoc
@@ -1,5 +1,6 @@
 [[hide]]
 = `hide...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/modify.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/modify.adoc
index 54591df..4d11868 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/modify.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/modify.adoc
@@ -1,5 +1,6 @@
 [[modify]]
 = `modify...()` (deprecated)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/removeFrom.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/removeFrom.adoc
index bb864e2..819cb61 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/removeFrom.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/removeFrom.adoc
@@ -1,5 +1,6 @@
 [[removeFrom]]
 = `removeFrom...()` (deprecated)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/set.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/set.adoc
index 5094d0f..ebde5a5 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/set.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/set.adoc
@@ -1,5 +1,6 @@
 [[set]]
 = `set...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validate.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validate.adoc
index b0f5f00..23a2393 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validate.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validate.adoc
@@ -1,5 +1,6 @@
 [[validate]]
 = `validate...()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateAddTo.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateAddTo.adoc
index 79b9a90..937570e 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateAddTo.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateAddTo.adoc
@@ -1,5 +1,6 @@
 [[validateAddTo]]
 = `validateAddTo...()` (deprecated)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateRemoveFrom.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateRemoveFrom.adoc
index 1ec26bb..be1d4a3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateRemoveFrom.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/prefixes/validateRemoveFrom.adoc
@@ -1,5 +1,6 @@
 [[validateRemoveFrom]]
 = `validateRemoveFrom...()` (deprecated)
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved.adoc
index 6ee4668..857e201 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved.adoc
@@ -1,4 +1,5 @@
 = Reserved Methods
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc
index aebf2bc..31e8f58 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/cssClass.adoc
@@ -1,5 +1,6 @@
 [[cssClass]]
 = `cssClass()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
index fbf19e5..062efd7 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
@@ -1,5 +1,6 @@
 [[reserved-disable]]
 = `disabled()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/getId.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/getId.adoc
index f32e227..152747d 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/getId.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/getId.adoc
@@ -1,5 +1,6 @@
 [[getId]]
 = `getId()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/hide.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/hide.adoc
index 789d941..8727ec3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/hide.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/hide.adoc
@@ -1,5 +1,6 @@
 [[reserved-hide]]
 = `hide()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc
index 7c28285..43e5aab 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/iconName.adoc
@@ -1,5 +1,6 @@
 [[iconName]]
 = `iconName()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/layout.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/layout.adoc
index 40882e3..75f7e57 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/layout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/layout.adoc
@@ -1,5 +1,6 @@
 [[layout]]
 = `layout()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc
index 5c4d5bb..b1a3edd 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/title.adoc
@@ -1,5 +1,6 @@
 [[title]]
 = `title()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/validate.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/validate.adoc
index 6a55141..8e560e9 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/validate.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/validate.adoc
@@ -1,5 +1,6 @@
 [[reserved-validate]]
 = `validate()`
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/rgcms.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/rgcms.adoc
index 89620a7..bc57e78 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/rgcms.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/rgcms.adoc
@@ -1,4 +1,5 @@
 = Classes & Methods
+
 :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 [...]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc
index 07fd382..74d5e23 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:refguide:applib-cm:about.adoc[Classes & Methods]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/nav.adoc b/api/applib/src/main/adoc/modules/applib-svc/nav.adoc
index 36e2aec..39d9f6b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
index 2db2f1f..1e153ce 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
@@ -1,4 +1,5 @@
 = `AcceptHeaderService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
index 306976a..79423af 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
@@ -1,4 +1,5 @@
 = `ApplicationFeatureRepository`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AuditerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AuditerService.adoc
index 9d08148..5544c91 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AuditerService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AuditerService.adoc
@@ -1,4 +1,5 @@
 = `AuditerService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
index 0738049..65e7215 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
@@ -1,4 +1,5 @@
 = `BookmarkService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
index f8b37fd..2677fda 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
@@ -1,4 +1,5 @@
 = `BookmarkUiService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
index 55ddf5a..ad1b5e7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
@@ -1,4 +1,5 @@
 = `ClockService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc
index de80b93..e5afff3 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc
@@ -1,4 +1,5 @@
 = `CommandContext`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
index 7ddee8f..0371d41 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
@@ -1,4 +1,5 @@
 = `CommandDtoProcessorService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc
index 4d133fd..7215962 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc
@@ -1,4 +1,5 @@
 = `CommandExecutorService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandService.adoc
index 1d62029..5818850 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandService.adoc
@@ -1,4 +1,5 @@
 = `CommandService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
index 413e70b..bbde2b1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
@@ -1,4 +1,5 @@
 = `ConfigurationMenu`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
index f1b157a..42ab813 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
@@ -1,4 +1,5 @@
 = `ConfigurationViewService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
index 7c27e57..afba98a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
@@ -1,4 +1,5 @@
 = `ContentMappingService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
index 08433a1..787e120 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
@@ -1,4 +1,5 @@
 = `DeepLinkService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc
index c41c202..7cb2088 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc
@@ -1,4 +1,5 @@
 = `EmailNotificationService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc
index f93776d..2180855 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc
@@ -1,4 +1,5 @@
 = `EmailService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc
index f83481c..94c4916 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc
@@ -1,4 +1,5 @@
 = `ErrorReportingService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc
index ea7830f..f90ca28 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc
@@ -1,5 +1,6 @@
 [[EventBusService]]
 = `EventBusService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc
index 2f694a2..bfc1db4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc
@@ -1,4 +1,5 @@
 = `ExceptionRecognizer`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc
index 337c14c..b4d381d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc
@@ -1,4 +1,5 @@
 = `ExceptionRecognizerService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc
index c8de285..94e5ce2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc
@@ -1,4 +1,5 @@
 = `FactoryService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc
index 81965d0..f2cdeb4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc
@@ -1,4 +1,5 @@
 = `GridLoaderService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc
index 57c1496..cf13a74 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc
@@ -1,5 +1,6 @@
 [[GridService]]
 = `GridService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc
index 3303a25..453d538 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc
@@ -1,4 +1,5 @@
 = `GridSystemService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
index 446e38c..ebd8e79 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
@@ -1,4 +1,5 @@
 = `HealthCheckService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
index 3140297..e5a4fb7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
@@ -1,5 +1,6 @@
 [[HintStore]]
 = `HintStore`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
index dfeea24..4a19a3c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
@@ -1,4 +1,5 @@
 = `HomePageResolverService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
index 01bb334..220e626 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
@@ -1,4 +1,5 @@
 = `InteractionContext`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
index 18f4274..b9053d5 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
@@ -1,4 +1,5 @@
 = `JaxbService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
index 2ac040d..5dea5cd 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
@@ -1,4 +1,5 @@
 = `LayoutService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
index 027fe46..7c2b048 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
@@ -1,4 +1,5 @@
 = `LayoutServiceMenu`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
index 6df4a00..a03f18a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
@@ -1,5 +1,6 @@
 [[LocaleProvider]]
 = `LocaleProvider`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
index b05fffa..26ecaeb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
@@ -1,4 +1,5 @@
 = `MenuBarsLoaderService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
index bb7c108..108d38b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
@@ -1,4 +1,5 @@
 = `MenuBarsService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc
index 5ee09a5..40c6fd7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc
@@ -1,5 +1,6 @@
 [[MessageService]]
 = `MessageService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
index 6d5de59..fbfbcfe 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
@@ -1,4 +1,5 @@
 = `MetaModelService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc
index fd02ee3..81a181e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc
@@ -1,4 +1,5 @@
 = `MetaModelServiceMenu`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
index 95a7d6b..a4ec027 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
@@ -1,5 +1,6 @@
 [[MetricsService]]
 = `MetricsService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
index 1b31592..1552c4d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
@@ -1,4 +1,5 @@
 = `PublisherService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
index 485c1fe..ee390a5 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
@@ -1,4 +1,5 @@
 = `QueryResultsCache`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc
index 26cb6b5..77c1be5 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc
@@ -1,4 +1,5 @@
 = `QueryResultsCacheControl`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
index 1c5d84d..6ee3bd2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
@@ -1,4 +1,5 @@
 = `RepositoryService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
index 4d06c54..5d32a41 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
@@ -1,5 +1,6 @@
 [[RoutingService]]
 = `RoutingService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
index ef78efa..40519f8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
@@ -1,5 +1,6 @@
 [[Scratchpad]]
 = `Scratchpad`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
index 235c767..6f02562 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
@@ -1,4 +1,5 @@
 == `ServiceInjector`
+
 :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 [...]
 
 WARNING: TODO
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
index dfd958c..22f4b65 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
@@ -1,4 +1,5 @@
 = `ServiceRegistry`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
index e900ed0..63b5292 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
@@ -1,5 +1,6 @@
 [[SessionLoggingService]]
 = `SessionLoggingService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
index 2569847..3799fa7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
@@ -1,5 +1,6 @@
 [[SudoService]]
 = `SudoService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
index 07fa258..2355b11 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
@@ -1,4 +1,5 @@
 = `SwaggerService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
index 199aa0f..33fd72c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
@@ -1,5 +1,6 @@
 [[TableColumnOrderService]]
 = `TableColumnOrderService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
index 0329957..cbc8e28 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
@@ -1,5 +1,6 @@
 [[TitleService]]
 = `TitleService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
index b4a236c..5e15687 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
@@ -1,4 +1,5 @@
 = `TransactionService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
index 7b0e1f8..853687e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
@@ -1,4 +1,5 @@
 = `TranslationService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
index fb1564f..9370930 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
@@ -1,5 +1,6 @@
 [[TranslationsResolver]]
 = `TranslationsResolver`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
index bca1d1a..dc330c4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
@@ -1,4 +1,5 @@
 = `UrlEncodingService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
index 616188e..c1c6592 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
@@ -1,5 +1,6 @@
 [[UserProfileService]]
 = `UserProfileService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
index 034d113..44c20cb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
@@ -1,5 +1,6 @@
 [[UserRegistrationService]]
 = `UserRegistrationService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
index 3d15715..de21ef7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
@@ -1,5 +1,6 @@
 [[UserService]]
 = `UserService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
index b8fee9e..01e728c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
@@ -1,4 +1,5 @@
 = `WrapperFactory`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
index a55e516..e83a912 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
@@ -1,5 +1,6 @@
 [[XmlSnapshotService]]
 = `XmlSnapshotService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundCommandService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundCommandService.adoc
index b681032..62f50c8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundCommandService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundCommandService.adoc
@@ -1,4 +1,5 @@
 = `BackgroundCommandService2`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService.adoc
index e7a6676..770e9f8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService.adoc
@@ -1,4 +1,5 @@
 = `BackgroundService`
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_BackgroundCommandExecution.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_BackgroundCommandExecution.adoc
index ec09d01..868417c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_BackgroundCommandExecution.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_BackgroundCommandExecution.adoc
@@ -1,4 +1,5 @@
 = `BackgroundCommandExec'n` abstract class
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_Quartz.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_Quartz.adoc
index 7b02d06..14d1859 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_Quartz.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/_BackgroundService/_Quartz.adoc
@@ -1,5 +1,6 @@
 [[Quartz]]
 = Quartz Scheduler Configuration
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/about.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/about.adoc
index 3cbd717..bd01f53 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/about.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/about.adoc
@@ -1,4 +1,5 @@
 = Domain Services
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-api.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-api.adoc
index 67671dc..3aa57a1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-api.adoc
@@ -1,4 +1,5 @@
 = Application Layer API
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-spi.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-spi.adoc
index 69e701b..6412aca 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-spi.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_application-layer-spi.adoc
@@ -1,4 +1,5 @@
 = Application Layer SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_core-domain-api.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_core-domain-api.adoc
index 760c1c4..4004378 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_core-domain-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_core-domain-api.adoc
@@ -1,4 +1,5 @@
 = Core/Domain API
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-api.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-api.adoc
index e1a4193..4c1fefe 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-api.adoc
@@ -1,4 +1,5 @@
 = Integration API
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-spi.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-spi.adoc
index 71bfd69..43db760 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-spi.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_integration-spi.adoc
@@ -1,4 +1,5 @@
 = Integration SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-api.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-api.adoc
index d47b9ac..5355cee 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-api.adoc
@@ -1,4 +1,5 @@
 = Metadata API
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-spi.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-spi.adoc
index 4d9c06f..27bcf3a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-spi.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_metadata-spi.adoc
@@ -1,4 +1,5 @@
 = Metadata SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-api.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-api.adoc
index b70518f..b608166 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-api.adoc
@@ -1,4 +1,5 @@
 = Persistence Layer API
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-spi.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-spi.adoc
index 6961811..2b8f8b1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-spi.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_persistence-layer-spi.adoc
@@ -1,4 +1,5 @@
 = Persistence Layer SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-api.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-api.adoc
index 8575877..19a31c1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-api.adoc
@@ -1,4 +1,5 @@
 = Presentation Layer API
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-spi.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-spi.adoc
index 5748e12..e24b468 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-spi.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_presentation-layer-spi.adoc
@@ -1,4 +1,5 @@
 = Presentation Layer SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/_security-spi.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/_security-spi.adoc
index aad56e6..4c9fb59 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/_security-spi.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/_security-spi.adoc
@@ -1,4 +1,5 @@
 = Security SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
index ce72549..21e7c90 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:refguide:applib-svc:about.adoc[Domain Services]
 
diff --git a/api/schema/src/main/adoc/modules/schema/nav.adoc b/api/schema/src/main/adoc/modules/schema/nav.adoc
index 36e2aec..39d9f6b 100644
--- a/api/schema/src/main/adoc/modules/schema/nav.adoc
+++ b/api/schema/src/main/adoc/modules/schema/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/api/schema/src/main/adoc/modules/schema/pages/about.adoc b/api/schema/src/main/adoc/modules/schema/pages/about.adoc
index eea3481..bfa7d2e 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/about.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/about.adoc
@@ -1,4 +1,5 @@
 = Schema
+
 :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 [...]
 
 
diff --git a/api/schema/src/main/adoc/modules/schema/pages/aim.adoc b/api/schema/src/main/adoc/modules/schema/pages/aim.adoc
index 66cf33b..9690012 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/aim.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/aim.adoc
@@ -1,5 +1,6 @@
 [[aim]]
 = Action Invocation Memento
+
 :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 [...]
 :page-partial:
 
diff --git a/api/schema/src/main/adoc/modules/schema/pages/chg.adoc b/api/schema/src/main/adoc/modules/schema/pages/chg.adoc
index 8bf7aca..561e6e7 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/chg.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/chg.adoc
@@ -1,5 +1,6 @@
 [[chg]]
 = Changes
+
 :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 [...]
 :page-partial:
 
diff --git a/api/schema/src/main/adoc/modules/schema/pages/cmd.adoc b/api/schema/src/main/adoc/modules/schema/pages/cmd.adoc
index bed9f62..4a798be 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/cmd.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/cmd.adoc
@@ -1,5 +1,6 @@
 [[cmd]]
 = Command
+
 :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 [...]
 :page-partial:
 
diff --git a/api/schema/src/main/adoc/modules/schema/pages/common.adoc b/api/schema/src/main/adoc/modules/schema/pages/common.adoc
index 49e54a0..11bbf31 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/common.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/common.adoc
@@ -1,5 +1,6 @@
 [[common]]
 = Common Schema
+
 :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 [...]
 :page-partial:
 
diff --git a/api/schema/src/main/adoc/modules/schema/pages/ixn.adoc b/api/schema/src/main/adoc/modules/schema/pages/ixn.adoc
index b4ce5ef..4db26de 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/ixn.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/ixn.adoc
@@ -1,5 +1,6 @@
 [[ixn]]
 = Interaction Execution
+
 :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 [...]
 :page-partial:
 
diff --git a/api/schema/src/main/adoc/modules/schema/pages/mml.adoc b/api/schema/src/main/adoc/modules/schema/pages/mml.adoc
index 7bdc269..01e53f0 100644
--- a/api/schema/src/main/adoc/modules/schema/pages/mml.adoc
+++ b/api/schema/src/main/adoc/modules/schema/pages/mml.adoc
@@ -1,5 +1,6 @@
 [[mml]]
 = MetaModel
+
 :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 [...]
 :page-partial:
 
diff --git a/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc b/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc
index bdf7ebe..f638adb 100644
--- a/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc
+++ b/api/schema/src/main/adoc/modules/schema/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:refguide:schema:about.adoc[Schema]
 
diff --git a/core/adoc/modules/ROOT/nav.adoc b/core/adoc/modules/ROOT/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/adoc/modules/ROOT/nav.adoc
+++ b/core/adoc/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/adoc/modules/ROOT/pages/about.adoc b/core/adoc/modules/ROOT/pages/about.adoc
index 55e105e..06416f6 100644
--- a/core/adoc/modules/ROOT/pages/about.adoc
+++ b/core/adoc/modules/ROOT/pages/about.adoc
@@ -1,4 +1,5 @@
 = Core Framework
+
 :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 [...]
 :page-partial:
 
diff --git a/core/adoc/modules/ROOT/partials/component-nav.adoc b/core/adoc/modules/ROOT/partials/component-nav.adoc
index fe8f446..92cc7b7 100644
--- a/core/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/core/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,6 +1,3 @@
-: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$module-nav.adoc[]
 include::core:archdesign:partial$module-nav.adoc[]
 include::core:commons:partial$module-nav.adoc[]
diff --git a/core/adoc/modules/ROOT/partials/module-nav.adoc b/core/adoc/modules/ROOT/partials/module-nav.adoc
index ac2b5e5..46becff 100644
--- a/core/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/core/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1,5 +1,3 @@
-: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 [...]
-
 * xref:core:ROOT:about.adoc[Core Framework]
 
 
diff --git a/core/adoc/modules/archdesign/nav.adoc b/core/adoc/modules/archdesign/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/adoc/modules/archdesign/nav.adoc
+++ b/core/adoc/modules/archdesign/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/adoc/modules/archdesign/pages/about.adoc b/core/adoc/modules/archdesign/pages/about.adoc
index 9f7d8f3..01730eb 100644
--- a/core/adoc/modules/archdesign/pages/about.adoc
+++ b/core/adoc/modules/archdesign/pages/about.adoc
@@ -1,4 +1,5 @@
 = Architecture & Design
+
 :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 [...]
 
 
diff --git a/core/adoc/modules/archdesign/pages/concurrent-task-list.adoc b/core/adoc/modules/archdesign/pages/concurrent-task-list.adoc
index f5d07b3..1a3c321 100644
--- a/core/adoc/modules/archdesign/pages/concurrent-task-list.adoc
+++ b/core/adoc/modules/archdesign/pages/concurrent-task-list.adoc
@@ -1,4 +1,5 @@
 = Concurrent Task List
+
 :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 [...]
 
 
diff --git a/core/adoc/modules/archdesign/pages/maven-modules.adoc b/core/adoc/modules/archdesign/pages/maven-modules.adoc
index b538a2c..48cc94f 100644
--- a/core/adoc/modules/archdesign/pages/maven-modules.adoc
+++ b/core/adoc/modules/archdesign/pages/maven-modules.adoc
@@ -1,4 +1,5 @@
 = Maven modules
+
 :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 [...]
 
 
diff --git a/core/adoc/modules/archdesign/pages/metamodel.adoc b/core/adoc/modules/archdesign/pages/metamodel.adoc
index 30a1280..f80030f 100644
--- a/core/adoc/modules/archdesign/pages/metamodel.adoc
+++ b/core/adoc/modules/archdesign/pages/metamodel.adoc
@@ -1,4 +1,5 @@
 = Metamodel
+
 :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 [...]
 
 
diff --git a/core/adoc/modules/archdesign/pages/webmodules.adoc b/core/adoc/modules/archdesign/pages/webmodules.adoc
index f09789f..b2e37e2 100644
--- a/core/adoc/modules/archdesign/pages/webmodules.adoc
+++ b/core/adoc/modules/archdesign/pages/webmodules.adoc
@@ -1,4 +1,5 @@
 = WebModules
+
 :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 [...]
 
 
diff --git a/core/adoc/modules/archdesign/partials/module-nav.adoc b/core/adoc/modules/archdesign/partials/module-nav.adoc
index e2ca499..cb14d88 100644
--- a/core/adoc/modules/archdesign/partials/module-nav.adoc
+++ b/core/adoc/modules/archdesign/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:core:archdesign:about.adoc[Architecture & Design]
 
diff --git a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc
+++ b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc
index 925aa39..23feb89 100644
--- a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc
+++ b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/pages/about.adoc
@@ -1,4 +1,5 @@
 = Byte Buddy Proxy Factory
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc
index 488d7f3..f40c089 100644
--- a/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc
+++ b/core/codegen-bytebuddy/src/main/adoc/modules/codegen-bytebuddy/partials/module-nav.adoc
@@ -1,3 +1,4 @@
-: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 [...]
+
+
 
 * xref:core:codegen-bytebuddy:about.adoc[Byte Buddy Proxy Factory]
diff --git a/core/commons/src/main/adoc/modules/commons/nav.adoc b/core/commons/src/main/adoc/modules/commons/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/commons/src/main/adoc/modules/commons/nav.adoc
+++ b/core/commons/src/main/adoc/modules/commons/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/commons/src/main/adoc/modules/commons/pages/about.adoc b/core/commons/src/main/adoc/modules/commons/pages/about.adoc
index bb37f01..a48b17c 100644
--- a/core/commons/src/main/adoc/modules/commons/pages/about.adoc
+++ b/core/commons/src/main/adoc/modules/commons/pages/about.adoc
@@ -1,4 +1,5 @@
 = Commons
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc b/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
index 2717b8d..eb56f9a 100644
--- a/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
+++ b/core/commons/src/main/adoc/modules/commons/partials/module-nav.adoc
@@ -1,3 +1,4 @@
-: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 [...]
+
+
 
 * xref:core:commons:about.adoc[Commons]
diff --git a/core/config/src/main/adoc/modules/config/nav.adoc b/core/config/src/main/adoc/modules/config/nav.adoc
index 36e2aec..39d9f6b 100644
--- a/core/config/src/main/adoc/modules/config/nav.adoc
+++ b/core/config/src/main/adoc/modules/config/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::refguide:ROOT:partial$component-nav.adoc[]
diff --git a/core/config/src/main/adoc/modules/config/pages/about.adoc b/core/config/src/main/adoc/modules/config/pages/about.adoc
index b481273..b94912a 100644
--- a/core/config/src/main/adoc/modules/config/pages/about.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/about.adoc
@@ -1,4 +1,5 @@
 = Configuration Guide
+
 :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 [...]
 
 Apache Isis' is a Spring Boot application, and so is typically configured using an `application.properties` or `application.yml` file.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc
index e019987..bae4570 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Any other general or miscellaneous configuration settings.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc
index 2bdf667..4ef45df 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc
@@ -1,5 +1,6 @@
 == Events
 
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc
index d2b1583..2187991 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Default configuration for applib annotations.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc
index 4cf5915..140f9ef 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc
index 2f5e8f4..5214451 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of the validator component that checks the well-formedness of the built metamodel (how strict to be etc.)
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc
index 7b38a7b..a5c733a 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of the metamodel component that is responsible for building and validating the metamodel.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc
index c082c91..bbfb9f2 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of individual domain services provided by the framework at runtime.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc
index c5a5999..9fdae3a 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of runtime (locale, timezone etc).
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc
index 16a22d3..95d7075 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to the catalogue of extensions to the framework.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc
index c5f31de..b547b70 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to incubating components.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc
index d91e735..0fea0db 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to legacy components.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc
index 923bbf3..c2375bc 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to utilities and libraries for integrating (mapping between) bounded contexts.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc
index a3f25f7..bd99487 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration properties that are passed through directly to DataNucleus, for the most part unused by Apache Isis itself.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc
index 62e345f..436ffe4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of the DataNucleus JDO persistence component (the Apache Isis component that wraps the DataNucleus ORM).
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc
index 359c083..6bc874b 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of the Shiro implementation of the Authenticator and Authorizor APIs.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc
index 961b067..fe63088 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to subdomain libraries.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc
index 8a3db8b..a57c370 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to the testing libraries.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc
index efa8cea..877ab80 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to value type definitions.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc
index 3585180..fdc612a 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of the REST API surfaced by the Restful Objects viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc
index a5297da..f8f10f3 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration of the Wicket viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc
index ba05247..21f4ba4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc
index c8beeb9..2d47b8f 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to the RestEasy framework (that bootstraps the Restful Objects viewer).
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc
index ca04c21..9e0d1b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc
@@ -1,2 +1,3 @@
+
 :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 [...]
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc
index 3e2c86e..8e99c7c 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc
@@ -1,3 +1,4 @@
+
 :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 [...]
 
 Configuration that applies to Spring itself.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
index 441bdf0..7b5b869 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
@@ -1,7 +1,8 @@
 = Other
-: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 [...]
 :page-role: -toc
 
+: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::../section-hooks/Other~pre.adoc[]
 
@@ -14,7 +15,7 @@ include::../section-hooks/Other~pre.adoc[]
 [[isis.as-map]]
 isis.as-map
 
-| 
+|
 | null
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
index ff02f76..50051f8 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
@@ -1,5 +1,3 @@
-: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 [...]
-
 ** xref:refguide:config:sections/isis.applib.adoc[Applib]
 ** xref:refguide:config:sections/isis.core.meta-model.adoc[Core MetaModel]
 ** xref:refguide:config:sections/isis.core.meta-model.introspector.adoc[Core MetaModel Introspection]
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
index 1f32911..86017db 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
@@ -1,7 +1,8 @@
 = Applib
-: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 [...]
 :page-role: -toc
 
+: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::../section-hooks/isis.applib~pre.adoc[]
 
@@ -16,7 +17,7 @@ isis.applib.annotation. +
 action-layout.css-class-fa. +
 patterns
 
-| 
+|
 | Provides a mapping of patterns to font-awesome CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's menu icon if rendered by the Wicket viewer.
 
 Providing a default set of patterns encourages a common set of verbs to be used.
@@ -29,7 +30,7 @@ The font awesome class for individual actions can be overridden using ``ActionLa
 isis.applib.annotation. +
 action-layout.css-class.patterns
 
-| 
+|
 | Provides a mapping of patterns to CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's button if rendered by the Wicket viewer.
 
 Providing a default set of patterns encourages a common set of verbs to be used.
@@ -42,7 +43,7 @@ The CSS class for individual actions can be overridden using ``ActionLayout#cssC
 isis.applib.annotation.action. +
 command
 
-| 
+|
 | The default for whether action invocations should be reified as a ``Command`` using the ``CommandService``, possibly so that the actual execution of the action can be deferred until later (background execution) or replayed against a copy of the system.
 
 In particular, the ``CommandWithDto`` implementation of ``Command`` represents the action invocation memento (obtained using ``CommandWithDto#asDto()``) as a ``CommandDto``.
@@ -72,7 +73,7 @@ The algorithm for determining whether (and what type of) an event is actually se
 isis.applib.annotation.action. +
 explicit
 
-| 
+|
 | Whether or not a public method needs to be annotated with @``Action`` in order to be picked up as an action in the metamodel.
 
 
@@ -81,7 +82,7 @@ explicit
 isis.applib.annotation.action. +
 publishing
 
-| 
+|
 | The default for whether action invocations should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the action invoked, the action arguments and the returned object (if any).
@@ -94,7 +95,7 @@ This setting can be overridden on a case-by-case basis using ``Action#publishing
 isis.applib.annotation. +
 collection-layout.default-view
 
-| 
+|
 | Defines the initial view to display collections when rendered.
 
 The value of this can be overridden on a case-by-case basis using ``CollectionLayout#defaultView()``. Note that this default configuration property is an enum and so defines only a fixed number of values, whereas the annotation returns a string; this is to allow for flexibility that individual viewers might support their own additional types. For example, the Wicket viewer supports
@@ -211,7 +212,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 isis.applib.annotation. +
 domain-object.auditing
 
-| 
+|
 | The default for whether _domain entities_ should be audited or not (meaning that any changes are sent through to the ``AuditerService``.
 
 This setting can be overridden on a case-by-case basis using ``DomainObject#auditing()`` DomainObject#getAuditing()}
@@ -241,7 +242,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 isis.applib.annotation. +
 domain-object.editing
 
-| 
+|
 | The default for whether the properties of domain objects can be edited, or whether instead they can be modified only using actions (or programmatically as a side-effect of actions on other objects).
 
 This setting can be overridden on a case-by-case basis using DomainObject#getEditing()
@@ -309,7 +310,7 @@ Note: this applies only to domain entities, not to view models.
 isis.applib.annotation. +
 domain-object.publishing
 
-| 
+|
 | The default for whether the identities of changed objects should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``PublishedObjects`` collecting details of all changed domain objects.
@@ -381,7 +382,7 @@ Note: this applies only to domain entities, not to view models.
 isis.applib.annotation. +
 parameter-layout.label-position
 
-| 
+|
 | Defines the default position for the label for an action parameter.
 
 Can be overridden on a case-by-case basis using ``ParameterLayout#labelPosition()``.
@@ -394,7 +395,7 @@ If left as ``LabelPosition#NOT_SPECIFIED`` and not overridden, then the position
 isis.applib.annotation. +
 property-layout.label-position
 
-| 
+|
 | Defines the default position for the label for a domain object property.
 
 Can be overridden on a case-by-case basis using ``ParameterLayout#labelPosition()``.
@@ -407,7 +408,7 @@ If left as ``LabelPosition#NOT_SPECIFIED`` and not overridden, then the position
 isis.applib.annotation.property. +
 command
 
-| 
+|
 | The default for whether property edits should be reified as a ``Command`` using the ``CommandService``, possibly so that the actual execution of the property edit can be deferred until later (background execution) or replayed against a copy of the system.
 
 In particular, the ``CommandWithDto`` implementation of ``Command`` represents the action invocation memento (obtained using ``CommandWithDto#asDto()``) as a ``CommandDto``.
@@ -437,7 +438,7 @@ The algorithm for determining whether (and what type of) an event is actually se
 isis.applib.annotation.property. +
 publishing
 
-| 
+|
 | The default for whether property edits should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the property edited, and the new value of the property.
@@ -518,7 +519,7 @@ isis.applib.annotation.view-model. +
 validation.semantic-checking. +
 enable
 
-| 
+|
 | Whether to check for inconsistencies between the usage of ``DomainObject``, ``ViewModel``, ``DomainObjectLayout`` and ``ViewModelLayout``.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
index de9e667..7ec757d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
@@ -1,4 +1,5 @@
 = Core MetaModel
+
 :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 [...]
 :page-role: -toc
 
@@ -27,7 +28,7 @@ isis.core.meta-model. +
 programming-model. +
 ignore-deprecated
 
-| 
+|
 | If set, then any aspects of the programming model (as implemented by ``FacetFactory``s that have been indicated as deprecated will simply be ignored/excluded from the metamodel.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
index 7df49a3..f0825e6 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
@@ -1,4 +1,5 @@
 = Core MetaModel Introspection
+
 :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 [...]
 :page-role: -toc
 
@@ -26,7 +27,7 @@ Only applies if the introspector is configured to perform full introspection up-
 isis.core.meta-model.introspector. +
 mode
 
-| 
+|
 | Whether all known types should be fully introspected as part of the bootstrapping, or should only be partially introspected initially.
 
 Leaving this as lazy means that there's a chance that metamodel validation errors will not be discovered during bootstrap. That said, metamodel validation is still run incrementally for any classes introspected lazily after initial bootstrapping (unless ``#isValidateIncrementally()`` is disabled.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
index 93b78a7..42870a5 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
@@ -1,4 +1,5 @@
 = MetaModel Validator
+
 :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 [...]
 :page-role: -toc
 
@@ -49,7 +50,7 @@ It is _highly advisable_ to leave this set as enabled (the default), and to also
 isis.core.meta-model.validator. +
 explicit-object-type
 
-| 
+|
 | Whether to ensure that the object type of all objects must be specified explicitly, using either ``DomainObject#objectType()`` or ``DomainService#objectType()``.
 
 It is _highly advisable_ to leave this set as enabled (the default). These object types should also (of course) be unique - that can be checked by setting the ``#isEnsureUniqueObjectTypes()`` config property.
@@ -70,7 +71,7 @@ date-time-type-adapter
 isis.core.meta-model.validator. +
 jaxb-view-model.no-arg-constructor
 
-| 
+|
 | If set, then ensures that all JAXB-style view models have a no-arg constructor.
 
 
@@ -125,7 +126,7 @@ jdoql.variables-clause
 isis.core.meta-model.validator. +
 no-params-only
 
-| 
+|
 | If set, then checks that the supports ``hideXxx`` and ``disableXxx`` methods for actions do not have take parameters.
 
 Historically, the programming model allowed these methods to accept the same number of parameters as the action method to which they relate, the rationale being for similarity with the ``validateXxx`` method. However, since these parameters serve no function, the programming model has been simplified so that these supporting methods are discovered if they have exactly no parameters.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
index 0d74cb8..b680819 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
@@ -1,4 +1,5 @@
 = Core Runtime Services configurations
+
 :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 [...]
 :page-role: -toc
 
@@ -15,7 +16,7 @@ include::../section-hooks/isis.core.runtime-services~pre.adoc[]
 isis.core.runtime-services. +
 application-features.init
 
-| 
+|
 | Whether the ``ApplicationFeatureRepository`` (or the default implementation of that service, at least) should compute the set of ``ApplicationFeature`` that describe the metamodel eagerly, or lazily.
 
 
@@ -24,7 +25,7 @@ application-features.init
 isis.core.runtime-services.email. +
 override.bcc
 
-| 
+|
 | Intended for testing purposes only, if set then the requested ``bcc:`` of the email will be ignored, and instead sent to this email address instead.
 
 
@@ -33,7 +34,7 @@ override.bcc
 isis.core.runtime-services.email. +
 override.cc
 
-| 
+|
 | Intended for testing purposes only, if set then the requested ``cc:`` of the email will be ignored, and instead sent to this email address instead.
 
 
@@ -42,7 +43,7 @@ override.cc
 isis.core.runtime-services.email. +
 override.to
 
-| 
+|
 | Intended for testing purposes only, if set then the requested ``to:`` of the email will be ignored, and instead sent to this email address instead.
 
 
@@ -60,7 +61,7 @@ port
 isis.core.runtime-services.email. +
 sender.address
 
-| 
+|
 | Specifies the email address of the user sending the email.
 
 If the username is not specified, is also used as the username to connect to the SMTP service.
@@ -73,7 +74,7 @@ This configuration property is mandatory (for the default implementation of the
 isis.core.runtime-services.email. +
 sender.hostname
 
-| 
+|
 | Specifies the host running the SMTP service.
 
 If not specified, then the value used depends upon the email implementation. The default implementation will use the ``host`` system property.
@@ -84,7 +85,7 @@ If not specified, then the value used depends upon the email implementation. The
 isis.core.runtime-services.email. +
 sender.password
 
-| 
+|
 | Specifies the password (corresponding to the username to connect to the SMTP service.
 
 This configuration property is mandatory (for the default implementation of the ``EmailService``, at least).
@@ -95,7 +96,7 @@ This configuration property is mandatory (for the default implementation of the
 isis.core.runtime-services.email. +
 sender.username
 
-| 
+|
 | Specifies the username to use to connect to the SMTP service.
 
 If not specified, then the sender's email address will be used instead.
@@ -142,7 +143,7 @@ tls.enabled
 isis.core.runtime-services. +
 exception-recognizer.jdo.disable
 
-| 
+|
 | Whether the ``ExceptionRecognizer`` implementation for JDO/DataNucleus object store - which attempts to sanitize any exceptions arising from that object store - should be disabled (meaning that exceptions will potentially propagate as more serious to the end user).
 
 
@@ -152,7 +153,7 @@ isis.core.runtime-services. +
 repository-service. +
 disable-auto-flush
 
-| 
+|
 | Normally any queries are automatically preceded by flushing pending executions.
 
 This key allows this behaviour to be disabled.
@@ -165,7 +166,7 @@ Originally introduced as part of ISIS-1134 (fixing memory leaks in the objectsto
 isis.core.runtime-services. +
 translation.po.mode
 
-| 
+|
 | Specifies the initial mode for obtaining/discovering translations.
 
 There are three modes:
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
index 031717e..f8d5c44 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
@@ -1,4 +1,5 @@
 = Core Runtime Services configurations
+
 :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 [...]
 :page-role: -toc
 
@@ -14,7 +15,7 @@ include::../section-hooks/isis.core.runtime~pre.adoc[]
 [[isis.core.runtime.locale]]
 isis.core.runtime.locale
 
-| 
+|
 | If set, then overrides the application's ``Locale#getDefault()``
 
 
@@ -22,7 +23,7 @@ isis.core.runtime.locale
 [[isis.core.runtime.timezone]]
 isis.core.runtime.timezone
 
-| 
+|
 | If set, then override's the application's timezone.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
index 639816b..21d30c4 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
@@ -1,4 +1,5 @@
 = Extensions
+
 :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 [...]
 :page-role: -toc
 
@@ -15,7 +16,7 @@ include::../section-hooks/isis.extensions~pre.adoc[]
 isis.extensions.cors. +
 allowed-headers
 
-| 
+|
 | Which HTTP headers are allowed in a CORS request.
 
 For more information, check the usage of the ``headers`` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
@@ -26,7 +27,7 @@ For more information, check the usage of the ``headers`` init parameter for http
 isis.extensions.cors. +
 allowed-methods
 
-| 
+|
 | Which HTTP methods are permitted in a CORS request.
 
 For more information, check the usage of the ``methods`` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
index 56c6068..def46c5 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
@@ -1,4 +1,5 @@
 = Legacy
+
 :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 [...]
 :page-role: -toc
 
@@ -15,7 +16,7 @@ include::../section-hooks/isis.legacy~pre.adoc[]
 isis.legacy.value-types.money. +
 currency
 
-| 
+|
 | Configures the default currency code used by ``MoneyValueSemanticsProvider``. @deprecated
 
 
@@ -24,7 +25,7 @@ currency
 isis.legacy.value-types.percentage. +
 format
 
-| 
+|
 | Configures the formats understood by ``PercentageValueSemanticsProvider``. @deprecated
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
index 150f4da..ee226cd 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
@@ -1,4 +1,5 @@
 = JDO DataNucleus
+
 :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 [...]
 :page-role: -toc
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
index 050936f..8a20af6 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
@@ -1,4 +1,5 @@
 = DataNucleus Configuration
+
 :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 [...]
 :page-role: -toc
 
@@ -16,7 +17,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 ConnectionFactory2Name
 
-| 
+|
 | null
 
 
@@ -26,7 +27,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 ConnectionFactoryName
 
-| 
+|
 | null
 
 
@@ -36,7 +37,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 ConnectionPasswordDecrypter
 
-| 
+|
 | null
 
 
@@ -46,7 +47,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 PersistenceUnitLoadClasses
 
-| 
+|
 | null
 
 
@@ -55,7 +56,7 @@ PersistenceUnitLoadClasses
 isis.persistence.jdo-datanucleus. +
 impl.datanucleus.cache.level2.mode
 
-| 
+|
 | Values of javax.persistence.SharedCacheMode, capitalized
 
 
@@ -80,7 +81,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 connection-factory-name
 
-| 
+|
 | The JNDI name for a connection factory for transactional connections.
 
 For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
@@ -96,7 +97,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 connection-factory2-name
 
-| 
+|
 | The JNDI name for a connection factory for non-transactional connections.
 
 For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
@@ -112,7 +113,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 connection-password-decrypter
 
-| 
+|
 | Name of a class that implements ``DecryptionProvider`` and should only be specified if the password is encrypted in the persistence properties.
 
 See also ``json`` (camelCasing instead of kebab-casing).
@@ -125,7 +126,7 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 isis.persistence.jdo-datanucleus. +
 impl.datanucleus.identifier.case
 
-| 
+|
 | null
 
 
@@ -149,7 +150,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.objectProvider. +
 className
 
-| 
+|
 | null
 
 
@@ -175,7 +176,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus. +
 persistenceByReachabilityAtCommit
 
-| 
+|
 | null
 
 
@@ -185,7 +186,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 auto-create-all
 
-| 
+|
 | Whether DN should automatically create the database schema on bootstrapping.
 
 This should be set to ``true`` when running against an in-memory database, but set to ``false`` when running against a persistent database (use something like flyway instead to manage schema evolution).
@@ -201,7 +202,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 auto-create-database
 
-| 
+|
 | Previously we defaulted this property to "true", but that could cause the target database to be modified
 
 See also ``json`` (camelCasing instead of kebab-casing).
@@ -215,7 +216,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 autoCreateAll
 
-| 
+|
 | null
 
 
@@ -225,7 +226,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 autoCreateDatabase
 
-| 
+|
 | null
 
 
@@ -247,7 +248,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 validateAll
 
-| 
+|
 | null
 
 
@@ -257,7 +258,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 validateConstraints
 
-| 
+|
 | null
 
 
@@ -267,7 +268,7 @@ isis.persistence.jdo-datanucleus. +
 impl.datanucleus.schema. +
 validateTables
 
-| 
+|
 | null
 
 
@@ -276,7 +277,7 @@ validateTables
 isis.persistence.jdo-datanucleus. +
 impl.datanucleus.transaction-type
 
-| 
+|
 | Type of transaction to use.
 
 If running under JavaSE the default is RESOURCE_LOCAL, and if running under JavaEE the default is JTA.
@@ -292,7 +293,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo. +
 PersistenceManagerFactoryClass
 
-| 
+|
 | null
 
 
@@ -302,7 +303,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 ConnectionDriverName
 
-| 
+|
 | null
 
 
@@ -312,7 +313,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 ConnectionPassword
 
-| 
+|
 | null
 
 
@@ -322,7 +323,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 ConnectionURL
 
-| 
+|
 | null
 
 
@@ -332,7 +333,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 ConnectionUserName
 
-| 
+|
 | null
 
 
@@ -342,7 +343,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 connection-driver-name
 
-| 
+|
 | JDBC driver used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -356,7 +357,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 connection-password
 
-| 
+|
 | Password for the user account used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -370,7 +371,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 connection-url
 
-| 
+|
 | URL used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -384,7 +385,7 @@ isis.persistence.jdo-datanucleus. +
 impl.javax.jdo.option. +
 connection-user-name
 
-| 
+|
 | User account used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
index b50fa33..b8db279 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
@@ -1,4 +1,5 @@
 = Shiro Security Implementation
+
 :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 [...]
 :page-role: -toc
 
@@ -16,7 +17,7 @@ isis.security.shiro. +
 auto-logout-if-already- +
 authenticated
 
-| 
+|
 | If the Shiro subject is found to be still authenticated, then will be logged out anyway and then re-authenticated.
 
 Applies only to the Restful Objects viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
index 6f89324..9281fa6 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
@@ -1,4 +1,5 @@
 = Testing
+
 :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 [...]
 :page-role: -toc
 
@@ -15,7 +16,7 @@ include::../section-hooks/isis.testing~pre.adoc[]
 isis.testing.fixtures. +
 initial-script
 
-| 
+|
 | Indicates the fixture script class to run initially.
 
 Intended for use when prototyping against an in-memory database (but will run in production mode as well if required).
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
index 78be279..299c068 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
@@ -1,4 +1,5 @@
 = Value types
+
 :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 [...]
 :page-role: -toc
 
@@ -15,7 +16,7 @@ include::../section-hooks/isis.value-types~pre.adoc[]
 isis.value-types.primitives. +
 integer.format
 
-| 
+|
 | null
 
 
@@ -24,7 +25,7 @@ integer.format
 isis.value-types.java-lang.byte. +
 format
 
-| 
+|
 | Configures the number format understood by ``ByteValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -33,7 +34,7 @@ format
 isis.value-types.java-lang.double. +
 format
 
-| 
+|
 | Configures the number format understood by ``DoubleValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -42,7 +43,7 @@ format
 isis.value-types.java-lang.float. +
 format
 
-| 
+|
 | Configures the number format understood by ``FloatValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -51,7 +52,7 @@ format
 isis.value-types.java-lang.long. +
 format
 
-| 
+|
 | Configures the number format understood by ``LongValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -60,7 +61,7 @@ format
 isis.value-types.java-lang.short. +
 format
 
-| 
+|
 | Configures the number format understood by ``ShortValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -69,7 +70,7 @@ format
 isis.value-types.java-math. +
 big-decimal.format
 
-| 
+|
 | Configures the number format understood by ``BigDecimalValueSemanticsProvider``. @deprecated
 
 
@@ -78,7 +79,7 @@ big-decimal.format
 isis.value-types.java-math. +
 big-integer.format
 
-| 
+|
 | Configures the number format understood by ``BigIntegerValueSemanticsProvider``. @deprecated
 
 
@@ -204,7 +205,7 @@ format
 isis.value-types.primitives.int. +
 format
 
-| 
+|
 | Configures the number format understood by ``IntValueSemanticsProviderAbstract``. @deprecated
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
index a003147..82e0892 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
@@ -1,4 +1,5 @@
 = Restful Objects Viewer
+
 :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 [...]
 :page-role: -toc
 
@@ -15,7 +16,7 @@ include::../section-hooks/isis.viewer.restfulobjects~pre.adoc[]
 isis.viewer.restfulobjects. +
 base-uri
 
-| 
+|
 | If left unset (the default), then the RO viewer will use the ``UriInfo`` (injected using ``Context``) to figure out the base Uri (used to render ``href``s).
 
 This will be correct much of the time, but will almost certainly be wrong if there is a reverse proxy.
@@ -28,7 +29,7 @@ If set, eg ``com/``, then this value will be used instead.
 isis.viewer.restfulobjects. +
 honor-ui-hints
 
-| 
+|
 | Whether to enable the ``x-ro-follow-links`` support, to minimize round trips.
 
 The RO viewer provides the capability for the client to set the optional ``x-ro-follow-links`` query parameter, as described in section 34.4 of the RO spec v1.0. If used, the resultant representation includes the result of following the associated link, but through a server-side "join", somewhat akin to GraphQL.
@@ -41,7 +42,7 @@ By default this functionality is disabled, this configuration property enables t
 isis.viewer.restfulobjects. +
 object-property-values-only
 
-| 
+|
 | When rendering domain objects, if set the representation returned is stripped back to a minimal set, excluding links to actions and collections and with a simplified representation of an object's properties.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -52,7 +53,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 strict-accept-checking
 
-| 
+|
 | If set, then any unrecognised ``Accept`` headers will result in an HTTP _Not Acceptable_ response code (406).
 
 
@@ -61,7 +62,7 @@ strict-accept-checking
 isis.viewer.restfulobjects. +
 suppress-described-by-links
 
-| 
+|
 | If set, then the representations returned will omit any links to the formal domain-type representations.
 
 
@@ -70,7 +71,7 @@ suppress-described-by-links
 isis.viewer.restfulobjects. +
 suppress-member-disabled-reason
 
-| 
+|
 | If set, then - should there be an interaction with an action, property or collection that is disabled - then this will prevent the ``disabledReason`` reason from being added to the returned representation.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -81,7 +82,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-extensions
 
-| 
+|
 | If set, then the ``x-isis-format`` key (under ``extensions``) for properties will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -92,7 +93,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-id
 
-| 
+|
 | If set, then the ``id`` key for all members will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -103,7 +104,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-links
 
-| 
+|
 | If set, then the detail link (in other words ``]``) for all members will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -114,7 +115,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-update-link
 
-| 
+|
 | If set, then the update link (in other words `` ]`` to perform a bulk update of an object) will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
index b50a78a..cb2be76 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
@@ -1,4 +1,5 @@
 = Wicket Viewer
+
 :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 [...]
 :page-role: -toc
 
@@ -14,7 +15,7 @@ include::../section-hooks/isis.viewer.wicket~pre.adoc[]
 [[isis.viewer.wicket.ajax-debug-mode]]
 isis.viewer.wicket.ajax-debug-mode
 
-| 
+|
 | Whether the Ajax debug should be shown, by default this is disabled.
 
 
@@ -35,7 +36,7 @@ There is usually very little reason to change this from its default.
 isis.viewer.wicket.application. +
 about
 
-| 
+|
 | Label used on the about page.
 
 
@@ -44,7 +45,7 @@ about
 isis.viewer.wicket.application. +
 brand-logo-header
 
-| 
+|
 | Either the location of the image file (relative to the class-path resource root), or an absolute URL.
 
 This is rendered on the header panel. An image with a size of 160x40 works well. If not specified, the application.name is used instead.
@@ -55,7 +56,7 @@ This is rendered on the header panel. An image with a size of 160x40 works well.
 isis.viewer.wicket.application. +
 brand-logo-signin
 
-| 
+|
 | Either the location of the image file (relative to the class-path resource root), or an absolute URL.
 
 This is rendered on the sign-in page. An image with a size of 400x40 works well. If not specified, the application name is used instead.
@@ -65,7 +66,7 @@ This is rendered on the sign-in page. An image with a size of 400x40 works well.
 [[isis.viewer.wicket.application.css]]
 isis.viewer.wicket.application.css
 
-| 
+|
 | URL of file to read any custom CSS, relative to ``static`` package on the class path.
 
 A typical value is ``css``. This will result in this file being read from the ``static/css`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).
@@ -76,7 +77,7 @@ A typical value is ``css``. This will result in this file being read from the ``
 isis.viewer.wicket.application. +
 favicon-content-type
 
-| 
+|
 | Specifies the content type of the favIcon, if any.
 
 
@@ -85,7 +86,7 @@ favicon-content-type
 isis.viewer.wicket.application. +
 favicon-url
 
-| 
+|
 | Specifies the URL to use of the favIcon.
 
 This is expected to be a local resource.
@@ -95,7 +96,7 @@ This is expected to be a local resource.
 [[isis.viewer.wicket.application.js]]
 isis.viewer.wicket.application.js
 
-| 
+|
 | URL of file to read any custom Javascript, relative to ``static`` package on the class path.
 
 A typical value is ``js``. This will result in this file being read from the ``static/js`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).
@@ -126,7 +127,7 @@ name
 isis.viewer.wicket.application. +
 version
 
-| 
+|
 | The version of the application, eg 1.0, 1.1, etc.
 
 If present, then this will be shown in the footer on every page as well as on the about page.
@@ -193,7 +194,7 @@ max-parent-chain-length
 isis.viewer.wicket. +
 clear-original-destination
 
-| 
+|
 | If the end user uses a deep link to access the Wicket viewer, but is not authenticated, then this configuration property determines whether to continue through to that original destination once authenticated, or simply to go to the home page.
 
 The default behaviour is to honour the original destination requested.
@@ -203,7 +204,7 @@ The default behaviour is to honour the original destination requested.
 [[isis.viewer.wicket.credit]]
 isis.viewer.wicket.credit
 
-| 
+|
 | List of organisations or individuals to give credit to, shown as links and icons in the footer. A maximum of 3 credits can be specified.
 
 IntelliJ unfortunately does not provide IDE completion for lists of classes; YMMV.
@@ -259,7 +260,7 @@ Each Date scalar panel will use ``#getDatePattern()`` or ``#getDateTimePattern()
 isis.viewer.wicket. +
 development-utilities.enable
 
-| 
+|
 | Determines whether debug bar and other stuff influenced by ``DebugSettings#isDevelopmentUtilitiesEnabled()`` is enabled or not.
 
 By default, depends on the mode (prototyping = enabled, server = disabled). This property acts as an override.
@@ -269,7 +270,7 @@ By default, depends on the mode (prototyping = enabled, server = disabled). This
 [[isis.viewer.wicket.dialog-mode]]
 isis.viewer.wicket.dialog-mode
 
-| 
+|
 | Whether the dialog mode rendered when invoking actions on domain objects should be to use the sidebar (the default) or to use a modal dialog.
 
 This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.
@@ -280,7 +281,7 @@ This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle(
 isis.viewer.wicket. +
 dialog-mode-for-menu
 
-| 
+|
 | Whether the dialog mode rendered when invoking actions on domain services (that is, menus) should be to use a modal dialog (the default) or to use the sidebar panel.
 
 This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.
@@ -290,7 +291,7 @@ This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle(
 [[isis.viewer.wicket.live-reload-url]]
 isis.viewer.wicket.live-reload-url
 
-| 
+|
 | If specified, then is rendered on each page to enable live reload.
 
 Configuring live reload also requires an appropriate plugin to the web browser (eg see http://livereload.com/[livereload.com] and a mechanism to trigger changes, eg by watching ``xml`` files.
@@ -302,7 +303,7 @@ isis.viewer.wicket. +
 max-title-length-in-parented- +
 tables
 
-| 
+|
 | null
 
 
@@ -312,7 +313,7 @@ isis.viewer.wicket. +
 max-title-length-in-standalone- +
 tables
 
-| 
+|
 | null
 
 
@@ -353,7 +354,7 @@ This behaviour is enabled by default, but can be disabled using this flag.
 [[isis.viewer.wicket.prompt-style]]
 isis.viewer.wicket.prompt-style
 
-| 
+|
 | Whether to use a modal dialog for property edits and for actions associated with properties.
 
 This can be overridden on a case-by-case basis using ``@PropertyLayout#promptStyle`` and ``@ActionLayout#promptStyle``.
@@ -366,7 +367,7 @@ This behaviour is disabled by default; the viewer will use an inline prompt in t
 isis.viewer.wicket. +
 redirect-even-if-same-object
 
-| 
+|
 | Whether to redirect to a new page, even if the object being shown (after an action invocation or a property edit) is the same as the previous page.
 
 This behaviour is disabled by default; the viewer will update the existing page if it can, making for a smoother user experience. If enabled then this reinstates the pre-1.15.0 behaviour of redirecting in all cases.
@@ -386,7 +387,7 @@ cookie-key
 isis.viewer.wicket.remember-me. +
 encryption-key
 
-| 
+|
 | If the "remember me" feature is available, optionally specifies an encryption key (a complex string acting as salt to the encryption algorithm) for computing the encrypted credentials.
 
 If not set, then (in production mode) the Wicket viewer will compute a random key each time it is started. This will mean that any credentials stored between sessions will become invalid.
@@ -401,7 +402,7 @@ In prototype mode this setting is effectively ignored, because the same key will
 isis.viewer.wicket.remember-me. +
 suppress
 
-| 
+|
 | Whether the sign-in page should have a "remember me" link (the default), or if it should be suppressed.
 
 If "remember me" is available and checked, then the viewer will allow users to login based on encrypted credentials stored in a cookie. An encryption key can optionally be specified.
@@ -445,7 +446,7 @@ By default this is enabled, in other words Wicket tags are stripped. Please be a
 isis.viewer.wicket. +
 suppress-password-reset
 
-| 
+|
 | Whether to suppress the password reset link on the sign-in page.
 
 Although this is disabled by default (in other words the 'reset password' link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressSignUp()`` sign-up link).
@@ -456,7 +457,7 @@ Although this is disabled by default (in other words the 'reset password' link i
 isis.viewer.wicket. +
 suppress-sign-up
 
-| 
+|
 | Whether to suppress the sign-up link on the sign-in page.
 
 Although this is disabled by default (in other words the sign-up link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressPasswordReset()`` password reset link).
@@ -466,7 +467,7 @@ Although this is disabled by default (in other words the sign-up link is not sup
 [[isis.viewer.wicket.themes.enabled]]
 isis.viewer.wicket.themes.enabled
 
-| 
+|
 | A comma separated list of enabled theme names, as defined by https://bootswatch.com.
 
 
@@ -495,7 +496,7 @@ IsisWicketThemeSupportDefault
 isis.viewer.wicket.themes. +
 show-chooser
 
-| 
+|
 | Whether the theme chooser widget should be available in the footer.
 
 
@@ -525,7 +526,7 @@ This behaviour is enabled by default.
 [[isis.viewer.wicket.welcome.text]]
 isis.viewer.wicket.welcome.text
 
-| 
+|
 | Text to be displayed on the application’s home page, used as a fallback if welcome.file is not specified. If a @HomePage action exists, then that will take precedence.
 
 
@@ -534,7 +535,7 @@ isis.viewer.wicket.welcome.text
 isis.viewer.wicket. +
 wicket-source-plugin
 
-| 
+|
 | Whether the Wicket source plugin should be enabled; if so, the markup includes links to the Wicket source.
 
 This behaviour is disabled by default. Please be aware that enabloing it can substantially impact performance.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc b/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
index 4d9dead..d7946bb 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
@@ -1,4 +1,5 @@
 = RestEasy Configuration
+
 :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 [...]
 :page-role: -toc
 
@@ -14,7 +15,7 @@ include::../section-hooks/resteasy~pre.adoc[]
 [[resteasy.as-map]]
 resteasy.as-map
 
-| 
+|
 | null
 
 
@@ -23,7 +24,7 @@ resteasy.as-map
 resteasy.authentication. +
 strategy-class-name
 
-| 
+|
 | Defaults to ``AuthenticationSessionStrategyBasicAuth``.
 
 
@@ -31,7 +32,7 @@ strategy-class-name
 [[resteasy.environment]]
 resteasy.environment
 
-| 
+|
 | null
 
 
@@ -39,7 +40,7 @@ resteasy.environment
 [[resteasy.jaxrs.app.registration]]
 resteasy.jaxrs.app.registration
 
-| 
+|
 | How the implementation of the JAX-RS application is discovered.
 
 
@@ -57,7 +58,7 @@ Note that this is used rather than ``prefix`` because there is _NO_ implementati
 [[resteasy.jaxrs.defaultPath]]
 resteasy.jaxrs.defaultPath
 
-| 
+|
 | The path at which the RO viewer should be mounted.
 
 
@@ -65,7 +66,7 @@ resteasy.jaxrs.defaultPath
 [[resteasy.resteasy-settings]]
 resteasy.resteasy-settings
 
-| 
+|
 | null
 
 
diff --git a/core/config/src/main/adoc/modules/config/partials/module-nav.adoc b/core/config/src/main/adoc/modules/config/partials/module-nav.adoc
index 10da1e9..87d39d9 100644
--- a/core/config/src/main/adoc/modules/config/partials/module-nav.adoc
+++ b/core/config/src/main/adoc/modules/config/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:refguide:config:about.adoc[Configuration]
 
diff --git a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc
index 740ef47..650d66a 100644
--- a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc
+++ b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::testing:ROOT:partial$component-nav.adoc[]
diff --git a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc
index 544faf5..b1f23d2 100644
--- a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc
+++ b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/pages/about.adoc
@@ -1,4 +1,5 @@
 = Internal Test Support
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc
index eb571c8..60bcdc0 100644
--- a/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc
+++ b/core/internaltestsupport/src/main/adoc/modules/internaltestsupport/partials/module-nav.adoc
@@ -1,3 +1,4 @@
-: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 [...]
+
+
 
 * xref:testing:unittestsupport:about.adoc[Unit Test Support]
diff --git a/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc b/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc b/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
index 5723c02..2c57b6d 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
@@ -1,4 +1,5 @@
 = MetaModel
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc b/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
index d4ce8fa..f589382 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
@@ -1,3 +1,4 @@
-: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 [...]
+
+
 
 * xref:core:metamodel:about.adoc[MetaModel]
diff --git a/core/runtime/src/main/adoc/modules/runtime/nav.adoc b/core/runtime/src/main/adoc/modules/runtime/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/runtime/src/main/adoc/modules/runtime/nav.adoc
+++ b/core/runtime/src/main/adoc/modules/runtime/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc b/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
index 49eaaf3..cd1987a 100644
--- a/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
+++ b/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
@@ -1,4 +1,5 @@
 = Runtime
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc b/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
index b876541..69cba24 100644
--- a/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
+++ b/core/runtime/src/main/adoc/modules/runtime/partials/module-nav.adoc
@@ -1,3 +1,4 @@
-: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 [...]
+
+
 
 * xref:core:runtime:about.adoc[Runtime]
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc
index 5a9d48d..798e16a 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ApplicationFeatureFactory.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ApplicationFeatureFactory.adoc
index ed5fb14..00ae26e 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ApplicationFeatureFactory.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ApplicationFeatureFactory.adoc
@@ -1,4 +1,5 @@
 = `ApplicationFeatureFactory`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuditerDispatchService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuditerDispatchService.adoc
index 9f01a06..c1cb716 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuditerDispatchService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuditerDispatchService.adoc
@@ -1,4 +1,5 @@
 = `AuditerDispatchService`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuthenticationSessionProvider.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuthenticationSessionProvider.adoc
index a78a463..4a20d3c 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuthenticationSessionProvider.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/AuthenticationSessionProvider.adoc
@@ -1,4 +1,5 @@
 = `AuthenticationSessionProvider`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc
index afc82fe..7ede91e 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc
@@ -1,4 +1,5 @@
 = `ChangedObjectsServiceInternal`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/CommandDtoServiceInternal.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/CommandDtoServiceInternal.adoc
index 7fe97cb..d5d12c5 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/CommandDtoServiceInternal.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/CommandDtoServiceInternal.adoc
@@ -1,4 +1,5 @@
 = `CommandDtoServiceInternal`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ContentNegotiationService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ContentNegotiationService.adoc
index 5c0d88c..2bdb762 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ContentNegotiationService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ContentNegotiationService.adoc
@@ -1,4 +1,5 @@
 = `ContentNegotiationService`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/InteractionDtoServiceInternal.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/InteractionDtoServiceInternal.adoc
index d2bbe9c..34e14dc 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/InteractionDtoServiceInternal.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/InteractionDtoServiceInternal.adoc
@@ -1,4 +1,5 @@
 = `InteractionDtoServiceInternal`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PersistenceSessionServiceInternal.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PersistenceSessionServiceInternal.adoc
index c2aa0d2..86e9592 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PersistenceSessionServiceInternal.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PersistenceSessionServiceInternal.adoc
@@ -1,4 +1,5 @@
 = `PersistenceSessionServiceInternal`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PublisherDispatchService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PublisherDispatchService.adoc
index 57db4ed..6438998 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PublisherDispatchService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/PublisherDispatchService.adoc
@@ -1,4 +1,5 @@
 = `PublisherDispatchService`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc
index fb3f784..82e3dd5 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc
@@ -1,4 +1,5 @@
 = `RepresentationService`
+
 :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 [...]
 
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/about.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/about.adoc
index 663b3dd..64262e4 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/about.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/about.adoc
@@ -1,7 +1,8 @@
 = Core Runtime Services
-: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 [...]
 :page-role: -toc -title
 
+: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 [...]
+
 
 WARNING: TODO: v2: to be updated
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_application-layer.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_application-layer.adoc
index 55cce6c..d3a4c31 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_application-layer.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_application-layer.adoc
@@ -1,4 +1,5 @@
 = Application Layer
+
 :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 [...]
 :page-partial:
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_persistence-layer.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_persistence-layer.adoc
index 2065687..73ca726 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_persistence-layer.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_persistence-layer.adoc
@@ -1,4 +1,5 @@
 = Persistence Layer internal SPI
+
 :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 [...]
 :page-partial:
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_presentation-layer.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_presentation-layer.adoc
index 411b3b7..ab81f04 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_presentation-layer.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/_presentation-layer.adoc
@@ -1,4 +1,5 @@
 = Presentation Layer
+
 :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 [...]
 :page-partial:
 
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc
index 4bc5e4f..1f643ea 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:core:runtime-services:about.adoc[Runtime Services]
 
diff --git a/core/security/src/main/adoc/modules/core/nav.adoc b/core/security/src/main/adoc/modules/core/nav.adoc
index 6f4f86a..ae4837e 100644
--- a/core/security/src/main/adoc/modules/core/nav.adoc
+++ b/core/security/src/main/adoc/modules/core/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::security:ROOT:partial$component-nav.adoc[]
diff --git a/core/security/src/main/adoc/modules/core/pages/about.adoc b/core/security/src/main/adoc/modules/core/pages/about.adoc
index 9bce5dc..92437c7 100644
--- a/core/security/src/main/adoc/modules/core/pages/about.adoc
+++ b/core/security/src/main/adoc/modules/core/pages/about.adoc
@@ -1,4 +1,5 @@
 = Security API
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/security/src/main/adoc/modules/core/partials/module-nav.adoc b/core/security/src/main/adoc/modules/core/partials/module-nav.adoc
index 857e323..0c16738 100644
--- a/core/security/src/main/adoc/modules/core/partials/module-nav.adoc
+++ b/core/security/src/main/adoc/modules/core/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:security:core:about.adoc[API]
 
diff --git a/core/webapp/src/main/adoc/modules/webapp/nav.adoc b/core/webapp/src/main/adoc/modules/webapp/nav.adoc
index 02a8182..e5c95c0 100644
--- a/core/webapp/src/main/adoc/modules/webapp/nav.adoc
+++ b/core/webapp/src/main/adoc/modules/webapp/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc b/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc
index df5bb8b..2fe09ab 100644
--- a/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc
+++ b/core/webapp/src/main/adoc/modules/webapp/pages/about.adoc
@@ -1,4 +1,5 @@
 = Runtime Web
+
 :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 [...]
 
 WARNING: TODO
diff --git a/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc b/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc
index 90c58e3..0891f53 100644
--- a/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc
+++ b/core/webapp/src/main/adoc/modules/webapp/partials/module-nav.adoc
@@ -1,3 +1,4 @@
-: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 [...]
+
+
 
 * xref:core:webapp:about.adoc[Webapp]
diff --git a/examples/demo/src/main/adoc/modules/demo/nav.adoc b/examples/demo/src/main/adoc/modules/demo/nav.adoc
index fa6a178..20be835 100644
--- a/examples/demo/src/main/adoc/modules/demo/nav.adoc
+++ b/examples/demo/src/main/adoc/modules/demo/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::docs:ROOT:partial$component-nav.adoc[]
diff --git a/examples/demo/src/main/adoc/modules/demo/pages/about.adoc b/examples/demo/src/main/adoc/modules/demo/pages/about.adoc
index cf0ea2c..2435068 100644
--- a/examples/demo/src/main/adoc/modules/demo/pages/about.adoc
+++ b/examples/demo/src/main/adoc/modules/demo/pages/about.adoc
@@ -1,4 +1,5 @@
 = Demo App
+
 :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 [...]
 
 The Demo app provides an introduction to some of the features and components available in Apache Isis.
diff --git a/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc b/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc
index 6c4c976..87ff756 100644
--- a/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc
+++ b/examples/demo/src/main/adoc/modules/demo/partials/module-nav.adoc
@@ -1,3 +1 @@
-: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 [...]
-
 ** xref:docs:demo:about.adoc[Demo App]
diff --git a/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc b/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc
index a9c2f1b..7ca633e 100644
--- a/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc
+++ b/examples/smoketests/src/main/adoc/modules/smoketests/nav.adoc
@@ -1,3 +1,4 @@
+
 :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[]
diff --git a/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc b/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc
index 1a5ce17..47686c0 100644
--- a/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc
+++ b/examples/smoketests/src/main/adoc/modules/smoketests/pages/about.adoc
@@ -1,4 +1,5 @@
 = SmokeTests
+
 :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 [...]
 
 WARNING: TODO
diff --git a/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc b/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc
index c11bcb4..ed99b6d 100644
--- a/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc
+++ b/examples/smoketests/src/main/adoc/modules/smoketests/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 * xref:core:smoketests:about.adoc[SmokeTest app]
 
diff --git a/extensions/adoc/modules/ROOT/nav.adoc b/extensions/adoc/modules/ROOT/nav.adoc
index 548215e..04bb29d 100644
--- a/extensions/adoc/modules/ROOT/nav.adoc
+++ b/extensions/adoc/modules/ROOT/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::extensions:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/adoc/modules/ROOT/pages/about.adoc b/extensions/adoc/modules/ROOT/pages/about.adoc
index 34971ac..3f901b1 100644
--- a/extensions/adoc/modules/ROOT/pages/about.adoc
+++ b/extensions/adoc/modules/ROOT/pages/about.adoc
@@ -1,4 +1,6 @@
 = Extensions Catalog
+
+
 :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 [...]
 :page-partial:
 
diff --git a/extensions/adoc/modules/ROOT/partials/component-nav.adoc b/extensions/adoc/modules/ROOT/partials/component-nav.adoc
index da244e6..dc52c59 100644
--- a/extensions/adoc/modules/ROOT/partials/component-nav.adoc
+++ b/extensions/adoc/modules/ROOT/partials/component-nav.adoc
@@ -1,6 +1,3 @@
-: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::extensions:ROOT:partial$module-nav.adoc[]
 
 * Core
diff --git a/extensions/adoc/modules/ROOT/partials/module-nav.adoc b/extensions/adoc/modules/ROOT/partials/module-nav.adoc
index 73999e3..139597f 100644
--- a/extensions/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/extensions/adoc/modules/ROOT/partials/module-nav.adoc
@@ -1 +1,2 @@
-: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 [...]
+
+
diff --git a/extensions/core/command-log/adoc/modules/command-log/nav.adoc b/extensions/core/command-log/adoc/modules/command-log/nav.adoc
index 548215e..04bb29d 100644
--- a/extensions/core/command-log/adoc/modules/command-log/nav.adoc
+++ b/extensions/core/command-log/adoc/modules/command-log/nav.adoc
@@ -1,3 +1,4 @@
+
 :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::extensions:ROOT:partial$component-nav.adoc[]
diff --git a/extensions/core/command-log/adoc/modules/command-log/pages/about.adoc b/extensions/core/command-log/adoc/modules/command-log/pages/about.adoc
index 8ebd5bf..52167d5 100644
--- a/extensions/core/command-log/adoc/modules/command-log/pages/about.adoc
+++ b/extensions/core/command-log/adoc/modules/command-log/pages/about.adoc
@@ -1,4 +1,5 @@
 = Command Log
+
 :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 [...]
 
 WARNING: TODO: v2 - to update
diff --git a/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc b/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc
index 5ca7c49..b00a113 100644
--- a/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc
+++ b/extensions/core/command-log/adoc/modules/command-log/partials/module-nav.adoc
@@ -1,4 +1,5 @@
-: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 [...]
+
+
 
 ** xref:command-log:about.adoc[Command Log]
 
... 3077 lines suppressed ...


[isis] 27/41: ISIS-2062: factors out XmlService from XmlSnapshotService, reintroduces TransactionService#executeInTransaction(...)

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

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

commit 0e025695842759b2c1188abdb2b0fd7d833a94dc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 13 06:15:16 2020 +0100

    ISIS-2062: factors out XmlService from XmlSnapshotService, reintroduces TransactionService#executeInTransaction(...)
---
 .../services/xactn/TransactionService.java         |  43 ++++----
 .../XmlService.java}                               |  55 +++--------
 .../examples/services/xml/package-info.java        |  24 +++++
 .../services/xmlsnapshot/XmlSnapshotService.java   |  73 +++-----------
 .../applib-svc/pages/TransactionService.adoc       |   4 +
 .../adoc/modules/applib-svc/pages/XmlService.adoc  |  29 ++++++
 .../applib-svc/pages/XmlSnapshotService.adoc       | 100 +++++++------------
 .../modules/applib-svc/partials/module-nav.adoc    |   1 +
 .../applib/services/xactn/TransactionService.java  |  43 ++++----
 .../isis/applib/services/xml/XmlService.java}      |  55 +++--------
 .../isis/applib/services/xml/package-info.java     |  24 +++++
 .../services/xmlsnapshot/XmlSnapshotService.java   |  73 +++-----------
 .../xmlsnapshot/XmlSnapshotServiceAbstract.java    | 110 +--------------------
 .../core/metamodel/util/snapshot/XmlSnapshot.java  |  33 -------
 .../IsisModuleCoreRuntimeServices.java             |   8 +-
 .../repository/RepositoryServiceDefault.java       |  10 ++
 .../routing/RoutingServiceDefault.java             |  10 ++
 .../scratchpad/ScratchpadDefault.java              |  12 +--
 .../xactn/TransactionServiceSpring.java            |  96 +++++++++---------
 .../runtimeservices/xml/XmlServiceDefault.java     | 104 +++++++++----------
 .../xmlsnapshot/XmlSnapshotServiceDefault.java     |  87 ++++++++++++++--
 .../xmlsnapshot/XmlSnapshotServiceAbstractTest.xml |   0
 .../XmlSnapshotServiceDefault_Test.java            |  31 +++---
 23 files changed, 430 insertions(+), 595 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java
index 578d883..fb5d805 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java
@@ -66,26 +66,30 @@ public interface TransactionService {
     // tag::refguide[]
     void nextTransaction();                                 // <.>
 
-//    // end::refguide[]
-//
+    // end::refguide[]
+    /**
+     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+     * boundary creates a new one.
+     *
+     * @param task
+     */
+    // tag::refguide[]
+    void executeWithinTransaction(Runnable task);           // <.>
+
+    // end::refguide[]
+    /**
+     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+     * boundary creates a new one.
+     *
+     * @param task
+     */
+    // tag::refguide[]
+    <T> T executeWithinTransaction(Supplier<T> task);       // <.>
+
+    // end::refguide[]
+
+//   the executeWithinNewTransaction at time of writing is incorrect (doesn't create a new xactn).
 //   not sure there's any need for these additional methods?
-//   in any case, the executeWithinNewTransaction at time of writing is incorrect (doesn't create a new xactn).
-//
-//    /**
-//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-//     * boundary creates a new one.
-//     *
-//     * @param task
-//     */
-//    void executeWithinTransaction(Runnable task);           // <.>
-//
-//    /**
-//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-//     * boundary creates a new one.
-//     *
-//     * @param task
-//     */
-//    <T> T executeWithinTransaction(Supplier<T> task);       // <.>
 //
 //    /**
 //     * Runs given {@code task} within its own (new) transactional boundary.
@@ -100,6 +104,5 @@ public interface TransactionService {
 //    <T> T executeWithinNewTransaction(Supplier<T> task);    // <.>
 
     // tag::refguide[]
-
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xml/XmlService.java
similarity index 51%
copy from api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
copy to api/applib/src/main/adoc/modules/applib-svc/examples/services/xml/XmlService.java
index 07c399d..7081689 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xml/XmlService.java
@@ -16,43 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.xmlsnapshot;
+package org.apache.isis.applib.services.xml;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService;
 
 /**
- * This service allows an XML document to be generated capturing the data of a root entity and specified related
- * entities.  This XML can be used for various purposes, such as mail merge/reporting, or adhoc auditing.
- *
- * <p>
- * The framework provides an implementation of this service (<tt>XmlSnapshotServiceDefault</tt>) which is automatically
- * registered and available for use; no further configuration is required.
- * </p>
+ * This service provides a number of utility services for interacting with XML {@link Document}s
  */
 // tag::refguide[]
-public interface XmlSnapshotService {
-
-    // end::refguide[]
-    // tag::refguide-1[]
-    interface Snapshot {
-        Document getXmlDocument();
-        Document getXsdDocument();
-
-        String getXmlDocumentAsString();
-        String getXsdDocumentAsString();
-    }
-    // end::refguide-1[]
-
-    // tag::refguide-2[]
-    interface Builder {
-        void includePath(final String path);
-        void includePathAndAnnotation(final String path, final String annotation);
-        XmlSnapshotService.Snapshot build();
-    }
-    // end::refguide-2[]
+public interface XmlService {
 
     // tag::refguide-3[]
     class Exception extends RuntimeException {
@@ -77,29 +52,25 @@ public interface XmlSnapshotService {
     }
     // end::refguide-3[]
 
-    // tag::refguide[]
-    XmlSnapshotService.Snapshot snapshotFor(                    // <.>
-                                    final Object domainObject);
-
-    XmlSnapshotService.Builder builderFor(                      // <.>
-                                    final Object domainObject);
 
     // end::refguide[]
     /**
-     * Convenience to convert xml string (eg as obtained by {@link Snapshot#getXmlDocumentAsString()} or
-     * {@link Snapshot#getXsdDocumentAsString()}) back into a {@link Document W3C Document}.
+     * Converts xml string into an {@link Document W3C Document}.
+     *
+     * @see #asString(Document)
      */
     // tag::refguide[]
     Document asDocument(String xmlStr);                         // <.>
 
     // end::refguide[]
+
     /**
-     * Convenience method to extract value of an XML element, based on its type.
+     * Serializes a {@link Document W3C Document} back into a string.
+     *
+     * @see #asDocument(String)
      */
     // tag::refguide[]
-    <T> T getChildElementValue(                                 // <.>
-            final Element el, final String tagname,
-            final Class<T> expectedCls);
+    public String asString(final Document doc);                 // <.>
 
     // end::refguide[]
     /**
@@ -107,7 +78,7 @@ public interface XmlSnapshotService {
      */
     // tag::refguide[]
     Element getChildElement(                                    // <.>
-            final Element el, final String tagname);
+                    final Element el, final String tagname);
 
     // end::refguide[]
     /**
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xml/package-info.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xml/package-info.java
new file mode 100644
index 0000000..3bc3341
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xml/package-info.java
@@ -0,0 +1,24 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+/**
+ * The {@link org.apache.isis.applib.services.xml.XmlService} provides utilities for working with
+ * {@link org.w3c.dom.Document w3c DOM Document}s.
+ */
+package org.apache.isis.applib.services.xml;
\ No newline at end of file
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
index 07c399d..a1d1388 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
@@ -21,8 +21,6 @@ package org.apache.isis.applib.services.xmlsnapshot;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import org.apache.isis.applib.annotation.Programmatic;
-
 /**
  * This service allows an XML document to be generated capturing the data of a root entity and specified related
  * entities.  This XML can be used for various purposes, such as mail merge/reporting, or adhoc auditing.
@@ -38,61 +36,30 @@ public interface XmlSnapshotService {
     // end::refguide[]
     // tag::refguide-1[]
     interface Snapshot {
-        Document getXmlDocument();
-        Document getXsdDocument();
-
-        String getXmlDocumentAsString();
-        String getXsdDocumentAsString();
-    }
-    // end::refguide-1[]
-
-    // tag::refguide-2[]
-    interface Builder {
-        void includePath(final String path);
-        void includePathAndAnnotation(final String path, final String annotation);
-        XmlSnapshotService.Snapshot build();
-    }
-    // end::refguide-2[]
-
-    // tag::refguide-3[]
-    class Exception extends RuntimeException {
-
-        private static final long serialVersionUID = 1L;
-
-        public Exception() {
-            super();
-        }
-
-        public Exception(String message, Throwable cause) {
-            super(message, cause);
-        }
-
-        public Exception(String message) {
-            super(message);
-        }
-
-        public Exception(Throwable cause) {
-            super(cause);
+        Document getXmlDocument();          // <.>
+        Document getXsdDocument();          // <.>
+        // end::refguide-1[]
+        // tag::refguide-2[]
+        interface Builder {
+            void includePath(final String path);                    // <.>
+            void includePathAndAnnotation(                          // <.>
+                final String path, final String annotation);
+            XmlSnapshotService.Snapshot build();                    // <.>
         }
+        // end::refguide-2[]
+        // tag::refguide-1[]
     }
-    // end::refguide-3[]
+    // end::refguide-1[]
 
     // tag::refguide[]
     XmlSnapshotService.Snapshot snapshotFor(                    // <.>
                                     final Object domainObject);
 
-    XmlSnapshotService.Builder builderFor(                      // <.>
+    XmlSnapshotService.Snapshot.Builder builderFor(             // <.>
                                     final Object domainObject);
 
     // end::refguide[]
-    /**
-     * Convenience to convert xml string (eg as obtained by {@link Snapshot#getXmlDocumentAsString()} or
-     * {@link Snapshot#getXsdDocumentAsString()}) back into a {@link Document W3C Document}.
-     */
-    // tag::refguide[]
-    Document asDocument(String xmlStr);                         // <.>
 
-    // end::refguide[]
     /**
      * Convenience method to extract value of an XML element, based on its type.
      */
@@ -101,20 +68,6 @@ public interface XmlSnapshotService {
             final Element el, final String tagname,
             final Class<T> expectedCls);
 
-    // end::refguide[]
-    /**
-     * Convenience method to walk XML document.
-     */
-    // tag::refguide[]
-    Element getChildElement(                                    // <.>
-            final Element el, final String tagname);
-
-    // end::refguide[]
-    /**
-     * Convenience method to obtain value of child text node.
-     */
-    // tag::refguide[]
-    String getChildTextValue(final Element el);                 // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
index 362c243..93f8e2b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
@@ -46,6 +46,10 @@ Performing a flush will cause any pending calls to be performed immediately.
 <.> The framework automatically start a transaction before each user interaction (action invocation or property edit), and will commit that transaction after the interaction has completed.
 Under certain circumstances (eg actions used to perform data migration, say, or for large fixture scripts), it can be helpful to programmatically complete one transaction and start another one.
 
+<.> Primarily for internal use, will execute the task within the current transaction if there is one, but if there is none then begin and then commit a new transaction for the task.
+
+<.> Ditto, but retrieving the task to be performed from the supplier.
+
 
 == Implementation
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService.adoc
new file mode 100644
index 0000000..536d3f8
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService.adoc
@@ -0,0 +1,29 @@
+= `XmlService`
+
+: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 [...]
+:page-partial:
+
+
+The `XmlService` provides general purpose utilities for working with w3c DOM ``Document``s.
+It is used by the framework's default implementation of xref:refguide:applib-svc:XmlSnapshotService.adoc[`XmlSnapshotService`].
+
+
+== API
+
+The API of `XmlService` is:
+
+[source]
+----
+include::refguide:applib-svc:example$services/xmlsnapshot/XmlService.java[tags="refguide"]
+----
+<1> is a convenience method to convert xml string back into a W3C Document
+<2> is a convenience method to extract the value of an XML element, based on its type.
+<3> is a convenience method to walk XML document.
+<4> is a convenience method to obtain value of child text node.
+
+
+
+== Implementation
+
+The framework provides a default implementation of this service, `o.a.i.core.runtimeservices.xml.XmlServiceDefault`.
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
index 4cfe129..e7aa076 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
@@ -3,20 +3,16 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-
 
 The `XmlSnapshotService` provides the capability to generate XML snapshots (and if required corresponding XSD schemas) based on graphs of domain objects.
 
-Typical use cases include creating mementos for business-focused auditing, such that a report could be generated as to which end-user performed a business action (perhaps for legal reasons).  For one system that we know of, a digest of this snapshot of data is signed with the public encryption key so as to enforce non-repudiation.
+Typical use cases include creating mementos for business-focused auditing, such that a report could be generated as to which end-user performed a business action (perhaps for legal reasons).
+For one system that we know of, a digest of this snapshot of data is signed with the public encryption key so as to enforce non-repudiation.
 
 Another use case is to grab raw data such that it could be merged into a report template or communication.
 
 The service offers a basic API to create a snapshot of a single object, and an more flexible API that allows the size of the graph to be customized.
 
-
-
-
 == Standard API
 
 The (basic) API of `XmlSnapshotService` is:
@@ -26,17 +22,36 @@ The (basic) API of `XmlSnapshotService` is:
 include::refguide:applib-svc:example$services/xmlsnapshot/XmlSnapshotService.java[tags="refguide"]
 ----
 
+<.> exports the state of a domain object into a `Snapshot` (which can then be converted into XML, for example).
+<.> creates a `Snapshot.Builder` that allows the contents of the snapshot to include other related state.
+<.> Convenience method to extract the value of an XML element, based on its type attribute (`isis:xxx`).
+
+where `Snapshot` is:
+
+[source]
+----
+include::refguide:applib-svc:example$services/xmlsnapshot/XmlSnapshotService.java[tags="refguide-1",indent=0]
+----
+
+<.> Converts the snapshotted state into an XML document.
+<.> Creates a corresponding XSD that describes the structure of the exported XML.
+
+and `Snapshot.Builder` is:
+
 [source]
 ----
-include::refguide:applib-svc:example$services/xmlsnapshot/XmlSnapshotService.java[tags="refguide-1"]
+include::refguide:applib-svc:example$services/xmlsnapshot/XmlSnapshotService.java[tags="refguide-2",indent=0]
 ----
 
+<.> Enrich the snapshot to include the state of these referenced objects <.> Ditto, but add an XML `annotation` attribute to the included element(s).
+<.> Builds the `Snapshot`.
+
+The general xref:#usage[usage] and the usage of xref:#builder-api[builder] in particular is described below.
 
 == Implementation
 
 The framework provides a default implementation of this service, `o.a.i.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault`.
 
-
 == Usage
 
 The most straight-forward usage of this service is simply:
@@ -49,7 +64,6 @@ Element customerAsXml = snapshot.getXmlElement();
 
 This will return an XML (document) element that contains the names and values of each of the customer's value properties, along with the titles of reference properties, and also the number of items in collections.
 
-
 As well as obtaining the XML snapshot, it is also possible to obtain an XSD schema that the XML snapshot conforms to.
 
 [source]
@@ -59,16 +73,15 @@ Element customerAsXml = snapshot.getXmlElement();
 Element customerXsd = snapshot.getXsdElement();
 ----
 
-This can be useful for some tools.  For example, link:http://www.altova.com/stylevision.html[Altova Stylevision] can use the XML and XSD to transform into reports.  Please note that this link does not imply endorsement (nor even a recommendation that this is a good design).
-
-
-
-
+This can be useful for some tools.
+For example, link:http://www.altova.com/stylevision.html[Altova Stylevision] can use the XML and XSD to transform into reports.
+Please note that this link does not imply endorsement (nor even a recommendation that this is a good design).
 
 == Builder API
 
-The contents of the snapshot can be adjusted by including "paths" to other references or collections. To do this, the
-builder is used.  The API for this is:
+The contents of the snapshot can be adjusted by including "paths" to other references or collections.
+To do this, the builder is used.
+The API for this is:
 
 [source,java]
 ----
@@ -91,15 +104,15 @@ We start by obtaining a builder:
 XmlSnapshot.Builder builder = xmlsnapshotService.builderFor(customer);
 ----
 
-Suppose now that we want the snapshot to also include details of the customer's address, where `address` in this case is a reference property to an instance of the `Address` class. We can "walk-the-graph" by including these references within the builder.
+Suppose now that we want the snapshot to also include details of the customer's address, where `address` in this case is a reference property to an instance of the `Address` class.
+We can "walk-the-graph" by including these references within the builder.
 
 [source,java]
 ----
 builder.includePath("address");
 ----
 
-We could then go further and include details of every order in the customer's `orders` collection, and details of every
-product of every order:
+We could then go further and include details of every order in the customer's `orders` collection, and details of every product of every order:
 
 [source,java]
 ----
@@ -125,22 +138,16 @@ Element customerAsXml = xmlsnapshotService.builderFor(customer)
                         .getXmlElement();
 ----
 
-
 As you might imagine, the resultant XML document can get quite large very quickly with only a few "include"s.
 
-
 [NOTE]
 ====
 If an XSD schema is beng generated (using `snapshot.getXsdElement()` then note that for the XSD to be correct, the object being snapshotted must have non-null values for the paths that are `include()`'d. If this isn't done then the XSD will not be correct reflect for another snapshotted object that does have non-null values.
 ====
 
-
-
-
 == Automatic inclusions
 
-If the domain object being snapshotted implements the `SnapshottableWithInclusions` interace, then this moves the
-responsibility for determining what is included within the snapshot from the caller to the snapshottable object itself:
+If the domain object being snapshotted implements the `SnapshottableWithInclusions` interace, then this moves the responsibility for determining what is included within the snapshot from the caller to the snapshottable object itself:
 
 [source]
 ----
@@ -151,56 +158,25 @@ public interface SnapshottableWithInclusions extends Snapshottable {
 
 If necessary, both approaches can be combined.
 
-
 [TIP]
 ====
-As an alternative to using `include()`, you might consider building a view model domain object which can reference only the relevant information required for the snapshot. For example, if only the 5 most recent Orders for a Customer were required, a `CustomerAndRecentOrders` view model could hold a collection of just those 5 ``Order``s. Typically such view models would implement `SnapshottableWithInclusions`.
+As an alternative to using `include()`, you might consider building a view model domain object which can reference only the relevant information required for the snapshot.
+For example, if only the 5 most recent Orders for a Customer were required, a `CustomerAndRecentOrders` view model could hold a collection of just those 5 ``Order``s.
+Typically such view models would implement `SnapshottableWithInclusions`.
 
 One reason for doing this is to provide a stable API between the domain model and whatever it is that might be consuming the XML. With a view model you can refactor the domain entities but still preserve a view model such that the XML is the same.
 ====
 
-
-
-== Convenience API
-
-The `XmlSnapshotService` also provides some API for simply manipulating XML:
-
-[source]
-----
-public interface XmlSnapshotService {
-    ...
-    @Programmatic
-    public Document asDocument(String xmlStr);                          // <1>
-    @Programmatic
-    public <T> T getChildElementValue(                                  // <2>
-                    Element el, String tagname, Class<T> expectedCls);
-    @Programmatic
-    public Element getChildElement(                                     // <3>
-                    Element el, String tagname);
-    @Programmatic
-    public String getChildTextValue(Element el);                        // <4>
-}
-----
-<1> is a convenience method to convert xml string back into a W3C Document
-<2> is a convenience method to extract the value of an XML element, based on its type.
-<3> is a convenience method to walk XML document.
-<4> is a convenience method to obtain value of child text node.
-
-
-
-
-
 == Implementation
 
 The core framework provides an implementation of this service (`o.a.i.core.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault`).
 
-
 == Related Services
 
 The xref:refguide:applib-svc:BookmarkService.adoc[`BookmarkService`] provides a mechanism for obtaining a string representations of a single domain object.
 
-The xref:refguide:applib-svc:JaxbService.adoc[`JaxbService`] is a simple wrapper around
-standard JAXB functionality for generating both XMLs and XSDs from JAXB-annotated classes.  Note that there is built-in support for JAXB classes (ie annotated with
+The xref:refguide:applib-svc:JaxbService.adoc[`JaxbService`] is a simple wrapper around standard JAXB functionality for generating both XMLs and XSDs from JAXB-annotated classes.
+Note that there is built-in support for JAXB classes (ie annotated with
 xref:refguide:applib-ant:XmlRootElement.adoc[`@XmlRootElement`]) to be used as view models.
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
index 21e7c90..54691db 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/partials/module-nav.adoc
@@ -64,5 +64,6 @@
 ** xref:refguide:applib-svc:UserRegistrationService.adoc[UserRegistrationService]
 ** xref:refguide:applib-svc:UserService.adoc[UserService]
 ** xref:refguide:applib-svc:WrapperFactory.adoc[WrapperFactory]
+** xref:refguide:applib-svc:XmlService.adoc[XmlService]
 ** xref:refguide:applib-svc:XmlSnapshotService.adoc[XmlSnapshotService]
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
index 578d883..fb5d805 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
@@ -66,26 +66,30 @@ public interface TransactionService {
     // tag::refguide[]
     void nextTransaction();                                 // <.>
 
-//    // end::refguide[]
-//
+    // end::refguide[]
+    /**
+     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+     * boundary creates a new one.
+     *
+     * @param task
+     */
+    // tag::refguide[]
+    void executeWithinTransaction(Runnable task);           // <.>
+
+    // end::refguide[]
+    /**
+     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+     * boundary creates a new one.
+     *
+     * @param task
+     */
+    // tag::refguide[]
+    <T> T executeWithinTransaction(Supplier<T> task);       // <.>
+
+    // end::refguide[]
+
+//   the executeWithinNewTransaction at time of writing is incorrect (doesn't create a new xactn).
 //   not sure there's any need for these additional methods?
-//   in any case, the executeWithinNewTransaction at time of writing is incorrect (doesn't create a new xactn).
-//
-//    /**
-//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-//     * boundary creates a new one.
-//     *
-//     * @param task
-//     */
-//    void executeWithinTransaction(Runnable task);           // <.>
-//
-//    /**
-//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-//     * boundary creates a new one.
-//     *
-//     * @param task
-//     */
-//    <T> T executeWithinTransaction(Supplier<T> task);       // <.>
 //
 //    /**
 //     * Runs given {@code task} within its own (new) transactional boundary.
@@ -100,6 +104,5 @@ public interface TransactionService {
 //    <T> T executeWithinNewTransaction(Supplier<T> task);    // <.>
 
     // tag::refguide[]
-
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java b/api/applib/src/main/java/org/apache/isis/applib/services/xml/XmlService.java
similarity index 51%
copy from api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
copy to api/applib/src/main/java/org/apache/isis/applib/services/xml/XmlService.java
index 07c399d..7081689 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xml/XmlService.java
@@ -16,43 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.xmlsnapshot;
+package org.apache.isis.applib.services.xml;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService;
 
 /**
- * This service allows an XML document to be generated capturing the data of a root entity and specified related
- * entities.  This XML can be used for various purposes, such as mail merge/reporting, or adhoc auditing.
- *
- * <p>
- * The framework provides an implementation of this service (<tt>XmlSnapshotServiceDefault</tt>) which is automatically
- * registered and available for use; no further configuration is required.
- * </p>
+ * This service provides a number of utility services for interacting with XML {@link Document}s
  */
 // tag::refguide[]
-public interface XmlSnapshotService {
-
-    // end::refguide[]
-    // tag::refguide-1[]
-    interface Snapshot {
-        Document getXmlDocument();
-        Document getXsdDocument();
-
-        String getXmlDocumentAsString();
-        String getXsdDocumentAsString();
-    }
-    // end::refguide-1[]
-
-    // tag::refguide-2[]
-    interface Builder {
-        void includePath(final String path);
-        void includePathAndAnnotation(final String path, final String annotation);
-        XmlSnapshotService.Snapshot build();
-    }
-    // end::refguide-2[]
+public interface XmlService {
 
     // tag::refguide-3[]
     class Exception extends RuntimeException {
@@ -77,29 +52,25 @@ public interface XmlSnapshotService {
     }
     // end::refguide-3[]
 
-    // tag::refguide[]
-    XmlSnapshotService.Snapshot snapshotFor(                    // <.>
-                                    final Object domainObject);
-
-    XmlSnapshotService.Builder builderFor(                      // <.>
-                                    final Object domainObject);
 
     // end::refguide[]
     /**
-     * Convenience to convert xml string (eg as obtained by {@link Snapshot#getXmlDocumentAsString()} or
-     * {@link Snapshot#getXsdDocumentAsString()}) back into a {@link Document W3C Document}.
+     * Converts xml string into an {@link Document W3C Document}.
+     *
+     * @see #asString(Document)
      */
     // tag::refguide[]
     Document asDocument(String xmlStr);                         // <.>
 
     // end::refguide[]
+
     /**
-     * Convenience method to extract value of an XML element, based on its type.
+     * Serializes a {@link Document W3C Document} back into a string.
+     *
+     * @see #asDocument(String)
      */
     // tag::refguide[]
-    <T> T getChildElementValue(                                 // <.>
-            final Element el, final String tagname,
-            final Class<T> expectedCls);
+    public String asString(final Document doc);                 // <.>
 
     // end::refguide[]
     /**
@@ -107,7 +78,7 @@ public interface XmlSnapshotService {
      */
     // tag::refguide[]
     Element getChildElement(                                    // <.>
-            final Element el, final String tagname);
+                    final Element el, final String tagname);
 
     // end::refguide[]
     /**
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xml/package-info.java b/api/applib/src/main/java/org/apache/isis/applib/services/xml/package-info.java
new file mode 100644
index 0000000..3bc3341
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xml/package-info.java
@@ -0,0 +1,24 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+/**
+ * The {@link org.apache.isis.applib.services.xml.XmlService} provides utilities for working with
+ * {@link org.w3c.dom.Document w3c DOM Document}s.
+ */
+package org.apache.isis.applib.services.xml;
\ No newline at end of file
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
index 07c399d..a1d1388 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
@@ -21,8 +21,6 @@ package org.apache.isis.applib.services.xmlsnapshot;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import org.apache.isis.applib.annotation.Programmatic;
-
 /**
  * This service allows an XML document to be generated capturing the data of a root entity and specified related
  * entities.  This XML can be used for various purposes, such as mail merge/reporting, or adhoc auditing.
@@ -38,61 +36,30 @@ public interface XmlSnapshotService {
     // end::refguide[]
     // tag::refguide-1[]
     interface Snapshot {
-        Document getXmlDocument();
-        Document getXsdDocument();
-
-        String getXmlDocumentAsString();
-        String getXsdDocumentAsString();
-    }
-    // end::refguide-1[]
-
-    // tag::refguide-2[]
-    interface Builder {
-        void includePath(final String path);
-        void includePathAndAnnotation(final String path, final String annotation);
-        XmlSnapshotService.Snapshot build();
-    }
-    // end::refguide-2[]
-
-    // tag::refguide-3[]
-    class Exception extends RuntimeException {
-
-        private static final long serialVersionUID = 1L;
-
-        public Exception() {
-            super();
-        }
-
-        public Exception(String message, Throwable cause) {
-            super(message, cause);
-        }
-
-        public Exception(String message) {
-            super(message);
-        }
-
-        public Exception(Throwable cause) {
-            super(cause);
+        Document getXmlDocument();          // <.>
+        Document getXsdDocument();          // <.>
+        // end::refguide-1[]
+        // tag::refguide-2[]
+        interface Builder {
+            void includePath(final String path);                    // <.>
+            void includePathAndAnnotation(                          // <.>
+                final String path, final String annotation);
+            XmlSnapshotService.Snapshot build();                    // <.>
         }
+        // end::refguide-2[]
+        // tag::refguide-1[]
     }
-    // end::refguide-3[]
+    // end::refguide-1[]
 
     // tag::refguide[]
     XmlSnapshotService.Snapshot snapshotFor(                    // <.>
                                     final Object domainObject);
 
-    XmlSnapshotService.Builder builderFor(                      // <.>
+    XmlSnapshotService.Snapshot.Builder builderFor(             // <.>
                                     final Object domainObject);
 
     // end::refguide[]
-    /**
-     * Convenience to convert xml string (eg as obtained by {@link Snapshot#getXmlDocumentAsString()} or
-     * {@link Snapshot#getXsdDocumentAsString()}) back into a {@link Document W3C Document}.
-     */
-    // tag::refguide[]
-    Document asDocument(String xmlStr);                         // <.>
 
-    // end::refguide[]
     /**
      * Convenience method to extract value of an XML element, based on its type.
      */
@@ -101,20 +68,6 @@ public interface XmlSnapshotService {
             final Element el, final String tagname,
             final Class<T> expectedCls);
 
-    // end::refguide[]
-    /**
-     * Convenience method to walk XML document.
-     */
-    // tag::refguide[]
-    Element getChildElement(                                    // <.>
-            final Element el, final String tagname);
-
-    // end::refguide[]
-    /**
-     * Convenience method to obtain value of child text node.
-     */
-    // tag::refguide[]
-    String getChildTextValue(final Element el);                 // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
index 4374127..05d3b61 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
@@ -18,127 +18,21 @@
  */
 package org.apache.isis.applib.services.xmlsnapshot;
 
-import java.io.StringReader;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.Locale;
 
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.stream.StreamSource;
+import javax.inject.Inject;
 
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
-import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
-import org.apache.isis.core.commons.internal.codec._DocumentFactories;
+import org.apache.isis.applib.services.xml.XmlService;
 
 public abstract class XmlSnapshotServiceAbstract implements XmlSnapshotService {
 
-    @Override
-    public Document asDocument(String xmlStr) {
-        try {
-            final StringReader reader = new StringReader(xmlStr);
-            final StreamSource streamSource = new StreamSource(reader);
-            final DOMResult result = new DOMResult();
-            
-            final Transformer transformer = _DocumentFactories.transformer();
-            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
-            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
-            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-            transformer.transform(streamSource, result);
-
-            final Node node = result.getNode();
-            return (Document) node;
-        } catch (TransformerException e) {
-            throw new XmlSnapshotService.Exception(e);
-        }
-    }
-
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T> T getChildElementValue(final Element el, final String tagname, final Class<T> expectedCls) {
-        final Element chldEl = getChildElement(el, tagname);
-        final String dataType = chldEl.getAttribute("isis:datatype");
-        if(dataType == null) {
-            throw new IllegalArgumentException("unable to locate " + tagname + "/@datatype attribute");
-        }
-        if("isis:String".equals(dataType)) {
-            return (T)getChildTextValue(chldEl);
-        }
-        if("isis:LocalDate".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            final DateTimeFormatter parser = DateTimeFormatter
-                    .ofPattern("dd-MMM-yyyy", Locale.ENGLISH);
-            return (T)parser.parse(str, LocalDate::from);
-        }
-        if("isis:Byte".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Byte.valueOf(str);
-        }
-        if("isis:Short".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Short.valueOf(str);
-        }
-        if("isis:Integer".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Integer.valueOf(str);
-        }
-        if("isis:Long".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Long.valueOf(str);
-        }
-        if("isis:Float".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Float.valueOf(str);
-        }
-        if("isis:Double".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Double.valueOf(str);
-        }
-        if("isis:BigDecimal".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T) new BigDecimal(str);
-        }
-        if("isis:BigInteger".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T) new BigInteger(str);
-        }
-        if("isis:Boolean".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T) Boolean.valueOf(str);
-        }
-        throw new IllegalArgumentException(
-                "Datatype of '" + dataType + "' for element '" + tagname + "' not recognized");
-    }
-
-    @Override
-    public Element getChildElement(final Element el, final String tagname) {
-        NodeList elementsByTagName = el.getElementsByTagName(tagname);
-        final int length = elementsByTagName.getLength();
-        if(length != 1 || !(elementsByTagName.item(0) instanceof Element)) {
-            throw new IllegalArgumentException("unable to locate " + tagname + " element");
-        }
-        final Element item = (Element) elementsByTagName.item(0);
-        return item;
-    }
-
-    @Override
-    public String getChildTextValue(final Element el) {
-        final NodeList childNodes = el.getChildNodes();
-        if(childNodes.getLength() !=1 || !(childNodes.item(0) instanceof Text)) {
-            throw new IllegalArgumentException("unable to locate app:reference/text() node");
-        }
-        final Text referenceText = (Text) childNodes.item(0);
-        return referenceText.getData();
-    }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
index cb69db7..7651f49 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/snapshot/XmlSnapshot.java
@@ -875,38 +875,5 @@ public class XmlSnapshot implements Snapshot {
         this.xmlElement = xmlElement;
     }
 
-    @Override
-    public String getXmlDocumentAsString() {
-        final Document doc = getXmlDocument();
-        return asString(doc);
-    }
-
-    @Override
-    public String getXsdDocumentAsString() {
-        final Document doc = getXsdDocument();
-        return asString(doc);
-    }
-
-    private static String asString(final Document doc) {
-        try {
-            final DOMSource domSource = new DOMSource(doc);
-            final StringWriter writer = new StringWriter();
-            final StreamResult result = new StreamResult(writer);
-            
-            final Transformer transformer = _DocumentFactories.transformer();
-            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
-            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
-            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-            transformer.transform(domSource, result);
-
-            return writer.toString();
-        } catch (TransformerConfigurationException e) {
-            throw new IsisException(e);
-        } catch (TransformerException e) {
-            throw new IsisException(e);
-        }
-    }
 
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
index 0ee6346..85bea18 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
@@ -57,6 +57,7 @@ import org.apache.isis.core.runtimeservices.userprof.UserProfileServiceDefault;
 import org.apache.isis.core.runtimeservices.userreg.EmailNotificationServiceDefault;
 import org.apache.isis.core.runtimeservices.wrapper.WrapperFactoryDefault;
 import org.apache.isis.core.runtimeservices.xactn.TransactionServiceSpring;
+import org.apache.isis.core.runtimeservices.xml.XmlServiceDefault;
 import org.apache.isis.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault;
 
 @Configuration
@@ -90,11 +91,12 @@ import org.apache.isis.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefaul
         TransactionServiceSpring.class,
         UrlEncodingServiceWithCompression.class,
         UserProfileServiceDefault.class,
-        WrapperFactoryDefault.class,
-        XmlSnapshotServiceDefault.class,
         UserServiceDefault.class,
         UserServiceDefault.SudoServiceSpi.class,
-        
+        WrapperFactoryDefault.class,
+        XmlServiceDefault.class,
+        XmlSnapshotServiceDefault.class,
+
         // @Controller
         RoutingServiceDefault.class,
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
index 1828282..7c1b5c0 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
@@ -30,11 +30,16 @@ import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Repository;
 
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.PersistFailedException;
 import org.apache.isis.applib.RepositoryException;
+import org.apache.isis.applib.annotation.IsisSessionScope;
+import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.query.QueryFindAllInstances;
 import org.apache.isis.applib.services.factory.FactoryService;
@@ -50,9 +55,14 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSession;
 
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 @Repository
 @Named("isisRuntimeServices.RepositoryServiceDefault")
+@Order(OrderPrecedence.EARLY)
+@Primary
+@Qualifier("Default")
+@Log4j2
 public class RepositoryServiceDefault implements RepositoryService {
 
     @Inject private FactoryService factoryService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/routing/RoutingServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/routing/RoutingServiceDefault.java
index c4712d9..9e1783f 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/routing/RoutingServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/routing/RoutingServiceDefault.java
@@ -21,13 +21,23 @@ package org.apache.isis.core.runtimeservices.routing;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Controller;
 
+import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.routing.RoutingService;
 import org.apache.isis.applib.services.homepage.HomePageResolverService;
 
+import lombok.extern.log4j.Log4j2;
+
 @Controller
 @Named("isisRuntimeServices.RoutingServiceDefault")
+@Order(OrderPrecedence.EARLY)
+@Primary
+@Qualifier("Default")
+@Log4j2
 public class RoutingServiceDefault implements RoutingService {
     
     private final HomePageResolverService homePageResolverService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java
index 4c4b6b2..200c2c2 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java
@@ -44,50 +44,40 @@ import lombok.extern.log4j.Log4j2;
  * {@link org.apache.isis.applib.annotation.DomainService}.  This means that it is automatically registered and
  * available for use; no further configuration is required.
  */
-// tag::refguide[]
 @Service
+@Named("isisRuntimeServices.Scratchpad")
 @Order(OrderPrecedence.EARLY)
 @Primary
-@Named("isisApplib.Scratchpad")
 @Qualifier("Default")
 @IsisSessionScope
 @Log4j2
 public class ScratchpadDefault implements Scratchpad {
 
-    // end::refguide[]
     /**
      * Provides a mechanism for each object being acted upon to pass
      * data to the next object.
      */
-    // tag::refguide[]
     private final Map<Object, Object> userData = _Maps.newHashMap();
 
-    // end::refguide[]
     /**
      * Obtain user-data, as set by a previous object being acted upon.
      */
-    // tag::refguide[]
     public Object get(Object key) {
         return userData.get(key);
     }
 
-    // end::refguide[]
     /**
      * Set user-data, for the use of a subsequent object being acted upon.
      */
-    // tag::refguide[]
     public void put(Object key, Object value) {
         userData.put(key, value);
     }
 
-    // end::refguide[]
     /**
      * Clear any user data.
      */
-    // tag::refguide[]
     public void clear() {
         userData.clear();
     }
 
 }
-// end::refguide[]
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java
index 6d554fd..4d389d1 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java
@@ -121,56 +121,52 @@ public class TransactionServiceSpring implements TransactionService {
         platformTransactionManager.getTransaction(transactionTemplate);
     }
 
-//    @Override
-//    public void executeWithinNewTransaction(Runnable task) {
-//        transactionTemplate.execute(new TransactionCallbackWithoutResult() {
-//            // the code in this method executes in a transactional context
-//            @Override
-//            protected void doInTransactionWithoutResult(TransactionStatus status) {
-//                task.run();
-//            }
-//        });
-//    }
-//
-//    @Override
-//    public <T> T executeWithinNewTransaction(Supplier<T> task) {
-//
-//        return transactionTemplate.execute(new TransactionCallback<T>() {
-//            // the code in this method executes in a transactional context
-//            @Override
-//            public T doInTransaction(TransactionStatus status) {
-//                return task.get();
-//            }
-//        });
-//    }
-
-//    @Override
-//    public void executeWithinTransaction(Runnable task) {
-//
-//        val txState = currentTransactionState();
-//        if(txState != TransactionState.NONE) {
-//            task.run();
-//            flushTransaction();
-//            return;
-//        }
-//
-//        executeWithinNewTransaction(task);
-//
-//    }
-//
-//    @Override
-//    public <T> T executeWithinTransaction(Supplier<T> task) {
-//
-//        val txState = currentTransactionState();
-//        if(txState != TransactionState.NONE) {
-//            val result = task.get();
-//            flushTransaction();
-//            return result;
-//        }
-//
-//        return executeWithinNewTransaction(task);
-//
-//    }
+    private void executeWithinNewTransaction(Runnable task) {
+        transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+            // the code in this method executes in a transactional context
+            @Override
+            protected void doInTransactionWithoutResult(TransactionStatus status) {
+                task.run();
+            }
+        });
+    }
+
+    private <T> T executeWithinNewTransaction(Supplier<T> task) {
+
+        return transactionTemplate.execute(new TransactionCallback<T>() {
+            // the code in this method executes in a transactional context
+            @Override
+            public T doInTransaction(TransactionStatus status) {
+                return task.get();
+            }
+        });
+    }
+
+    @Override
+    public void executeWithinTransaction(Runnable task) {
+
+        val txState = currentTransactionState();
+        if(txState != TransactionState.NONE) {
+            task.run();
+            flushTransaction();
+            return;
+        }
+
+        executeWithinNewTransaction(task);
+    }
+
+    @Override
+    public <T> T executeWithinTransaction(Supplier<T> task) {
+
+        val txState = currentTransactionState();
+        if(txState != TransactionState.NONE) {
+            val result = task.get();
+            flushTransaction();
+            return result;
+        }
+
+        return executeWithinNewTransaction(task);
+    }
 
     // -- HELPER
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotServiceAbstract.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xml/XmlServiceDefault.java
similarity index 55%
rename from api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
rename to core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xml/XmlServiceDefault.java
index 4374127..7acd5e7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotServiceAbstract.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xml/XmlServiceDefault.java
@@ -16,30 +16,52 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.xmlsnapshot;
+package org.apache.isis.core.runtimeservices.xml;
 
 import java.io.StringReader;
+import java.io.StringWriter;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.Locale;
 
+import javax.inject.Named;
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
+import org.apache.isis.applib.annotation.IsisSessionScope;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.services.xml.XmlService;
+import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService;
+import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.internal.codec._DocumentFactories;
 
-public abstract class XmlSnapshotServiceAbstract implements XmlSnapshotService {
+import lombok.extern.log4j.Log4j2;
+
+@Service
+@Named("isisRuntimeServices.XmlService")
+@Order(OrderPrecedence.EARLY)
+@Primary
+@Qualifier("Default")
+@Log4j2
+public class XmlServiceDefault implements XmlService {
 
     @Override
     public Document asDocument(String xmlStr) {
@@ -47,7 +69,7 @@ public abstract class XmlSnapshotServiceAbstract implements XmlSnapshotService {
             final StringReader reader = new StringReader(xmlStr);
             final StreamSource streamSource = new StreamSource(reader);
             final DOMResult result = new DOMResult();
-            
+
             final Transformer transformer = _DocumentFactories.transformer();
             transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
             transformer.setOutputProperty(OutputKeys.METHOD, "xml");
@@ -59,65 +81,31 @@ public abstract class XmlSnapshotServiceAbstract implements XmlSnapshotService {
             final Node node = result.getNode();
             return (Document) node;
         } catch (TransformerException e) {
-            throw new XmlSnapshotService.Exception(e);
+            throw new Exception(e);
         }
     }
 
     @Override
-    @SuppressWarnings("unchecked")
-    public <T> T getChildElementValue(final Element el, final String tagname, final Class<T> expectedCls) {
-        final Element chldEl = getChildElement(el, tagname);
-        final String dataType = chldEl.getAttribute("isis:datatype");
-        if(dataType == null) {
-            throw new IllegalArgumentException("unable to locate " + tagname + "/@datatype attribute");
-        }
-        if("isis:String".equals(dataType)) {
-            return (T)getChildTextValue(chldEl);
-        }
-        if("isis:LocalDate".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            final DateTimeFormatter parser = DateTimeFormatter
-                    .ofPattern("dd-MMM-yyyy", Locale.ENGLISH);
-            return (T)parser.parse(str, LocalDate::from);
-        }
-        if("isis:Byte".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Byte.valueOf(str);
-        }
-        if("isis:Short".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Short.valueOf(str);
-        }
-        if("isis:Integer".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Integer.valueOf(str);
-        }
-        if("isis:Long".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Long.valueOf(str);
-        }
-        if("isis:Float".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Float.valueOf(str);
-        }
-        if("isis:Double".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T)Double.valueOf(str);
-        }
-        if("isis:BigDecimal".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T) new BigDecimal(str);
-        }
-        if("isis:BigInteger".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T) new BigInteger(str);
-        }
-        if("isis:Boolean".equals(dataType)) {
-            final String str = getChildTextValue(chldEl);
-            return (T) Boolean.valueOf(str);
+    public String asString(final Document doc) {
+        try {
+            final DOMSource domSource = new DOMSource(doc);
+            final StringWriter writer = new StringWriter();
+            final StreamResult result = new StreamResult(writer);
+
+            final Transformer transformer = _DocumentFactories.transformer();
+            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
+            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+            transformer.transform(domSource, result);
+
+            return writer.toString();
+        } catch (TransformerConfigurationException e) {
+            throw new IsisException(e);
+        } catch (TransformerException e) {
+            throw new IsisException(e);
         }
-        throw new IllegalArgumentException(
-                "Datatype of '" + dataType + "' for element '" + tagname + "' not recognized");
     }
 
     @Override
@@ -135,7 +123,7 @@ public abstract class XmlSnapshotServiceAbstract implements XmlSnapshotService {
     public String getChildTextValue(final Element el) {
         final NodeList childNodes = el.getChildNodes();
         if(childNodes.getLength() !=1 || !(childNodes.item(0) instanceof Text)) {
-            throw new IllegalArgumentException("unable to locate app:reference/text() node");
+            throw new IllegalArgumentException("unable to locate child Text node");
         }
         final Text referenceText = (Text) childNodes.item(0);
         return referenceText.getData();
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.java
index 21cf984..17f26c5 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.java
@@ -18,6 +18,12 @@
  */
 package org.apache.isis.core.runtimeservices.xmlsnapshot;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
+
 import javax.inject.Inject;
 import javax.inject.Named;
 
@@ -25,8 +31,10 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
+import org.w3c.dom.Element;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.services.xml.XmlService;
 import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService;
 import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotServiceAbstract;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -47,11 +55,20 @@ import org.apache.isis.core.metamodel.util.snapshot.XmlSnapshot;
 @Order(OrderPrecedence.MIDPOINT)
 @Primary
 @Qualifier("Default")
-public class XmlSnapshotServiceDefault extends XmlSnapshotServiceAbstract {
+public class XmlSnapshotServiceDefault implements XmlSnapshotService {
     
-    @Inject private SpecificationLoader specificationLoader;
+    private final XmlService xmlService;
+    private final SpecificationLoader specificationLoader;
+
+    @Inject
+    public XmlSnapshotServiceDefault(
+            final XmlService xmlService,
+            final SpecificationLoader specificationLoader) {
+        this.xmlService = xmlService;
+        this.specificationLoader = specificationLoader;
+    }
 
-    static class XmlSnapshotServiceDefaultBuilder implements XmlSnapshotService.Builder{
+    static class XmlSnapshotServiceDefaultBuilder implements XmlSnapshotService.Snapshot.Builder{
 
         private final XmlSnapshotBuilder builder;
         public XmlSnapshotServiceDefaultBuilder(SpecificationLoader specificationLoader, Object domainObject) {
@@ -86,13 +103,71 @@ public class XmlSnapshotServiceDefault extends XmlSnapshotServiceAbstract {
 
     /**
      * Creates a builder that allows a custom snapshot - traversing additional associated
-     * properties or collections (using {@link Builder#includePath(String)} and
-     * {@link Builder#includePathAndAnnotation(String, String)}) - to be created.
+     * properties or collections (using {@link Snapshot.Builder#includePath(String)} and
+     * {@link Snapshot.Builder#includePathAndAnnotation(String, String)}) - to be created.
      */
     @Override
-    public Builder builderFor(final Object domainObject) {
+    public Snapshot.Builder builderFor(final Object domainObject) {
         return new XmlSnapshotServiceDefaultBuilder(specificationLoader, domainObject);
     }
 
 
+    @Override
+    @SuppressWarnings("unchecked")
+    public <T> T getChildElementValue(final Element el, final String tagname, final Class<T> expectedCls) {
+        final Element chldEl = xmlService.getChildElement(el, tagname);
+        final String dataType = chldEl.getAttribute("isis:datatype");
+        if(dataType == null) {
+            throw new IllegalArgumentException(String.format("unable to locate %s/@datatype attribute", tagname));
+        }
+        if("isis:String".equals(dataType)) {
+            return (T)xmlService.getChildTextValue(chldEl);
+        }
+        if("isis:LocalDate".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            final DateTimeFormatter parser = DateTimeFormatter
+                    .ofPattern("dd-MMM-yyyy", Locale.ENGLISH);
+            return (T)parser.parse(str, LocalDate::from);
+        }
+        if("isis:Byte".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T)Byte.valueOf(str);
+        }
+        if("isis:Short".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T)Short.valueOf(str);
+        }
+        if("isis:Integer".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T)Integer.valueOf(str);
+        }
+        if("isis:Long".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T)Long.valueOf(str);
+        }
+        if("isis:Float".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T)Float.valueOf(str);
+        }
+        if("isis:Double".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T)Double.valueOf(str);
+        }
+        if("isis:BigDecimal".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T) new BigDecimal(str);
+        }
+        if("isis:BigInteger".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T) new BigInteger(str);
+        }
+        if("isis:Boolean".equals(dataType)) {
+            final String str = xmlService.getChildTextValue(chldEl);
+            return (T) Boolean.valueOf(str);
+        }
+        throw new IllegalArgumentException(
+                String.format("Datatype of '%s' for element '%s' not recognized", dataType, tagname));
+    }
+
+
 }
diff --git a/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.xml b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceAbstractTest.xml
similarity index 100%
rename from api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.xml
rename to core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceAbstractTest.xml
diff --git a/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault_Test.java
similarity index 85%
rename from api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
rename to core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault_Test.java
index 2eab325..48f46c7 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault_Test.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.isis.applib.services.xmlsnapshot;
+package org.apache.isis.core.runtimeservices.xmlsnapshot;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -30,21 +30,25 @@ import org.w3c.dom.Element;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
+import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService;
+import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotServiceAbstract;
 import org.apache.isis.core.commons.internal.resources._Resources;
+import org.apache.isis.core.runtimeservices.xml.XmlServiceDefault;
 
-public class XmlSnapshotServiceAbstractTest {
+public class XmlSnapshotServiceDefault_Test {
 
-    private XmlSnapshotServiceAbstract xmlSnapshotService;
+    private XmlSnapshotServiceDefault xmlSnapshotService;
     private String xmlStr;
+    private XmlServiceDefault xmlService;
 
     @Before
     public void setUp() throws Exception {
         xmlStr = _Resources.loadAsString(
-                XmlSnapshotServiceAbstractTest.class, 
+                XmlSnapshotServiceDefault_Test.class,
                 "XmlSnapshotServiceAbstractTest.xml", 
                 Charset.forName("UTF-8"));
-        xmlSnapshotService = new XmlSnapshotServiceForUnitTesting();
-
+        xmlService = new XmlServiceDefault();
+        xmlSnapshotService = new XmlSnapshotServiceDefault(xmlService, null);
     }
 
 
@@ -59,7 +63,7 @@ public class XmlSnapshotServiceAbstractTest {
 
                 Locale.setDefault(eachLocal);
 
-                Document xmlDoc = xmlSnapshotService.asDocument(xmlStr);
+                Document xmlDoc = xmlService.asDocument(xmlStr);
                 Element rootEl = xmlDoc.getDocumentElement();
 
                 assertThat(
@@ -99,17 +103,4 @@ public class XmlSnapshotServiceAbstractTest {
     }
 
 
-    static class XmlSnapshotServiceForUnitTesting extends XmlSnapshotServiceAbstract {
-
-        @Override
-        public Snapshot snapshotFor(Object domainObject) {
-            throw new RuntimeException();
-        }
-
-        @Override
-        public Builder builderFor(Object domainObject) {
-            throw new RuntimeException();
-        }
-    }
-
 }


[isis] 17/41: ISIS-2062: improvements to preview.sh

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

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

commit accc68f19cec7003fd4d9d15da949765996f8b67
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 9 23:39:44 2020 +0000

    ISIS-2062: improvements to preview.sh
---
 preview.sh                | 14 +++++++++++---
 scripts/ci/_build-site.sh |  5 -----
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/preview.sh b/preview.sh
index db93942..53762a9 100644
--- a/preview.sh
+++ b/preview.sh
@@ -1,9 +1,10 @@
 #!/usr/bin/env bash
 
 export ANTORA_CACHE_DIR=.antora-cache-dir
+export ANTORA_TARGET_SITE=antora/target/site
 
 PLAYBOOK_FILE=antora/playbooks/site.yml
-while getopts 'ecf:aksxh' opt
+while getopts 'ecf:aksxyh' opt
 do
   case $opt in
     e) export SKIP_EXAMPLES=true ;;
@@ -13,6 +14,7 @@ do
     k) export SKIP_STALE_EXAMPLE_CHECK=true ;;
     s) export SKIP_SERVE=true ;;
     x) export SKIP_CLEAR_CACHE=true ;;
+    y) export SKIP_CLEAR_PREVIOUS=true ;;
     h) echo ""
        echo "preview.sh options:"
        echo "  -e skip examples"
@@ -21,6 +23,7 @@ do
        echo "  -a skip Antora generation"
        echo "  -s skip serving generated site"
        echo "  -x skip clear Antora cache"
+       echo "  -y skip clear any previous build site"
        echo "  -f antora/playbooks/site-xxx.yml"
        exit 1
        ;;
@@ -36,6 +39,12 @@ else
   rm -rf $ANTORA_CACHE_DIR
 fi
 
+if [[ "$SKIP_CLEAR_PREVIOUS" == "true" ]]; then
+  echo "skipping clearing any previous build site"
+else
+  rm -rf $ANTORA_TARGET_SITE
+fi
+
 if [ ! -f $PLAYBOOK_FILE ]; then
   echo "no such file $PLAYBOOK_FILE" >&2
   exit 1
@@ -50,11 +59,10 @@ sh build-site.sh $PLAYBOOK_FILE || exit 1
 
 if [[ "$SKIP_SERVE" == "true" ]]; then
   echo "skipping serving"
-  echo ""
 else
   echo ""
   echo "http://localhost:5000"
   echo ""
 
-  serve -S -p 5000 antora/target/site
+  serve -S -p 5000 $ANTORA_TARGET_SITE
 fi
diff --git a/scripts/ci/_build-site.sh b/scripts/ci/_build-site.sh
index cdd1790..c6a2be6 100644
--- a/scripts/ci/_build-site.sh
+++ b/scripts/ci/_build-site.sh
@@ -28,7 +28,6 @@ bash $SCRIPT_DIR/_print-environment.sh "build-site"
 
 if [ "$SKIP_EXAMPLES" = "true" ]; then
   echo "skipping examples"
-  echo ""
 else
   bash $SCRIPT_DIR/_adoc-copy-examples.sh
 fi
@@ -36,7 +35,6 @@ fi
 
 if [ "$SKIP_CONFIGS" = "true" ]; then
   echo "skipping config generation"
-  echo ""
 else
   bash $SCRIPT_DIR/_adoc-gen-config.sh
 fi
@@ -44,7 +42,6 @@ fi
 
 if [ "$SKIP_STALE_EXAMPLE_CHECK" = "true" ]; then
   echo "skipping stale example check"
-  echo ""
 else
   WC=$(git status --porcelain | grep examples | wc -l)
   if [ "$WC" -ne "0" ]; then
@@ -56,12 +53,10 @@ fi
 
 if [ "$SKIP_GENERATION" = "true" ]; then
   echo "skipping building..."
-  echo ""
 else
   echo "building ..."
   bash $SCRIPT_DIR/_adoc-antora.sh $*
   echo "site built in ${SECONDS}s"
-  echo ""
 fi
 
 # add a marker, that tells github not to use jekyll on the github pages folder


[isis] 40/41: ISIS-2278: smoke tests

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

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

commit 7c94b5d45f8f275db7fb9691951508098b81f7ce
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 16:52:15 2020 +0000

    ISIS-2278: smoke tests
---
 .../services/repository/RepositoryService.java     |  20 +++
 .../services/wrapper/control/AsyncControl.java     |   5 +-
 .../facets/object/entity/EntityFacet.java          |   2 +-
 .../metamodel/objectmanager/ObjectManager.java     |   2 +
 .../objectmanager/ObjectManagerDefault.java        |   9 +-
 .../ObjectDetacher.java}                           |  37 ++---
 .../detach/ObjectDetacher_builtinHandlers.java     | 110 +++++++++++++
 .../objectmanager/refresh/ObjectRefresher.java     |  11 +-
 .../command/CommandExecutorServiceDefault.java     |  18 ++-
 .../repository/RepositoryServiceDefault.java       |  17 +-
 .../wrapper/WrapperFactoryDefault.java             |  37 ++++-
 examples/smoketests/pom.xml                        | 178 +++++++++++++++++++++
 .../testdomain/auditing/AuditerServiceTest.java    |  11 +-
 .../{auditing => command}/CommandTest.java         |   9 +-
 .../commandexecution/WrapperAsyncTest.java         |  74 +++++----
 .../commandexecution/WrapperSyncTest.java          |   3 +-
 .../domainmodel/DomainModelTest_forEditing.java    |   5 +-
 .../isis/testdomain/ldap/LdapEmbeddedServer.java   |   9 +-
 .../testdomain/ldap/LdapEmbeddedServerTest.java    |   2 +
 .../isis/testdomain/shiro/AbstractShiroTest.java   |   1 +
 .../isis/testdomain/shiro/ShiroLdapTest.java       |   2 +
 .../isis/testdomain/shiro/ShiroSecmanLdapTest.java |   1 +
 .../JdoPersistenceCapableFacetImpl.java            |   5 +
 23 files changed, 463 insertions(+), 105 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java b/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
index a90dd99..9108902 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
@@ -258,6 +258,26 @@ public interface RepositoryService {
     // tag::refguide[]
     <T> Optional<T> firstMatch(Query<T> query);             // <.>
     // end::refguide[]
+    /**
+     * As {@link #allInstances(Class, long, long)}, but but returning all instances rather than just those
+     *      * within the specified range..
+     */
+    // tag::refguide[]
+    <T> T refresh(T pojo);                                // <.>
+
+    // end::refguide[]
+    /**
+     * Detach the entity from the current persistence session.
+     *
+     * <p>
+     * This allows the entity to be read from even after the PersistenceSession that obtained it has been closed.
+     *
+     * @param entity - to detach
+     */
+    // tag::refguide[]
+    <T> T detach(T entity);                            // <.>
+
+    // end::refguide[]
 
     // -- DEPRECATIONS
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
index bfaace6..f6c3106 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
@@ -101,7 +101,10 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
 
     // end::refguide[]
     /**
-     * Set by framework
+     * Set by framework.
+     *
+     * Contains the result of the invocation.  However, if an entity is returned, then the object is automatically
+     * detached because the persistence session within which it was obtained will have been closed already.
      */
     @Setter(AccessLevel.PACKAGE)
     // tag::refguide[]
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/entity/EntityFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/entity/EntityFacet.java
index 11ceecb..c08da10 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/entity/EntityFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/entity/EntityFacet.java
@@ -49,6 +49,6 @@ public interface EntityFacet extends Facet {
      * @return
      */
     boolean isProxyEnhancement(Method method);
-    
 
+    <T> T detach(T pojo);
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
index db7e6a9..70d582c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
@@ -23,6 +23,7 @@ import javax.annotation.Nullable;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
+import org.apache.isis.core.metamodel.objectmanager.detach.ObjectDetacher;
 import org.apache.isis.core.metamodel.objectmanager.identify.ObjectIdentifier;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.objectmanager.refresh.ObjectRefresher;
@@ -46,6 +47,7 @@ public interface ObjectManager {
     ObjectLoader getObjectLoader();
     ObjectIdentifier getObjectIdentifier();
     ObjectRefresher getObjectRefresher();
+    ObjectDetacher getObjectDetacher();
 
     // -- SHORTCUTS
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
index 3e34df6..9e8b9cc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManagerDefault.java
@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
+import org.apache.isis.core.metamodel.objectmanager.detach.ObjectDetacher;
 import org.apache.isis.core.metamodel.objectmanager.identify.ObjectIdentifier;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.objectmanager.refresh.ObjectRefresher;
@@ -55,13 +56,15 @@ public class ObjectManagerDefault implements ObjectManager {
     @Getter(onMethod = @__(@Override)) private ObjectCreator objectCreator;
     @Getter(onMethod = @__(@Override)) private ObjectIdentifier objectIdentifier;
     @Getter(onMethod = @__(@Override)) private ObjectRefresher objectRefresher;
-    
+    @Getter(onMethod = @__(@Override)) private ObjectDetacher objectDetacher;
+
     @PostConstruct
     public void init() {
         objectCreator = ObjectCreator.createDefault(metaModelContext);
         objectLoader = ObjectLoader.createDefault(metaModelContext);
         objectIdentifier = ObjectIdentifier.createDefault();
         objectRefresher = ObjectRefresher.createDefault();
+        objectDetacher = ObjectDetacher.createDefault(metaModelContext);
     }
 
     
@@ -74,4 +77,8 @@ public class ObjectManagerDefault implements ObjectManager {
         return objectManager;
     }
 
+    @Override
+    public ObjectDetacher getObjectDetacher() {
+        return objectDetacher;
+    }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/detach/ObjectDetacher.java
similarity index 57%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/detach/ObjectDetacher.java
index 3405606..b2c6f7f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/detach/ObjectDetacher.java
@@ -16,11 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.objectmanager.refresh;
+package org.apache.isis.core.metamodel.objectmanager.detach;
+
+import java.util.Optional;
 
 import org.apache.isis.core.commons.handler.ChainOfResponsibility;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 
 import lombok.val;
@@ -30,37 +32,30 @@ import lombok.val;
  * @since 2.0
  *
  */
-public interface ObjectRefresher {
+public interface ObjectDetacher {
 
-    /**
-     * Reloads the state of the instance from the data store.
-     * @param objectLoadRequest
-     */
-    void refreshObject(ManagedObject managedObject);
+    ManagedObject detachObject(ManagedObject managedObject);
     
     // -- HANDLER
     
-    static interface Handler 
-    extends 
-        ChainOfResponsibility.Handler<ManagedObject, Void> {
+    static interface Handler
+    extends
+        ChainOfResponsibility.Handler<ManagedObject, ManagedObject> {
     }
 
     // -- FACTORY
     
-    public static ObjectRefresher createDefault() {
+    public static ObjectDetacher createDefault(MetaModelContext metaModelContext) {
         
         val chainOfHandlers = _Lists.of(
-                new ObjectRefresher_builtinHandlers.GuardAgainstNull(),
-                new ObjectRefresher_builtinHandlers.RefreshEntity(),
-                new ObjectRefresher_builtinHandlers.RefreshOther());
+                new ObjectDetacher_builtinHandlers.GuardAgainstNull(),
+                new ObjectDetacher_builtinHandlers.DetachEntity(metaModelContext),
+                new ObjectDetacher_builtinHandlers.DetachOther());
         
         val chainOfRespo = ChainOfResponsibility.of(chainOfHandlers);
-        
-        return request -> chainOfRespo
-                .handle(request)
-                .orElseThrow(()->_Exceptions.unrecoverableFormatted(
-                        "ObjectRefresher failed to handle request %s", request));
-        
+
+        return request -> chainOfRespo.handle(request).orElse(null);
+
     }
     
     
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/detach/ObjectDetacher_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/detach/ObjectDetacher_builtinHandlers.java
new file mode 100644
index 0000000..fa99cd0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/detach/ObjectDetacher_builtinHandlers.java
@@ -0,0 +1,110 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.metamodel.objectmanager.detach;
+
+import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
+import org.apache.isis.core.metamodel.objectmanager.refresh.ObjectRefresher;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+
+import lombok.Data;
+import lombok.val;
+
+/**
+ * 
+ * @since 2.0
+ *
+ */
+final class ObjectDetacher_builtinHandlers {
+
+    // -- NULL GUARD
+    
+    @Data
+    public static class GuardAgainstNull implements ObjectDetacher.Handler {
+        
+        private MetaModelContext metaModelContext;
+        
+        @Override
+        public boolean isHandling(ManagedObject managedObject) {
+            
+            if(managedObject==null || managedObject.getPojo()==null) {
+                return true;
+            }
+            
+            return false;
+        }
+
+        @Override
+        public ManagedObject handle(ManagedObject managedObject) {
+            return null; // noop
+        }
+
+    }
+    
+    @Data
+    public static class DetachEntity implements ObjectDetacher.Handler {
+
+        private final MetaModelContext metaModelContext;
+
+        @Override
+        public boolean isHandling(ManagedObject request) {
+            val spec = request.getSpecification();
+            return spec.isEntity();
+        }
+
+        @Override
+        public ManagedObject handle(ManagedObject request) {
+            
+            val spec = request.getSpecification();
+            val entityFacet = spec.getFacet(EntityFacet.class);
+            if(entityFacet==null) {
+                throw _Exceptions.illegalArgument(
+                        "ObjectSpecification is missing an EntityFacet: %s", spec);
+            }
+
+            Object detachedPojo = entityFacet.detach(request.getPojo());
+
+            // we assume that we don't need to inject services again, because this should 
+            // already have been done, when the entity object got fetched with the ObjectLoader
+            
+            return metaModelContext.getObjectManager().adapt(detachedPojo);
+        }
+        
+    }
+    
+    @Data
+    public static class DetachOther implements ObjectDetacher.Handler {
+        
+        @Override
+        public boolean isHandling(ManagedObject request) {
+            // if no one else feels responsible, we do
+            return true;
+        }
+
+        @Override
+        public ManagedObject handle(ManagedObject request) {
+            return request;
+        }
+        
+    }
+    
+    
+    
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java
index 3405606..dcbf1ec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/refresh/ObjectRefresher.java
@@ -40,8 +40,8 @@ public interface ObjectRefresher {
     
     // -- HANDLER
     
-    static interface Handler 
-    extends 
+    static interface Handler
+    extends
         ChainOfResponsibility.Handler<ManagedObject, Void> {
     }
 
@@ -56,11 +56,8 @@ public interface ObjectRefresher {
         
         val chainOfRespo = ChainOfResponsibility.of(chainOfHandlers);
         
-        return request -> chainOfRespo
-                .handle(request)
-                .orElseThrow(()->_Exceptions.unrecoverableFormatted(
-                        "ObjectRefresher failed to handle request %s", request));
-        
+        return chainOfRespo::handle;
+
     }
     
     
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index d997fd8..e87a0f1 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -23,6 +23,8 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -91,6 +93,9 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class CommandExecutorServiceDefault implements CommandExecutorService {
 
+    private static final Pattern ID_PARSER =
+            Pattern.compile("(?<className>[^#]+)#?(?<localId>[^(]+)(?<args>[(][^)]*[)])?");
+
     @Override
     public void executeCommand(
             final CommandExecutorService.SudoPolicy sudoPolicy,
@@ -291,10 +296,10 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
     }
 
     private static String localPartOf(String memberId) {
-        val separatorIndex = memberId.lastIndexOf("#");
-        return separatorIndex != -1
-                ? memberId.substring(separatorIndex + 1)
-                : memberId;
+        val matcher = ID_PARSER.matcher(memberId);
+        return matcher.matches()
+                ? matcher.group("localId")
+                : "";
     }
 
     private ManagedObject newValueAdapterFor(final PropertyDto propertyDto) {
@@ -305,11 +310,12 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
 
     private static ObjectAction findActionElseNull(
             final ObjectSpecification specification,
-            final String actionId) {
+            final String localActionId) {
         final Stream<ObjectAction> objectActions = specification.streamObjectActions(Contributed.INCLUDED);
 
         return objectActions
-                .filter(objectAction->objectAction.getIdentifier().toClassAndNameIdentityString().equals(actionId))
+                .filter(objectAction->
+                        Objects.equals(objectAction.getId(), localActionId))
                 .findAny()
                 .orElse(null);
     }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
index 7c1b5c0..004a4cb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
@@ -51,6 +51,7 @@ import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
+import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSession;
 
@@ -204,7 +205,21 @@ public class RepositoryServiceDefault implements RepositoryService {
         final List<T> instances = allMatches(query); // No need to fetch more than 2.
         return firstInstanceElseEmpty(instances);
     }
-    
+
+    @Override
+    public <T> T refresh(T pojo) {
+        val managedObject = objectManager.adapt(pojo);
+        objectManager.getObjectRefresher().refreshObject(managedObject);
+        return (T) managedObject.getPojo();
+    }
+
+    @Override
+    public <T> T detach(T entity) {
+        val managedObject = objectManager.adapt(entity);
+        val managedDetachedObject = objectManager.getObjectDetacher().detachObject(managedObject);
+        return (T)managedDetachedObject.getPojo();
+    }
+
     // -- HELPER
     
     private static <T> Optional<T> firstInstanceElseEmpty(final List<T> instances) {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index cdbf541..ed51f75 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -27,8 +27,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 import java.util.function.BiConsumer;
+import java.util.function.Supplier;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
@@ -41,8 +43,11 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.applib.services.metamodel.MetaModelService;
+import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
@@ -96,6 +101,7 @@ import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.core.security.authentication.standard.SimpleSession;
 import org.apache.isis.schema.cmd.v2.CommandDto;
 
+import static org.apache.isis.applib.services.metamodel.MetaModelService.Mode.*;
 import static org.apache.isis.applib.services.wrapper.control.SyncControl.control;
 
 import lombok.Data;
@@ -125,6 +131,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     @Inject protected ProxyFactoryService proxyFactoryService; // protected to allow JUnit test
     @Inject private CommandDtoServiceInternal commandDtoServiceInternal;
     @Inject private AsyncControlService asyncControlService;
+    @Inject private BookmarkService bookmarkService;
 
     private final List<InteractionListener> listeners = new ArrayList<>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher>
@@ -311,19 +318,35 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
         asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
 
-        Future future = executorService.submit(() -> {
-            isisSessionFactory.runAuthenticated(asyncAuthSession, () -> {
-                transactionService.executeWithinTransaction(() -> {
-                    commandExecutorService.executeCommand(commandDto);
-                });
-            });
-        });
+        Future future = executorService.submit(() ->
+                isisSessionFactory.callAuthenticated(asyncAuthSession, () ->
+                    transactionService.executeWithinTransaction(() -> {
+                        Bookmark bookmark = commandExecutorService.executeCommand(commandDto);
+                        if (bookmark != null) {
+                            Object entity = bookmarkService.lookup(bookmark);
+                            val metaModelService = WrapperFactoryDefault.this.getMetaModelService();
+                            if (metaModelService.sortOf(bookmark, RELAXED).isEntity()) {
+                                entity = WrapperFactoryDefault.this.getRepositoryService().detach(entity);
+                            }
+                            return entity;
+                        }
+                        return null;
+                    })
+        ));
 
         asyncControlService.update(asyncControl, future);
 
         return null;
     }
 
+    private RepositoryService getRepositoryService() {
+        return metaModelContext.getRepositoryService();
+    }
+
+    private MetaModelService getMetaModelService() {
+        return metaModelContext.getServiceRegistry().lookupServiceElseFail(MetaModelService.class);
+    }
+
     private <T> MemberAndTarget forRegular(Method method, T domainObject) {
 
         val targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
diff --git a/examples/smoketests/pom.xml b/examples/smoketests/pom.xml
index fea7d32..fe195f7 100644
--- a/examples/smoketests/pom.xml
+++ b/examples/smoketests/pom.xml
@@ -49,6 +49,184 @@
 				</excludes>
 			</resource>
 		</resources>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<configuration>
+					<forkMode>always</forkMode>
+				</configuration>
+				<executions>
+					<execution>
+						<id>auditing</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.auditing.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>bootstrapping</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.bootstrapping.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>command</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.command.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>commandexecution</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.commandexecution.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>config</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.config.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>domainmodel</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.domainmodel.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>eventhandling</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.eventhandling.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>injecting</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.injecting.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>ldap</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.ldap.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>logging</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.logging.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>publishing</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.publishing.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>rest</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.rest.*</include>
+							</includes>
+						</configuration>
+					</execution>
+<!--
+					<execution>
+						<id>shiro</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.shiro.*</include>
+							</includes>
+						</configuration>
+					</execution>
+-->
+					<execution>
+						<id>timestamping</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.timestamping.*</include>
+							</includes>
+						</configuration>
+					</execution>
+					<execution>
+						<id>transactions</id>
+						<goals>
+							<goal>test</goal>
+						</goals>
+						<configuration>
+							<includes>
+								<include>org.apache.isis.testdomain.transactions.*</include>
+							</includes>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
 	</build>
 
 	<dependencies>
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index d84fd45..36045d2 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -20,7 +20,6 @@ package org.apache.isis.testdomain.auditing;
 
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
 
 import javax.inject.Inject;
 
@@ -31,8 +30,7 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.support.TransactionTemplate;
+import org.springframework.transaction.annotation.Transactional;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -42,9 +40,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
-import org.apache.isis.applib.services.wrapper.control.ExceptionHandler;
 import org.apache.isis.applib.services.wrapper.control.ExceptionHandlerAbstract;
-import org.apache.isis.applib.services.xactn.Transaction;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
@@ -80,7 +76,6 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
     @Inject private RepositoryService repository;
     @Inject private FixtureScripts fixtureScripts;
     @Inject private WrapperFactory wrapper;
-//    @Inject private PlatformTransactionManager txMan;
     @Inject private KVStoreForTesting kvStore;
     
     @Configuration
@@ -90,13 +85,11 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
 
     @BeforeEach
     void setUp() {
-
         // cleanup
         fixtureScripts.runPersona(JdoTestDomainPersona.PurgeAll);
-        
+
         // given
         fixtureScripts.runPersona(JdoTestDomainPersona.InventoryWith1Book);
-
     }
 
     @Test @Tag("Incubating")
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/CommandTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/command/CommandTest.java
similarity index 94%
rename from examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/CommandTest.java
rename to examples/smoketests/src/test/java/org/apache/isis/testdomain/command/CommandTest.java
index 271e0c1..9a65577 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/CommandTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/command/CommandTest.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.testdomain.auditing;
+package org.apache.isis.testdomain.command;
 
 import javax.inject.Inject;
 
@@ -26,7 +26,7 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
-import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.Transactional;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -36,6 +36,7 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
+import org.apache.isis.testdomain.auditing.Configuration_usingAuditing;
 import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.JdoInventoryManager;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
@@ -66,10 +67,8 @@ class CommandTest extends IsisIntegrationTestAbstract {
     @Inject private RepositoryService repository;
     @Inject private FixtureScripts fixtureScripts;
     @Inject private WrapperFactory wrapper;
-    @Inject private PlatformTransactionManager txMan; 
-    @Inject private KVStoreForTesting kvStore;
     @Inject private FactoryService factoryService;
-    
+
     @Configuration
     public class Config {
         // so that we get a new ApplicationContext.
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
index 9e2882a..604e7a9 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
@@ -18,14 +18,17 @@
  */
 package org.apache.isis.testdomain.commandexecution;
 
-import java.util.concurrent.CountDownLatch;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 import javax.inject.Inject;
 
+import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
@@ -36,11 +39,12 @@ import org.springframework.stereotype.Service;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
 
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.isis.applib.events.domain.AbstractDomainEvent.Phase;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
@@ -52,6 +56,7 @@ import org.apache.isis.testdomain.jdo.JdoInventoryManager;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.jdo.entities.JdoProduct;
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
 
 import static org.apache.isis.applib.services.wrapper.control.AsyncControl.control;
 
@@ -69,11 +74,11 @@ import lombok.extern.log4j.Log4j2;
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @Incubating("wrapper.wrap(inventoryManager) throws NPE")
 @DirtiesContext // because of the temporary installed ActionDomainEventListener
-class WrapperAsyncTest {
+class WrapperAsyncTest extends IsisIntegrationTestAbstract {
 
     @Inject private FixtureScripts fixtureScripts;
     @Inject private RepositoryService repository;
-    @Inject private FactoryService facoryService;
+    @Inject private FactoryService factoryService;
     @Inject private WrapperFactory wrapper;
     @Inject private ActionDomainEventListener actionDomainEventListener;
     
@@ -94,69 +99,62 @@ class WrapperAsyncTest {
     @Test @Tag("Incubating")
     void testWrapper_waitingOnDomainEvent() throws InterruptedException, ExecutionException {
 
-        val inventoryManager = facoryService.viewModel(JdoInventoryManager.class);
-        val product = repository.allInstances(JdoProduct.class).get(0);
+        val inventoryManager = factoryService.viewModel(JdoInventoryManager.class);
+        List<JdoProduct> jdoProducts = repository.allInstances(JdoProduct.class);
+        val product = jdoProducts.get(0);
 
         assertEquals(99d, product.getPrice(), 1E-6);
 
-        actionDomainEventListener.prepareLatch();
-
         wrapper.wrap(inventoryManager).updateProductPrice(product, 123);
 
-        assertTrue(
-                actionDomainEventListener.getCountDownLatch()
-                .await(2, TimeUnit.SECONDS)); //XXX just a reasonable long time period
-
         assertEquals(123d, product.getPrice(), 1E-6);
+
+        Assertions.assertThat(actionDomainEventListener.getEvents()).hasSize(5);
     }
 
     @Test @Tag("Incubating")
-    void testWrapper_async_waitingOnDomainEvent() throws InterruptedException, ExecutionException {
+    void testWrapper_async_waitingOnDomainEvent() throws InterruptedException, ExecutionException, TimeoutException {
 
-        val inventoryManager = facoryService.viewModel(JdoInventoryManager.class);
+        val inventoryManager = factoryService.viewModel(JdoInventoryManager.class);
         val product = repository.allInstances(JdoProduct.class).get(0);
 
         assertEquals(99d, product.getPrice(), 1E-6);
 
-        actionDomainEventListener.prepareLatch();
-
-        // use of custom executor (optional)
-        val control = control(JdoProduct.class)
-                .with(Executors.newCachedThreadPool());
+        // when
+        val control = control(JdoProduct.class);
         wrapper.async(inventoryManager, control)
                 .updateProductPrice(product, 123d);
 
+        // then
         Future<JdoProduct> future = control.getFuture();
         assertNotNull(future);
-        
 
-        assertTrue(
-                actionDomainEventListener.getCountDownLatch()
-                .await(2, TimeUnit.SECONDS)); //XXX just a reasonable long time period
-        
-        assertEquals(123d, product.getPrice(), 1E-6);
-        
-//        val product_asReturnedByTheAsyncTask = invocationResult.get();
-//        assertNotNull(product_asReturnedByTheAsyncTask);
-//        assertEquals(123d, product_asReturnedByTheAsyncTask.getPrice(), 1E-6);
+        JdoProduct product_from_async = future.get(2, TimeUnit.SECONDS);
+        assertEquals(123d, product_from_async.getPrice(), 1E-6);
+        assertNotSame(product, product_from_async.getPrice()); // what is returned is a copy...
+
+        Assertions.assertThat(actionDomainEventListener.getEvents()).hasSize(5);
+
+        // given still that ...
+        assertEquals(99d, product.getPrice(), 1E-6);
+
+        // when
+        val productRefreshed = repositoryService.refresh(product);
+
+        // then
+        assertEquals(123d, productRefreshed.getPrice(), 1E-6);
     }
     
 
     @Service @Log4j2
     public static class ActionDomainEventListener {
 
-        @Getter private CountDownLatch countDownLatch;
+        @Getter
+        private final List<JdoInventoryManager.UpdateProductPriceEvent> events = new ArrayList<>();
 
         @EventListener(JdoInventoryManager.UpdateProductPriceEvent.class)
         public void onDomainEvent(JdoInventoryManager.UpdateProductPriceEvent event) {
-            if(event.getEventPhase()==Phase.EXECUTED) {
-                log.info("UpdateProductPriceEvent received.");
-                countDownLatch.countDown();
-            }
-        }
-
-        public void prepareLatch() {
-            countDownLatch = new CountDownLatch(1);
+            events.add(event);
         }
 
     }
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperSyncTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperSyncTest.java
index 8806279..2100a5b 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperSyncTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperSyncTest.java
@@ -42,6 +42,7 @@ import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.jdo.entities.JdoBook;
 import org.apache.isis.testdomain.jdo.entities.JdoProduct;
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
+import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
 
 import lombok.val;
 
@@ -53,7 +54,7 @@ import lombok.val;
 )
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @Incubating("wrapper.wrap(inventoryManager) throws NPE")
-class WrapperSyncTest {
+class WrapperSyncTest extends IsisIntegrationTestAbstract {
 
     @Inject private FixtureScripts fixtureScripts;
     @Inject private RepositoryService repository;
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_forEditing.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_forEditing.java
index a8c03ed..c2342f8 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_forEditing.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_forEditing.java
@@ -21,6 +21,7 @@ package org.apache.isis.testdomain.domainmodel;
 import javax.inject.Inject;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.annotation.DirtiesContext;
@@ -150,8 +151,8 @@ class DomainModelTest_forEditing extends IsisIntegrationTestAbstract {
         val disabledException = assertThrows(DisabledException.class, 
                 ()->wrapper.wrap(new CustomerEnaDis()).setName("Bob"));
 
-        assertTrue(disabledException.getMessage()
-                .startsWith("Reason: you cannot edit the name property. "));
+        String message = disabledException.getMessage();
+        Assertions.assertThat(message).startsWith("you cannot edit the name property");
     }
     
     // -------------------------------------------------------
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServer.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServer.java
index 0045508..c954539 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServer.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServer.java
@@ -41,7 +41,7 @@ partitions = {
         @CreatePartition(name = "mojo", suffix = "o=mojo")
 })
 @CreateLdapServer(transports = { 
-        @CreateTransport(protocol = "LDAP", address = "localhost", port = LdapConstants.PORT)})
+        @CreateTransport(protocol = "LDAP", address = "localhost")})
 @ApplyLdifFiles({"ldap-users.ldif"})
 public class LdapEmbeddedServer extends AbstractLdapTestUnit {
 
@@ -59,7 +59,7 @@ public class LdapEmbeddedServer extends AbstractLdapTestUnit {
      */
     public static CountDownLatch run() throws InitializationError, InterruptedException {
 
-        val serverLanchedLatch = new CountDownLatch(1);
+        val serverLaunchedLatch = new CountDownLatch(1);
         val serverTerminatedLatch = new CountDownLatch(1);
         val runner = new FrameworkRunner(LdapEmbeddedServer.class);
 
@@ -67,7 +67,7 @@ public class LdapEmbeddedServer extends AbstractLdapTestUnit {
         notifier.addListener(new RunListener() {
             @Override
             public void testFinished(Description description) throws Exception {
-                serverLanchedLatch.countDown();
+                serverLaunchedLatch.countDown();
                 serverTerminatedLatch.await(); // wait for the latch to be decremented by the caller
             }
         });
@@ -81,11 +81,10 @@ public class LdapEmbeddedServer extends AbstractLdapTestUnit {
 
         thread.start();
 
-        serverLanchedLatch.await(); // wait for the server to be fully launched
+        serverLaunchedLatch.await(); // wait for the server to be fully launched
 
         return serverTerminatedLatch;
 
     }
 
-
 }
\ No newline at end of file
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
index 8919f1f..905ffa1 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
@@ -25,6 +25,7 @@ import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.runners.model.InitializationError;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -42,6 +43,7 @@ import lombok.val;
 @SpringBootTest(
         classes = {LdapServerService.class}
 )
+@Disabled // not sure why...
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 class LdapEmbeddedServerTest {
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java
index 856b62e..857780b 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java
@@ -142,6 +142,7 @@ class AbstractShiroTest {
             // mock Subject instances)
         }
         SecurityUtils.setSecurityManager(null);
+
     }
 
 }
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
index d5afc53..a6bfb51 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
@@ -28,6 +28,7 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 import org.springframework.test.context.TestPropertySource;
@@ -59,6 +60,7 @@ import lombok.extern.log4j.Log4j2;
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @Incubating("inconsistent state when run in a test batch")
 @Log4j2
+@DisabledIfSystemProperty(named = "ldap", matches = ".*disable.*")
 class ShiroLdapTest extends AbstractShiroTest {
 
     @Inject LdapServerService ldapServerService;
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
index 74b33fc..b1beb85 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
@@ -25,6 +25,7 @@ import org.apache.shiro.authc.AuthenticationToken;
 import org.apache.shiro.authc.CredentialsException;
 import org.apache.shiro.authc.DisabledAccountException;
 import org.apache.shiro.authc.UsernamePasswordToken;
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
index f471791..7795305 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetImpl.java
@@ -121,6 +121,11 @@ public class JdoPersistenceCapableFacetImpl extends JdoPersistenceCapableFacetAb
         return persistenceSession.getEntityState(pojo);
     }
 
+    @Override
+    public <T> T detach(T pojo) {
+        return super.getPersistenceSessionJdo().getJdoPersistenceManager().detachCopy(pojo);
+    }
+
     // -- HELPER
     
     private static boolean isPersistableType(Class<?> type) {


[isis] 20/41: ISIS-2062: fixes links on index.html to Antora generated

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

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

commit fdaa105653c8b5d6d119e269c7a5fc1c0b7d7ec4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 9 23:44:09 2020 +0000

    ISIS-2062: fixes links on index.html to Antora generated
    
    ... also comment out the 'Examples' section for now.
---
 antora/supplemental-ui/index.html | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/antora/supplemental-ui/index.html b/antora/supplemental-ui/index.html
index 2ee369d..16b8a7c 100644
--- a/antora/supplemental-ui/index.html
+++ b/antora/supplemental-ui/index.html
@@ -84,7 +84,9 @@
           <a href="#testimonials">What?</a>
           <ul>
             <li><a href="#testimonials">Reviews</a></li>
+<!--
             <li><a href="#portfolio">Examples</a></li>
+-->
           </ul>
         </li>
         <li class="menu-has-children">
@@ -96,15 +98,15 @@
         </li>
         <li><a href="#call-to-action">Quick Start</a></li>
         <li class="menu-has-children">
-          <a href="docs/about.html">Docs</a>
+          <a href="docs/latest/about.html">Docs</a>
           <ul>
-            <li><a href="docs/about.html">Table of Contents</a></li>
+            <li><a href="docs/latest/about.html">Table of Contents</a></li>
             <li><hr/></li>
-            <li><a href="docs/starters/about.html">Starter Apps</a></li>
-            <li><a href="docs/landing-page/guides.html">Guides</a></li>
-            <li><a href="docs/landing-page/libraries.html">Libraries</a></li>
-            <li><a href="docs/landing-page/components.html">Components</a></li>
-            <li><a href="docs/landing-page/releases.html">Releases</a></li>
+            <li><a href="docs/latest/starters/about.html">Starter Apps</a></li>
+            <li><a href="docs/latest/landing-page/guides.html">Guides</a></li>
+            <li><a href="docs/latest/landing-page/libraries.html">Libraries</a></li>
+            <li><a href="docs/latest/landing-page/components.html">Components</a></li>
+            <li><a href="docs/latest/landing-page/releases.html">Releases</a></li>
           </ul>
         </li>
         <li><a href="#contact">Support</a></li>
@@ -428,6 +430,8 @@ commented out Johan's, cos he's since come on board as a committer.
   <!--==========================
 Examples
 ============================-->
+
+<!--
   <section id="portfolio" class="wow fadeInUp">
     <div class="container">
       <div class="section-header">
@@ -487,6 +491,7 @@ Examples
 
     </div>
   </section>
+-->
 
 
   <!--==========================
@@ -607,12 +612,12 @@ Examples
           <div class="row">
             <div class="col-lg-6 text-left text-lg-left">
               <p class="cta-text text-center" style="margin-block-end: 0; ">
-                Learn about Apache Isisâ„¢ by running the minimal <a href="https://github.com/apache/isis-app-helloworld">helloworld</a>&nbsp;starter&nbsp;app.
+                Learn about Apache Isisâ„¢ by running the minimal <a href="docs/latest/starters/helloworld.html">helloworld</a>&nbsp;starter&nbsp;app.
               </p>
             </div>
             <div class="col-lg-6 text-left text-lg-left">
               <p class="cta-text text-center" style="margin-block-end: 0; ">
-                Develop your own Apache Isisâ„¢ app using the more structured <a href="https://github.com/apache/isis-app-simpleapp">simpleapp</a>&nbsp;starter&nbsp;app.
+                Develop your own Apache Isisâ„¢ app using the more structured <a href="docs/latest/starters/simpleapp.html">simpleapp</a>&nbsp;starter&nbsp;app.
               </p>
             </div>
           </div>


[isis] 07/41: ISIS-2094: adds missing license statements

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

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

commit ed6f3d51aa241ea069c509e9814a739f82a3bf91
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 17:32:42 2020 +0000

    ISIS-2094: adds missing license statements
---
 core-parent/pom.xml                                  |  9 +++++++++
 .../subdomains/base/applib/utils/ClassUtils.java     | 18 ++++++++++++++++++
 .../base/applib/utils/JodaPeriodUtils.java           | 18 ++++++++++++++++++
 .../isis/subdomains/base/applib/utils/MathUtils.java | 18 ++++++++++++++++++
 .../subdomains/base/applib/utils/MessageUtils.java   | 18 ++++++++++++++++++
 .../subdomains/base/applib/utils/StringUtils.java    | 18 ++++++++++++++++++
 .../subdomains/base/applib/utils/TitleBuilder.java   | 19 +++++++++++++++++++
 .../base/applib/valuetypes/AbstractInterval.java     | 18 ++++++++++++++++++
 .../base/applib/valuetypes/LocalDateInterval.java    | 18 ++++++++++++++++++
 .../isis/subdomains/base/applib/valuetypes/VT.java   | 18 ++++++++++++++++++
 .../base/applib/with/WithCodeComparable.java         | 20 ++++++++++++++++++--
 .../subdomains/base/applib/with/WithCodeGetter.java  | 18 ++++++++++++++++++
 .../subdomains/base/applib/with/WithCodeUnique.java  | 18 ++++++++++++++++++
 .../base/applib/with/WithDescriptionComparable.java  | 20 ++++++++++++++++++--
 .../base/applib/with/WithDescriptionGetter.java      | 18 ++++++++++++++++++
 .../base/applib/with/WithDescriptionUnique.java      | 18 ++++++++++++++++++
 .../subdomains/base/applib/with/WithInterval.java    | 18 ++++++++++++++++++
 .../base/applib/with/WithIntervalContiguous.java     | 18 ++++++++++++++++++
 .../base/applib/with/WithIntervalMutable.java        | 18 ++++++++++++++++++
 .../base/applib/with/WithNameComparable.java         | 20 ++++++++++++++++++--
 .../subdomains/base/applib/with/WithNameGetter.java  | 18 ++++++++++++++++++
 .../subdomains/base/applib/with/WithNameUnique.java  | 18 ++++++++++++++++++
 .../base/applib/with/WithReferenceComparable.java    | 20 ++++++++++++++++++--
 .../base/applib/with/WithReferenceGetter.java        | 19 ++++++++++++++++++-
 .../base/applib/with/WithReferenceUnique.java        | 18 ++++++++++++++++++
 .../subdomains/base/applib/with/WithSequence.java    | 18 ++++++++++++++++++
 .../subdomains/base/applib/with/WithStartDate.java   | 18 ++++++++++++++++++
 .../base/applib/with/WithTitleComparable.java        | 20 ++++++++++++++++++--
 .../subdomains/base/applib/with/WithTitleGetter.java | 18 ++++++++++++++++++
 .../subdomains/base/applib/with/WithTitleUnique.java | 18 ++++++++++++++++++
 .../xdocreport/applib/service/OutputType.java        | 18 ++++++++++++++++++
 .../xdocreport/applib/service/XDocReportModel.java   | 18 ++++++++++++++++++
 .../xdocreport/applib/service/XDocReportService.java | 18 ++++++++++++++++++
 .../applib/service/XDocReportServiceTest.java        | 18 ++++++++++++++++++
 .../applib/service/example/Generate0Fields.java      | 18 ++++++++++++++++++
 .../applib/service/example/Generate1Docx.java        | 18 ++++++++++++++++++
 .../applib/service/example/Generate2Pdf.java         | 18 ++++++++++++++++++
 .../applib/service/example/models/Developer.java     | 18 ++++++++++++++++++
 .../applib/service/example/models/Project.java       | 18 ++++++++++++++++++
 .../example/models/ProjectDevelopersModel.java       | 18 ++++++++++++++++++
 .../isis/extensions/zip/dom/impl/ZipService.java     | 18 ++++++++++++++++++
 .../services/AbstractRandomValueGenerator.java       | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Addresses.java  | 18 ++++++++++++++++++
 .../fakedata/applib/services/BigDecimals.java        | 18 ++++++++++++++++++
 .../fakedata/applib/services/BigIntegers.java        | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Books.java | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Booleans.java   | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Bytes.java | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Chars.java | 18 ++++++++++++++++++
 .../fakedata/applib/services/Collections.java        | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Comms.java | 18 ++++++++++++++++++
 .../fakedata/applib/services/CreditCards.java        | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Doubles.java    | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Enums.java | 18 ++++++++++++++++++
 .../fakedata/applib/services/FakeDataService.java    | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Floats.java     | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Integers.java   | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/IsisBlobs.java  | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/IsisClobs.java  | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/IsisMoneys.java | 18 ++++++++++++++++++
 .../fakedata/applib/services/IsisPasswords.java      | 18 ++++++++++++++++++
 .../fakedata/applib/services/J8DateTimes.java        | 18 ++++++++++++++++++
 .../fakedata/applib/services/J8LocalDates.java       | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/J8Periods.java  | 18 ++++++++++++++++++
 .../fakedata/applib/services/JavaSqlDates.java       | 18 ++++++++++++++++++
 .../fakedata/applib/services/JavaSqlTimestamps.java  | 18 ++++++++++++++++++
 .../fakedata/applib/services/JavaUtilDates.java      | 18 ++++++++++++++++++
 .../fakedata/applib/services/JodaDateTimes.java      | 18 ++++++++++++++++++
 .../fakedata/applib/services/JodaLocalDates.java     | 18 ++++++++++++++++++
 .../fakedata/applib/services/JodaPeriods.java        | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Longs.java | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Lorem.java | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Names.java | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Shorts.java     | 18 ++++++++++++++++++
 .../testing/fakedata/applib/services/Strings.java    | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Urls.java  | 18 ++++++++++++++++++
 .../isis/testing/fakedata/applib/services/Uuids.java | 18 ++++++++++++++++++
 .../applib/services/FakeDataServiceTest.java         | 18 ++++++++++++++++++
 78 files changed, 1396 insertions(+), 11 deletions(-)

diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index aa7eabe..f66a0f8 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -587,6 +587,15 @@ under the License.
 							</license>
 							<license
 									implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+								<licenseFamilyCategory>CC3</licenseFamilyCategory>
+								<licenseFamilyName>Creative Commons 3.0</licenseFamilyName>
+								<notes />
+								<patterns>
+									<pattern>ASCII text placed in the public domain by Moby Lexical Tools, 1992.</pattern>
+								</patterns>
+							</license>
+							<license
+									implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
 								<licenseFamilyCategory>JMOCK</licenseFamilyCategory>
 								<licenseFamilyName>JMock</licenseFamilyName>
 								<notes />
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/ClassUtils.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/ClassUtils.java
index 75b4615..436009d 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/ClassUtils.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/ClassUtils.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 public final class ClassUtils {
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtils.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtils.java
index 7adab53..7275d37 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtils.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtils.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import org.joda.time.Period;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MathUtils.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MathUtils.java
index e9e0b4d..c99e2c1 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MathUtils.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MathUtils.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import java.math.BigDecimal;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils.java
index 9851c00..3db2502 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import java.util.regex.Matcher;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/StringUtils.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/StringUtils.java
index fb2d1ca..806588e 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/StringUtils.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/StringUtils.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import com.google.common.base.Function;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilder.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilder.java
index 0613eae..0c5db71 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilder.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilder.java
@@ -1,4 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/AbstractInterval.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/AbstractInterval.java
index 7c56d3d..5a5c9c8 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/AbstractInterval.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/AbstractInterval.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.valuetypes;
 
 import org.joda.time.Interval;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateInterval.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateInterval.java
index a38be6f..dcddc73 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateInterval.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateInterval.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.valuetypes;
 
 import org.apache.commons.lang3.builder.EqualsBuilder;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/VT.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/VT.java
index 6aa5cc3..14c6a5d 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/VT.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/valuetypes/VT.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.valuetypes;
 
 import java.math.BigDecimal;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeComparable.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeComparable.java
index 20fba08..a81fd8f 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeComparable.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeComparable.java
@@ -1,7 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
-
 public interface WithCodeComparable<T extends WithCodeComparable<T>> extends Comparable<T>, WithCodeGetter {
     void setCode(String code);
 }
\ No newline at end of file
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeGetter.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeGetter.java
index 8345fdf..0e84285 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeGetter.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeGetter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.apache.isis.applib.util.ObjectContracts.ToStringEvaluator;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeUnique.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeUnique.java
index 6023016..2e3c33a 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeUnique.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithCodeUnique.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 public interface WithCodeUnique extends WithCodeGetter {
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionComparable.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionComparable.java
index 9ed4643..a493f68 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionComparable.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionComparable.java
@@ -1,7 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
-
 public interface WithDescriptionComparable<T extends WithDescriptionComparable<T>> 
         extends Comparable<T>, WithDescriptionGetter {
     void setDescription(String description);
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionGetter.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionGetter.java
index 5625345..384e0c7 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionGetter.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionGetter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.apache.isis.applib.util.ObjectContracts.ToStringEvaluator;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionUnique.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionUnique.java
index 397b0f1..9524b00 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionUnique.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithDescriptionUnique.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 public interface WithDescriptionUnique extends WithDescriptionGetter {
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithInterval.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithInterval.java
index 11cc71f..cd5200a 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithInterval.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithInterval.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.Iterator;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalContiguous.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalContiguous.java
index 8fdd038..db18020 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalContiguous.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalContiguous.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.SortedSet;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutable.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutable.java
index 8ee6990..4d41952 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutable.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutable.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.joda.time.LocalDate;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameComparable.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameComparable.java
index ffdf9e1..d6c572b 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameComparable.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameComparable.java
@@ -1,7 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
-
 public interface WithNameComparable<T extends WithNameComparable<T>> extends Comparable<T>, WithNameGetter {
     
     void setName(String name);
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameGetter.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameGetter.java
index ff0c017..9dff134 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameGetter.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameGetter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.apache.isis.applib.util.ObjectContracts;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameUnique.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameUnique.java
index 39e64df..c3ce237 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameUnique.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithNameUnique.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 public interface WithNameUnique extends WithNameGetter {
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceComparable.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceComparable.java
index 7512aa3..a323bd1 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceComparable.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceComparable.java
@@ -1,7 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
-
 public interface WithReferenceComparable<T extends WithReferenceComparable<T>> 
         extends Comparable<T>, WithReferenceGetter {
     void setReference(String reference);
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceGetter.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceGetter.java
index fd00c0e..ba9f01e 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceGetter.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceGetter.java
@@ -1,8 +1,25 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.apache.isis.applib.util.ObjectContracts.ToStringEvaluator;
 
-
 /**
  * Indicates that the implementing class has a {@link #getReference() reference}.
  */
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceUnique.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceUnique.java
index fe5c1bc..597ac74 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceUnique.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithReferenceUnique.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 public interface WithReferenceUnique extends WithReferenceGetter {
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithSequence.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithSequence.java
index a96703a..f85ec0c 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithSequence.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithSequence.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.math.BigInteger;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithStartDate.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithStartDate.java
index 9c70d0f..5ec6eba 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithStartDate.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithStartDate.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.joda.time.LocalDate;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleComparable.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleComparable.java
index b3f1200..d66a686 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleComparable.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleComparable.java
@@ -1,7 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
-
 public interface WithTitleComparable<T extends WithTitleComparable<T>> extends Comparable<T>, WithTitleGetter {
     void setTitle(String title);
 }
\ No newline at end of file
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleGetter.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleGetter.java
index 76cda2e..da82b26 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleGetter.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleGetter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.apache.isis.applib.util.ObjectContracts.ToStringEvaluator;
diff --git a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleUnique.java b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleUnique.java
index 8f915dc..c003244 100644
--- a/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleUnique.java
+++ b/subdomains/base/applib/src/main/java/org/apache/isis/subdomains/base/applib/with/WithTitleUnique.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 public interface WithTitleUnique extends WithTitleGetter {
diff --git a/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/OutputType.java b/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/OutputType.java
index dfa4375..28d6a4c 100644
--- a/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/OutputType.java
+++ b/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/OutputType.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service;
 
 public enum OutputType {
diff --git a/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportModel.java b/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportModel.java
index 4124887..6abca3c 100644
--- a/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportModel.java
+++ b/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportModel.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service;
 
 import java.util.List;
diff --git a/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportService.java b/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportService.java
index f40dae0..9f7064c 100644
--- a/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportService.java
+++ b/subdomains/xdocreport/applib/src/main/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportService.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service;
 
 import java.io.ByteArrayInputStream;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportServiceTest.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportServiceTest.java
index b108409..e35e9d5 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportServiceTest.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/XDocReportServiceTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service;
 
 import java.io.File;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate0Fields.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate0Fields.java
index 4063f6c..487e765 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate0Fields.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate0Fields.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service.example;
 
 import java.io.File;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate1Docx.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate1Docx.java
index d396182..ca04f70 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate1Docx.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate1Docx.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service.example;
 
 import java.io.File;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate2Pdf.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate2Pdf.java
index 2c259dd..20de5e3 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate2Pdf.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/Generate2Pdf.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service.example;
 
 import java.io.File;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Developer.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Developer.java
index 0f887c0..6fea275 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Developer.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Developer.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service.example.models;
 
 import lombok.Data;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Project.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Project.java
index 0a3d07b..f9ef2a3 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Project.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/Project.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service.example.models;
 
 import lombok.Data;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/ProjectDevelopersModel.java b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/ProjectDevelopersModel.java
index ce23c1a..be756fd 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/ProjectDevelopersModel.java
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/models/ProjectDevelopersModel.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.xdocreport.applib.service.example.models;
 
 import java.util.List;
diff --git a/subdomains/zip/applib/src/main/java/org/apache/isis/extensions/zip/dom/impl/ZipService.java b/subdomains/zip/applib/src/main/java/org/apache/isis/extensions/zip/dom/impl/ZipService.java
index 00bbcc1..3d566dd 100644
--- a/subdomains/zip/applib/src/main/java/org/apache/isis/extensions/zip/dom/impl/ZipService.java
+++ b/subdomains/zip/applib/src/main/java/org/apache/isis/extensions/zip/dom/impl/ZipService.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.extensions.zip.dom.impl;
 
 import java.io.ByteArrayOutputStream;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/AbstractRandomValueGenerator.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/AbstractRandomValueGenerator.java
index 9018e70..c45271f 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/AbstractRandomValueGenerator.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/AbstractRandomValueGenerator.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 abstract class AbstractRandomValueGenerator {
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Addresses.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Addresses.java
index e979c50..2d3e806 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Addresses.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Addresses.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 public class Addresses extends AbstractRandomValueGenerator {
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigDecimals.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigDecimals.java
index 4fc77a8..06bddd1 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigDecimals.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigDecimals.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.math.BigDecimal;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigIntegers.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigIntegers.java
index 83284e8..937be09 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigIntegers.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/BigIntegers.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.math.BigInteger;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Books.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Books.java
index 38fadae..6950e2f 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Books.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Books.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 public class Books extends AbstractRandomValueGenerator {
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Booleans.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Booleans.java
index 71761bf..3ae699c 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Booleans.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Booleans.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 public class Booleans extends AbstractRandomValueGenerator {
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Bytes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Bytes.java
index 80df3da..07dcbea 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Bytes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Bytes.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Chars.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Chars.java
index d83f3ef..8bfa916 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Chars.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Chars.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Collections.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Collections.java
index a19e4aa..6d12d70 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Collections.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Collections.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.util.Collection;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Comms.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Comms.java
index 5f73bc5..57b92fa 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Comms.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Comms.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 public class Comms extends AbstractRandomValueGenerator {
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/CreditCards.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/CreditCards.java
index 977fe21..1acd090 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/CreditCards.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/CreditCards.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import com.github.javafaker.service.FakeValuesService;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Doubles.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Doubles.java
index 2eb90ae..0b23691 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Doubles.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Doubles.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.commons.lang3.RandomUtils;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Enums.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Enums.java
index 3092f85..7e3a8a9 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Enums.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Enums.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
index f7620ac..08ec285 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/FakeDataService.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.util.Locale;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Floats.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Floats.java
index c4abb35..d6c4276 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Floats.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Floats.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.commons.lang3.RandomUtils;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Integers.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Integers.java
index a0c7a08..a77c979 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Integers.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Integers.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.commons.lang3.RandomUtils;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisBlobs.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisBlobs.java
index 6a944b1..5fc0c2b 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisBlobs.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisBlobs.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.io.IOException;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisClobs.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisClobs.java
index ad05bf6..882acdc 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisClobs.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisClobs.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.io.IOException;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisMoneys.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisMoneys.java
index 6963391..945c518 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisMoneys.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisMoneys.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 //TODO[2249] deprecated
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisPasswords.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisPasswords.java
index aa7f0a8..fbed175 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisPasswords.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/IsisPasswords.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
index 9cb1ae8..7a1e2b6 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8DateTimes.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.time.OffsetDateTime;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
index 9848b45..d680e26 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8LocalDates.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.time.LocalDate;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8Periods.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8Periods.java
index 9d48976..b5dbc87 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8Periods.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/J8Periods.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.time.Period;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
index cb24104..6374f75 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlDates.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.sql.Date;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlTimestamps.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlTimestamps.java
index f09e44b..a0d90bd 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlTimestamps.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaSqlTimestamps.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.sql.Timestamp;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
index cca5a1a..4385b1c 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JavaUtilDates.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.time.OffsetDateTime;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
index 09326bc..8d33957 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaDateTimes.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.joda.time.DateTime;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
index 55af76e..7208639 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaLocalDates.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.joda.time.LocalDate;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
index 2b9d711..33bdf98 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/JodaPeriods.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Longs.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Longs.java
index df9f631..b08b3c7 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Longs.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Longs.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.commons.lang3.RandomUtils;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Lorem.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Lorem.java
index 79ad2af..17f217c 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Lorem.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Lorem.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.util.List;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Names.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Names.java
index 0a65c17..d736cce 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Names.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Names.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Shorts.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Shorts.java
index c4de854..b6a7f4b 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Shorts.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Shorts.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Strings.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Strings.java
index eaf507d..deaaa9d 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Strings.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Strings.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Urls.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Urls.java
index 2559667..04a5d0f 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Urls.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Urls.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.net.MalformedURLException;
diff --git a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Uuids.java b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Uuids.java
index 2a122e8..9984977 100644
--- a/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Uuids.java
+++ b/testing/fakedata/applib/src/main/java/org/apache/isis/testing/fakedata/applib/services/Uuids.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.util.UUID;
diff --git a/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java b/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
index 8d81d9b..54c7ba0 100644
--- a/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
+++ b/testing/fakedata/applib/src/test/java/org/apache/isis/testing/fakedata/applib/services/FakeDataServiceTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.applib.services;
 
 import java.net.URL;


[isis] 16/41: ISIS-2062: improving release docs

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

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

commit a8403e8fc0b5acc9d11f013ec66699bc9b371420
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 8 15:15:06 2020 +0000

    ISIS-2062: improving release docs
---
 .asf.yaml                                          |  12 ++
 antora/components/comguide/modules/ROOT/nav.adoc   |   3 +-
 .../comguide/modules/ROOT/pages/about.adoc         |   2 -
 .../ROOT/pages/antora-publish-procedure.adoc       |  14 +-
 .../modules/ROOT/pages/cutting-a-release.adoc      |   9 +-
 .../ROOT/pages/post-release-successful.adoc        |  49 +----
 .../release-process-for-interim-releases.adoc      |   5 +-
 .../ROOT/pages/release-process-for-snapshots.adoc  |  84 --------
 .../ROOT/pages/release-process-prereqs.adoc        |   2 +-
 .../modules/ROOT/pages/verifying-releases.adoc     |  44 ++--
 .../conguide/modules/ROOT/pages/contributing.adoc  |  99 ++++-----
 .../docs/modules/ROOT/pages/downloads/how-to.adoc  |  13 --
 .../ROOT/pages/what-is-apache-isis/powered-by.adoc |   2 +-
 .../adoc/modules/config/pages/sections/Other.adoc  |   2 +-
 .../adoc/modules/config/pages/sections/_nav.adoc   |   2 +-
 .../modules/config/pages/sections/isis.applib.adoc |  82 +++----
 .../pages/sections/isis.core.meta-model.adoc       |   2 +-
 .../isis.core.meta-model.introspector.adoc         |  16 +-
 .../sections/isis.core.meta-model.validator.adoc   |  66 +++---
 .../pages/sections/isis.core.runtime-services.adoc |  72 +++----
 .../config/pages/sections/isis.core.runtime.adoc   |   4 +-
 .../config/pages/sections/isis.extensions.adoc     |   4 +-
 .../modules/config/pages/sections/isis.legacy.adoc |   8 +-
 .../sections/isis.persistence.jdo-datanucleus.adoc |  15 +-
 .../isis.persistence.jdo-datanucleus.impl.adoc     | 238 +++++++++------------
 .../config/pages/sections/isis.security.shiro.adoc |   2 +-
 .../config/pages/sections/isis.testing.adoc        |   2 +-
 .../config/pages/sections/isis.value-types.adoc    |  62 +++---
 .../pages/sections/isis.viewer.restfulobjects.adoc |  23 +-
 .../config/pages/sections/isis.viewer.wicket.adoc  | 171 +++++++--------
 .../modules/config/pages/sections/resteasy.adoc    |  15 +-
 interim-release.sh                                 |  56 +++++
 32 files changed, 508 insertions(+), 672 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..bf84155
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,12 @@
+github:
+  description: "Apache Isisâ„¢ software is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or as a RESTful API. For prototyping or production. "
+  homepage: https://isis.apache.org/
+  labels:
+    - java
+    - web-framework
+    - domain-driven-design
+    - ddd
+    - rapid-application-development
+    - rad
+    - naked-objects
+    - restful-objects
diff --git a/antora/components/comguide/modules/ROOT/nav.adoc b/antora/components/comguide/modules/ROOT/nav.adoc
index 3688968..3825f86 100644
--- a/antora/components/comguide/modules/ROOT/nav.adoc
+++ b/antora/components/comguide/modules/ROOT/nav.adoc
@@ -6,8 +6,7 @@
 * xref:verifying-releases.adoc[Verifying Releases]
 * xref:post-release-successful.adoc[Post Release (Successful)]
 * xref:post-release-unsuccessful.adoc[Post Release (Unsuccessful)]
-* xref:release-process-for-snapshots.adoc[Release Process for Snapshots]
-* xref:release-process-for-interim-releases.adoc[Release Process for Interim Releases]
+* xref:release-process-for-interim-releases.adoc[Interim Releases]
 * xref:antora-publish-procedure.adoc[Antora Publish Procedure]
 * xref:key-generation.adoc[Key Generation]
 * xref:release-process-prereqs.adoc[Appendix: Release Process Prereqs]
diff --git a/antora/components/comguide/modules/ROOT/pages/about.adoc b/antora/components/comguide/modules/ROOT/pages/about.adoc
index 09cff55..ffcaba4 100644
--- a/antora/components/comguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/about.adoc
@@ -17,8 +17,6 @@ This committers' guide is for committers of Apache Isis itself who want guidance
 //
 //include::post-release-unsuccessful.adoc[leveloffset=+1]
 //
-//include::release-process-for-snapshots.adoc[leveloffset=+1]
-//
 //include::release-process-for-interim-releases.adoc[leveloffset=+1]
 //
 //include::antora-publish-procedure.adoc[leveloffset=+1]
diff --git a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
index ad3ca35..4c5e1e3 100644
--- a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
@@ -12,7 +12,7 @@ Apache Isis' documentation (meaning the website and the users' guide, the refere
 The website and guides are created by running build tools (documented below) which create the HTML version of the site and guides.
 You can therefore easily check the documentation before raising a pull request (as a contributor) or publishing the site (if a committer).
 
-For details of authoring/updating the documents and website, see the xref:conguide:ROOT:asciidoc.adoc[Contributors' Guide].
+For details of authoring/updating the documents and website, see the xref:conguide:documentation:about.adoc[Contributors' Guide].
 
 Publishing is performed by copying the generated HTML to a different git repository (link:https://github.com/apache/isis-site.git[isis-site]).
 This is synced by ASF infrastructure over to link:http://isis.apache.org[isis.apache.org].
@@ -51,6 +51,10 @@ git checkout asf-site
 
 == Preview
 
+WARNING: TODO: v2 - not yet updated.
+Need to figure out how to merge the v1 docs (as an archive) with Antora.
+Also, need to use Antora versioning rather than just 'master'
+
 To preview changes (ignoring PDFs), run:
 
 [source,bash]
@@ -71,6 +75,10 @@ There's generally little point in doing this, however.
 
 == Publishing (full build)
 
+WARNING: TODO: v2 - not yet updated.
+Need to figure out how to merge the v1 docs (as an archive) with Antora.
+Also, need to use Antora versioning rather than just 'master'
+
 The `content` directory for the published website contains not only the "current version" of the docs, but also has an archive of older versions of the document from earlier releases:
 
 [source]
@@ -127,6 +135,10 @@ This should therefore be updated whenever working on a new release.
 
 === New release
 
+WARNING: TODO: v2 - not yet updated.
+Need to figure out how to merge the v1 docs (as an archive) with Antora.
+Also, need to use Antora versioning rather than just 'master'
+
 When a new release is published, we therefore need to do a little extra work:
 
 * run `publish.sh` a first time
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 9e896ea..85a1fdf 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -442,7 +442,7 @@ Use the following subject, eg:
 
 And use the following body:
 
-[source,bash,subs="attributes+"]
+[source,subs="attributes+"]
 ----
 I've just cut a new release for Apache Isis Framework.
 
@@ -453,21 +453,20 @@ In the source code repo the code has been tagged as isis-{isisnext}-RC1; see htt
 
 To verify the source code, you can use the following commands (in an empty directory):
 
-    NEXUSREPONUM=10xx
     VERSION={isisnext}
+    NEXUSREPONUM=10xx
 
     curl http://www.apache.org/dist/isis/KEYS > /tmp/KEYS
     gpg --import /tmp/KEYS
 
     rm -rf isis-$VERSION*
 
-    curl -O -L https://raw.githubusercontent.com/apache/isis/xxxx/scripts/verify-isis-release.sh
+    curl -O -L https://raw.githubusercontent.com/apache/isis/master/scripts/verify-isis-release.sh
 
     chmod +x ./verify-isis-release.sh
     ./verify-isis-release.sh $NEXUSREPONUM $VERSION
 
-
-For more details, see https://isis.apache.org/toc/comguide/about.html#verifying-releases
+For more details, see https://isis.apache.org/comguide/verifying-releases.html
 
 Please verify the release and cast your vote.  The vote will be open for a minimum of 72 hours.
 
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index fa97486..78d17be 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -188,55 +188,12 @@ Create a new JIRA ticket as a catch-all for the _next_ release.
 
 Log the new release in the link:https://reporter.apache.org/addrelease.html?isis[ASF Reporter website].
 
-== Release image to Docker hub
-
-This is currently a placeholder.
-
-TODO:
-
-* This is currently dependent on https://issues.apache.org/jira/browse/INFRA-17518[INFRA-17518].
-
-* the entry: `<docker-plugin.imageName>` in `pom.xml` will need to change from `apacheisis/core` to simply `apache/isis-9.0.10-jre8-alpine`.
-
-* Once this has been implemented, we also need to update the documentation for helloworld and simpleapp in order to explain how to build and deploy a skinny war to a running container.
-
-The idea is to use `isis-webdocker` to create a new image, then upload.
-
-Prereqs are:
-
-[source,xml]
-.m2/settings.xml
-----
-<settings ...>
-  ...
-  <servers>
-    <server>
-      <id>docker-hub</id>
-      <username>danhaywood</username>
-      <password>xxx</password>
-      <configuration>
-        <email>xxx@xxx.xxx</email>
-      </configuration>
-    </server>
-  </servers>
-</settings>
-----
-
-\... because `isis-webdocker/pom.xml` references `docker-hub`.
-
-[source,bash]
-----
-cd core
-rm -rf ~/.m2/repository/org/apache/isis
-mvn -Drevision=$ISISREL \
-    -D docker-plugin.imageName="apacheisis/isis-9.0.10-jre8-alpine" \
-    -pl webdocker \
-    -D package-docker \
-    deploy
-----
 
 == Update website
 
+WARNING: TODO - v2 - need to update for Antora process.
+See also (or x-ref) the xref:antora-publish-procedure.adoc[antora publish procedure] section, also in this guide.
+
 In the main `isis` repo (ie containing the asciidoc source):
 
 * Paste in the JIRA-generated release notes generated above, adding to top of `antora/components/relnotes/modules/ROOT/pages/about.adoc`.
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
index 3f7b13d..03b5c90 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
@@ -11,8 +11,9 @@
 The intent of an "interim" release is to allow a developer team to release their application based on a `-SNAPSHOT` version of the framework.
 Since `-SNAPSHOT` changes on a day-to-day basis, the idea is to tag a particular revision and to release this, thereby providing stability/traceability for the application being developed.
 
-Whereas xref:comguide:ROOT:cutting-a-release.adoc.adoc[formal release]s and xref:comguide:ROOT:release-process-for-snapshots[snapshot release]s are public (released through the Maven repository maintained by Apache Software Foundation), interim releases are non-public and rely on infrastructure provided by a developer team.
-The tagged release resides __not__ in the xref:docs:ROOT:downloads.adoc#\__downloads_source_code[official Apache Isis git repository], but instead in a fork/clone maintained by the developer team.
+Whereas xref:comguide:ROOT:cutting-a-release.adoc.adoc[formal release]s are public (released through the Maven repository maintained by Apache Software Foundation), interim releases are non-public and rely on infrastructure provided by a developer team.
+The tagged release resides __not__ in the
+xref:docs:ROOT:downloads/how-to.adoc#source-code[official Apache Isis git repository], but instead in a fork/clone maintained by the developer team.
 
 == Prerequisites
 
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
deleted file mode 100644
index e6d7c9a..0000000
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
+++ /dev/null
@@ -1,84 +0,0 @@
-[[release-process-for-snapshots]]
-= Snapshot Releases
-: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 [...]
-:page-partial:
-
-
-
-
-
-
-Snapshot releases allows the current `-SNAPSHOT` version of the `core` modules of the framework to be released to the Maven snapshot repository maintained by Apache Software Foundation.
-
-[NOTE]
-====
-Unless otherwise stated, you should assume that the steps described here are performed in the base directory of the module being released.
-====
-
-== Prerequisites
-
-Before you start, make sure you've defined the snapshots repo in your local `~/.m2/settings.xml` file:
-
-[source,xml]
-----
-<settings>
-  <servers>
-    <!-- To publish a snapshot of some part of Maven -->
-    <server>
-      <id>apache.snapshots.https</id>
-      <username>xxxxxxx</username>
-      <password>yyyyyyy</password>
-    </server>
-    ...
-  </servers>
-  ...
-</settings>
-----
-
-where `xxxxxxx` and `yyyyyyy` are your Apache LDAP username and password.
-For more information, see these http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env[ASF docs].
-
-{note It is also possible to configure to use `.ssh` secure keys, and thereby avoid hardcoding your Apache LDAP password into your `.m2/settings.xml` file.
-A description of how to do this can be found, for example, http://bval.apache.org/release-setup.html[here].
-}
-
-== Sanity Check
-
-Before deploying the snapshot, perform a quick sanity check.
-
-First, delete all Isis artifacts from your local Maven repo:
-
-[source,bash]
-----
-rm -rf ~/.m2/repository/org/apache/isis
-----
-
-Next, check that the framework builds ok:
-
-[source,bash]
-----
-cd core
-mvn clean install -o
-----
-
-Confirm that the versions of the Isis artifacts now cached in your local repository are correct (both those pulled down from Maven central repo, as well as those of the component built locally).
-
-== Deploy
-
-Deploy the framework using:
-
-[source,bsah]
-----
-cd core
-mvn -D deploy=snapshot deploy
-----
-
-This will deploy all the modules that make up a release.
-
-[TIP]
-====
-Expect this to take about 10 minutes, give or take.
-====
-
-To confirm that they are present, browse to Apache's https://repository.apache.org[Nexus repository manager] and search for "isis".
-
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
index 9d143fc..3ddfceb 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
@@ -9,7 +9,7 @@
 
 
 
-This section (appendix) describes the prerequisites for the xref:comguide:ROOT:release-process.adoc[release process].
+This section (appendix) describes the prerequisites for the xref:comguide:ROOT:cutting-a-release.adoc[release process].
 
 == Configure toolchains plugin
 
diff --git a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
index 364662a..610bf66 100644
--- a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
@@ -14,11 +14,11 @@ The release process consists of:
 * members of the Apache Isis PMC verifying and voting on the release (documented below)
 * the release manager performing post-release tasks, for either a xref:comguide:ROOT:post-release-successful.adoc.adoc[successful] or an xref:comguide:ROOT:post-release-unsuccessful[unsuccessful] vote.
 
-This section describes some guidance on what a voter (members of the Apache Isis PMC and anyone else who wishes) is expected to do before casting their vote in order to verify a release.
+This section describes some guidance on what a voter (members of the Apache Isis PMC and anyone else who wishes) is expected to xref:comguide:ROOT:release-process.adocdo before casting their vote in order to verify a release.
 
 == Background
 
-Whenever a release manager announces a vote on a release (as per the xref:comguide:ROOT:release-process.adoc[release process]) on the xref:docs:ROOT:support.adoc#[dev mailing list], it is the responsibility of the project's PMC to cast their vote on the release.
+Whenever a release manager announces a vote on a release (as per the [release process]) on the xref:docs:support:mailing-list.adoc#mailing-lists[dev mailing list], it is the responsibility of the project's PMC to cast their vote on the release.
 Anyone else can also vote, but only members of the Apache Isis PMC's vote are binding.
 
 Per this http://www.apache.org/dev/release.html[ASF documentation], the legal requirements for an ASF release are:
@@ -35,27 +35,12 @@ Details of how to do this are also documented below.
 
 You will also require the following commands/tools:
 
-* `bash`
-+
-to run shell script
-
-* `curl`
-+
-to download the ZIP files
-
-* `gpg`
-+
-to verify signatures
-
-* `unzip`
-+
-to unzip the ZIP files
-
-* JDK 7
-
+* `bash` - to run shell script
+* `curl` or `wget` - to download the ZIP files
+* `gpg` - to verify signatures
+* `unzip` - to unzip the ZIP files
+* JDK 8
 * Apache Maven (`mvn`) 3.5.0+
-+
-to build the code
 
 == Verifying source artifacts
 
@@ -64,15 +49,15 @@ Run these commands (they should also be listed in the VOTE email):
 
 [source,bash,subs="attributes+"]
 ----
-NEXUSREPONUM=10xx                   # <1>
 VERSION={isisnext}
+NEXUSREPONUM=10xx                   # <1>
 
 curl http://www.apache.org/dist/isis/KEYS > /tmp/KEYS
 gpg --import /tmp/KEYS
 
 rm -rf isis-$VERSION*
 
-curl -O -L https://gist.githubusercontent.com/danhaywood/xxx/raw/xxx/verify-isis-release.sh
+curl -O -L https://raw.githubusercontent.com/apache/isis/master/scripts/verify-isis-release.sh
 
 chmod +x ./verify-isis-release.sh
 ./verify-isis-release.sh $NEXUSREPONUM $VERSION
@@ -81,13 +66,13 @@ chmod +x ./verify-isis-release.sh
 
 Just copy and paste these commands to your terminal, and run.
 
-The `verify-isis-release.sh` script performs the following:
+The `verify-isis-release.sh` script:
 
-* it downloads artifacts (`.zip` files and `.asc` files from the staging repository hosted on the Apache (Nexus) repository server.
+* downloads artifacts (`.zip` files and `.asc` files from the staging repository hosted on the Apache (Nexus) repository server.
 +
 The location of this repository will be in the VOTE email.
 
-* it verifies that the signatures are correct
+* verifies that the signatures are correct
 +
 in other words, to confirm that the release was created by an Apache Isis committer
 
@@ -133,11 +118,12 @@ Configuring your local Maven install amounts to updating the `~/.m2/settings.xml
 ----
 
 where the repository URL is as provided in the VOTE email.
-If there is more than one repository (as is sometimes the case if multiple components have been released), then repeat the <repository> section for each.
+If there is more than one repository (as is sometimes the case if multiple components have been released), then repeat the `<repository>` section for each.
 
-Once the vote has completed, the staging repositories will be removed and so you should deactive the profile (comment out the `&lt;activeProfile&gt;` element).
+Once the vote has completed, the staging repositories will be removed and so you should deactive the profile (comment out the `<activeProfile>` element).
 If you forget to deactive the profile, there should be no adverse effects; Maven will just spend unnecessary cycles attempting to hit a non-existent repo.
 
+
 == (Optional) Creadur Tools
 
 The http://creadur.apache.org[Apache Creadur] project exists to provide a set of tools to ensure compliance with Apache's licensing standards.
diff --git a/antora/components/conguide/modules/ROOT/pages/contributing.adoc b/antora/components/conguide/modules/ROOT/pages/contributing.adoc
index e1014de..50bd425 100644
--- a/antora/components/conguide/modules/ROOT/pages/contributing.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/contributing.adoc
@@ -11,7 +11,6 @@ You'll probably also want xref:setupguide:ROOT:ide.adoc[set up your IDE] and lea
 
 Thanks for considering to help out, your contributions are appreciated!
 
-
 == Recommended Workflow (github)
 
 Apache Isis' source code is hosted in at github (https://github.com/apache/isis.git[https], or ssh: `git@github.com:apache/isis.git`).
@@ -31,18 +30,15 @@ That is:
 . you set the https://github.com/apache/isis.git[github.com/apache/isis] as your upstream branch; this will allow you to keep your local clone up-to-date with new commits
 * note the asymmetry here: the `upstream` repo (the Apache github repo) is *not* the same as the `origin` repo (your fork).
 . you work on your changes locally; when done, you push them to your github fork
-. to contribute back a change, raise a https://issues.apache.org/jira/browse/ISIS[JIRA] ticket, and ensure your commit message is in the form: `ISIS-nnnn: ...` so that changes can be tracked (more discussion on this point below). In any case, before you decide to start hacking with Apache Isis, it's always worth creating a ticket in JIRA and then have a discussion about it on the xref:docs:ROOT:support.adoc#[mailing lists].
+. to contribute back a change, raise a https://issues.apache.org/jira/browse/ISIS[JIRA] ticket, and ensure your commit message is in the form: `ISIS-nnnn: ...` so that changes can be tracked (more discussion on this point below).
+In any case, before you decide to start hacking with Apache Isis, it's always worth creating a ticket in JIRA and then have a discussion about it on the xref:docs:support:mailing-list.adoc#mailing-lists#[mailing lists].
 . Use github to raise a https://help.github.com/articles/using-pull-requests/[pull request] for your feature
 . An Apache Isis committer will review your change, and apply it if suitable.
 
-
-
-
-
-
 == Setting up your fork/clone
 
-If you choose to create your own fork then you'll need an account on https://github.com[github.com]. You then fork simply by pressing the "Fork" button:
+If you choose to create your own fork then you'll need an account on https://github.com[github.com].
+You then fork simply by pressing the "Fork" button:
 
 
 image::contributing/github-forking.png[width="600px",link="{imagesdir}/contributing/github-forking.png"]
@@ -51,7 +47,8 @@ image::contributing/github-forking.png[width="600px",link="{imagesdir}/contribut
 
 An account isn't needed if you just clone straight from the http://github.com/apache/isis[github.com/apache/isis].
 
-Whether you've forked or not, you then need to clone the repo onto your computer. Github makes this very easy to do:
+Whether you've forked or not, you then need to clone the repo onto your computer.
+Github makes this very easy to do:
 
 * for Windows users, we suggest you use github's 'Clone in Windows' feature
 * for Mac/Linux users, create a clone from the command line:
@@ -62,26 +59,25 @@ Again, the info is easily found in the github page:
 
 image::contributing/github-cloning.png[width="600px",link="{imagesdir}/contributing/github-cloning.png"]
 
-If you've created your own fork, then you need to add the `upstream` remote to the https://github.com/apache/isis[github.com/apache/isis]. This remote is traditionally called `upstream`. You should then arrange for your `master` branch to track the `upstream/master` remote branch:
-
-If you didn't create your own fork, you can omit the above step. Either way around, you can now fetch new commits using simply:
+If you've created your own fork, then you need to add the `upstream` remote to the https://github.com/apache/isis[github.com/apache/isis].
+This remote is traditionally called `upstream`.
+You should then arrange for your `master` branch to track the `upstream/master` remote branch:
 
+If you didn't create your own fork, you can omit the above step.
+Either way around, you can now fetch new commits using simply:
 
 [source,bash]
 ----
 git fetch
 ----
 
-
 For more info on tracking branches http://git-scm.com/book/en/Git-Branching-Remote-Branches[here] and http://gitready.com/beginner/2009/03/09/remote-tracking-branches.html[here].
 
-
-
-
-
 == Commit messages
 
-Although with git your commits are always performed on your local repo, those commit messages become public when the patch is applied by an Apache Isis committer. You should take time to write a meaningful commit message that helps explain what the patch refers to; if you don't then there's a chance that your patch may be rejected and not applied. No-one likes hard work to go to waste!
+Although with git your commits are always performed on your local repo, those commit messages become public when the patch is applied by an Apache Isis committer.
+You should take time to write a meaningful commit message that helps explain what the patch refers to; if you don't then there's a chance that your patch may be rejected and not applied.
+No-one likes hard work to go to waste!
 
 We therefore recommend that your commit messages are as follows:footnote:[Inspiration for the recommended commit format comes from the https://github.com/puppetlabs/puppet[puppet] project's https://github.com/puppetlabs/puppet/blob/master/CONTRIBUTING.md[contributing] page.]
 
@@ -100,11 +96,6 @@ from our issue tracker.  The body describes the behavior without the patch,
 why this is a problem, and how the patch fixes the problem when applied.
 ----
 
-
-
-
-
-
 == Creating the patch file
 
 If you are working without a github fork of Apache Isis, then you can create the patches from your own local git repository.
@@ -116,20 +107,21 @@ As per http://stackoverflow.com/questions/6658313/generate-a-git-patch-for-a-spe
 git format-patch -10 HEAD --stdout > 0001-last-10-commits.patch
 ----
 
-Here `-10` is the last 10 commits you have done. You need to change that integer according to the commits you need to apply into the patch.
-
-
-
+Here `-10` is the last 10 commits you have done.
+You need to change that integer according to the commits you need to apply into the patch.
 
 == Sample Contribution Workflow
 
-Assuming you're development environment is all setup, let's walk through how you might make contribute a patch. In this example, suppose that you've decided to work on JIRA ticket #123, an enhancement to support Blob/Clob datatypes.
+Assuming you're development environment is all setup, let's walk through how you might make contribute a patch.
+In this example, suppose that you've decided to work on JIRA ticket #123, an enhancement to support Blob/Clob datatypes.
 
 === Update your master branch
 
-The first thing to do is to make sure your local clone is up-to-date. We do this by retrieving new commits from upstream repo and then merging them as a fast-forward into your local branch.
+The first thing to do is to make sure your local clone is up-to-date.
+We do this by retrieving new commits from upstream repo and then merging them as a fast-forward into your local branch.
 
-Irrespective of whether you are using a github fork, the upstream for your local `master` branch will be tracking the appropriate remote's `master` branch. So n either case, the same commands work:
+Irrespective of whether you are using a github fork, the upstream for your local `master` branch will be tracking the appropriate remote's `master` branch.
+So n either case, the same commands work:
 
 Alternatively, you can combine the `git fetch` and `git merge` and just use `git pull`:
 
@@ -139,23 +131,23 @@ git checkout master
 git pull --ff-only
 ----
 
-If the `merge` or `pull` fails, it means that you must have made commits and there have been changes meanwhile on the remote `master`'s branch. You can use `gitk --all` to confirm. If this fails, see our xref:setupguide:git:about.adoc[git cookbook] page for a procedure to retrospectively sort out this situation.
-
-
+If the `merge` or `pull` fails, it means that you must have made commits and there have been changes meanwhile on the remote `master`'s branch.
+You can use `gitk --all` to confirm.
+If this fails, see our xref:setupguide:git:about.adoc[git cookbook] page for a procedure to retrospectively sort out this situation.
 
 === Create a topic branch
 
-We recommend you name topic branches by the JIRA ticket, ie <tt>ISIS-nnn-description</tt>. So let's create a new branch based off `master` and call it "ISIS-123-blobs"
-
-You can confirm the branch is there and is your new `HEAD` using either `gitk --all`. Alternatively, use the command line:
+We recommend you name topic branches by the JIRA ticket, ie <tt>ISIS-nnn-description</tt>.
+So let's create a new branch based off `master` and call it "ISIS-123-blobs"
 
+You can confirm the branch is there and is your new `HEAD` using either `gitk --all`.
+Alternatively, use the command line:
 
 [source,bash]
 ----
 $ git checkout -b ISIS-123-blobs
 ----
 
-
 The command line prompt should also indicate you are on a branch, isolated from any changes that might happen on the `master` branch.
 
 === Make File Changes and Commit
@@ -170,10 +162,8 @@ Next, make changes to your files using the usual commands (see also our xref:set
 
 and so on.
 
-Continue this way until happy with the change. Remember to run all your tests on the topic branch (including a full `mvn clean install`).
-
-
-
+Continue this way until happy with the change.
+Remember to run all your tests on the topic branch (including a full `mvn clean install`).
 
 === Rebasing with `master`
 
@@ -181,7 +171,8 @@ Before you can share your change, you should rebase (in other words replay) your
 
 The first thing to do is to pull down any changes made in upstream remote's `master` since you started your topic branch:
 
-These are the same commands that you would have run before you created your topic branch. If you use `gitk --all`, there's a good chance that new commits have come in.
+These are the same commands that you would have run before you created your topic branch.
+If you use `gitk --all`, there's a good chance that new commits have come in.
 
 Next, we reintegrate our topic branch by rebasing onto `master`:
 
@@ -191,21 +182,25 @@ git checkout ISIS-123-blobs
 git rebase master
 ----
 
-This takes all of the commits in your branch, and applies them on top of the new `master` branch. When your change is eventually integrated back in, it will result in a nice clear linear history on the public repo.
+This takes all of the commits in your branch, and applies them on top of the new `master` branch.
+When your change is eventually integrated back in, it will result in a nice clear linear history on the public repo.
 
-If the rebase fails because of a conflict, then you'll be dumped into REBASE mode. Edit the file that has the conflict, and make the appropriate edits. Once done:
+If the rebase fails because of a conflict, then you'll be dumped into REBASE mode.
+Edit the file that has the conflict, and make the appropriate edits.
+Once done:
 
 Once the rebase has completed, re-run your tests to confirm that everything is still good.
 
-
-
 === Raising a pull request
 
 If you have your own fork, you can now simply push the changes you've made locally to your fork:
 
-This will create a corresponding branch in the remote github repo. If you use `gitk --all`, you'll also see a `remotes/origin/ISIS-123-blobs` branch.
+This will create a corresponding branch in the remote github repo.
+If you use `gitk --all`, you'll also see a `remotes/origin/ISIS-123-blobs` branch.
 
-Then, use github to raise a https://help.github.com/articles/using-pull-requests/[pull request]. Pull requests sent to the Apache GitHub repositories will forward a pull request e-mail to the xref:docs:ROOT:support.adoc#[dev mailing list]. You'll probably want to sign up to the dev mailing list first before issuing your first pull request (though that isn't mandatory).
+Then, use github to raise a https://help.github.com/articles/using-pull-requests/[pull request].
+Pull requests sent to the Apache GitHub repositories will forward a pull request e-mail to the xref:docs:support:mailing-list.adoc#mailing-lists#[dev mailing list].
+You'll probably want to sign up to the dev mailing list first before issuing your first pull request (though that isn't mandatory).
 
 The process to raise the pull request, broadly speaking:
 
@@ -214,8 +209,6 @@ The process to raise the pull request, broadly speaking:
 * Click the `Pull Request` button.
 * Check that the Apache Isis mailing list email came through.
 
-
-
 == If your pull request is accepted
 
 To double check that your pull request is accepted, update your `master` branch from the `upstream` remote:
@@ -224,9 +217,8 @@ You can then use `gitk --all` (or `git log` if you prefer the command line) to c
 
 You can now delete your topic branch and remove the branch in your github:
 
-Finally, you might want to push the latest changes in master back up to your github fork. If so, use:
-
-
+Finally, you might want to push the latest changes in master back up to your github fork.
+If so, use:
 
 === If your pull request is rejected
 
@@ -239,5 +231,4 @@ You'll probably also want to remove the remote branch on github:
 git push origin --delete ISIS-123-blobs
 ----
 
-
 \... and continue as before until you are ready to resubmit your change.
diff --git a/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc b/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
index c27f7a2..3e9e008 100644
--- a/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
+++ b/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
@@ -93,16 +93,3 @@ The http://projects.apache.org/doap.html[description of a project] RDF file for
 
 
 
-== Incode Platform
-
-The link:https://platform.incode.org[Incode Platform^] provides a number of (open source, but not ASF) supporting modules and extensions for you to use:
-
-* technical libraries, such as excel, word and freemarker
-
-* SPI implementations, such as security, commands, auditing and publishing
-
-* framework extensions, such as flyway, quartz and feature toggles
-
-* wicket components, such as maps, calendars and PDF viewer
-
-Each module can be used independently or combined, and the Incode Platform also provides a quickstart application to get you started quickly.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
index ff88fc3..bde0a3e 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
@@ -10,7 +10,7 @@ This page catalogues a few notable applications that are powered by Apache Isis
 
 [TIP]
 ====
-If you have written an app in Apache Isis that you'd like to share, please mention it on the xref:docs:ROOT:support.adoc#[mailing list].
+If you have written an app in Apache Isis that you'd like to share, please mention it on the xref:docs:support:mailing-list.adoc#mailing-lists#[mailing list].
 ====
 
 include::powered-by/estatio.adoc[leveloffset=+1]
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
index 38f425f..441bdf0 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
@@ -14,7 +14,7 @@ include::../section-hooks/Other~pre.adoc[]
 [[isis.as-map]]
 isis.as-map
 
-|
+| 
 | null
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
index 672d387..ff02f76 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
@@ -1,4 +1,4 @@
-: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 [...]
+: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 [...]
 
 ** xref:refguide:config:sections/isis.applib.adoc[Applib]
 ** xref:refguide:config:sections/isis.core.meta-model.adoc[Core MetaModel]
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
index 9928f12..1f32911 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
@@ -16,7 +16,7 @@ isis.applib.annotation. +
 action-layout.css-class-fa. +
 patterns
 
-|
+| 
 | Provides a mapping of patterns to font-awesome CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's menu icon if rendered by the Wicket viewer.
 
 Providing a default set of patterns encourages a common set of verbs to be used.
@@ -27,10 +27,9 @@ The font awesome class for individual actions can be overridden using ``ActionLa
 |
 [[isis.applib.annotation.action-layout.css-class.patterns]]
 isis.applib.annotation. +
-action-layout.css-class. +
-patterns
+action-layout.css-class.patterns
 
-|
+| 
 | Provides a mapping of patterns to CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's button if rendered by the Wicket viewer.
 
 Providing a default set of patterns encourages a common set of verbs to be used.
@@ -43,7 +42,7 @@ The CSS class for individual actions can be overridden using ``ActionLayout#cssC
 isis.applib.annotation.action. +
 command
 
-|
+| 
 | The default for whether action invocations should be reified as a ``Command`` using the ``CommandService``, possibly so that the actual execution of the action can be deferred until later (background execution) or replayed against a copy of the system.
 
 In particular, the ``CommandWithDto`` implementation of ``Command`` represents the action invocation memento (obtained using ``CommandWithDto#asDto()``) as a ``CommandDto``.
@@ -73,7 +72,7 @@ The algorithm for determining whether (and what type of) an event is actually se
 isis.applib.annotation.action. +
 explicit
 
-|
+| 
 | Whether or not a public method needs to be annotated with @``Action`` in order to be picked up as an action in the metamodel.
 
 
@@ -82,7 +81,7 @@ explicit
 isis.applib.annotation.action. +
 publishing
 
-|
+| 
 | The default for whether action invocations should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the action invoked, the action arguments and the returned object (if any).
@@ -93,10 +92,9 @@ This setting can be overridden on a case-by-case basis using ``Action#publishing
 |
 [[isis.applib.annotation.collection-layout.default-view]]
 isis.applib.annotation. +
-collection-layout. +
-default-view
+collection-layout.default-view
 
-|
+| 
 | Defines the initial view to display collections when rendered.
 
 The value of this can be overridden on a case-by-case basis using ``CollectionLayout#defaultView()``. Note that this default configuration property is an enum and so defines only a fixed number of values, whereas the annotation returns a string; this is to allow for flexibility that individual viewers might support their own additional types. For example, the Wicket viewer supports
@@ -115,9 +113,8 @@ This can be overridden on a case-by-case basis using ``CollectionLayout#paged()`
 
 |
 [[isis.applib.annotation.collection.domain-event.post-for-default]]
-isis.applib.annotation. +
-collection.domain-event. +
-post-for-default
+isis.applib.annotation.collection. +
+domain-event.post-for-default
 
 |  true
 | Influences whether an ``CollectionDomainEvent`` should be published (on the internal ``EventBusService``) whenever a collection is being interacted with.
@@ -151,8 +148,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 |
 [[isis.applib.annotation.domain-object-layout.icon-ui-event.post-for-default]]
 isis.applib.annotation. +
-domain-object-layout. +
-icon-ui-event. +
+domain-object-layout.icon-ui-event. +
 post-for-default
 
 |  true
@@ -169,8 +165,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 [[isis.applib.annotation.domain-object-layout.layout-ui-event.post-for-default]]
 isis.applib.annotation. +
 domain-object-layout. +
-layout-ui-event. +
-post-for-default
+layout-ui-event.post-for-default
 
 |  true
 | Influences whether an ``LayoutUiEvent`` should be published (on the internal ``EventBusService``) whenever a domain object is about to be rendered in the UI - thereby allowing subscribers to optionally ``LayoutUiEvent#setLayout(String)`` change) the layout that is used.
@@ -199,8 +194,7 @@ This can be overridden on a case-by-case basis using ``DomainObjectLayout#paged(
 [[isis.applib.annotation.domain-object-layout.title-ui-event.post-for-default]]
 isis.applib.annotation. +
 domain-object-layout. +
-title-ui-event. +
-post-for-default
+title-ui-event.post-for-default
 
 |  true
 | Influences whether an ``TitleUiEvent`` should be published (on the internal ``EventBusService``) whenever a domain object is about to be rendered in the UI - thereby allowing subscribers to optionally ``TitleUiEvent#setTitle(String)`` change) the title that is used.
@@ -217,7 +211,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 isis.applib.annotation. +
 domain-object.auditing
 
-|
+| 
 | The default for whether _domain entities_ should be audited or not (meaning that any changes are sent through to the ``AuditerService``.
 
 This setting can be overridden on a case-by-case basis using ``DomainObject#auditing()`` DomainObject#getAuditing()}
@@ -247,7 +241,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 isis.applib.annotation. +
 domain-object.editing
 
-|
+| 
 | The default for whether the properties of domain objects can be edited, or whether instead they can be modified only using actions (or programmatically as a side-effect of actions on other objects).
 
 This setting can be overridden on a case-by-case basis using DomainObject#getEditing()
@@ -315,7 +309,7 @@ Note: this applies only to domain entities, not to view models.
 isis.applib.annotation. +
 domain-object.publishing
 
-|
+| 
 | The default for whether the identities of changed objects should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``PublishedObjects`` collecting details of all changed domain objects.
@@ -385,10 +379,9 @@ Note: this applies only to domain entities, not to view models.
 |
 [[isis.applib.annotation.parameter-layout.label-position]]
 isis.applib.annotation. +
-parameter-layout. +
-label-position
+parameter-layout.label-position
 
-|
+| 
 | Defines the default position for the label for an action parameter.
 
 Can be overridden on a case-by-case basis using ``ParameterLayout#labelPosition()``.
@@ -399,10 +392,9 @@ If left as ``LabelPosition#NOT_SPECIFIED`` and not overridden, then the position
 |
 [[isis.applib.annotation.property-layout.label-position]]
 isis.applib.annotation. +
-property-layout. +
-label-position
+property-layout.label-position
 
-|
+| 
 | Defines the default position for the label for a domain object property.
 
 Can be overridden on a case-by-case basis using ``ParameterLayout#labelPosition()``.
@@ -412,10 +404,10 @@ If left as ``LabelPosition#NOT_SPECIFIED`` and not overridden, then the position
 
 |
 [[isis.applib.annotation.property.command]]
-isis.applib.annotation. +
-property.command
+isis.applib.annotation.property. +
+command
 
-|
+| 
 | The default for whether property edits should be reified as a ``Command`` using the ``CommandService``, possibly so that the actual execution of the property edit can be deferred until later (background execution) or replayed against a copy of the system.
 
 In particular, the ``CommandWithDto`` implementation of ``Command`` represents the action invocation memento (obtained using ``CommandWithDto#asDto()``) as a ``CommandDto``.
@@ -425,9 +417,8 @@ This setting can be overridden on a case-by-case basis using ``Action#command()`
 
 |
 [[isis.applib.annotation.property.domain-event.post-for-default]]
-isis.applib.annotation. +
-property.domain-event. +
-post-for-default
+isis.applib.annotation.property. +
+domain-event.post-for-default
 
 |  true
 | Influences whether an ``PropertyDomainEvent`` should be published (on the internal ``EventBusService``) whenever an property is being interacted with.
@@ -443,10 +434,10 @@ The algorithm for determining whether (and what type of) an event is actually se
 
 |
 [[isis.applib.annotation.property.publishing]]
-isis.applib.annotation. +
-property.publishing
+isis.applib.annotation.property. +
+publishing
 
-|
+| 
 | The default for whether property edits should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the property edited, and the new value of the property.
@@ -474,8 +465,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 |
 [[isis.applib.annotation.view-model-layout.icon-ui-event.post-for-default]]
 isis.applib.annotation. +
-view-model-layout. +
-icon-ui-event. +
+view-model-layout.icon-ui-event. +
 post-for-default
 
 |  true
@@ -491,8 +481,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 |
 [[isis.applib.annotation.view-model-layout.layout-ui-event.post-for-default]]
 isis.applib.annotation. +
-view-model-layout. +
-layout-ui-event. +
+view-model-layout.layout-ui-event. +
 post-for-default
 
 |  true
@@ -510,8 +499,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 |
 [[isis.applib.annotation.view-model-layout.title-ui-event.post-for-default]]
 isis.applib.annotation. +
-view-model-layout. +
-title-ui-event. +
+view-model-layout.title-ui-event. +
 post-for-default
 
 |  true
@@ -526,11 +514,11 @@ The algorithm for determining whether (and what type of) an event is sent depend
 
 |
 [[isis.applib.annotation.view-model.validation.semantic-checking.enable]]
-isis.applib.annotation. +
-view-model.validation. +
-semantic-checking.enable
+isis.applib.annotation.view-model. +
+validation.semantic-checking. +
+enable
 
-|
+| 
 | Whether to check for inconsistencies between the usage of ``DomainObject``, ``ViewModel``, ``DomainObjectLayout`` and ``ViewModelLayout``.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
index 82f55d6..de9e667 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
@@ -27,7 +27,7 @@ isis.core.meta-model. +
 programming-model. +
 ignore-deprecated
 
-|
+| 
 | If set, then any aspects of the programming model (as implemented by ``FacetFactory``s that have been indicated as deprecated will simply be ignored/excluded from the metamodel.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
index e6eb692..7df49a3 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
@@ -12,8 +12,7 @@ include::../section-hooks/isis.core.meta-model.introspector~pre.adoc[]
 |Description
 |
 [[isis.core.meta-model.introspector.lock-after-full-introspection]]
-isis.core.meta-model. +
-introspector. +
+isis.core.meta-model.introspector. +
 lock-after-full-introspection
 
 |  true
@@ -24,10 +23,10 @@ Only applies if the introspector is configured to perform full introspection up-
 
 |
 [[isis.core.meta-model.introspector.mode]]
-isis.core.meta-model. +
-introspector.mode
+isis.core.meta-model.introspector. +
+mode
 
-|
+| 
 | Whether all known types should be fully introspected as part of the bootstrapping, or should only be partially introspected initially.
 
 Leaving this as lazy means that there's a chance that metamodel validation errors will not be discovered during bootstrap. That said, metamodel validation is still run incrementally for any classes introspected lazily after initial bootstrapping (unless ``#isValidateIncrementally()`` is disabled.
@@ -35,8 +34,8 @@ Leaving this as lazy means that there's a chance that metamodel validation error
 
 |
 [[isis.core.meta-model.introspector.parallelize]]
-isis.core.meta-model. +
-introspector.parallelize
+isis.core.meta-model.introspector. +
+parallelize
 
 |  true
 | Whether to perform introspection in parallel.
@@ -44,8 +43,7 @@ introspector.parallelize
 
 |
 [[isis.core.meta-model.introspector.validate-incrementally]]
-isis.core.meta-model. +
-introspector. +
+isis.core.meta-model.introspector. +
 validate-incrementally
 
 |  true
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
index 34ed16f..93b78a7 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
@@ -12,8 +12,7 @@ include::../section-hooks/isis.core.meta-model.validator~pre.adoc[]
 |Description
 |
 [[isis.core.meta-model.validator.action-collection-parameter-choices]]
-isis.core.meta-model. +
-validator. +
+isis.core.meta-model.validator. +
 action-collection-parameter- +
 choices
 
@@ -23,8 +22,8 @@ choices
 
 |
 [[isis.core.meta-model.validator.allow-deprecated]]
-isis.core.meta-model. +
-validator.allow-deprecated
+isis.core.meta-model.validator. +
+allow-deprecated
 
 |  true
 | This setting is used to determine whether the use of such deprecated features is allowed.
@@ -36,8 +35,7 @@ Note that this settings has no effect if the programming model has been configur
 
 |
 [[isis.core.meta-model.validator.ensure-unique-object-types]]
-isis.core.meta-model. +
-validator. +
+isis.core.meta-model.validator. +
 ensure-unique-object-types
 
 |  true
@@ -48,11 +46,10 @@ It is _highly advisable_ to leave this set as enabled (the default), and to also
 
 |
 [[isis.core.meta-model.validator.explicit-object-type]]
-isis.core.meta-model. +
-validator. +
+isis.core.meta-model.validator. +
 explicit-object-type
 
-|
+| 
 | Whether to ensure that the object type of all objects must be specified explicitly, using either ``DomainObject#objectType()`` or ``DomainService#objectType()``.
 
 It is _highly advisable_ to leave this set as enabled (the default). These object types should also (of course) be unique - that can be checked by setting the ``#isEnsureUniqueObjectTypes()`` config property.
@@ -60,8 +57,8 @@ It is _highly advisable_ to leave this set as enabled (the default). These objec
 
 |
 [[isis.core.meta-model.validator.jaxb-view-model.date-time-type-adapter]]
-isis.core.meta-model. +
-validator.jaxb-view-model. +
+isis.core.meta-model.validator. +
+jaxb-view-model. +
 date-time-type-adapter
 
 |  true
@@ -70,19 +67,17 @@ date-time-type-adapter
 
 |
 [[isis.core.meta-model.validator.jaxb-view-model.no-arg-constructor]]
-isis.core.meta-model. +
-validator.jaxb-view-model. +
-no-arg-constructor
+isis.core.meta-model.validator. +
+jaxb-view-model.no-arg-constructor
 
-|
+| 
 | If set, then ensures that all JAXB-style view models have a no-arg constructor.
 
 
 |
 [[isis.core.meta-model.validator.jaxb-view-model.not-abstract]]
-isis.core.meta-model. +
-validator.jaxb-view-model. +
-not-abstract
+isis.core.meta-model.validator. +
+jaxb-view-model.not-abstract
 
 |  true
 | If set, then ensures that all JAXB-style view models are concrete classes, not abstract.
@@ -90,9 +85,8 @@ not-abstract
 
 |
 [[isis.core.meta-model.validator.jaxb-view-model.not-inner-class]]
-isis.core.meta-model. +
-validator.jaxb-view-model. +
-not-inner-class
+isis.core.meta-model.validator. +
+jaxb-view-model.not-inner-class
 
 |  true
 | If set, then ensures that all JAXB-style view models are either top-level classes or nested static classes (in other words, checks that they are not anonymous, local nor nested non-static classes).
@@ -100,8 +94,8 @@ not-inner-class
 
 |
 [[isis.core.meta-model.validator.jaxb-view-model.reference-type-adapter]]
-isis.core.meta-model. +
-validator.jaxb-view-model. +
+isis.core.meta-model.validator. +
+jaxb-view-model. +
 reference-type-adapter
 
 |  true
@@ -110,8 +104,8 @@ reference-type-adapter
 
 |
 [[isis.core.meta-model.validator.jdoql.from-clause]]
-isis.core.meta-model. +
-validator.jdoql.from-clause
+isis.core.meta-model.validator. +
+jdoql.from-clause
 
 |  true
 | If set, then ensures that the 'FROM' clause within any JDOQL ``@Query``s annotations relates to a known entity type, and moreover that that type is compatible with the type on which the annotation appears: meaning its either a supertype of or the same type as the annotated type.
@@ -119,9 +113,8 @@ validator.jdoql.from-clause
 
 |
 [[isis.core.meta-model.validator.jdoql.variables-clause]]
-isis.core.meta-model. +
-validator.jdoql. +
-variables-clause
+isis.core.meta-model.validator. +
+jdoql.variables-clause
 
 |  true
 | If set, then ensures that the 'VARIABLES' clause within any JDOQL ``@Query``s relates to a known entity type.
@@ -129,10 +122,10 @@ variables-clause
 
 |
 [[isis.core.meta-model.validator.no-params-only]]
-isis.core.meta-model. +
-validator.no-params-only
+isis.core.meta-model.validator. +
+no-params-only
 
-|
+| 
 | If set, then checks that the supports ``hideXxx`` and ``disableXxx`` methods for actions do not have take parameters.
 
 Historically, the programming model allowed these methods to accept the same number of parameters as the action method to which they relate, the rationale being for similarity with the ``validateXxx`` method. However, since these parameters serve no function, the programming model has been simplified so that these supporting methods are discovered if they have exactly no parameters.
@@ -142,8 +135,8 @@ Note that this aspect of the programming model relates to the ``hideXxx`` and ``
 
 |
 [[isis.core.meta-model.validator.parallelize]]
-isis.core.meta-model. +
-validator.parallelize
+isis.core.meta-model.validator. +
+parallelize
 
 |  true
 | Whether to perform metamodel validation in parallel.
@@ -151,8 +144,8 @@ validator.parallelize
 
 |
 [[isis.core.meta-model.validator.mixins-only]]
-isis.core.meta-model. +
-validator.mixins-only
+isis.core.meta-model.validator. +
+mixins-only
 
 |  true
 | If set, then domain services actions are not contributed to domain objects. @deprecated - in that in the future the programming model will simply not support contributed actions from domain services.
@@ -160,8 +153,7 @@ validator.mixins-only
 
 |
 [[isis.core.meta-model.validator.service-actions-only]]
-isis.core.meta-model. +
-validator. +
+isis.core.meta-model.validator. +
 service-actions-only
 
 |  true
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
index 95b38ed..0d74cb8 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
@@ -15,41 +15,41 @@ include::../section-hooks/isis.core.runtime-services~pre.adoc[]
 isis.core.runtime-services. +
 application-features.init
 
-|
+| 
 | Whether the ``ApplicationFeatureRepository`` (or the default implementation of that service, at least) should compute the set of ``ApplicationFeature`` that describe the metamodel eagerly, or lazily.
 
 
 |
 [[isis.core.runtime-services.email.override.bcc]]
-isis.core.runtime-services. +
-email.override.bcc
+isis.core.runtime-services.email. +
+override.bcc
 
-|
+| 
 | Intended for testing purposes only, if set then the requested ``bcc:`` of the email will be ignored, and instead sent to this email address instead.
 
 
 |
 [[isis.core.runtime-services.email.override.cc]]
-isis.core.runtime-services. +
-email.override.cc
+isis.core.runtime-services.email. +
+override.cc
 
-|
+| 
 | Intended for testing purposes only, if set then the requested ``cc:`` of the email will be ignored, and instead sent to this email address instead.
 
 
 |
 [[isis.core.runtime-services.email.override.to]]
-isis.core.runtime-services. +
-email.override.to
+isis.core.runtime-services.email. +
+override.to
 
-|
+| 
 | Intended for testing purposes only, if set then the requested ``to:`` of the email will be ignored, and instead sent to this email address instead.
 
 
 |
 [[isis.core.runtime-services.email.port]]
-isis.core.runtime-services. +
-email.port
+isis.core.runtime-services.email. +
+port
 
 |  587
 | The port to use for sending email.
@@ -57,10 +57,10 @@ email.port
 
 |
 [[isis.core.runtime-services.email.sender.address]]
-isis.core.runtime-services. +
-email.sender.address
+isis.core.runtime-services.email. +
+sender.address
 
-|
+| 
 | Specifies the email address of the user sending the email.
 
 If the username is not specified, is also used as the username to connect to the SMTP service.
@@ -70,10 +70,10 @@ This configuration property is mandatory (for the default implementation of the
 
 |
 [[isis.core.runtime-services.email.sender.hostname]]
-isis.core.runtime-services. +
-email.sender.hostname
+isis.core.runtime-services.email. +
+sender.hostname
 
-|
+| 
 | Specifies the host running the SMTP service.
 
 If not specified, then the value used depends upon the email implementation. The default implementation will use the ``host`` system property.
@@ -81,10 +81,10 @@ If not specified, then the value used depends upon the email implementation. The
 
 |
 [[isis.core.runtime-services.email.sender.password]]
-isis.core.runtime-services. +
-email.sender.password
+isis.core.runtime-services.email. +
+sender.password
 
-|
+| 
 | Specifies the password (corresponding to the username to connect to the SMTP service.
 
 This configuration property is mandatory (for the default implementation of the ``EmailService``, at least).
@@ -92,10 +92,10 @@ This configuration property is mandatory (for the default implementation of the
 
 |
 [[isis.core.runtime-services.email.sender.username]]
-isis.core.runtime-services. +
-email.sender.username
+isis.core.runtime-services.email. +
+sender.username
 
-|
+| 
 | Specifies the username to use to connect to the SMTP service.
 
 If not specified, then the sender's email address will be used instead.
@@ -103,8 +103,7 @@ If not specified, then the sender's email address will be used instead.
 
 |
 [[isis.core.runtime-services.email.socket-connection-timeout]]
-isis.core.runtime-services. +
-email. +
+isis.core.runtime-services.email. +
 socket-connection-timeout
 
 |  2000
@@ -113,8 +112,8 @@ socket-connection-timeout
 
 |
 [[isis.core.runtime-services.email.socket-timeout]]
-isis.core.runtime-services. +
-email.socket-timeout
+isis.core.runtime-services.email. +
+socket-timeout
 
 |  2000
 | The maximum number of millseconds to wait to obtain a socket before timing out.
@@ -122,8 +121,8 @@ email.socket-timeout
 
 |
 [[isis.core.runtime-services.email.throw-exception-on-fail]]
-isis.core.runtime-services. +
-email.throw-exception-on-fail
+isis.core.runtime-services.email. +
+throw-exception-on-fail
 
 |  true
 | If an email fails to send, whether to propagate the exception (meaning that potentially the end-user might see the exception), or whether instead to just indicate failure through the return value of the method (\{@link org.apache.isis.applib.services.email.EmailService#send(List, List, List, String, String, DataSource...)) that's being called.
@@ -131,8 +130,8 @@ email.throw-exception-on-fail
 
 |
 [[isis.core.runtime-services.email.tls.enabled]]
-isis.core.runtime-services. +
-email.tls.enabled
+isis.core.runtime-services.email. +
+tls.enabled
 
 |  true
 | Whether TLS encryption should be started (that is, ``STARTTLS``).
@@ -141,10 +140,9 @@ email.tls.enabled
 |
 [[isis.core.runtime-services.exception-recognizer.jdo.disable]]
 isis.core.runtime-services. +
-exception-recognizer.jdo. +
-disable
+exception-recognizer.jdo.disable
 
-|
+| 
 | Whether the ``ExceptionRecognizer`` implementation for JDO/DataNucleus object store - which attempts to sanitize any exceptions arising from that object store - should be disabled (meaning that exceptions will potentially propagate as more serious to the end user).
 
 
@@ -154,7 +152,7 @@ isis.core.runtime-services. +
 repository-service. +
 disable-auto-flush
 
-|
+| 
 | Normally any queries are automatically preceded by flushing pending executions.
 
 This key allows this behaviour to be disabled.
@@ -167,7 +165,7 @@ Originally introduced as part of ISIS-1134 (fixing memory leaks in the objectsto
 isis.core.runtime-services. +
 translation.po.mode
 
-|
+| 
 | Specifies the initial mode for obtaining/discovering translations.
 
 There are three modes:
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
index 9f49e1f..031717e 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
@@ -14,7 +14,7 @@ include::../section-hooks/isis.core.runtime~pre.adoc[]
 [[isis.core.runtime.locale]]
 isis.core.runtime.locale
 
-|
+| 
 | If set, then overrides the application's ``Locale#getDefault()``
 
 
@@ -22,7 +22,7 @@ isis.core.runtime.locale
 [[isis.core.runtime.timezone]]
 isis.core.runtime.timezone
 
-|
+| 
 | If set, then override's the application's timezone.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
index 6ee2b50..639816b 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
@@ -15,7 +15,7 @@ include::../section-hooks/isis.extensions~pre.adoc[]
 isis.extensions.cors. +
 allowed-headers
 
-|
+| 
 | Which HTTP headers are allowed in a CORS request.
 
 For more information, check the usage of the ``headers`` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
@@ -26,7 +26,7 @@ For more information, check the usage of the ``headers`` init parameter for http
 isis.extensions.cors. +
 allowed-methods
 
-|
+| 
 | Which HTTP methods are permitted in a CORS request.
 
 For more information, check the usage of the ``methods`` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
index 3577127..56c6068 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
@@ -15,16 +15,16 @@ include::../section-hooks/isis.legacy~pre.adoc[]
 isis.legacy.value-types.money. +
 currency
 
-|
+| 
 | Configures the default currency code used by ``MoneyValueSemanticsProvider``. @deprecated
 
 
 |
 [[isis.legacy.value-types.percentage.format]]
-isis.legacy.value-types. +
-percentage.format
+isis.legacy.value-types.percentage. +
+format
 
-|
+| 
 | Configures the formats understood by ``PercentageValueSemanticsProvider``. @deprecated
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
index ced5879..150f4da 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
@@ -12,15 +12,12 @@ include::../section-hooks/isis.persistence.jdo-datanucleus~pre.adoc[]
 |Description
 |
 [[isis.persistence.jdo-datanucleus.class-metadata-loaded-listener]]
-isis.persistence. +
-jdo-datanucleus. +
-class-metadata-loaded- +
-listener
-
-|  org.apache.isis.persistence. +
-jdo.datanucleus5.datanucleus. +
-CreateSchemaObjectFromClassMet +
-adata
+isis.persistence.jdo-datanucleus. +
+class-metadata-loaded-listener
+
+|  org.apache.isis.persistence.jdo. +
+datanucleus5.datanucleus. +
+CreateSchemaObjectFromClassMetadata
 | null
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
index 944731d..050936f 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
@@ -12,63 +12,57 @@ include::../section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc[]
 |Description
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.ConnectionFactory2Name]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 ConnectionFactory2Name
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.ConnectionFactoryName]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 ConnectionFactoryName
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.ConnectionPasswordDecrypter]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 ConnectionPasswordDecrypter
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.PersistenceUnitLoadClasses]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 PersistenceUnitLoadClasses
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.cache.level2.mode]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.cache.level2.mode
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.cache.level2.mode
 
-|
+| 
 | Values of javax.persistence.SharedCacheMode, capitalized
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.cache.level2.type]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.cache.level2.type
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.cache.level2.type
 
 |  none
 | Name of the type of Level 2 Cache to use.
@@ -82,12 +76,11 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.connection-factory-name]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 connection-factory-name
 
-|
+| 
 | The JNDI name for a connection factory for transactional connections.
 
 For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
@@ -99,12 +92,11 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.connection-factory2-name]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 connection-factory2-name
 
-|
+| 
 | The JNDI name for a connection factory for non-transactional connections.
 
 For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
@@ -116,12 +108,11 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.connection-password-decrypter]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 connection-password-decrypter
 
-|
+| 
 | Name of a class that implements ``DecryptionProvider`` and should only be specified if the password is encrypted in the persistence properties.
 
 See also ``json`` (camelCasing instead of kebab-casing).
@@ -131,23 +122,21 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.identifier.case]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.identifier.case
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.identifier.case
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.object-provider.class-name]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.object-provider. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.object-provider. +
 class-name
 
-|  org.apache.isis.persistence. +
-jdo.datanucleus5.datanucleus. +
+|  org.apache.isis.persistence.jdo. +
+datanucleus5.datanucleus. +
 JDOStateManagerForIsis
 | Enables dependency injection into entities
 
@@ -156,20 +145,18 @@ See also ``json`` (camelCasing instead of kebab-casing).
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.objectProvider.className]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.objectProvider. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.objectProvider. +
 className
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.persistence-unit-load-classes]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
 persistence-unit-load-classes
 
 |  true
@@ -184,24 +171,21 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus. +
-persistenceByReachabilityAtCom +
-mit
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus. +
+persistenceByReachabilityAtCommit
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.auto-create-all]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 auto-create-all
 
-|
+| 
 | Whether DN should automatically create the database schema on bootstrapping.
 
 This should be set to ``true`` when running against an in-memory database, but set to ``false`` when running against a persistent database (use something like flyway instead to manage schema evolution).
@@ -213,12 +197,11 @@ NOTE: this config property isn't used by the core framework, but is used by one
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.auto-create-database]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 auto-create-database
 
-|
+| 
 | Previously we defaulted this property to "true", but that could cause the target database to be modified
 
 See also ``json`` (camelCasing instead of kebab-casing).
@@ -228,31 +211,28 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.autoCreateAll]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 autoCreateAll
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.autoCreateDatabase]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 autoCreateDatabase
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validate-all]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 validate-all
 
 |  true
@@ -263,44 +243,40 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validateAll]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 validateAll
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validateConstraints]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 validateConstraints
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.schema.validateTables]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.schema. +
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.schema. +
 validateTables
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.datanucleus.transaction-type]]
-isis.persistence. +
-jdo-datanucleus.impl. +
-datanucleus.transaction-type
+isis.persistence.jdo-datanucleus. +
+impl.datanucleus.transaction-type
 
-|
+| 
 | Type of transaction to use.
 
 If running under JavaSE the default is RESOURCE_LOCAL, and if running under JavaEE the default is JTA.
@@ -312,65 +288,61 @@ NOTE: this config property isn't used by the framework, but is provided as a con
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.PersistenceManagerFactoryClass]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo. +
-PersistenceManagerFactoryClass +
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo. +
+PersistenceManagerFactoryClass
 
-
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionDriverName]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option. +
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
 ConnectionDriverName
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionPassword]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option.ConnectionPassword
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
+ConnectionPassword
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionURL]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option.ConnectionURL
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
+ConnectionURL
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.ConnectionUserName]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option.ConnectionUserName
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
+ConnectionUserName
 
-|
+| 
 | null
 
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.connection-driver-name]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option. +
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
 connection-driver-name
 
-|
+| 
 | JDBC driver used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -380,12 +352,11 @@ NOTE: this config property isn't used by the framework, but provided as a conven
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.connection-password]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option. +
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
 connection-password
 
-|
+| 
 | Password for the user account used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -395,11 +366,11 @@ NOTE: this config property isn't used by the framework, but provided as a conven
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.connection-url]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option.connection-url
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
+connection-url
 
-|
+| 
 | URL used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -409,12 +380,11 @@ NOTE: some extensions (H2Console, MsqlDbManager) peek at this URL to determine i
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.option.connection-user-name]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo.option. +
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo.option. +
 connection-user-name
 
-|
+| 
 | User account used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -424,11 +394,9 @@ NOTE: this config property isn't used by the framework, but provided as a conven
 
 |
 [[isis.persistence.jdo-datanucleus.impl.javax.jdo.persistence-manager-factory-class]]
-isis.persistence. +
-jdo-datanucleus.impl.javax. +
-jdo. +
-persistence-manager-factory- +
-class
+isis.persistence.jdo-datanucleus. +
+impl.javax.jdo. +
+persistence-manager-factory-class
 
 |  org.datanucleus.api.jdo. +
 JDOPersistenceManagerFactory
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
index 4de57c7..b50fa33 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
@@ -16,7 +16,7 @@ isis.security.shiro. +
 auto-logout-if-already- +
 authenticated
 
-|
+| 
 | If the Shiro subject is found to be still authenticated, then will be logged out anyway and then re-authenticated.
 
 Applies only to the Restful Objects viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
index b3b5199..6f89324 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
@@ -15,7 +15,7 @@ include::../section-hooks/isis.testing~pre.adoc[]
 isis.testing.fixtures. +
 initial-script
 
-|
+| 
 | Indicates the fixture script class to run initially.
 
 Intended for use when prototyping against an in-memory database (but will run in production mode as well if required).
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
index 61c8d59..78be279 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
@@ -15,52 +15,52 @@ include::../section-hooks/isis.value-types~pre.adoc[]
 isis.value-types.primitives. +
 integer.format
 
-|
+| 
 | null
 
 
 |
 [[isis.value-types.java-lang.byte.format]]
-isis.value-types.java-lang. +
-byte.format
+isis.value-types.java-lang.byte. +
+format
 
-|
+| 
 | Configures the number format understood by ``ByteValueSemanticsProviderAbstract``. @deprecated
 
 
 |
 [[isis.value-types.java-lang.double.format]]
-isis.value-types.java-lang. +
-double.format
+isis.value-types.java-lang.double. +
+format
 
-|
+| 
 | Configures the number format understood by ``DoubleValueSemanticsProviderAbstract``. @deprecated
 
 
 |
 [[isis.value-types.java-lang.float.format]]
-isis.value-types.java-lang. +
-float.format
+isis.value-types.java-lang.float. +
+format
 
-|
+| 
 | Configures the number format understood by ``FloatValueSemanticsProviderAbstract``. @deprecated
 
 
 |
 [[isis.value-types.java-lang.long.format]]
-isis.value-types.java-lang. +
-long.format
+isis.value-types.java-lang.long. +
+format
 
-|
+| 
 | Configures the number format understood by ``LongValueSemanticsProviderAbstract``. @deprecated
 
 
 |
 [[isis.value-types.java-lang.short.format]]
-isis.value-types.java-lang. +
-short.format
+isis.value-types.java-lang.short. +
+format
 
-|
+| 
 | Configures the number format understood by ``ShortValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -69,7 +69,7 @@ short.format
 isis.value-types.java-math. +
 big-decimal.format
 
-|
+| 
 | Configures the number format understood by ``BigDecimalValueSemanticsProvider``. @deprecated
 
 
@@ -78,14 +78,14 @@ big-decimal.format
 isis.value-types.java-math. +
 big-integer.format
 
-|
+| 
 | Configures the number format understood by ``BigIntegerValueSemanticsProvider``. @deprecated
 
 
 |
 [[isis.value-types.java-sql.date.format]]
-isis.value-types.java-sql. +
-date.format
+isis.value-types.java-sql.date. +
+format
 
 |  medium
 | Configures the formats understood by ``JavaSqlDateValueSemanticsProvider``. @deprecated
@@ -93,8 +93,8 @@ date.format
 
 |
 [[isis.value-types.java-sql.time.format]]
-isis.value-types.java-sql. +
-time.format
+isis.value-types.java-sql.time. +
+format
 
 |  short
 | Configures the formats understood by ``JavaSqlTimeValueSemanticsProvider``. @deprecated
@@ -165,8 +165,8 @@ zoned-date-time.format
 
 |
 [[isis.value-types.java-util.date.format]]
-isis.value-types.java-util. +
-date.format
+isis.value-types.java-util.date. +
+format
 
 |  medium
 | Configures the formats understood by ``JavaUtilDateValueSemanticsProvider``. @deprecated
@@ -174,8 +174,8 @@ date.format
 
 |
 [[isis.value-types.joda.date-time.format]]
-isis.value-types.joda. +
-date-time.format
+isis.value-types.joda.date-time. +
+format
 
 |  medium
 | Configures the formats understood by ``JodaDateTimeValueSemanticsProvider``. @deprecated
@@ -192,8 +192,8 @@ local-date-time.format
 
 |
 [[isis.value-types.joda.local-date.format]]
-isis.value-types.joda. +
-local-date.format
+isis.value-types.joda.local-date. +
+format
 
 |  medium
 | Configures the formats understood by ``JodaLocalDateValueSemanticsProvider``. @deprecated
@@ -201,10 +201,10 @@ local-date.format
 
 |
 [[isis.value-types.primitives.int.format]]
-isis.value-types.primitives. +
-int.format
+isis.value-types.primitives.int. +
+format
 
-|
+| 
 | Configures the number format understood by ``IntValueSemanticsProviderAbstract``. @deprecated
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
index 72a8916..a003147 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
@@ -15,7 +15,7 @@ include::../section-hooks/isis.viewer.restfulobjects~pre.adoc[]
 isis.viewer.restfulobjects. +
 base-uri
 
-|
+| 
 | If left unset (the default), then the RO viewer will use the ``UriInfo`` (injected using ``Context``) to figure out the base Uri (used to render ``href``s).
 
 This will be correct much of the time, but will almost certainly be wrong if there is a reverse proxy.
@@ -28,7 +28,7 @@ If set, eg ``com/``, then this value will be used instead.
 isis.viewer.restfulobjects. +
 honor-ui-hints
 
-|
+| 
 | Whether to enable the ``x-ro-follow-links`` support, to minimize round trips.
 
 The RO viewer provides the capability for the client to set the optional ``x-ro-follow-links`` query parameter, as described in section 34.4 of the RO spec v1.0. If used, the resultant representation includes the result of following the associated link, but through a server-side "join", somewhat akin to GraphQL.
@@ -41,7 +41,7 @@ By default this functionality is disabled, this configuration property enables t
 isis.viewer.restfulobjects. +
 object-property-values-only
 
-|
+| 
 | When rendering domain objects, if set the representation returned is stripped back to a minimal set, excluding links to actions and collections and with a simplified representation of an object's properties.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -52,7 +52,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 strict-accept-checking
 
-|
+| 
 | If set, then any unrecognised ``Accept`` headers will result in an HTTP _Not Acceptable_ response code (406).
 
 
@@ -61,17 +61,16 @@ strict-accept-checking
 isis.viewer.restfulobjects. +
 suppress-described-by-links
 
-|
+| 
 | If set, then the representations returned will omit any links to the formal domain-type representations.
 
 
 |
 [[isis.viewer.restfulobjects.suppress-member-disabled-reason]]
 isis.viewer.restfulobjects. +
-suppress-member-disabled- +
-reason
+suppress-member-disabled-reason
 
-|
+| 
 | If set, then - should there be an interaction with an action, property or collection that is disabled - then this will prevent the ``disabledReason`` reason from being added to the returned representation.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -82,7 +81,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-extensions
 
-|
+| 
 | If set, then the ``x-isis-format`` key (under ``extensions``) for properties will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -93,7 +92,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-id
 
-|
+| 
 | If set, then the ``id`` key for all members will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -104,7 +103,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-links
 
-|
+| 
 | If set, then the detail link (in other words ``]``) for all members will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -115,7 +114,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-update-link
 
-|
+| 
 | If set, then the update link (in other words `` ]`` to perform a bulk update of an object) will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
index 6d789e3..b50a78a 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
@@ -12,10 +12,9 @@ include::../section-hooks/isis.viewer.wicket~pre.adoc[]
 |Description
 |
 [[isis.viewer.wicket.ajax-debug-mode]]
-isis.viewer.wicket. +
-ajax-debug-mode
+isis.viewer.wicket.ajax-debug-mode
 
-|
+| 
 | Whether the Ajax debug should be shown, by default this is disabled.
 
 
@@ -23,8 +22,8 @@ ajax-debug-mode
 [[isis.viewer.wicket.app]]
 isis.viewer.wicket.app
 
-|  org.apache.isis.viewer. +
-wicket.viewer.wicketapp. +
+|  org.apache.isis.viewer.wicket. +
+viewer.wicketapp. +
 IsisWicketApplication
 | Specifies the subclass of ``IsisWicketApplication`` that is used to bootstrap Wicket.
 
@@ -33,19 +32,19 @@ There is usually very little reason to change this from its default.
 
 |
 [[isis.viewer.wicket.application.about]]
-isis.viewer.wicket. +
-application.about
+isis.viewer.wicket.application. +
+about
 
-|
+| 
 | Label used on the about page.
 
 
 |
 [[isis.viewer.wicket.application.brand-logo-header]]
-isis.viewer.wicket. +
-application.brand-logo-header
+isis.viewer.wicket.application. +
+brand-logo-header
 
-|
+| 
 | Either the location of the image file (relative to the class-path resource root), or an absolute URL.
 
 This is rendered on the header panel. An image with a size of 160x40 works well. If not specified, the application.name is used instead.
@@ -53,10 +52,10 @@ This is rendered on the header panel. An image with a size of 160x40 works well.
 
 |
 [[isis.viewer.wicket.application.brand-logo-signin]]
-isis.viewer.wicket. +
-application.brand-logo-signin
+isis.viewer.wicket.application. +
+brand-logo-signin
 
-|
+| 
 | Either the location of the image file (relative to the class-path resource root), or an absolute URL.
 
 This is rendered on the sign-in page. An image with a size of 400x40 works well. If not specified, the application name is used instead.
@@ -64,10 +63,9 @@ This is rendered on the sign-in page. An image with a size of 400x40 works well.
 
 |
 [[isis.viewer.wicket.application.css]]
-isis.viewer.wicket. +
-application.css
+isis.viewer.wicket.application.css
 
-|
+| 
 | URL of file to read any custom CSS, relative to ``static`` package on the class path.
 
 A typical value is ``css``. This will result in this file being read from the ``static/css`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).
@@ -75,20 +73,19 @@ A typical value is ``css``. This will result in this file being read from the ``
 
 |
 [[isis.viewer.wicket.application.favicon-content-type]]
-isis.viewer.wicket. +
-application. +
+isis.viewer.wicket.application. +
 favicon-content-type
 
-|
+| 
 | Specifies the content type of the favIcon, if any.
 
 
 |
 [[isis.viewer.wicket.application.favicon-url]]
-isis.viewer.wicket. +
-application.favicon-url
+isis.viewer.wicket.application. +
+favicon-url
 
-|
+| 
 | Specifies the URL to use of the favIcon.
 
 This is expected to be a local resource.
@@ -96,10 +93,9 @@ This is expected to be a local resource.
 
 |
 [[isis.viewer.wicket.application.js]]
-isis.viewer.wicket. +
-application.js
+isis.viewer.wicket.application.js
 
-|
+| 
 | URL of file to read any custom Javascript, relative to ``static`` package on the class path.
 
 A typical value is ``js``. This will result in this file being read from the ``static/js`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).
@@ -107,8 +103,7 @@ A typical value is ``js``. This will result in this file being read from the ``s
 
 |
 [[isis.viewer.wicket.application.menubars-layout-xml]]
-isis.viewer.wicket. +
-application. +
+isis.viewer.wicket.application. +
 menubars-layout-xml
 
 |  menubars.layout.xml
@@ -119,8 +114,8 @@ This is expected to be a local resource.
 
 |
 [[isis.viewer.wicket.application.name]]
-isis.viewer.wicket. +
-application.name
+isis.viewer.wicket.application. +
+name
 
 |  Apache Isis â„¢
 | Identifies the application on the sign-in page (unless a sign-in image is configured) and on top-left in the header (unless a header image is configured).
@@ -128,10 +123,10 @@ application.name
 
 |
 [[isis.viewer.wicket.application.version]]
-isis.viewer.wicket. +
-application.version
+isis.viewer.wicket.application. +
+version
 
-|
+| 
 | The version of the application, eg 1.0, 1.1, etc.
 
 If present, then this will be shown in the footer on every page as well as on the about page.
@@ -177,8 +172,8 @@ show-drop-down-on-footer
 
 |
 [[isis.viewer.wicket.breadcrumbs.enabled]]
-isis.viewer.wicket. +
-breadcrumbs.enabled
+isis.viewer.wicket.breadcrumbs. +
+enabled
 
 |  true
 | Whether to enable the 'where am i' feature, in other words the breadcrumbs.
@@ -186,8 +181,7 @@ breadcrumbs.enabled
 
 |
 [[isis.viewer.wicket.breadcrumbs.max-parent-chain-length]]
-isis.viewer.wicket. +
-breadcrumbs. +
+isis.viewer.wicket.breadcrumbs. +
 max-parent-chain-length
 
 |  64
@@ -199,7 +193,7 @@ max-parent-chain-length
 isis.viewer.wicket. +
 clear-original-destination
 
-|
+| 
 | If the end user uses a deep link to access the Wicket viewer, but is not authenticated, then this configuration property determines whether to continue through to that original destination once authenticated, or simply to go to the home page.
 
 The default behaviour is to honour the original destination requested.
@@ -209,7 +203,7 @@ The default behaviour is to honour the original destination requested.
 [[isis.viewer.wicket.credit]]
 isis.viewer.wicket.credit
 
-|
+| 
 | List of organisations or individuals to give credit to, shown as links and icons in the footer. A maximum of 3 credits can be specified.
 
 IntelliJ unfortunately does not provide IDE completion for lists of classes; YMMV.
@@ -219,8 +213,7 @@ NOTE: For further discussion, see for example https://stackoverflow.com/question
 
 |
 [[isis.viewer.wicket.date-pattern]]
-isis.viewer.wicket. +
-date-pattern
+isis.viewer.wicket.date-pattern
 
 |  dd-MM-yyyy
 | The pattern used for rendering and parsing dates.
@@ -230,8 +223,8 @@ Each Date scalar panel will use ``#getDatePattern()`` or ``#getDateTimePattern()
 
 |
 [[isis.viewer.wicket.date-picker.max-date]]
-isis.viewer.wicket. +
-date-picker.max-date
+isis.viewer.wicket.date-picker. +
+max-date
 
 |  2100-01-01T00:00:00.000Z
 | Defines the first date available in the date picker.
@@ -241,8 +234,8 @@ As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in I
 
 |
 [[isis.viewer.wicket.date-picker.min-date]]
-isis.viewer.wicket. +
-date-picker.min-date
+isis.viewer.wicket.date-picker. +
+min-date
 
 |  1900-01-01T00:00:00.000Z
 | Defines the first date available in the date picker.
@@ -266,7 +259,7 @@ Each Date scalar panel will use ``#getDatePattern()`` or ``#getDateTimePattern()
 isis.viewer.wicket. +
 development-utilities.enable
 
-|
+| 
 | Determines whether debug bar and other stuff influenced by ``DebugSettings#isDevelopmentUtilitiesEnabled()`` is enabled or not.
 
 By default, depends on the mode (prototyping = enabled, server = disabled). This property acts as an override.
@@ -274,10 +267,9 @@ By default, depends on the mode (prototyping = enabled, server = disabled). This
 
 |
 [[isis.viewer.wicket.dialog-mode]]
-isis.viewer.wicket. +
-dialog-mode
+isis.viewer.wicket.dialog-mode
 
-|
+| 
 | Whether the dialog mode rendered when invoking actions on domain objects should be to use the sidebar (the default) or to use a modal dialog.
 
 This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.
@@ -288,7 +280,7 @@ This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle(
 isis.viewer.wicket. +
 dialog-mode-for-menu
 
-|
+| 
 | Whether the dialog mode rendered when invoking actions on domain services (that is, menus) should be to use a modal dialog (the default) or to use the sidebar panel.
 
 This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.
@@ -296,10 +288,9 @@ This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle(
 
 |
 [[isis.viewer.wicket.live-reload-url]]
-isis.viewer.wicket. +
-live-reload-url
+isis.viewer.wicket.live-reload-url
 
-|
+| 
 | If specified, then is rendered on each page to enable live reload.
 
 Configuring live reload also requires an appropriate plugin to the web browser (eg see http://livereload.com/[livereload.com] and a mechanism to trigger changes, eg by watching ``xml`` files.
@@ -311,17 +302,17 @@ isis.viewer.wicket. +
 max-title-length-in-parented- +
 tables
 
-|
+| 
 | null
 
 
 |
 [[isis.viewer.wicket.max-title-length-in-standalone-tables]]
 isis.viewer.wicket. +
-max-title-length-in- +
-standalone-tables
+max-title-length-in-standalone- +
+tables
 
-|
+| 
 | null
 
 
@@ -349,8 +340,8 @@ submit
 |
 [[isis.viewer.wicket.prevent-double-click-for-no-arg-action]]
 isis.viewer.wicket. +
-prevent-double-click-for-no- +
-arg-action
+prevent-double-click-for-no-arg- +
+action
 
 |  true
 | Whether to disable a no-arg action button after it has been clicked, to prevent users causing an error if they do a double click.
@@ -360,10 +351,9 @@ This behaviour is enabled by default, but can be disabled using this flag.
 
 |
 [[isis.viewer.wicket.prompt-style]]
-isis.viewer.wicket. +
-prompt-style
+isis.viewer.wicket.prompt-style
 
-|
+| 
 | Whether to use a modal dialog for property edits and for actions associated with properties.
 
 This can be overridden on a case-by-case basis using ``@PropertyLayout#promptStyle`` and ``@ActionLayout#promptStyle``.
@@ -376,7 +366,7 @@ This behaviour is disabled by default; the viewer will use an inline prompt in t
 isis.viewer.wicket. +
 redirect-even-if-same-object
 
-|
+| 
 | Whether to redirect to a new page, even if the object being shown (after an action invocation or a property edit) is the same as the previous page.
 
 This behaviour is disabled by default; the viewer will update the existing page if it can, making for a smoother user experience. If enabled then this reinstates the pre-1.15.0 behaviour of redirecting in all cases.
@@ -384,8 +374,8 @@ This behaviour is disabled by default; the viewer will update the existing page
 
 |
 [[isis.viewer.wicket.remember-me.cookie-key]]
-isis.viewer.wicket. +
-remember-me.cookie-key
+isis.viewer.wicket.remember-me. +
+cookie-key
 
 |  isisWicketRememberMe
 | If the "remember me" feature is available, specifies the key to hold the encrypted credentials in the cookie.
@@ -393,10 +383,10 @@ remember-me.cookie-key
 
 |
 [[isis.viewer.wicket.remember-me.encryption-key]]
-isis.viewer.wicket. +
-remember-me.encryption-key
+isis.viewer.wicket.remember-me. +
+encryption-key
 
-|
+| 
 | If the "remember me" feature is available, optionally specifies an encryption key (a complex string acting as salt to the encryption algorithm) for computing the encrypted credentials.
 
 If not set, then (in production mode) the Wicket viewer will compute a random key each time it is started. This will mean that any credentials stored between sessions will become invalid.
@@ -408,10 +398,10 @@ In prototype mode this setting is effectively ignored, because the same key will
 
 |
 [[isis.viewer.wicket.remember-me.suppress]]
-isis.viewer.wicket. +
-remember-me.suppress
+isis.viewer.wicket.remember-me. +
+suppress
 
-|
+| 
 | Whether the sign-in page should have a "remember me" link (the default), or if it should be suppressed.
 
 If "remember me" is available and checked, then the viewer will allow users to login based on encrypted credentials stored in a cookie. An encryption key can optionally be specified.
@@ -420,8 +410,8 @@ If "remember me" is available and checked, then the viewer will allow users to l
 |
 [[isis.viewer.wicket.replace-disabled-tag-with-readonly-tag]]
 isis.viewer.wicket. +
-replace-disabled-tag-with- +
-readonly-tag
+replace-disabled-tag-with-readonly- +
+tag
 
 |  true
 | In Firefox and more recent versions of Chrome 54+, cannot copy out of disabled fields; instead we use the readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute)
@@ -431,8 +421,7 @@ This behaviour is enabled by default but can be disabled using this flag
 
 |
 [[isis.viewer.wicket.show-footer]]
-isis.viewer.wicket. +
-show-footer
+isis.viewer.wicket.show-footer
 
 |  true
 | Whether to show the footer menu bar.
@@ -456,7 +445,7 @@ By default this is enabled, in other words Wicket tags are stripped. Please be a
 isis.viewer.wicket. +
 suppress-password-reset
 
-|
+| 
 | Whether to suppress the password reset link on the sign-in page.
 
 Although this is disabled by default (in other words the 'reset password' link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressSignUp()`` sign-up link).
@@ -467,7 +456,7 @@ Although this is disabled by default (in other words the 'reset password' link i
 isis.viewer.wicket. +
 suppress-sign-up
 
-|
+| 
 | Whether to suppress the sign-up link on the sign-in page.
 
 Although this is disabled by default (in other words the sign-up link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressPasswordReset()`` password reset link).
@@ -475,17 +464,15 @@ Although this is disabled by default (in other words the sign-up link is not sup
 
 |
 [[isis.viewer.wicket.themes.enabled]]
-isis.viewer.wicket.themes. +
-enabled
+isis.viewer.wicket.themes.enabled
 
-|
+| 
 | A comma separated list of enabled theme names, as defined by https://bootswatch.com.
 
 
 |
 [[isis.viewer.wicket.themes.initial]]
-isis.viewer.wicket.themes. +
-initial
+isis.viewer.wicket.themes.initial
 
 |  Flatly
 | The initial theme to use.
@@ -495,12 +482,10 @@ Expected to be in the list of ``#getEnabled()`` themes.
 
 |
 [[isis.viewer.wicket.themes.provider]]
-isis.viewer.wicket.themes. +
-provider
+isis.viewer.wicket.themes.provider
 
-|  org.apache.isis.viewer. +
-wicket.ui.components.widgets. +
-themepicker. +
+|  org.apache.isis.viewer.wicket.ui. +
+components.widgets.themepicker. +
 IsisWicketThemeSupportDefault
 | Specifies an implementation of ``IsisWicketThemeSupport``
 
@@ -510,7 +495,7 @@ IsisWicketThemeSupportDefault
 isis.viewer.wicket.themes. +
 show-chooser
 
-|
+| 
 | Whether the theme chooser widget should be available in the footer.
 
 
@@ -528,8 +513,7 @@ This behaviour is enabled by default.
 |
 [[isis.viewer.wicket.use-indicator-for-no-arg-action]]
 isis.viewer.wicket. +
-use-indicator-for-no-arg- +
-action
+use-indicator-for-no-arg-action
 
 |  true
 | Whether to show an indicator for a no-arg action button that it has been clicked.
@@ -539,10 +523,9 @@ This behaviour is enabled by default.
 
 |
 [[isis.viewer.wicket.welcome.text]]
-isis.viewer.wicket.welcome. +
-text
+isis.viewer.wicket.welcome.text
 
-|
+| 
 | Text to be displayed on the application’s home page, used as a fallback if welcome.file is not specified. If a @HomePage action exists, then that will take precedence.
 
 
@@ -551,7 +534,7 @@ text
 isis.viewer.wicket. +
 wicket-source-plugin
 
-|
+| 
 | Whether the Wicket source plugin should be enabled; if so, the markup includes links to the Wicket source.
 
 This behaviour is disabled by default. Please be aware that enabloing it can substantially impact performance.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc b/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
index 430e7a3..4d9dead 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
@@ -14,7 +14,7 @@ include::../section-hooks/resteasy~pre.adoc[]
 [[resteasy.as-map]]
 resteasy.as-map
 
-|
+| 
 | null
 
 
@@ -23,7 +23,7 @@ resteasy.as-map
 resteasy.authentication. +
 strategy-class-name
 
-|
+| 
 | Defaults to ``AuthenticationSessionStrategyBasicAuth``.
 
 
@@ -31,16 +31,15 @@ strategy-class-name
 [[resteasy.environment]]
 resteasy.environment
 
-|
+| 
 | null
 
 
 |
 [[resteasy.jaxrs.app.registration]]
-resteasy.jaxrs.app. +
-registration
+resteasy.jaxrs.app.registration
 
-|
+| 
 | How the implementation of the JAX-RS application is discovered.
 
 
@@ -58,7 +57,7 @@ Note that this is used rather than ``prefix`` because there is _NO_ implementati
 [[resteasy.jaxrs.defaultPath]]
 resteasy.jaxrs.defaultPath
 
-|
+| 
 | The path at which the RO viewer should be mounted.
 
 
@@ -66,7 +65,7 @@ resteasy.jaxrs.defaultPath
 [[resteasy.resteasy-settings]]
 resteasy.resteasy-settings
 
-|
+| 
 | null
 
 
diff --git a/interim-release.sh b/interim-release.sh
new file mode 100644
index 0000000..b0abaff
--- /dev/null
+++ b/interim-release.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+VERSION_BASE=$1
+REMOTE=$2
+
+if [ -z "$VERSION_BASE" -o -z "$REMOTE" ]; then
+    echo "usage: $(basename $0) [base version] [remote]"
+    echo "   eg: $(basename $0) 1.13.0 incodehq"
+    exit 1
+fi
+
+DATE=`date +'%Y%m%d-%H%M'`
+
+VERSION="$VERSION_BASE.$DATE"
+BRANCH="interim/$VERSION"
+TAG="interim/isis-$VERSION"
+
+CURR_BRANCH=`git rev-parse --abbrev-ref HEAD`
+
+echo "checking out new branch $BRANCH"
+git checkout -b "$BRANCH"
+
+echo "updating version in all pom.xml files..."
+pushd core-parent >/dev/null
+mvn versions:set -DnewVersion=$VERSION > /dev/null
+popd >/dev/null
+pushd starter >/dev/null
+mvn versions:set -DnewVersion=$VERSION > /dev/null
+popd >/dev/null
+
+echo "Committing changes"
+git commit -am "bumping to $VERSION"
+
+echo "Building"
+mvn clean install -o
+
+echo "tagging"
+git tag $TAG
+
+echo "pushing tag"
+git push $REMOTE $TAG
+
+echo "removing any earlier remote branches"
+for a in `git ls-remote --heads $REMOTE  | sed 's?.*refs/heads/??' | grep interim`
+do
+    git push $REMOTE --delete $a
+done
+
+# need to push branch, so will be picked up for building by CI
+echo "pushing branch"
+git push $REMOTE $BRANCH
+
+echo "switching back to original branch"
+git checkout $CURR_BRANCH
+
+echo "and deleting interim branch"
+git branch -D $BRANCH


[isis] 29/41: ISIS-2278: initial spike, to tidy up

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

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

commit f095754e430cfbab36207d0aa4dbc446352361fe
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Mar 14 12:39:08 2020 +0000

    ISIS-2278: initial spike, to tidy up
---
 .../services/command/CommandExecutorService.java   |  11 +-
 .../applib/services/wrapper/WrapperFactory.java    |  65 +++-
 .../services/ProxyFactoryServiceByteBuddy.java     |   3 +-
 .../pages/sections/isis.viewer.restfulobjects.adoc |   2 +-
 .../command/CommandExecutorServiceDefault.java     | 135 +++++----
 .../runtimeservices/wrapper/AsyncWrapDefault.java  | 333 ---------------------
 .../wrapper/WrapperFactoryDefault.java             | 231 +++++++++++---
 .../wrapper/proxy/ProxyCreator.java                |  12 +-
 .../wrapper/WrapperFactoryDefaultTest.java         |   4 +-
 .../demoapp/dom/events/DemoEventSubscriber.java    |   5 +-
 .../testdomain/auditing/AuditerServiceTest.java    |  10 +-
 .../commandexecution/WrapperAsyncTest.java         |  14 +-
 .../publishing/PublisherServiceTest.java           |  10 +-
 13 files changed, 362 insertions(+), 473 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandExecutorService.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandExecutorService.java
index 917a4e5..56d029b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandExecutorService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandExecutorService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.applib.services.command;
 
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.schema.cmd.v2.CommandDto;
+
 // tag::refguide[]
 public interface CommandExecutorService {
 
@@ -50,8 +53,12 @@ public interface CommandExecutorService {
      */
     // tag::refguide[]
     void executeCommand(
-            SudoPolicy sudoPolicy,              // <.>
-            CommandWithDto commandWithDto       // <.>
+            SudoPolicy sudoPolicy,          // <.>
+            CommandWithDto commandWithDto   // <.>
+    );
+
+    Bookmark executeCommand(
+            CommandDto commandDto           // <.>
     );
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 0cfd47e..2a932a8 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -20,6 +20,8 @@
 package org.apache.isis.applib.services.wrapper;
 
 import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ForkJoinPool;
 
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
@@ -30,6 +32,7 @@ import static org.apache.isis.core.commons.collections.ImmutableEnumSet.*;
 
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
+import lombok.val;
 import lombok.experimental.UtilityClass;
 
 /**
@@ -154,12 +157,13 @@ public interface WrapperFactory {
     }
     // end::refguide-2[]
 
-    // tag::refguide-2[]
+
+    // tag::refguide-3[]
     enum RuleCheckingPolicy {
         SYNC,   // <.>
         ASYNC   // <.>
     }
-    // tag::refguide-3[]
+    // end::refguide-3[]
 
     /**
      * Same as {@link #wrap(Object)}, except the actual execution occurs only if
@@ -171,7 +175,7 @@ public interface WrapperFactory {
      */
     // tag::refguide[]
     <T> T wrap(T domainObject,                                      // <.>
-               ImmutableEnumSet<ExecutionMode> mode);
+               ImmutableEnumSet<ExecutionMode> modes);
 
     // end::refguide[]
     /**
@@ -246,31 +250,38 @@ public interface WrapperFactory {
     //
 
     /**
-     * Returns a {@link AsyncWrap} bound to the provided {@code domainObject},
-     * to prepare for type-safe asynchronous action execution.
+     * Returns a proxy object for the provided {@code domainObject},
+     * through which can execute the action asynchronously.
      *
      * @param <T>
      * @param domainObject
      * @param mode
      *
+     * @param executorService
      * @since 2.0
      */
     // tag::refguide-async[]
     <T> T async(T domainObject,                          // <.>
                 ImmutableEnumSet<ExecutionMode> mode,
-                RuleCheckingPolicy ruleCheckingPolicy);
+                RuleCheckingPolicy ruleCheckingPolicy,
+                ExecutorService executorService);
 
     // end::refguide-async[]
     // tag::refguide-async[]
-    <T> T async(T domainObject,                          // <.>
-                ImmutableEnumSet<ExecutionMode> mode);
+    default <T> T async(T domainObject,                          // <.>
+                ImmutableEnumSet<ExecutionMode> modes) {
+        // end::refguide-async[]
+
+        return async(domainObject, modes, RuleCheckingPolicy.ASYNC, ForkJoinPool.commonPool());
+
+        // tag::refguide-async[]
+        // ...
+    }
 
     // end::refguide-async[]
     /**
      * Shortcut for {@link #async(Object, ImmutableEnumSet)} using execution mode
      * {@link ExecutionModes#EXECUTE}.
-     * @param <T>
-     * @param domainObject
      *
      * @since 2.0
      */
@@ -286,20 +297,48 @@ public interface WrapperFactory {
 
     // end::refguide-async[]
     /**
+     * Returns a proxy object for the provided {@code mixinClass},
+     * through which can execute the action asynchronously.
+     *
+     * @param <T>
+     * @param mixinClass
+     * @param mixedIn
+     * @param modes
+     *
+     * @since 2.0
+     */
+    // tag::refguide-async[]
+    <T> T asyncMixin(                                    // <.>
+                Class<T> mixinClass, Object mixedIn,
+                ImmutableEnumSet<ExecutionMode> modes,
+                RuleCheckingPolicy ruleCheckingPolicy,
+                ExecutorService executorService);
+
+    // end::refguide-async[]
+    /**
      * Returns a {@link AsyncWrap} bound to the provided {@code mixinClass},
      * to prepare for type-safe asynchronous action execution.
      *
      * @param <T>
      * @param mixinClass
      * @param mixedIn
-     * @param mode
+     * @param modes
      *
      * @since 2.0
      */
     // tag::refguide-async[]
-    <T> T asyncMixin(                                    // <.>
+    default <T> T asyncMixin(                                    // <.>
                 Class<T> mixinClass, Object mixedIn,
-                ImmutableEnumSet<ExecutionMode> mode);
+                ImmutableEnumSet<ExecutionMode> modes) {
+        // end::refguide-async[]
+
+        return asyncMixin(
+                mixinClass, mixedIn, modes,
+                RuleCheckingPolicy.ASYNC, ForkJoinPool.commonPool());
+
+        // tag::refguide-async[]
+        // ...
+    }
 
     // end::refguide-async[]
     /**
diff --git a/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java b/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
index 2dae439..e995394e 100644
--- a/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
+++ b/core/codegen-bytebuddy/src/main/java/org/apache/isis/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
@@ -34,6 +34,7 @@ import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.commons.internal.context._Context;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactory;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
+import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryServiceAbstract;
 
 import net.bytebuddy.ByteBuddy;
 import net.bytebuddy.NamingStrategy;
@@ -42,7 +43,7 @@ import net.bytebuddy.implementation.InvocationHandlerAdapter;
 import net.bytebuddy.matcher.ElementMatchers;
 
 @Service
-public class ProxyFactoryServiceByteBuddy implements ProxyFactoryService {
+public class ProxyFactoryServiceByteBuddy extends ProxyFactoryServiceAbstract {
 
     private final ClassLoadingStrategyAdvisor strategyAdvisor = new ClassLoadingStrategyAdvisor();
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
index 82e0892..3da5008 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
@@ -17,7 +17,7 @@ isis.viewer.restfulobjects. +
 base-uri
 
 |
-| If left unset (the default), then the RO viewer will use the ``UriInfo`` (injected using ``Context``) to figure out the base Uri (used to render ``href``s).
+| If left unset (the default), then the RO viewer will use the ``UriInfo`` (injected using ``AsyncContext``) to figure out the base Uri (used to render ``href``s).
 
 This will be correct much of the time, but will almost certainly be wrong if there is a reverse proxy.
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index bf0901f..d729583 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.runtimeservices.command;
 import java.sql.Timestamp;
 import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -33,6 +34,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.graph.tree.LazyTreeNode;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.clock.ClockService;
@@ -47,9 +49,13 @@ import org.apache.isis.applib.util.schema.CommandDtoUtils;
 import org.apache.isis.applib.util.schema.CommonDtoUtils;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
+import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -57,7 +63,9 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSession;
+import org.apache.isis.core.runtime.session.IsisSession;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.session.IsisSessionTracker;
 import org.apache.isis.schema.cmd.v2.ActionDto;
 import org.apache.isis.schema.cmd.v2.CommandDto;
 import org.apache.isis.schema.cmd.v2.MemberDto;
@@ -137,71 +145,77 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
                 ? currentExecution.getStartedAt()
                         : clockService.nowAsJavaSqlTimestamp();
 
-                commandWithDto.internal().setStartedAt(startedAt);
+        commandWithDto.internal().setStartedAt(startedAt);
 
-                final CommandDto dto = commandWithDto.asDto();
+        final CommandDto dto = commandWithDto.asDto();
 
-                final MemberDto memberDto = dto.getMember();
-                final String memberId = memberDto.getMemberIdentifier();
+        Bookmark resultBookmark = executeCommand(dto);
+        commandWithDto.internal().setResult(resultBookmark);
+    }
 
-                final OidsDto oidsDto = CommandDtoUtils.targetsFor(dto);
-                final List<OidDto> targetOidDtos = oidsDto.getOid();
+    @Override
+    public Bookmark executeCommand(CommandDto dto) {
 
-                final InteractionType interactionType = memberDto.getInteractionType();
-                if(interactionType == InteractionType.ACTION_INVOCATION) {
+        final MemberDto memberDto = dto.getMember();
+        final String memberId = memberDto.getMemberIdentifier();
 
-                    final ActionDto actionDto = (ActionDto) memberDto;
+        final OidsDto oidsDto = CommandDtoUtils.targetsFor(dto);
+        final List<OidDto> targetOidDtos = oidsDto.getOid();
 
-                    for (OidDto targetOidDto : targetOidDtos) {
+        final InteractionType interactionType = memberDto.getInteractionType();
+        if(interactionType == InteractionType.ACTION_INVOCATION) {
 
-                        val targetAdapter = adapterFor(targetOidDto);
-                        final ObjectAction objectAction = findObjectAction(targetAdapter, memberId);
+            final ActionDto actionDto = (ActionDto) memberDto;
 
-                        // we pass 'null' for the mixedInAdapter; if this action _is_ a mixin then
-                        // it will switch the targetAdapter to be the mixedInAdapter transparently
-                        val argAdapters = argAdaptersFor(actionDto);
-                        val resultAdapter = objectAction.execute(
-                                targetAdapter, null, argAdapters, InteractionInitiatedBy.FRAMEWORK);
+            for (OidDto targetOidDto : targetOidDtos) {
 
-                        // flush any Isis PersistenceCommands pending
-                        // (else might get transient objects for the return value)
-                        transactionService.flushTransaction();
+                val targetAdapter = adapterFor(targetOidDto);
+                final ObjectAction objectAction = findObjectAction(targetAdapter, memberId);
 
-                        //
-                        // for the result adapter, we could alternatively have used...
-                        // (priorExecution populated by the push/pop within the interaction object)
-                        //
-                        // final Interaction.Execution priorExecution = backgroundInteraction.getPriorExecution();
-                        // Object unused = priorExecution.getReturned();
-                        //
+                // we pass 'null' for the mixedInAdapter; if this action _is_ a mixin then
+                // it will switch the targetAdapter to be the mixedInAdapter transparently
+                val argAdapters = argAdaptersFor(actionDto);
+                val resultAdapter = objectAction.execute(
+                        targetAdapter, null, argAdapters, InteractionInitiatedBy.FRAMEWORK);
 
-                        // REVIEW: this doesn't really make sense if >1 action
-                        if(resultAdapter != null) {
-                            Bookmark resultBookmark = CommandUtil.bookmarkFor(resultAdapter);
-                            commandWithDto.internal().setResult(resultBookmark);
-                        }
-                    }
-                } else {
+                // flush any Isis PersistenceCommands pending
+                // (else might get transient objects for the return value)
+                transactionService.flushTransaction();
 
-                    final PropertyDto propertyDto = (PropertyDto) memberDto;
+                //
+                // for the result adapter, we could alternatively have used...
+                // (priorExecution populated by the push/pop within the interaction object)
+                //
+                // final Interaction.Execution priorExecution = backgroundInteraction.getPriorExecution();
+                // Object unused = priorExecution.getReturned();
+                //
 
-                    for (OidDto targetOidDto : targetOidDtos) {
+                // REVIEW: this doesn't really make sense if >1 action
+                if(resultAdapter != null) {
+                    return CommandUtil.bookmarkFor(resultAdapter);
+                }
+            }
+        } else {
 
-                        final Bookmark bookmark = Bookmark.from(targetOidDto);
-                        final Object targetObject = bookmarkService.lookup(bookmark);
+            final PropertyDto propertyDto = (PropertyDto) memberDto;
 
-                        val targetAdapter = adapterFor(targetObject);
+            for (OidDto targetOidDto : targetOidDtos) {
 
-                        final OneToOneAssociation property = findOneToOneAssociation(targetAdapter, memberId);
+                final Bookmark bookmark = Bookmark.from(targetOidDto);
+                final Object targetObject = bookmarkService.lookup(bookmark);
 
-                        val newValueAdapter = newValueAdapterFor(propertyDto);
+                val targetAdapter = adapterFor(targetObject);
 
-                        property.set(targetAdapter, newValueAdapter, InteractionInitiatedBy.FRAMEWORK);
+                final OneToOneAssociation property = findOneToOneAssociation(targetAdapter, memberId);
 
-                        // there is no return value for property modifications.
-                    }
-                }
+                val newValueAdapter = newValueAdapterFor(propertyDto);
 
+                property.set(targetAdapter, newValueAdapter, InteractionInitiatedBy.FRAMEWORK);
+
+                // there is no return value for property modifications.
+            }
+        }
+        return null;
     }
 
     protected void afterCommit(CommandWithDto commandWithDto, Exception exceptionIfAny) {
@@ -319,12 +333,33 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
     }
 
     private ManagedObject adapterFor(final Object pojo) {
+        if(pojo instanceof OidDto) {
+            return adapterFor((OidDto)pojo);
+        }
+        if(pojo instanceof RootOid) {
+            return adapterFor((RootOid) pojo);
+        }
+        // value type
         return ManagedObject.of(getSpecificationLoader()::loadSpecification, pojo);
-        
-        //legacy of
-        //return ObjectAdapterLegacy.__CommandExecutorServiceDefault.adapterFor(targetObject);
     }
 
+    private ManagedObject adapterFor(final OidDto oid) {
+        val oidStr = Oid.marshaller().joinAsOid(oid.getType(), oid.getId());
+        val rootOid = Oid.unmarshaller().unmarshal(oidStr, RootOid.class);
+        return adapterFor(rootOid);
+    }
+
+    private ManagedObject adapterFor(final RootOid oid) {
+        val objectSpec = specificationLoader.loadSpecification(oid.getObjectSpecId());
+        val loadRequest = ObjectLoader.Request.of(objectSpec, oid.getIdentifier());
+
+        Optional<IsisSession> isisSession = isisSessionTracker.currentSession();
+        return isisSession
+                .map(x -> x.getObjectManager().loadObject(loadRequest))
+                .orElse(null);
+    }
+
+
     // //////////////////////////////////////
 
     protected IsisSessionFactory getIsisSessionFactory() {
@@ -349,8 +384,8 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
     @Inject TransactionService transactionService;
     @Inject SpecificationLoader specificationLoader;
     @Inject IsisSessionFactory isisSessionFactory;
-    
+    @Inject IsisSessionTracker isisSessionTracker;
+
     @Inject private javax.inject.Provider<InteractionContext> interactionContextProvider;
-    //@Inject private javax.inject.Provider<CommandContext> commandContextProvider;
 
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
deleted file mode 100644
index 9ed9851..0000000
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.core.runtimeservices.wrapper;
-
-import java.util.concurrent.Callable;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.applib.services.wrapper.AsyncWrap;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
-import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
-import org.apache.isis.applib.services.MethodReferences.Call1;
-import org.apache.isis.applib.services.MethodReferences.Call2;
-import org.apache.isis.applib.services.MethodReferences.Call3;
-import org.apache.isis.applib.services.MethodReferences.Call4;
-import org.apache.isis.applib.services.MethodReferences.Call5;
-import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.runtime.session.IsisSessionFactory;
-import org.apache.isis.core.security.authentication.AuthenticationSessionTracker;
-
-import lombok.Getter;
-import lombok.NonNull;
-import lombok.val;
-import lombok.extern.log4j.Log4j2;
-/**
- * 
- * @since 2.0
- *
- */
-@Log4j2
-class AsyncWrapDefault<T> implements AsyncWrap<T> {
-    
-    @NonNull
-    private final WrapperFactory wrapperFactory;
-    
-    @NonNull
-    private final IsisSessionFactory isisSessionFactory;
-    
-    @NonNull
-    private final AuthenticationSessionTracker authenticationSessionTracker;
-    
-    @NonNull
-    private final TransactionService transactionService;
-    
-    @NonNull
-    private final BookmarkService bookmarkService;
-
-    @NonNull
-    private final Bookmark bookmark;
-
-    private final Class<T> domainClass;
-
-    @Getter(onMethod = @__(@Override))
-    private ImmutableEnumSet<ExecutionMode> executionModes;
-
-    private ImmutableEnumSet<ExecutionMode> executionModesSync;
-
-    private ImmutableEnumSet<ExecutionMode> executionModesAsync;
-
-    @NonNull
-    @Getter(onMethod = @__({@Override})) 
-    private ExecutorService executorService;
-    
-    @NonNull
-    @Getter(onMethod = @__({@Override})) 
-    private Consumer<Exception> exceptionHandler;
-
-    @NonNull
-    @Getter(onMethod = @__({@Override}))
-    private WrapperFactory.RuleCheckingPolicy ruleCheckingPolicy;
-
-    AsyncWrapDefault(
-            final WrapperFactory wrapperFactory,
-            final IsisSessionFactory isisSessionFactory,
-            final AuthenticationSessionTracker authenticationSessionTracker,
-            final TransactionService transactionService,
-            final BookmarkService bookmarkService,
-            final T domainObject,
-            final ImmutableEnumSet<ExecutionMode> executionModes,
-            final ExecutorService executorService,
-            final Consumer<Exception> exceptionHandler,
-            final WrapperFactory.RuleCheckingPolicy ruleCheckingPolicy) {
-
-        this.wrapperFactory = wrapperFactory;
-        this.isisSessionFactory = isisSessionFactory;
-        this.authenticationSessionTracker = authenticationSessionTracker;
-        this.transactionService = transactionService;
-        this.bookmarkService = bookmarkService;
-        this.bookmark = bookmarkService.bookmarkFor(domainObject);
-        this.domainClass = (Class<T>) domainObject.getClass();
-        this.executionModes = executionModes;
-
-        withRuleCheckingPolicy(ruleCheckingPolicy);
-        withExecutorService(executorService);
-        withExceptionHandler(exceptionHandler);
-    }
-
-    private void deriveExecutionModes() {
-
-        if(executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION)) {
-            // ruleCheckingPolicy doesn't matter
-            executionModesSync = WrapperFactory.ExecutionModes.NOOP;
-            executionModesAsync = executionModes;
-        } else {
-            switch (ruleCheckingPolicy) {
-                case SYNC:
-                    // move rule validation to be performed synchronously.
-                    executionModesSync = WrapperFactory.ExecutionModes.NO_EXECUTE;  // ie do check rules.
-                    val tmp = executionModes.toEnumSet();
-                    tmp.add(ExecutionMode.SKIP_RULE_VALIDATION);
-                    this.executionModesAsync = ImmutableEnumSet.from(tmp);
-                    break;
-                case ASYNC:
-                    executionModesSync = WrapperFactory.ExecutionModes.NOOP;
-                    this.executionModesAsync = executionModes;
-                    break;
-            }
-        }
-    }
-
-
-    /**
-     * Fine-tune the executor.
-     */
-    public AsyncWrap<T> withExecutorService(ExecutorService executorService) {
-        this.executorService = executorService;
-        return this;
-    }
-
-    /**
-     * Fine-tune the exception handler.
-     */
-    @Override
-    public AsyncWrap<T> withExceptionHandler(Consumer<Exception> handler) {
-        this.exceptionHandler = handler;
-        return this;
-    }
-
-    /**
-     * Adjust whether rule checking happens immediately or asynchronously.
-     */
-    @Override
-    public AsyncWrap<T> withRuleCheckingPolicy(WrapperFactory.RuleCheckingPolicy ruleCheckingPolicy) {
-        this.ruleCheckingPolicy = ruleCheckingPolicy;
-        deriveExecutionModes();
-        return this;
-    }
-
-    // -- METHOD REFERENCE MATCHERS (WITH RETURN VALUE)
-
-    @Override
-    public <R> Future<R> call(Call1<? extends R, ? super T> action) {
-
-        if(shouldValidateSync()) {
-            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
-            action.call(proxy);
-        }
-        
-        if(shouldValidateAsync() || shouldExecuteAsync()) {
-            return submit(()-> {
-
-                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
-                return action.call(proxy);
-            });
-        }
-        
-        return CompletableFuture.completedFuture(null);
-    }
-
-
-    @Override
-    public <R, A1> Future<R> call(Call2<? extends R, ? super T, A1> action, A1 arg1) {
-
-        if(shouldValidateSync()) {
-            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
-            action.call(proxy, arg1);
-        }
-
-        if(shouldValidateAsync() || shouldExecuteAsync()) {
-            return submit(()-> {
-
-                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
-                return action.call(proxy, arg1);
-            });
-        }
-
-        return CompletableFuture.completedFuture(null);
-    }
-
-    @Override
-    public <R, A1, A2> Future<R> call(Call3<? extends R, ? super T, A1, A2> action, A1 arg1, A2 arg2) {
-
-        if(shouldValidateSync()) {
-            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
-            action.call(proxy, arg1, arg2);
-        }
-
-        if(shouldValidateAsync() || shouldExecuteAsync()) {
-            return submit(()-> {
-
-                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
-                return action.call(proxy, arg1, arg2);
-            });
-        }
-        
-        return CompletableFuture.completedFuture(null);
-    }
-    
-
-    @Override
-    public <R, A1, A2, A3> Future<R> call(Call4<? extends R, ? super T, A1, A2, A3> action, 
-            A1 arg1, A2 arg2, A3 arg3) {
-        
-        if(shouldValidateSync()) {
-            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
-            action.call(proxy, arg1, arg2, arg3);
-        }
-
-        if(shouldValidateAsync() || shouldExecuteAsync()) {
-            return submit(()-> {
-
-                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
-                return action.call(proxy, arg1, arg2, arg3);
-            });
-        }
-        
-        return CompletableFuture.completedFuture(null);
-    }
-
-
-    @Override
-    public <R, A1, A2, A3, A4> Future<R> call(Call5<? extends R, ? super T, A1, A2, A3, A4> action, 
-            A1 arg1, A2 arg2, A3 arg3, A4 arg4) {
-
-        if(shouldValidateSync()) {
-            T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-            val proxy = wrapperFactory.wrap(lookup, executionModesSync);
-            action.call(proxy, arg1, arg2, arg3, arg4);
-        }
-
-        if(shouldValidateAsync() || shouldExecuteAsync()) {
-            return submit(()-> {
-
-                final T lookup = bookmarkService.lookup(bookmark, this.domainClass);
-                val proxy = wrapperFactory.wrap(lookup, executionModesAsync);
-                return action.call(proxy, arg1, arg2, arg3, arg4);
-            });
-        }
-        
-        return CompletableFuture.completedFuture(null);
-    }
-    
-
-    // -- SUBMISSION
-    
-    private <R> Future<R> submit(Supplier<R> actionInvocation) {
-        
-        val authenticationSession = authenticationSessionTracker.getAuthenticationSessionElseFail();
-        
-        Callable<R> asyncTask = ()->{
-
-            try {
-                return isisSessionFactory.callAuthenticated(authenticationSession,
-                        ()->transactionService.executeWithinTransaction(actionInvocation));
-
-            } catch (Exception e) {
-
-//              val wrappedMethod = (Method) 
-//              proxy.getClass().getMethod("__isis_wrappedMethod", _Constants.emptyClasses);
-
-                Object lookup = bookmarkService.lookup(bookmark);
-                val msg = 
-                        String.format("Async execution of action '%s' on domain object '%s' failed.",
-                                "[cannot resolve method name - not implemented]",//wrappedMethod.getName(),
-                                bookmark);
-                
-                log.warn(msg, e);
-                
-                exceptionHandler.accept(_Exceptions.unrecoverable(msg, e));
-
-                return null;
-            }
-        };
-        
-        return executorService.submit(asyncTask);
-    }
-    
-    // -- HELPER
-    
-    private boolean shouldValidateSync() {
-        return !this.executionModesSync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-    }
-
-    private boolean shouldValidateAsync() {
-        return !this.executionModesAsync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-    }
-
-    private boolean shouldExecuteAsync() {
-        return !executionModesAsync.contains(ExecutionMode.SKIP_EXECUTION);
-    }
-
-}
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index c3cf248..7267b25 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -18,17 +18,23 @@
  */
 package org.apache.isis.core.runtimeservices.wrapper;
 
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
 import java.util.function.BiConsumer;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.inject.Provider;
 
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
@@ -37,8 +43,10 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
+import org.apache.isis.applib.services.command.Command;
+import org.apache.isis.applib.services.command.CommandContext;
+import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
-import org.apache.isis.applib.services.wrapper.AsyncWrap;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.events.ActionArgumentEvent;
@@ -63,14 +71,30 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
+import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactory;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
+import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
+import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
+import org.apache.isis.core.runtime.session.IsisSession;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.session.IsisSessionTracker;
+import org.apache.isis.core.runtime.session.init.InitialisationSession;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcher;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcherTypeSafe;
 import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
+import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.core.security.authentication.AuthenticationSessionTracker;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -91,10 +115,14 @@ public class WrapperFactoryDefault implements WrapperFactory {
     @Inject private FactoryService factoryService;
     @Inject private BookmarkService bookmarkService;
     @Inject private MetaModelContext metaModelContext;
+    @Inject private SpecificationLoader specificationLoader;
+    @Inject private IsisSessionTracker isisSessionTracker;
     @Inject private IsisSessionFactory isisSessionFactory;
+    @Inject private CommandExecutorService commandExecutorService;
+    @Inject private Provider<CommandContext> commandContextProvider;
     @Inject private TransactionService transactionService;
     @Inject protected ProxyFactoryService proxyFactoryService; // protected to allow JUnit test
-    @Inject private AuthenticationSessionTracker authenticationSessionTracker;
+    @Inject private CommandDtoServiceInternal commandDtoServiceInternal;
 
     private final List<InteractionListener> listeners = new ArrayList<InteractionListener>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher>
@@ -108,22 +136,22 @@ public class WrapperFactoryDefault implements WrapperFactory {
         val proxyCreator = new ProxyCreator(proxyFactoryService);
         proxyContextHandler = new ProxyContextHandler(proxyCreator);
         
-        putDispatcher(ObjectTitleEvent.class, (listener, event)->listener.objectTitleRead(event));
-        putDispatcher(PropertyVisibilityEvent.class, (listener, event)->listener.propertyVisible(event));
-        putDispatcher(PropertyUsabilityEvent.class, (listener, event)->listener.propertyUsable(event));
-        putDispatcher(PropertyAccessEvent.class, (listener, event)->listener.propertyAccessed(event));
-        putDispatcher(PropertyModifyEvent.class, (listener, event)->listener.propertyModified(event));
-        putDispatcher(CollectionVisibilityEvent.class, (listener, event)->listener.collectionVisible(event));
-        putDispatcher(CollectionUsabilityEvent.class, (listener, event)->listener.collectionUsable(event));
-        putDispatcher(CollectionAccessEvent.class, (listener, event)->listener.collectionAccessed(event));
-        putDispatcher(CollectionAddToEvent.class, (listener, event)->listener.collectionAddedTo(event));
-        putDispatcher(CollectionRemoveFromEvent.class, (listener, event)->listener.collectionRemovedFrom(event));
-        putDispatcher(ActionVisibilityEvent.class, (listener, event)->listener.actionVisible(event));
-        putDispatcher(ActionUsabilityEvent.class, (listener, event)->listener.actionUsable(event));
-        putDispatcher(ActionArgumentEvent.class, (listener, event)->listener.actionArgument(event));
-        putDispatcher(ActionInvocationEvent.class, (listener, event)->listener.actionInvoked(event));
-        putDispatcher(ObjectValidityEvent.class, (listener, event)->listener.objectPersisted(event));
-        putDispatcher(CollectionMethodEvent.class, (listener, event)->listener.collectionMethodInvoked(event));
+        putDispatcher(ObjectTitleEvent.class, InteractionListener::objectTitleRead);
+        putDispatcher(PropertyVisibilityEvent.class, InteractionListener::propertyVisible);
+        putDispatcher(PropertyUsabilityEvent.class, InteractionListener::propertyUsable);
+        putDispatcher(PropertyAccessEvent.class, InteractionListener::propertyAccessed);
+        putDispatcher(PropertyModifyEvent.class, InteractionListener::propertyModified);
+        putDispatcher(CollectionVisibilityEvent.class, InteractionListener::collectionVisible);
+        putDispatcher(CollectionUsabilityEvent.class, InteractionListener::collectionUsable);
+        putDispatcher(CollectionAccessEvent.class, InteractionListener::collectionAccessed);
+        putDispatcher(CollectionAddToEvent.class, InteractionListener::collectionAddedTo);
+        putDispatcher(CollectionRemoveFromEvent.class, InteractionListener::collectionRemovedFrom);
+        putDispatcher(ActionVisibilityEvent.class, InteractionListener::actionVisible);
+        putDispatcher(ActionUsabilityEvent.class, InteractionListener::actionUsable);
+        putDispatcher(ActionArgumentEvent.class, InteractionListener::actionArgument);
+        putDispatcher(ActionInvocationEvent.class, InteractionListener::actionInvoked);
+        putDispatcher(ObjectValidityEvent.class, InteractionListener::objectPersisted);
+        putDispatcher(CollectionMethodEvent.class, InteractionListener::collectionMethodInvoked);
     }
 
     // -- WRAPPING
@@ -154,21 +182,23 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
     @Override
-    public <T> T wrap(T domainObject, ImmutableEnumSet<ExecutionMode> mode) {
+    public <T> T wrap(
+            final T domainObject,
+            final ImmutableEnumSet<ExecutionMode> modes) {
         if (domainObject instanceof WrappingObject) {
             val wrapperObject = (WrappingObject) domainObject;
             val executionMode = wrapperObject.__isis_executionMode();
-            if(executionMode != mode) {
+            if(executionMode != modes) {
                 val underlyingDomainObject = wrapperObject.__isis_wrapped();
-                return _Casts.uncheckedCast(createProxy(underlyingDomainObject, mode));
+                return _Casts.uncheckedCast(createProxy(underlyingDomainObject, modes));
             }
             return domainObject;
         }
-        return createProxy(domainObject, mode);
+        return createProxy(domainObject, modes);
     }
 
-    protected <T> T createProxy(T domainObject, ImmutableEnumSet<ExecutionMode> mode) {
-        return proxyContextHandler.proxy(metaModelContext, domainObject, mode);
+    protected <T> T createProxy(T domainObject, ImmutableEnumSet<ExecutionMode> modes) {
+        return proxyContextHandler.proxy(metaModelContext, domainObject, modes);
     }
 
     @Override
@@ -185,25 +215,151 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return possibleWrappedDomainObject;
     }
 
+
     // -- ASYNC WRAPPING
 
-    
     @Override
-    public <T> T async(T domainObject, ImmutableEnumSet<ExecutionMode> modes) {
-        val executor = ForkJoinPool.commonPool(); // default, but can be overwritten through withers on the returned AsyncWrap
-        AsyncWrapDefault<T> tAsyncWrapDefault = new AsyncWrapDefault<>(
-                this, isisSessionFactory,
-                authenticationSessionTracker, transactionService, bookmarkService,
-                domainObject, modes, executor, log::error, RuleCheckingPolicy.ASYNC);
-        return proxyFactoryService.factory()tAsyncWrapDefault;
+    public <T> T async(
+            final T domainObject,
+            final ImmutableEnumSet<ExecutionMode> executionModes,
+            final RuleCheckingPolicy ruleCheckingPolicy,
+            final ExecutorService executorService) {
+
+        Class<T> domainClass = (Class<T>) domainObject.getClass();
+        ProxyFactory<T> factory = proxyFactoryService.factory(domainClass, WrappingObject.class);
+
+        return factory.createInstance((Object proxy, Method method, Object[] args) -> {
+
+            val executionModesAsync = determineExecutionModesAsync(executionModes, ruleCheckingPolicy);
+            if (!shouldValidateAsync(executionModesAsync) && !shouldExecuteAsync(executionModesAsync)) {
+                // nothing to be done.
+                return null;
+            }
+
+            //
+            // executed in the same thread as caller..
+            //
+            final boolean inheritedFromObject = method.getDeclaringClass().equals(Object.class);
+            if(inheritedFromObject) {
+                return method.invoke(domainObject, args);
+            }
+
+            val executionModesSync = determineExecutionModesSync(executionModes, ruleCheckingPolicy);
+            if(shouldValidateSync(executionModesSync)) {
+                // normal wrapped object...
+                T syncProxy = createProxy(domainObject, executionModesSync);
+                method.invoke(syncProxy, args);
+            }
+
+            //
+            // submit async stuff
+            //
+            final ObjectSpecificationDefault targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
+            final ObjectMember member = targetObjSpec.getMember(method);
+
+            if(member == null) {
+                return method.invoke(domainObject, args);
+            }
+
+            if(!(member instanceof ObjectAction)) {
+                throw new UnsupportedOperationException(
+                        "Only actions can be executed in the background "
+                                + "(method " + method.getName() + " represents a " + member.getFeatureType().name() + "')");
+            }
+
+            ObjectAction action = (ObjectAction) member;
+
+            val isisSession = isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
+            val authSession = isisSession.getAuthenticationSession();
+
+            final ManagedObject domainObjectAdapter = isisSession.getObjectManager().adapt(domainObject);
+            final String domainObjectClassName = CommandUtil.targetClassNameFor(domainObjectAdapter);
+
+            final String targetActionName = CommandUtil.targetMemberNameFor(action);
+
+            final List<ManagedObject> argAdapters = Arrays.asList(adaptersFor(args));
+            final String targetArgs = CommandUtil.argDescriptionFor(action, argAdapters);
+
+            final Command command = commandContextProvider.get().getCommand();
+
+            final List<ManagedObject> targetList = Collections.singletonList(domainObjectAdapter);
+            final CommandDto dto =
+                    commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+
+            executorService.submit(() -> {
+
+                isisSessionFactory.runAuthenticated(authSession, () -> {
+
+                    if (shouldValidateAsync(executionModesAsync)) {
+                        // TODO...
+                    }
+                    if (shouldExecuteAsync(executionModesAsync)) {
+                        commandExecutorService.executeCommand(dto);
+                    }
+
+                });
+            });
+            return null;
+
+
+        }, false);
     }
-    
+
     @Override
-    public <T> AsyncWrap<T> asyncMixin(Class<T> mixinClass, Object mixedIn, ImmutableEnumSet<ExecutionMode> mode) {
-        val mixin = factoryService.<T>mixin(mixinClass, mixedIn);
-        return async(mixin, mode);
+    public <T> T asyncMixin(
+            Class<T> mixinClass, Object mixedIn,
+            ImmutableEnumSet<ExecutionMode> modes,
+            RuleCheckingPolicy ruleCheckingPolicy,
+            ExecutorService executorService) {
+
+        throw new RuntimeException("TODO");
+    }
+
+    private ManagedObject[] adaptersFor(final Object[] args) {
+        final ObjectManager objectManager =
+                isisSessionTracker.currentSession().get().getObjectManager();
+        return CommandUtil.adaptersFor(args, objectManager);
     }
 
+    private static ImmutableEnumSet<ExecutionMode> determineExecutionModesSync(
+            ImmutableEnumSet<ExecutionMode> executionModes,
+            RuleCheckingPolicy ruleCheckingPolicy) {
+        return executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION) ||
+                ruleCheckingPolicy != RuleCheckingPolicy.SYNC
+                ? ExecutionModes.NOOP
+                : ExecutionModes.NO_EXECUTE;
+    }
+
+    private static ImmutableEnumSet<ExecutionMode> determineExecutionModesAsync(
+            ImmutableEnumSet<ExecutionMode> executionModes,
+            RuleCheckingPolicy ruleCheckingPolicy) {
+        return executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION) ||
+                RuleCheckingPolicy.SYNC == ruleCheckingPolicy
+                ? join(executionModes, ExecutionMode.SKIP_RULE_VALIDATION)
+                : executionModes;
+    }
+
+    private static ImmutableEnumSet<ExecutionMode> join(
+            ImmutableEnumSet<ExecutionMode> executionModes,
+            ExecutionMode skipRuleValidation) {
+        val tmp = executionModes.toEnumSet();
+        tmp.add(skipRuleValidation);
+        return ImmutableEnumSet.from(tmp);
+    }
+
+    private boolean shouldValidateSync(ImmutableEnumSet<ExecutionMode> executionModesSync) {
+        return !executionModesSync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+    }
+
+    private boolean shouldValidateAsync(ImmutableEnumSet<ExecutionMode> executionModesAsync) {
+        return !executionModesAsync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+    }
+
+    private boolean shouldExecuteAsync(ImmutableEnumSet<ExecutionMode> executionModesAsync) {
+        return !executionModesAsync.contains(ExecutionMode.SKIP_EXECUTION);
+    }
+
+
     // -- LISTENERS
 
     @Override
@@ -250,4 +406,5 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
 
+
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java
index dea3aeb..28f18eb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/proxy/ProxyCreator.java
@@ -19,7 +19,6 @@
 
 package org.apache.isis.core.runtimeservices.wrapper.proxy;
 
-import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Proxy;
 
 import org.apache.isis.applib.services.wrapper.WrappingObject;
@@ -44,20 +43,11 @@ public class ProxyCreator {
         final Class<T> base = _Casts.uncheckedCast(toProxy.getClass());
 
         if (base.isInterface()) {
-            return createInstanceForInterface(base, handler, WrappingObject.class);
+            return (T) Proxy.newProxyInstance(base.getClassLoader(), _Arrays.combine(base, (Class<?>[]) new Class[]{WrappingObject.class}) , handler);
         } else {
             final ProxyFactory<T> proxyFactory = proxyFactoryService.factory(base, WrappingObject.class);
             return proxyFactory.createInstance(handler, false);
         }
     }
 
-    // -- HELPER
-
-
-    @SuppressWarnings("unchecked")
-    private static <T> T createInstanceForInterface(
-            final Class<T> base, final InvocationHandler handler, final Class<?>... auxiliaryTypes) {
-        return (T) Proxy.newProxyInstance(base.getClassLoader(), _Arrays.combine(base, auxiliaryTypes) , handler);
-    }
-
 }
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
index 6b54786..9434440 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
@@ -82,8 +82,8 @@ public class WrapperFactoryDefaultTest {
             }
             
             @Override
-            protected <T> T createProxy(T domainObject, ImmutableEnumSet<WrapperFactory.ExecutionMode> mode) {
-                WrapperFactoryDefaultTest.this.createProxyCalledWithMode = mode;
+            protected <T> T createProxy(T domainObject, ImmutableEnumSet<WrapperFactory.ExecutionMode> modes) {
+                WrapperFactoryDefaultTest.this.createProxyCalledWithMode = modes;
                 WrapperFactoryDefaultTest.this.createProxyCalledWithDomainObject = (DomainObject) domainObject;
                 return domainObject;
             }
diff --git a/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java b/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
index 18e43a0..2856a5f 100644
--- a/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
+++ b/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
@@ -54,13 +54,12 @@ public class DemoEventSubscriber {
         
         val eventLogWriter = factoryService.get(EventLogWriter.class); // <-- get a new writer
         
-        wrapper.async(eventLogWriter)
-            .run(EventLogWriter::storeEvent, event);
+        wrapper.async(eventLogWriter).storeEvent(event);
 
     }
 
     @DomainObject(
-            nature = Nature.BEAN, // <-- have this Object's lifecycle managed by Spring (EXPERIMENTAL)
+            nature = Nature.BEAN, // <-- have this Object's lifecycle managed by Spring
             objectType = "demoapp.eventLogWriter")
     public static class EventLogWriter {
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index ab4d7c1..5f1e204 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -131,11 +131,8 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         kvStore.clear(AuditerServiceForTesting.class);
 
         // when - running within its own background task
-        val future = wrapper.async(book, WrapperFactory.ExecutionModes.SKIP_RULES) // don't enforce rules for this test
-        .run(JdoBook::setName, "Book #2");
+        wrapper.async(book, WrapperFactory.ExecutionModes.SKIP_RULES).setName("Book #2"); // don't enforce rules for this test
 
-        future.get(1000, TimeUnit.SECONDS);
-        
         // then - after the commit
         assertEquals("targetClassName=Jdo Book,propertyName=name,preValue=Sample Book,postValue=Book #2;",
                 kvStore.get(AuditerServiceForTesting.class, "audit").orElse(null));
@@ -154,10 +151,9 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         // when - running within its own background task
         assertThrows(DisabledException.class, ()->{
         
-            val future = wrapper.async(book, WrapperFactory.ExecutionModes.EXECUTE)
-                    .run(JdoBook::setName, "Book #2");
+            wrapper.async(book, WrapperFactory.ExecutionModes.EXECUTE).setName("Book #2");
 
-            future.get(1000, TimeUnit.SECONDS);
+            //future.get(1000, TimeUnit.SECONDS);
             
         });
         
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
index a0bcf6e..12c416c 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
@@ -119,15 +119,15 @@ class WrapperAsyncTest {
 
         actionDomainEventListener.prepareLatch();
 
-        Future<JdoProduct> invocationResult = wrapper.async(inventoryManager)
-                .withExecutor(Executors.newCachedThreadPool()) // use of custom executor (optional)
-                .call(JdoInventoryManager::updateProductPrice, product, 123d);
+        // use of custom executor (optional)
+        wrapper.async(inventoryManager, WrapperFactory.ExecutionModes.EXECUTE, WrapperFactory.RuleCheckingPolicy.ASYNC, Executors.newCachedThreadPool())
+                .updateProductPrice(product, 123d);
 
 //XXX type-safety should prevent this snippet from being compiled!        
 //        Future<String> invocationResult2 = wrapper.async(inventoryManager)
 //                .invoke(Product::toString);
         
-        assertNotNull(invocationResult);
+        // assertNotNull(invocationResult);
         
 
         assertTrue(
@@ -136,9 +136,9 @@ class WrapperAsyncTest {
         
         assertEquals(123d, product.getPrice(), 1E-6);
         
-        val product_asReturnedByTheAsyncTask = invocationResult.get();
-        assertNotNull(product_asReturnedByTheAsyncTask);
-        assertEquals(123d, product_asReturnedByTheAsyncTask.getPrice(), 1E-6);
+//        val product_asReturnedByTheAsyncTask = invocationResult.get();
+//        assertNotNull(product_asReturnedByTheAsyncTask);
+//        assertEquals(123d, product_asReturnedByTheAsyncTask.getPrice(), 1E-6);
     }
     
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
index 24b13ef..6210a85 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
@@ -143,10 +143,9 @@ class PublisherServiceTest extends IsisIntegrationTestAbstract {
         val latch = kvStore.latch(PublisherServiceForTesting.class);
 
         // when - running within its own background task
-        val future = wrapper.async(book, WrapperFactory.ExecutionModes.SKIP_RULES) // don't enforce rules for this test
-                .run(JdoBook::setName, "Book #2");
+        wrapper.async(book, WrapperFactory.ExecutionModes.SKIP_RULES).setName("Book #2"); // don't enforce rules for this test
 
-        future.get(10, TimeUnit.SECONDS);
+        //future.get(10, TimeUnit.SECONDS);
 
         latch.await(2, TimeUnit.SECONDS);
         
@@ -173,10 +172,9 @@ class PublisherServiceTest extends IsisIntegrationTestAbstract {
         // when - running within its own background task
         assertThrows(DisabledException.class, ()->{
             
-            val future = wrapper.async(book, WrapperFactory.ExecutionModes.EXECUTE)
-                .run(JdoBook::setName, "Book #2");
+            wrapper.async(book, WrapperFactory.ExecutionModes.EXECUTE).setName("Book #2");
             
-            future.get(10, TimeUnit.SECONDS);
+            //future.get(10, TimeUnit.SECONDS);
             
         });
 


[isis] 10/41: ISIS-2094: supplemental licenses

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

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

commit 06b5e5ecc3bbafebda3a3d47cd9c86140a080381
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Mar 7 10:33:20 2020 +0000

    ISIS-2094: supplemental licenses
---
 .../modules/ROOT/pages/cutting-a-release.adoc      | 15 ++--
 scripts/checkmissinglicenses.groovy                |  8 +-
 .../src/main/resources/supplemental-models.xml     | 99 +++-------------------
 3 files changed, 26 insertions(+), 96 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 7081d03..44b1c21 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -124,13 +124,12 @@ The parent `pom.xml` of each releasable module specifies the RAT Maven plugin, w
 To run the RAT tool, use:
 
 [source,bash,subs="attributes+"]
+.find unapproved/missing licenses
 ----
 mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=100
 
-pushd ..
-for a in `/bin/find . -name rat.txt -print`; do grep '!???' $a; done
-for a in `/bin/find . -name rat.txt -print`; do grep '!AL' $a; done
-popd
+for a in `/bin/find .. -name rat.txt -print`; do grep '!???' $a; done
+for a in `/bin/find .. -name rat.txt -print`; do grep '!AL' $a; done
 ----
 
 where `rat.numUnapprovedLicenses` property is set to a high figure, temporarily overriding the default value of 0.
@@ -147,9 +146,11 @@ Investigate and fix any reported violations, typically by either:
 Once you've fixed all issues, confirm once more that `apache-rat-plugin` no longer reports any license violations, this time leaving the `rat.numUnapprovedLicenses` property to its default, 0:
 
 [source,bash]
+.verify no unapproved/missing licenses
 ----
-mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=0 -o && \
-for a in `find . -name rat.txt -print`; do grep '!???' $a; done
+mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=0
+
+for a in `/bin/find .. -name rat.txt -print`; do grep '!???' $a; done
 ----
 
 === Missing License Check
@@ -171,7 +172,7 @@ Once this is done, capture the missing license information using:
 
 [source,bash,subs="attributes+"]
 ----
-mvn license:download-licenses && \
+mvn license:download-licenses
 groovy ../scripts/checkmissinglicenses.groovy
 ----
 
diff --git a/scripts/checkmissinglicenses.groovy b/scripts/checkmissinglicenses.groovy
index ed6cd64..e5c6684 100644
--- a/scripts/checkmissinglicenses.groovy
+++ b/scripts/checkmissinglicenses.groovy
@@ -33,12 +33,14 @@ import javax.xml.transform.stream.*
 // phase 1: find missing dependencies from each of the license.xml files
 //
 
-def currentDir=new File(".")
+def parentDir=new File("..")
 def missing = []
 
-currentDir.eachFileRecurse { file ->
+parentDir.eachFileRecurse { file ->
+
   if ( file.name == "licenses.xml" ) {
 
+    println file.canonicalPath
 
     def fileXml = new XmlSlurper().parseText(file.text)
 
@@ -64,7 +66,7 @@ missing = missing.unique().sort()
 //
 // phase 2: convert existing supplemental model entries into list form
 //
-def supModelsFile = new File("src/main/appended-resources/supplemental-models.xml")
+def supModelsFile = new File("../supplemental-model/src/main/resources/supplemental-models.xml")
 def supModelsXml = new XmlSlurper().parseText(supModelsFile.text)
 
 def supplements = []
diff --git a/supplemental-model/src/main/resources/supplemental-models.xml b/supplemental-model/src/main/resources/supplemental-models.xml
index cb0fa43..307ff9f 100644
--- a/supplemental-model/src/main/resources/supplemental-models.xml
+++ b/supplemental-model/src/main/resources/supplemental-models.xml
@@ -15,12 +15,13 @@
 
     <supplement>
         <project>
-            <groupId>aopalliance</groupId>
-            <artifactId>aopalliance</artifactId>
-            <version>1.0</version>
+            <groupId>org.codehaus.jettison</groupId>
+            <artifactId>jettison</artifactId>
+            <version>1.2</version>
             <licenses>
                 <license>
-                    <name>Public Domain</name>
+                    <name>Apache License, v2.0</name>
+                    <url>http://www.apache.org/licenses/</url>
                 </license>
             </licenses>
         </project>
@@ -28,92 +29,18 @@
 
     <supplement>
         <project>
-          <groupId>javax.transaction</groupId>
-          <artifactId>transaction-api</artifactId>
-          <version>1.1</version>
-          <name>Java Transaction API (JTA)</name>
-          <organization>
-            <name>Oracle Corp</name>
-            <url>http://www.oracle.com/</url>
-          </organization>
-          <licenses>
-            <license>
-              <name>Common Development and Distribution License (CDDL) v1.0</name>
-              <url>https://glassfish.java.net/public/CDDLv1.0.html</url>
-            </license>
-          </licenses>
-        </project>
-      </supplement>
-
-    <supplement>
-        <project>
-            <groupId>net.jcip</groupId>
-            <artifactId>jcip-annotations</artifactId>
-            <version>1.0</version>
-            <licenses>
-                <license>
-                     <name>Creative Commons Attribution 2.5 License</name>
-                     <url>http://creativecommons.org/licenses/by/2.5/</url>
-                     <distribution>repo</distribution>          
-                </license>
-            </licenses>
-        </project>
-    </supplement>
-     
-    <supplement>
-        <project>
-            <groupId>org.sonatype.spice</groupId>
-            <artifactId>model-builder</artifactId>
-            <version>1.3</version>
-            <name>Maven Shared Model</name>
-            <organization>
-                <name>Sonatype, Inc</name>
-                <url>http://www.sonatype.org/</url>
-            </organization>
-            <licenses>
-                <license>
-                    <name>The Apache Software License, Version 2.0</name>
-                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-                </license>
-            </licenses>
-        </project>
-    </supplement>
-
-    <supplement>
-        <project>
-            <groupId>de.agilecoders.maven</groupId>
-            <artifactId>maven-parent-config</artifactId>
-            <version>0.3.5</version>
-            <name>Maven Parent Config</name>
-            <organization>
-                <name>AgileCoders</name>
-                <url>https://github.com/agile-coders</url>
-            </organization>
-            <licenses>
-                <license>
-                    <name>The Apache Software License, Version 2.0</name>
-                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-                </license>
-            </licenses>
-        </project>
-    </supplement>
-
-    <supplement>
-        <project>
-            <groupId>javax.xml.bind</groupId>
-            <artifactId>jsr173_api</artifactId>
-            <version>1.0</version>
-            <name>JSR173 API</name>
+            <groupId>javax.transaction</groupId>
+            <artifactId>transaction-api</artifactId>
+            <version>1.1</version>
+            <name>Java Transaction API (JTA)</name>
             <organization>
-                <name>Sun Microsystems</name>
-                <url>http://www.sun.com/</url>
+                <name>Oracle Corp</name>
+                <url>http://www.oracle.com/</url>
             </organization>
             <licenses>
                 <license>
-                    <name>
-                        COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-                    </name>
-                    <url>http://www.sun.com/cddl/cddl.html</url>
+                    <name>Common Development and Distribution License (CDDL) v1.0</name>
+                    <url>https://glassfish.java.net/public/CDDLv1.0.html</url>
                 </license>
             </licenses>
         </project>


[isis] 11/41: ISIS-2062: release docs

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

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

commit 4442187c3cc59793bdea8ffe4b77a2681cf666f2
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Mar 7 12:17:46 2020 +0000

    ISIS-2062: release docs
---
 .../modules/ROOT/pages/cutting-a-release.adoc      | 146 ++++++++++++---------
 1 file changed, 85 insertions(+), 61 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 44b1c21..eab7528 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -20,7 +20,10 @@ In particular, you'll need signed public/private keys, and the ASF Nexus staging
 These release notes using bash command line tools.
 They should work on Linux and MacOS; for Windows, use mSysGit.
 
-== Obtain Consensus
+
+== Preparation
+
+=== Obtain Consensus
 
 Before releasing the framework, ensure there is consensus on the xref:docs:support:mailing-list.adoc[dev mailing list] that this is the right time for a release.
 The discussion should include confirming the version number to be used, and to confirm content.
@@ -31,48 +34,18 @@ This should be in line with our xref:comguide:ROOT:policies/versioning-policy.ad
 Make sure you have a JIRA ticket open against which to perform all commits.
 In most cases a JIRA ticket will have been created at the beginning of the previous release cycle.
 
-== Set environment variables
 
-We use environment variables to parameterize as many of the steps as possible.
-For example:
-
-[source,bash,subs="attributes+"]
-----
-export ISISTMP=/c/tmp                               # <1>
-export ISISREL={isisnext}
-export ISISRC=RC1
-export ISISBRANCH=release-$ISISREL-$ISISRC
-export ISISJIRA=ISIS-9999                           # <2>
-export ISISART=isis
-
-env | grep ISIS | sort
-----
-<1> adjust by platform
-<2> set to an "umbrella" ticket for all release activities.
-(One should exist already, xref:comguide:ROOT:post-release-successful.adoc#create-new-jira[created at] the beginning of the development cycle now completing).
-
-Obviously, alter ``$ISISREL`` as required, and bump ``$ISISRC`` for re-releasing following an xref:comguide:ROOT:post-release-unsuccessful.adoc[unsuccessful] release.
-
-[IMPORTANT]
-====
-Note that the branch name is intentionally *not* the same as the eventual tag names (eg `isis-{isisnext}`).
-====
-
-== Pull down code to release
+=== Pull down code to release
 
 Set the HEAD of your local git repo to the commit to be released.
-This will usually be the tip of the origin's `master` branch.
-Then, create a release branch for the version number being released; eg:
+This will usually be the tip of the origin's `master` branch:
 
 [source,bash,subs="attributes+"]
 ----
 git checkout master
 git pull --ff-only
-git checkout -b $ISISBRANCH
 ----
 
-The release is performed on a branch; if we are successful, this branch will be merged back into master.
-
 Check that there are no snapshot dependencies:
 
 [source,bash,subs="attributes+"]
@@ -82,40 +55,13 @@ grep SNAPSHOT $(/bin/find . -name pom.xml | grep -v target  sort)
 
 The only mention of `SNAPSHOT` should be in the `revision` property of the root `core-prent/pom.xml` file.
 
-== Releasing the Framework
-
-Switch to the appropriate directory:
+Finally, switch to the `core-parent` directory:
 
 [source,bash,subs="attributes+"]
 ----
 cd core-parent
 ----
 
-=== Bump `revision` property to `$ISISREL`
-
-Previously we used the `maven-release-plugin` which took responsibility for bumping the `<version>` from -SNAPSHOT to release, and then onto the next -SNAPSHOT.
-However, we now use a simpler process, and just use `mvn versions:set`.
-
-So, bump to the release version:
-
-[source,bash,subs="attributes+"]
-----
-mvn versions:set -DnewVersion=$ISISREL
-git commit -am "$ISISJIRA: bumps version to $ISISREL"
-----
-
-so that they should read:
-
-[source,xml,subs="attributes+"]
-----
-<properties>
-    <revision>{isisnext}</revision>
-    ...
-</properties>
-----
-
-NOTE: After release, there is a xref:comguide:ROOT:cutting-a-release.adoc#reset-revision[similar step at the end] to reset back to `2.0.0-SNAPSHOT`.
-
 === License headers
 
 The Apache Release Audit Tool `RAT` (from the http://creadur.apache.org[Apache Creadur] project) checks for missing license header files.
@@ -176,6 +122,8 @@ mvn license:download-licenses
 groovy ../scripts/checkmissinglicenses.groovy
 ----
 
+WARNING: this groovy script assumes it is being run from the `core-parent` directory.
+
 The Maven plugin creates a `license.xml` file in the `target/generated-resources` directory of each module.
 The script then searches for these `licenses.xml` files, and compares them against the contents of the `supplemental-models.xml` file.
 
@@ -204,6 +152,82 @@ Commit any changes from the preceding steps:
 git commit -am "$ISISJIRA: updates to pom.xml etc for release"
 ----
 
+
+== Releasing the Framework
+
+=== Set environment variables
+
+We use environment variables to parameterize as many of the steps as possible.
+For example:
+
+[source,bash,subs="attributes+"]
+----
+export ISISTMP=/c/tmp                               # <1>
+export ISISREL={isisnext}
+export ISISRC=RC1
+export ISISBRANCH=release-$ISISREL-$ISISRC
+export ISISJIRA=ISIS-9999                           # <2>
+export ISISART=isis
+
+env | grep ISIS | sort
+----
+<1> adjust by platform
+<2> set to an "umbrella" ticket for all release activities.
+(One should exist already, xref:comguide:ROOT:post-release-successful.adoc#create-new-jira[created at] the beginning of the development cycle now completing).
+
+Obviously, alter ``$ISISREL`` as required, and bump ``$ISISRC`` for re-releasing following an xref:comguide:ROOT:post-release-unsuccessful.adoc[unsuccessful] release.
+
+[IMPORTANT]
+====
+Note that the branch name is intentionally *not* the same as the eventual tag names (eg `isis-{isisnext}`).
+====
+
+
+=== Create a release branch
+
+The release is performed on a branch; if we are successful, this branch will be merged back into master.
+
+The next step therefore is to create a release branch for the version number being released; eg:
+
+
+[source,bash,subs="attributes+"]
+----
+git checkout -b $ISISBRANCH
+----
+
+If necessary, switch to the `core-parent` directory:
+
+[source,bash,subs="attributes+"]
+----
+cd core-parent
+----
+
+=== Bump `revision` property to `$ISISREL`
+
+Previously we used the `maven-release-plugin` which took responsibility for bumping the `<version>` from -SNAPSHOT to release, and then onto the next -SNAPSHOT.
+However, we now use a simpler process, and just use `mvn versions:set`.
+
+So, bump to the release version:
+
+[source,bash,subs="attributes+"]
+----
+mvn versions:set -DnewVersion=$ISISREL
+git commit -am "$ISISJIRA: bumps version to $ISISREL"
+----
+
+so that they should read:
+
+[source,xml,subs="attributes+"]
+----
+<properties>
+    <revision>{isisnext}</revision>
+    ...
+</properties>
+----
+
+NOTE: After release, there is a xref:comguide:ROOT:cutting-a-release.adoc#reset-revision[similar step at the end] to reset back to `2.0.0-SNAPSHOT`.
+
+
 === Sanity check
 
 Perform one last sanity check on the codebase.


[isis] 09/41: ISIS-2094: remove unnecessary .gitkeep files

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

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

commit 4e00e2ec1da2f2bff358dfa82facc6860e2311e8
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 18:52:59 2020 +0000

    ISIS-2094: remove unnecessary .gitkeep files
---
 core-parent/pom.xml                                       | 1 -
 starters/adoc/modules/parent-pom/attachments/.gitkeep     | 0
 starters/adoc/modules/starters/attachments/.gitkeep       | 0
 starters/adoc/modules/starters/images/helloworld/.gitkeep | 0
 4 files changed, 1 deletion(-)

diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index fb2ed3c..5085d60 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -520,7 +520,6 @@ under the License.
 
 							<exclude>**/*.iml</exclude>
 							<exclude>**/webpack.generated.js</exclude>
-							<exclude>**/*.gitkeep</exclude>
 
 							<exclude>**/*.pdn</exclude>
 							<exclude>**/*.svg</exclude>
diff --git a/starters/adoc/modules/parent-pom/attachments/.gitkeep b/starters/adoc/modules/parent-pom/attachments/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/starters/adoc/modules/starters/attachments/.gitkeep b/starters/adoc/modules/starters/attachments/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/starters/adoc/modules/starters/images/helloworld/.gitkeep b/starters/adoc/modules/starters/images/helloworld/.gitkeep
deleted file mode 100644
index e69de29..0000000


[isis] 30/41: ISIS-2278: fleshes out AsyncControl

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

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

commit f55e63a7b70d3ea7b16c7a36fde5077308aaa61a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Mar 14 14:51:20 2020 +0000

    ISIS-2278: fleshes out AsyncControl
---
 .../modules/applib-svc/pages/WrapperFactory.adoc   |   2 +-
 .../org/apache/isis/applib/IsisModuleApplib.java   |   4 +
 .../isis/applib/services/wrapper/AsyncWrap.java    | 119 -------------------
 .../applib/services/wrapper/WrapperFactory.java    | 132 ++-------------------
 .../applib/services/wrapper/WrappingObject.java    |   5 +-
 .../services/wrapper/control/AsyncControl.java     | 122 +++++++++++++++++++
 .../wrapper/control/AsyncControlService.java       |  55 +++++++++
 .../services/wrapper/control/ExecutionMode.java    |  37 ++++++
 .../services/wrapper/control/ExecutionModes.java   |  53 +++++++++
 .../wrapper/control/RuleCheckingPolicy.java        |   8 ++
 .../IsisModuleCoreRuntimeServices.java             |   8 +-
 .../wrapper/WrapperFactoryDefault.java             |  41 +++----
 .../DelegatingInvocationHandlerDefault.java        |   2 +-
 .../handlers/DomainObjectInvocationHandler.java    |   2 +-
 .../wrapper/handlers/ProxyContextHandler.java      |   2 +-
 .../wrapper/WrapperFactoryDefaultTest.java         |  23 ++--
 .../demoapp/dom/events/DemoEventSubscriber.java    |   3 +-
 .../testdomain/auditing/AuditerServiceTest.java    |  13 +-
 .../commandexecution/WrapperAsyncTest.java         |  16 +--
 .../publishing/PublisherServiceTest.java           |  14 ++-
 .../applib/fixturescripts/FixtureScript.java       |   3 +-
 21 files changed, 357 insertions(+), 307 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
index fdd6f25..9cb52908 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
@@ -3,7 +3,7 @@
 :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 [...]
 :page-partial:
 
-WARNING: Document `WrappingObject`, document `AsyncWrap`
+WARNING: Document `WrappingObject`, document `AsyncControl`
 
 
 The `WrapperFactory` provides the ability to enforce business rules for programmatic interactions between domain objects.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
index 5e0c58d..819b1ea 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
@@ -44,6 +44,7 @@ import org.apache.isis.applib.services.metamodel.MetaModelServiceMenu;
 import org.apache.isis.applib.services.publish.PublisherServiceLogging;
 import org.apache.isis.applib.services.scratchpad.Scratchpad;
 import org.apache.isis.applib.services.session.SessionLoggingServiceLogging;
+import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
 import org.apache.isis.schema.IsisModuleSchema;
 
 @Configuration
@@ -79,6 +80,9 @@ import org.apache.isis.schema.IsisModuleSchema;
         PublisherServiceLogging.class,
         SessionLoggingServiceLogging.class,
 
+        // @Component's
+        AsyncControlService.class,
+
 })
 public class IsisModuleApplib {
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
deleted file mode 100644
index 585a8aa..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.applib.services.wrapper;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import java.util.function.Consumer;
-
-import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
-import org.apache.isis.applib.services.MethodReferences.Call1;
-import org.apache.isis.applib.services.MethodReferences.Call2;
-import org.apache.isis.applib.services.MethodReferences.Call3;
-import org.apache.isis.applib.services.MethodReferences.Call4;
-import org.apache.isis.applib.services.MethodReferences.Call5;
-import org.apache.isis.applib.services.MethodReferences.Run1;
-import org.apache.isis.applib.services.MethodReferences.Run2;
-import org.apache.isis.applib.services.MethodReferences.Run3;
-import org.apache.isis.applib.services.MethodReferences.Run4;
-import org.apache.isis.applib.services.MethodReferences.Run5;
-
-/**
- * Binds to a domain object, to prepare for type-safe asynchronous action invocation.
- * <p> 
- * Get an instance by using {@link WrapperFactory#async(Object)}.
- * 
- * @apiNote INCUBATING
- * @since 2.0
- */
-public interface AsyncWrap<T> {
-
-    // -- CONFIGURATION
-    
-    ExecutorService getExecutorService();
-    AsyncWrap<T> withExecutorService(ExecutorService executor);
-    
-    Consumer<Exception> getExceptionHandler();
-    AsyncWrap<T> withExceptionHandler(Consumer<Exception> handler);
-
-    ImmutableEnumSet<ExecutionMode> getExecutionModes();
-    
-    // -- INVOCATION (WITH RETURN VALUE)
-    
-    <R> Future<R> call(Call1<? extends R, ? super T> action);
-    
-    <R, A1> Future<R> call(Call2<? extends R, ? super T, A1> action, 
-            A1 arg1);
-    
-    <R, A1, A2> Future<R> call(Call3<? extends R, ? super T, A1, A2> action, 
-            A1 arg1, A2 arg2);
-    
-    <R, A1, A2, A3> Future<R> call(Call4<? extends R, ? super T, A1, A2, A3> action, 
-            A1 arg1, A2 arg2, A3 arg3);
-    
-    <R, A1, A2, A3, A4> Future<R> call(Call5<? extends R, ? super T, A1, A2, A3, A4> action, 
-            A1 arg1, A2 arg2, A3 arg3, A4 arg4);
-    
-    // -- INVOCATION (WITHOUT RETURN VALUE)
-    
-    default Future<Void> run(Run1<? super T> action) {
-        return call(obj->{
-            action.run(obj); 
-            return null;
-        });
-    }
-    
-    default <A1> Future<Void> run(Run2<? super T, A1> action, 
-            A1 arg1) {
-        
-        return call(obj->{
-            action.run(obj, arg1); 
-            return null;
-        });
-    }
-    
-    default <A1, A2> Future<Void> run(Run3<? super T, A1, A2> action, 
-            A1 arg1, A2 arg2) {
-        
-        return call(obj->{
-            action.run(obj, arg1, arg2); 
-            return null;
-        });
-    }
-    
-    default <A1, A2, A3> Future<Void> run(Run4<? super T, A1, A2, A3> action, 
-            A1 arg1, A2 arg2, A3 arg3) {
-        
-        return call(obj->{
-            action.run(obj, arg1, arg2, arg3); 
-            return null;
-        });
-    }
-    
-    default <A1, A2, A3, A4> Future<Void> run(Run5<? super T, A1, A2, A3, A4> action, 
-            A1 arg1, A2 arg2, A3 arg3, A4 arg4) {
-        
-        return call(obj->{
-            action.run(obj, arg1, arg2, arg3, arg4); 
-            return null;
-        });
-    }
-    
-}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 2a932a8..15a1179 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -24,17 +24,14 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ForkJoinPool;
 
 import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
+import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
+import org.apache.isis.applib.services.wrapper.control.RuleCheckingPolicy;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 
-import static org.apache.isis.core.commons.collections.ImmutableEnumSet.*;
-
-import lombok.AccessLevel;
-import lombok.RequiredArgsConstructor;
-import lombok.val;
-import lombok.experimental.UtilityClass;
-
 /**
  * Provides the ability to &quot;wrap&quot; of a domain object such that it can
  * be interacted with while enforcing the hide/disable/validate rules implied by
@@ -81,89 +78,6 @@ public interface WrapperFactory {
     // end::refguide-listeners[]
     // end::refguide-async[]
     // end::refguide[]
-    /**
-     * Whether interactions with the wrapper are actually passed onto the
-     * underlying domain object.
-     *
-     * @see WrapperFactory#wrap(Object, ImmutableEnumSet)
-     */
-    @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
-    // tag::refguide-1[]
-    enum ExecutionMode {
-        // end::refguide-1[]
-        /**
-         * Skip all business rules.
-         */
-        // tag::refguide-1[]
-        SKIP_RULE_VALIDATION,
-        // end::refguide-1[]
-        /**
-         * Skip execution.
-         */
-        // tag::refguide-1[]
-        SKIP_EXECUTION,
-        // end::refguide-1[]
-        /**
-         * Don't fail fast, swallow any exception during validation or execution.
-         */
-        // tag::refguide-1[]
-        SWALLOW_EXCEPTIONS,
-    }
-
-    // end::refguide-1[]
-
-    // tag::refguide-2[]
-    @UtilityClass
-    class ExecutionModes {
-        // end::refguide-2[]
-        /**
-         * Validate all business rules and then execute. May throw exceptions in order to fail fast.
-         */
-        // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> EXECUTE =
-                                noneOf(ExecutionMode.class);
-        // end::refguide-2[]
-        /**
-         * Skip all business rules and then execute, does throw an exception if execution fails.
-         */
-        // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES =
-                                of(ExecutionMode.SKIP_RULE_VALIDATION);
-        // end::refguide-2[]
-        /**
-         * Validate all business rules but do not execute, throw an exception if validation
-         * fails.
-         */
-        // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE =
-                                of(ExecutionMode.SKIP_EXECUTION);
-        // end::refguide-2[]
-        /**
-         * Validate all business rules and then execute, but don't throw an exception if validation
-         * or execution fails.
-         */
-        // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> TRY =
-                                of(ExecutionMode.SWALLOW_EXCEPTIONS);
-        // end::refguide-2[]
-        /**
-         * Skips all steps.
-         * @since 2.0
-         */
-        // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> NOOP =
-                                of(ExecutionMode.SKIP_RULE_VALIDATION,
-                                   ExecutionMode.SKIP_EXECUTION);
-    }
-    // end::refguide-2[]
-
-
-    // tag::refguide-3[]
-    enum RuleCheckingPolicy {
-        SYNC,   // <.>
-        ASYNC   // <.>
-    }
-    // end::refguide-3[]
 
     /**
      * Same as {@link #wrap(Object)}, except the actual execution occurs only if
@@ -249,6 +163,7 @@ public interface WrapperFactory {
     // -- ASYNC WRAPPING
     //
 
+
     /**
      * Returns a proxy object for the provided {@code domainObject},
      * through which can execute the action asynchronously.
@@ -261,39 +176,8 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide-async[]
-    <T> T async(T domainObject,                          // <.>
-                ImmutableEnumSet<ExecutionMode> mode,
-                RuleCheckingPolicy ruleCheckingPolicy,
-                ExecutorService executorService);
-
-    // end::refguide-async[]
-    // tag::refguide-async[]
-    default <T> T async(T domainObject,                          // <.>
-                ImmutableEnumSet<ExecutionMode> modes) {
-        // end::refguide-async[]
-
-        return async(domainObject, modes, RuleCheckingPolicy.ASYNC, ForkJoinPool.commonPool());
-
-        // tag::refguide-async[]
-        // ...
-    }
-
-    // end::refguide-async[]
-    /**
-     * Shortcut for {@link #async(Object, ImmutableEnumSet)} using execution mode
-     * {@link ExecutionModes#EXECUTE}.
-     *
-     * @since 2.0
-     */
-    // tag::refguide-async[]
-    default <T> T async(T domainObject) {                // <.>
-        // end::refguide-async[]
-
-        return async(domainObject, ExecutionModes.EXECUTE);
-
-        // tag::refguide-async[]
-        // ...
-    }
+    <T,R> T async(T domainObject,                          // <.>
+                  AsyncControl<R> asyncControl);
 
     // end::refguide-async[]
     /**
@@ -316,7 +200,7 @@ public interface WrapperFactory {
 
     // end::refguide-async[]
     /**
-     * Returns a {@link AsyncWrap} bound to the provided {@code mixinClass},
+     * Returns a {@link AsyncControl} bound to the provided {@code mixinClass},
      * to prepare for type-safe asynchronous action execution.
      *
      * @param <T>
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
index 9c936cf..efcec9b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
@@ -21,6 +21,7 @@ package org.apache.isis.applib.services.wrapper;
 
 import java.util.EnumSet;
 
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 
 /**
@@ -65,7 +66,7 @@ public interface WrappingObject {
 
     // end::refguide[]
     /**
-     * The {@link EnumSet<WrapperFactory.ExecutionMode> execution mode}
+     * The {@link EnumSet< ExecutionMode > execution mode}
      * with which this wrapper was
      * {@link WrapperFactory#wrap(Object, ImmutableEnumSet) created}.
      *
@@ -75,7 +76,7 @@ public interface WrappingObject {
      * </p>
      */
     // tag::refguide[]
-    ImmutableEnumSet<WrapperFactory.ExecutionMode> __isis_executionMode();
+    ImmutableEnumSet<ExecutionMode> __isis_executionMode();
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
new file mode 100644
index 0000000..4f5d893
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
@@ -0,0 +1,122 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.services.wrapper.control;
+
+import java.lang.reflect.Method;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+import org.apache.isis.schema.common.v2.OidDto;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+
+/**
+ *
+ * @param <R> - return value.
+ */
+@Log4j2
+public class AsyncControl<R> {
+
+    public static <X> AsyncControl<X> toReturn(final Class<X> clazz) {
+        return new AsyncControl<>();
+    }
+
+    public static AsyncControl<Void> ignoreReturn() {
+        return new AsyncControl<>();
+    }
+
+    public static AsyncControl<Void> voidReturn() {
+        return new AsyncControl<>();
+    }
+
+    private AsyncControl() {
+    }
+
+    /**
+     * Set by framework.
+     */
+    @Setter(AccessLevel.PACKAGE)
+    private Method method;
+
+    /**
+     * Set by framework.
+     */
+    @Setter(AccessLevel.PACKAGE)
+    private OidDto oidDto;
+
+
+    @Getter @NonNull
+    private ImmutableEnumSet<ExecutionMode> executionModes = ExecutionModes.EXECUTE;
+    public AsyncControl<R> with(ImmutableEnumSet<ExecutionMode> executionModes) {
+        this.executionModes = executionModes;
+        return this;
+    }
+
+    @Getter @NonNull
+    private ExecutorService executorService = ForkJoinPool.commonPool();
+    public AsyncControl<R> with(ExecutorService executorService) {
+        this.executorService = executorService;
+        return this;
+    }
+
+    @Getter @NonNull
+    private RuleCheckingPolicy ruleCheckingPolicy = RuleCheckingPolicy.ASYNC;
+    public AsyncControl<R> with(RuleCheckingPolicy ruleCheckingPolicy) {
+        this.ruleCheckingPolicy = ruleCheckingPolicy;
+        return this;
+    }
+
+    @Getter @NonNull
+    private Consumer<Exception> exceptionHandler = (exception) -> {
+        log.error(logMessage(), exception);
+    };
+    public AsyncControl<R> with(Consumer<Exception> exceptionHandler) {
+        this.exceptionHandler = exceptionHandler;
+        return this;
+    }
+
+    private String logMessage() {
+        StringBuilder buf = new StringBuilder("Failed to execute ");
+        if(method != null) {
+            buf.append(" ").append(method.getName()).append(" ");
+            if(oidDto != null) {
+                buf.append(" on '")
+                    .append(oidDto.getType())
+                    .append(":")
+                    .append(oidDto.getId())
+                    .append("'");
+            }
+        }
+        return buf.toString();
+    }
+
+    /**
+     * Set by framework
+     */
+    @Getter @Setter(AccessLevel.PACKAGE)
+    private Future<R> future;
+
+}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
new file mode 100644
index 0000000..44621c5
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
@@ -0,0 +1,55 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.services.wrapper.control;
+
+import java.lang.reflect.Method;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+
+import org.springframework.stereotype.Component;
+
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+import org.apache.isis.schema.common.v2.OidDto;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+
+/**
+ * For framework internal use.
+ */
+@Component
+public class AsyncControlService<R> {
+
+    public <R> AsyncControl<R> init(AsyncControl<R> asyncControl, Method method, OidDto oidDto) {
+        asyncControl.setMethod(method);
+        asyncControl.setOidDto(oidDto);
+        return asyncControl;
+    }
+
+    public <R> AsyncControl<R> update(AsyncControl<R> asyncControl, Future<R> future) {
+        asyncControl.setFuture(future);
+        return asyncControl;
+    }
+
+}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java
new file mode 100644
index 0000000..3226e41
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java
@@ -0,0 +1,37 @@
+package org.apache.isis.applib.services.wrapper.control;
+
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+
+import lombok.AccessLevel;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * Whether interactions with the wrapper are actually passed onto the
+ * underlying domain object.
+ *
+ * @see WrapperFactory#wrap(Object, ImmutableEnumSet)
+ */
+@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
+// tag::refguide[]
+public enum ExecutionMode {
+    // end::refguide[]
+    /**
+     * Skip all business rules.
+     */
+    // tag::refguide[]
+    SKIP_RULE_VALIDATION,
+    // end::refguide[]
+    /**
+     * Skip execution.
+     */
+    // tag::refguide[]
+    SKIP_EXECUTION,
+    // end::refguide[]
+    /**
+     * Don't fail fast, swallow any exception during validation or execution.
+     */
+    // tag::refguide[]
+    SWALLOW_EXCEPTIONS,
+}
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionModes.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionModes.java
new file mode 100644
index 0000000..d910eed
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionModes.java
@@ -0,0 +1,53 @@
+package org.apache.isis.applib.services.wrapper.control;
+
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+
+import static org.apache.isis.core.commons.collections.ImmutableEnumSet.noneOf;
+import static org.apache.isis.core.commons.collections.ImmutableEnumSet.of;
+
+import lombok.experimental.UtilityClass;
+
+// tag::refguide[]
+@UtilityClass
+public class ExecutionModes {
+    // end::refguide[]
+    /**
+     * Validate all business rules and then execute. May throw exceptions in order to fail fast.
+     */
+    // tag::refguide[]
+    public static final ImmutableEnumSet<ExecutionMode> EXECUTE =
+                            noneOf(ExecutionMode.class);
+    // end::refguide[]
+    /**
+     * Skip all business rules and then execute, does throw an exception if execution fails.
+     */
+    // tag::refguide[]
+    public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES =
+                            of(ExecutionMode.SKIP_RULE_VALIDATION);
+    // end::refguide[]
+    /**
+     * Validate all business rules but do not execute, throw an exception if validation
+     * fails.
+     */
+    // tag::refguide[]
+    public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE =
+                            of(ExecutionMode.SKIP_EXECUTION);
+    // end::refguide[]
+    /**
+     * Validate all business rules and then execute, but don't throw an exception if validation
+     * or execution fails.
+     */
+    // tag::refguide[]
+    public static final ImmutableEnumSet<ExecutionMode> TRY =
+                            of(ExecutionMode.SWALLOW_EXCEPTIONS);
+    // end::refguide[]
+    /**
+     * Skips all steps.
+     * @since 2.0
+     */
+    // tag::refguide[]
+    public static final ImmutableEnumSet<ExecutionMode> NOOP =
+                            of(ExecutionMode.SKIP_RULE_VALIDATION,
+                               ExecutionMode.SKIP_EXECUTION);
+}
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/RuleCheckingPolicy.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/RuleCheckingPolicy.java
new file mode 100644
index 0000000..bc3dc06
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/RuleCheckingPolicy.java
@@ -0,0 +1,8 @@
+package org.apache.isis.applib.services.wrapper.control;
+
+// tag::refguide[]
+public enum RuleCheckingPolicy {
+    IMMEDIATE,   // <.>
+    ASYNC   // <.>
+}
+// end::refguide[]
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
index 85bea18..03a6ca0 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
@@ -26,6 +26,7 @@ import org.springframework.context.annotation.Import;
 import org.springframework.core.OrderComparator;
 import org.springframework.core.annotation.AnnotationAwareOrderComparator;
 
+import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
 import org.apache.isis.core.codegen.bytebuddy.IsisModuleCoreCodegenByteBuddy;
 import org.apache.isis.core.runtime.IsisModuleCoreRuntime;
 import org.apache.isis.core.runtimeservices.bookmarks.BookmarkServiceDefault;
@@ -107,12 +108,7 @@ import org.apache.isis.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefaul
         TranslationServicePoMenu.class,
 
 })
-public class IsisModuleCoreRuntimeServices /*implements ApplicationContextAware*/ {
-
-//    @Override
-//    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-//        // just make sure we wait for the context; (not sure if need anymore)
-//    }
+public class IsisModuleCoreRuntimeServices {
 
     @Bean @Singleton // also used by _Spring utility
     public OrderComparator orderComparator() {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 7267b25..074686e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.runtimeservices.wrapper;
 
-import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -26,7 +25,6 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.function.BiConsumer;
@@ -47,8 +45,13 @@ import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
+import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
+import org.apache.isis.applib.services.wrapper.control.RuleCheckingPolicy;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
+import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.applib.services.wrapper.events.ActionArgumentEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionInvocationEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionUsabilityEvent;
@@ -73,27 +76,21 @@ import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactory;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
-import org.apache.isis.core.runtime.session.IsisSession;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.session.IsisSessionTracker;
-import org.apache.isis.core.runtime.session.init.InitialisationSession;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcher;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcherTypeSafe;
 import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
-import org.apache.isis.core.security.authentication.AuthenticationSession;
-import org.apache.isis.core.security.authentication.AuthenticationSessionTracker;
 import org.apache.isis.schema.cmd.v2.CommandDto;
 
 import lombok.val;
@@ -218,12 +215,17 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
     // -- ASYNC WRAPPING
 
+    @Inject
+    AsyncControlService asyncControlService;
+
     @Override
-    public <T> T async(
+    public <T,R> T async(
             final T domainObject,
-            final ImmutableEnumSet<ExecutionMode> executionModes,
-            final RuleCheckingPolicy ruleCheckingPolicy,
-            final ExecutorService executorService) {
+            final AsyncControl<R> asyncControl) {
+
+        final ImmutableEnumSet<ExecutionMode> executionModes = asyncControl.getExecutionModes();
+        final RuleCheckingPolicy ruleCheckingPolicy = asyncControl.getRuleCheckingPolicy();
+        final ExecutorService executorService = asyncControl.getExecutorService();
 
         Class<T> domainClass = (Class<T>) domainObject.getClass();
         ProxyFactory<T> factory = proxyFactoryService.factory(domainClass, WrappingObject.class);
@@ -273,20 +275,14 @@ public class WrapperFactoryDefault implements WrapperFactory {
             val authSession = isisSession.getAuthenticationSession();
 
             final ManagedObject domainObjectAdapter = isisSession.getObjectManager().adapt(domainObject);
-            final String domainObjectClassName = CommandUtil.targetClassNameFor(domainObjectAdapter);
-
-            final String targetActionName = CommandUtil.targetMemberNameFor(action);
-
             final List<ManagedObject> argAdapters = Arrays.asList(adaptersFor(args));
-            final String targetArgs = CommandUtil.argDescriptionFor(action, argAdapters);
-
-            final Command command = commandContextProvider.get().getCommand();
 
             final List<ManagedObject> targetList = Collections.singletonList(domainObjectAdapter);
             final CommandDto dto =
                     commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+            asyncControlService.init(asyncControl, method, dto.getTargets().getOid().get(0));
 
-            executorService.submit(() -> {
+            Future<?> submit = executorService.submit(() -> {
 
                 isisSessionFactory.runAuthenticated(authSession, () -> {
 
@@ -299,6 +295,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
                 });
             });
+            asyncControlService.update(asyncControl, submit);
             return null;
 
 
@@ -325,7 +322,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
             ImmutableEnumSet<ExecutionMode> executionModes,
             RuleCheckingPolicy ruleCheckingPolicy) {
         return executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION) ||
-                ruleCheckingPolicy != RuleCheckingPolicy.SYNC
+                ruleCheckingPolicy != RuleCheckingPolicy.IMMEDIATE
                 ? ExecutionModes.NOOP
                 : ExecutionModes.NO_EXECUTE;
     }
@@ -334,7 +331,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
             ImmutableEnumSet<ExecutionMode> executionModes,
             RuleCheckingPolicy ruleCheckingPolicy) {
         return executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION) ||
-                RuleCheckingPolicy.SYNC == ruleCheckingPolicy
+                RuleCheckingPolicy.IMMEDIATE == ruleCheckingPolicy
                 ? join(executionModes, ExecutionMode.SKIP_RULE_VALIDATION)
                 : executionModes;
     }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java
index afd86c3..272c10c 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java
@@ -24,7 +24,7 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal._Constants;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index 70aad5d..9eb21b0 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.HiddenException;
 import org.apache.isis.applib.services.wrapper.InteractionException;
 import org.apache.isis.applib.services.wrapper.InvalidException;
-import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.events.CollectionAccessEvent;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java
index bbfe32c..fb24725 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.runtimeservices.wrapper.handlers;
 import java.util.Collection;
 import java.util.Map;
 
-import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
index 9434440..bd5dd15 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
@@ -28,8 +28,9 @@ import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
+import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
@@ -45,7 +46,7 @@ public class WrapperFactoryDefaultTest {
     private static class WrappedDomainObject extends DomainObject implements WrappingObject {
 
         private final DomainObject wrappedObject;
-        private final ImmutableEnumSet<WrapperFactory.ExecutionMode> mode;
+        private final ImmutableEnumSet<ExecutionMode> mode;
 
         @Override
         public void __isis_save() {
@@ -57,7 +58,7 @@ public class WrapperFactoryDefaultTest {
         }
 
         @Override
-        public ImmutableEnumSet<WrapperFactory.ExecutionMode> __isis_executionMode() {
+        public ImmutableEnumSet<ExecutionMode> __isis_executionMode() {
             return mode;
         }
     }
@@ -69,7 +70,7 @@ public class WrapperFactoryDefaultTest {
     private WrapperFactoryDefault wrapperFactory;
 
     private DomainObject createProxyCalledWithDomainObject;
-    private ImmutableEnumSet<WrapperFactory.ExecutionMode> createProxyCalledWithMode;
+    private ImmutableEnumSet<ExecutionMode> createProxyCalledWithMode;
 
     @Before
     public void setUp() throws Exception {
@@ -82,7 +83,7 @@ public class WrapperFactoryDefaultTest {
             }
             
             @Override
-            protected <T> T createProxy(T domainObject, ImmutableEnumSet<WrapperFactory.ExecutionMode> modes) {
+            protected <T> T createProxy(T domainObject, ImmutableEnumSet<ExecutionMode> modes) {
                 WrapperFactoryDefaultTest.this.createProxyCalledWithMode = modes;
                 WrapperFactoryDefaultTest.this.createProxyCalledWithDomainObject = (DomainObject) domainObject;
                 return domainObject;
@@ -98,7 +99,7 @@ public class WrapperFactoryDefaultTest {
         wrapperFactory.wrap(domainObject);
 
         assertThat(createProxyCalledWithDomainObject, is(domainObject));
-        assertThat(createProxyCalledWithMode, is(WrapperFactory.ExecutionModes.EXECUTE));
+        assertThat(createProxyCalledWithMode, is(ExecutionModes.EXECUTE));
     }
 
 
@@ -106,10 +107,10 @@ public class WrapperFactoryDefaultTest {
     public void wrap_ofWrapped_sameMode_returnsUnchanged() throws Exception {
         // given
         final DomainObject wrappedObject = new DomainObject();
-        final DomainObject domainObject = new WrappedDomainObject(wrappedObject, WrapperFactory.ExecutionModes.EXECUTE);
+        final DomainObject domainObject = new WrappedDomainObject(wrappedObject, ExecutionModes.EXECUTE);
 
         // when
-        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, WrapperFactory.ExecutionModes.EXECUTE);
+        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, ExecutionModes.EXECUTE);
 
         // then
         assertThat(wrappingObject, is(domainObject));
@@ -120,15 +121,15 @@ public class WrapperFactoryDefaultTest {
     public void wrap_ofWrapped_differentMode_delegates_to_createProxy() throws Exception {
         // given
         final DomainObject wrappedObject = new DomainObject();
-        final DomainObject domainObject = new WrappedDomainObject(wrappedObject, WrapperFactory.ExecutionModes.EXECUTE);
+        final DomainObject domainObject = new WrappedDomainObject(wrappedObject, ExecutionModes.EXECUTE);
 
         // when
-        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, WrapperFactory.ExecutionModes.SKIP_RULES);
+        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, ExecutionModes.SKIP_RULES);
 
         // then
         assertThat(wrappingObject, is(not(domainObject)));
         assertThat(createProxyCalledWithDomainObject, is(wrappedObject));
-        assertThat(createProxyCalledWithMode, is(WrapperFactory.ExecutionModes.SKIP_RULES));
+        assertThat(createProxyCalledWithMode, is(ExecutionModes.SKIP_RULES));
     }
 
 }
\ No newline at end of file
diff --git a/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java b/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
index 2856a5f..33d1253 100644
--- a/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
+++ b/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
@@ -30,6 +30,7 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -54,7 +55,7 @@ public class DemoEventSubscriber {
         
         val eventLogWriter = factoryService.get(EventLogWriter.class); // <-- get a new writer
         
-        wrapper.async(eventLogWriter).storeEvent(event);
+        wrapper.async(eventLogWriter, AsyncControl.ignoreReturn()).storeEvent(event);
 
     }
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index 5f1e204..57505b3 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -41,6 +41,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
+import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
@@ -131,7 +133,9 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         kvStore.clear(AuditerServiceForTesting.class);
 
         // when - running within its own background task
-        wrapper.async(book, WrapperFactory.ExecutionModes.SKIP_RULES).setName("Book #2"); // don't enforce rules for this test
+        val control = AsyncControl.voidReturn().with(ExecutionModes.SKIP_RULES);
+        // don't enforce rules for this test
+        wrapper.async(book, control).setName("Book #2");
 
         // then - after the commit
         assertEquals("targetClassName=Jdo Book,propertyName=name,preValue=Sample Book,postValue=Book #2;",
@@ -150,10 +154,11 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
 
         // when - running within its own background task
         assertThrows(DisabledException.class, ()->{
-        
-            wrapper.async(book, WrapperFactory.ExecutionModes.EXECUTE).setName("Book #2");
 
-            //future.get(1000, TimeUnit.SECONDS);
+            val control = AsyncControl.voidReturn().with(ExecutionModes.EXECUTE);
+            wrapper.async(book, control).setName("Book #2");
+
+            control.getFuture().get(1000, TimeUnit.SECONDS);
             
         });
         
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
index 12c416c..1fd01a8 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
@@ -43,7 +43,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.apache.isis.applib.events.domain.AbstractDomainEvent.Phase;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
+import org.apache.isis.applib.services.wrapper.control.RuleCheckingPolicy;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
@@ -99,8 +102,7 @@ class WrapperAsyncTest {
 
         actionDomainEventListener.prepareLatch();
 
-        wrapper.wrap(inventoryManager)
-        .updateProductPrice(product, 123);
+        wrapper.wrap(inventoryManager).updateProductPrice(product, 123);
 
         assertTrue(
                 actionDomainEventListener.getCountDownLatch()
@@ -120,14 +122,12 @@ class WrapperAsyncTest {
         actionDomainEventListener.prepareLatch();
 
         // use of custom executor (optional)
-        wrapper.async(inventoryManager, WrapperFactory.ExecutionModes.EXECUTE, WrapperFactory.RuleCheckingPolicy.ASYNC, Executors.newCachedThreadPool())
+        val control = AsyncControl.toReturn(JdoProduct.class).with(ExecutionModes.EXECUTE).with(RuleCheckingPolicy.ASYNC).with(Executors.newCachedThreadPool());
+        wrapper.async(inventoryManager, control)
                 .updateProductPrice(product, 123d);
 
-//XXX type-safety should prevent this snippet from being compiled!        
-//        Future<String> invocationResult2 = wrapper.async(inventoryManager)
-//                .invoke(Product::toString);
-        
-        // assertNotNull(invocationResult);
+        Future<JdoProduct> future = control.getFuture();
+        assertNotNull(future);
         
 
         assertTrue(
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
index 6210a85..7a62d58 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
@@ -43,6 +43,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
+import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
@@ -143,9 +145,10 @@ class PublisherServiceTest extends IsisIntegrationTestAbstract {
         val latch = kvStore.latch(PublisherServiceForTesting.class);
 
         // when - running within its own background task
-        wrapper.async(book, WrapperFactory.ExecutionModes.SKIP_RULES).setName("Book #2"); // don't enforce rules for this test
+        AsyncControl<Void> control = AsyncControl.voidReturn().with(ExecutionModes.SKIP_RULES);
+        wrapper.async(book, control).setName("Book #2"); // don't enforce rules for this test
 
-        //future.get(10, TimeUnit.SECONDS);
+        control.getFuture().get(10, TimeUnit.SECONDS);
 
         latch.await(2, TimeUnit.SECONDS);
         
@@ -171,10 +174,11 @@ class PublisherServiceTest extends IsisIntegrationTestAbstract {
 
         // when - running within its own background task
         assertThrows(DisabledException.class, ()->{
+
+            val control = AsyncControl.voidReturn().with(ExecutionModes.EXECUTE);
+            wrapper.async(book, control).setName("Book #2");
             
-            wrapper.async(book, WrapperFactory.ExecutionModes.EXECUTE).setName("Book #2");
-            
-            //future.get(10, TimeUnit.SECONDS);
+            control.getFuture().get(10, TimeUnit.SECONDS);
             
         });
 
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
index d680a53..7c5a69f 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
@@ -42,6 +42,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.user.UserService;
+import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
@@ -780,7 +781,7 @@ public abstract class FixtureScript {
     /**
      * Convenience method, simply delegates to {@link WrapperFactory#wrap(Object, EnumSet)}.
      */
-    protected <T> T wrap(final T domainObject, final ImmutableEnumSet<WrapperFactory.ExecutionMode> executionMode) {
+    protected <T> T wrap(final T domainObject, final ImmutableEnumSet<ExecutionMode> executionMode) {
         return wrapperFactory.wrap(domainObject, executionMode);
     }
 


[isis] 03/41: ISIS-2094: adds missing license statements

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

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

commit 6d8ae6aa32f13bcb6f2153be73c120cb76404159
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 16:29:27 2020 +0000

    ISIS-2094: adds missing license statements
---
 core-parent/pom.xml                                |  3 +-
 core/config/generateConfigDocs.groovy              |  2 +-
 .../config/pages/section-hooks/Other~post.adoc     |  2 +
 .../config/pages/section-hooks/Other~pre.adoc      |  2 +
 .../pages/section-hooks/isis.applib~post.adoc      |  3 ++
 .../pages/section-hooks/isis.applib~pre.adoc       |  2 +
 .../isis.core.meta-model.introspector~post.adoc    |  2 +
 .../isis.core.meta-model.introspector~pre.adoc     |  3 ++
 .../isis.core.meta-model.validator~post.adoc       |  2 +
 .../isis.core.meta-model.validator~pre.adoc        |  2 +
 .../section-hooks/isis.core.meta-model~post.adoc   |  2 +
 .../section-hooks/isis.core.meta-model~pre.adoc    |  2 +
 .../isis.core.runtime-services~post.adoc           |  2 +
 .../isis.core.runtime-services~pre.adoc            |  2 +
 .../section-hooks/isis.core.runtime~post.adoc      |  2 +
 .../pages/section-hooks/isis.core.runtime~pre.adoc |  2 +
 .../pages/section-hooks/isis.extensions~post.adoc  |  2 +
 .../pages/section-hooks/isis.extensions~pre.adoc   |  2 +
 .../pages/section-hooks/isis.incubator~post.adoc   |  2 +
 .../pages/section-hooks/isis.incubator~pre.adoc    |  2 +
 .../pages/section-hooks/isis.legacy~post.adoc      |  2 +
 .../pages/section-hooks/isis.legacy~pre.adoc       |  2 +
 .../pages/section-hooks/isis.mappings~post.adoc    |  2 +
 .../pages/section-hooks/isis.mappings~pre.adoc     |  2 +
 ...isis.persistence.jdo-datanucleus.impl~post.adoc |  2 +
 .../isis.persistence.jdo-datanucleus.impl~pre.adoc |  2 +
 .../isis.persistence.jdo-datanucleus~post.adoc     |  2 +
 .../isis.persistence.jdo-datanucleus~pre.adoc      |  2 +
 .../section-hooks/isis.security.shiro~post.adoc    |  2 +
 .../section-hooks/isis.security.shiro~pre.adoc     |  2 +
 .../pages/section-hooks/isis.subdomains~post.adoc  |  2 +
 .../pages/section-hooks/isis.subdomains~pre.adoc   |  2 +
 .../pages/section-hooks/isis.testing~post.adoc     |  2 +
 .../pages/section-hooks/isis.testing~pre.adoc      |  2 +
 .../pages/section-hooks/isis.value-types~post.adoc |  2 +
 .../pages/section-hooks/isis.value-types~pre.adoc  |  2 +
 .../isis.viewer.restfulobjects~post.adoc           |  2 +
 .../isis.viewer.restfulobjects~pre.adoc            |  2 +
 .../section-hooks/isis.viewer.wicket~post.adoc     |  2 +
 .../section-hooks/isis.viewer.wicket~pre.adoc      |  2 +
 .../config/pages/section-hooks/resteasy~post.adoc  |  2 +
 .../config/pages/section-hooks/resteasy~pre.adoc   |  2 +
 .../config/pages/section-hooks/spring~post.adoc    |  2 +
 .../config/pages/section-hooks/spring~pre.adoc     |  2 +
 .../adoc/modules/config/pages/sections/Other.adoc  |  4 +-
 .../modules/config/pages/sections/isis.applib.adoc | 30 +++++------
 .../pages/sections/isis.core.meta-model.adoc       |  4 +-
 .../isis.core.meta-model.introspector.adoc         |  4 +-
 .../sections/isis.core.meta-model.validator.adoc   |  8 +--
 .../pages/sections/isis.core.runtime-services.adoc | 24 ++++-----
 .../config/pages/sections/isis.core.runtime.adoc   |  6 +--
 .../config/pages/sections/isis.extensions.adoc     |  6 +--
 .../modules/config/pages/sections/isis.legacy.adoc |  6 +--
 .../sections/isis.persistence.jdo-datanucleus.adoc |  2 +-
 .../isis.persistence.jdo-datanucleus.impl.adoc     | 58 +++++++++++-----------
 .../config/pages/sections/isis.security.shiro.adoc |  4 +-
 .../config/pages/sections/isis.testing.adoc        |  4 +-
 .../config/pages/sections/isis.value-types.adoc    | 20 ++++----
 .../pages/sections/isis.viewer.restfulobjects.adoc | 22 ++++----
 .../config/pages/sections/isis.viewer.wicket.adoc  | 56 ++++++++++-----------
 .../modules/config/pages/sections/resteasy.adoc    | 14 +++---
 61 files changed, 224 insertions(+), 139 deletions(-)

diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index 8dbd784..aa7eabe 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -504,7 +504,7 @@ under the License.
 				<plugin>
 					<groupId>org.apache.rat</groupId>
 					<artifactId>apache-rat-plugin</artifactId>
-					<version>0.12</version>
+					<version>0.13</version>
 
 					<!-- APACHE ISIS customisation 4/5: start -->
 					<configuration>
@@ -519,7 +519,6 @@ under the License.
 							<exclude>**/.classpath</exclude>
 							<exclude>**/.settings/**</exclude>
 							<exclude>**/*.launch</exclude>
-							<!-- <exclude>src/site/resources/ide/eclipse/**</exclude> -->
 
 							<exclude>**/*.iml</exclude>
 
diff --git a/core/config/generateConfigDocs.groovy b/core/config/generateConfigDocs.groovy
index b65858a..73f1cd9 100644
--- a/core/config/generateConfigDocs.groovy
+++ b/core/config/generateConfigDocs.groovy
@@ -219,7 +219,7 @@ for (PropertyGroup group in groups) {
         bufNav << "** xref:refguide:config:sections/${group.fileName()}.adoc[${group.name}]\n"
 
         buf << """= ${group.name}
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc
index 84bd74d..e019987 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/Other~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Any other general or miscellaneous configuration settings.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc
index 64d5b06..2bdf667 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~post.adoc
@@ -1,5 +1,8 @@
 == Events
 
+: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 [...]
+
+
 Note:
 
 * In order for the lifecycle events to fire (`persisting`, `loaded` etc) the class must be annotated using `@DomainObject` (even if no attributes on that annotation are set).
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc
index d37eacf..d2b1583 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.applib~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Default configuration for applib annotations.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc
index fd5932f..4cf5915 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.introspector~pre.adoc
@@ -1 +1,4 @@
+: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 [...]
+
+
 Configuration of the introspector component that actually builds the metamodel by introspecting the domain object classes"
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc
index eec0a47..2f5e8f4 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model.validator~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration of the validator component that checks the well-formedness of the built metamodel (how strict to be etc.)
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc
index f5f4685..7b38a7b 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.meta-model~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration of the metamodel component that is responsible for building and validating the metamodel.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc
index 83325d0..c082c91 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime-services~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration of individual domain services provided by the framework at runtime.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc
index 67db2f1..c5a5999 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.core.runtime~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration of runtime (locale, timezone etc).
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc
index c1e10f8..16a22d3 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.extensions~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration that applies to the catalogue of extensions to the framework.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc
index e9b2bc3..c5f31de 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.incubator~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration that applies to incubating components.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc
index 310a466..d91e735 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.legacy~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration that applies to legacy components.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc
index ea23148..923bbf3 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.mappings~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration that applies to utilities and libraries for integrating (mapping between) bounded contexts.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc
index 8654506..a3f25f7 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus.impl~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration properties that are passed through directly to DataNucleus, for the most part unused by Apache Isis itself.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc
index 7a647da..62e345f 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.persistence.jdo-datanucleus~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration of the DataNucleus JDO persistence component (the Apache Isis component that wraps the DataNucleus ORM).
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc
index 0f2d6c0..359c083 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.security.shiro~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration of the Shiro implementation of the Authenticator and Authorizor APIs.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc
index b8ee066..961b067 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.subdomains~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration that applies to subdomain libraries.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc
index 6143363..8a3db8b 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.testing~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration that applies to the testing libraries.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc
index 1baea99..efa8cea 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.value-types~pre.adoc
@@ -1,2 +1,4 @@
+: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 [...]
+
 Configuration that applies to value type definitions.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc
index 4f9086c..3585180 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.restfulobjects~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration of the REST API surfaced by the Restful Objects viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc
index 6036ac8..a5297da 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/isis.viewer.wicket~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration of the Wicket viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc
index 8b13789..ba05247 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~post.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc
index a642c02..c8beeb9 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/resteasy~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration that applies to the RestEasy framework (that bootstraps the Restful Objects viewer).
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc
index e69de29..ca04c21 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~post.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc
index 253d1be..3e2c86e 100644
--- a/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/section-hooks/spring~pre.adoc
@@ -1 +1,3 @@
+: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 [...]
+
 Configuration that applies to Spring itself.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
index 00ab004..38f425f 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
@@ -1,5 +1,5 @@
 = Other
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -14,7 +14,7 @@ include::../section-hooks/Other~pre.adoc[]
 [[isis.as-map]]
 isis.as-map
 
-| 
+|
 | null
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
index cf83bdb..9928f12 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
@@ -1,5 +1,5 @@
 = Applib
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -16,7 +16,7 @@ isis.applib.annotation. +
 action-layout.css-class-fa. +
 patterns
 
-| 
+|
 | Provides a mapping of patterns to font-awesome CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's menu icon if rendered by the Wicket viewer.
 
 Providing a default set of patterns encourages a common set of verbs to be used.
@@ -30,7 +30,7 @@ isis.applib.annotation. +
 action-layout.css-class. +
 patterns
 
-| 
+|
 | Provides a mapping of patterns to CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's button if rendered by the Wicket viewer.
 
 Providing a default set of patterns encourages a common set of verbs to be used.
@@ -43,7 +43,7 @@ The CSS class for individual actions can be overridden using ``ActionLayout#cssC
 isis.applib.annotation.action. +
 command
 
-| 
+|
 | The default for whether action invocations should be reified as a ``Command`` using the ``CommandService``, possibly so that the actual execution of the action can be deferred until later (background execution) or replayed against a copy of the system.
 
 In particular, the ``CommandWithDto`` implementation of ``Command`` represents the action invocation memento (obtained using ``CommandWithDto#asDto()``) as a ``CommandDto``.
@@ -73,7 +73,7 @@ The algorithm for determining whether (and what type of) an event is actually se
 isis.applib.annotation.action. +
 explicit
 
-| 
+|
 | Whether or not a public method needs to be annotated with @``Action`` in order to be picked up as an action in the metamodel.
 
 
@@ -82,7 +82,7 @@ explicit
 isis.applib.annotation.action. +
 publishing
 
-| 
+|
 | The default for whether action invocations should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the action invoked, the action arguments and the returned object (if any).
@@ -96,7 +96,7 @@ isis.applib.annotation. +
 collection-layout. +
 default-view
 
-| 
+|
 | Defines the initial view to display collections when rendered.
 
 The value of this can be overridden on a case-by-case basis using ``CollectionLayout#defaultView()``. Note that this default configuration property is an enum and so defines only a fixed number of values, whereas the annotation returns a string; this is to allow for flexibility that individual viewers might support their own additional types. For example, the Wicket viewer supports
@@ -217,7 +217,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 isis.applib.annotation. +
 domain-object.auditing
 
-| 
+|
 | The default for whether _domain entities_ should be audited or not (meaning that any changes are sent through to the ``AuditerService``.
 
 This setting can be overridden on a case-by-case basis using ``DomainObject#auditing()`` DomainObject#getAuditing()}
@@ -247,7 +247,7 @@ The algorithm for determining whether (and what type of) an event is sent depend
 isis.applib.annotation. +
 domain-object.editing
 
-| 
+|
 | The default for whether the properties of domain objects can be edited, or whether instead they can be modified only using actions (or programmatically as a side-effect of actions on other objects).
 
 This setting can be overridden on a case-by-case basis using DomainObject#getEditing()
@@ -315,7 +315,7 @@ Note: this applies only to domain entities, not to view models.
 isis.applib.annotation. +
 domain-object.publishing
 
-| 
+|
 | The default for whether the identities of changed objects should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``PublishedObjects`` collecting details of all changed domain objects.
@@ -388,7 +388,7 @@ isis.applib.annotation. +
 parameter-layout. +
 label-position
 
-| 
+|
 | Defines the default position for the label for an action parameter.
 
 Can be overridden on a case-by-case basis using ``ParameterLayout#labelPosition()``.
@@ -402,7 +402,7 @@ isis.applib.annotation. +
 property-layout. +
 label-position
 
-| 
+|
 | Defines the default position for the label for a domain object property.
 
 Can be overridden on a case-by-case basis using ``ParameterLayout#labelPosition()``.
@@ -415,7 +415,7 @@ If left as ``LabelPosition#NOT_SPECIFIED`` and not overridden, then the position
 isis.applib.annotation. +
 property.command
 
-| 
+|
 | The default for whether property edits should be reified as a ``Command`` using the ``CommandService``, possibly so that the actual execution of the property edit can be deferred until later (background execution) or replayed against a copy of the system.
 
 In particular, the ``CommandWithDto`` implementation of ``Command`` represents the action invocation memento (obtained using ``CommandWithDto#asDto()``) as a ``CommandDto``.
@@ -446,7 +446,7 @@ The algorithm for determining whether (and what type of) an event is actually se
 isis.applib.annotation. +
 property.publishing
 
-| 
+|
 | The default for whether property edits should be sent through to the ``PublisherService`` for publishing.
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the property edited, and the new value of the property.
@@ -530,7 +530,7 @@ isis.applib.annotation. +
 view-model.validation. +
 semantic-checking.enable
 
-| 
+|
 | Whether to check for inconsistencies between the usage of ``DomainObject``, ``ViewModel``, ``DomainObjectLayout`` and ``ViewModelLayout``.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
index 9205e66..82f55d6 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.adoc
@@ -1,5 +1,5 @@
 = Core MetaModel
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -27,7 +27,7 @@ isis.core.meta-model. +
 programming-model. +
 ignore-deprecated
 
-| 
+|
 | If set, then any aspects of the programming model (as implemented by ``FacetFactory``s that have been indicated as deprecated will simply be ignored/excluded from the metamodel.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
index 138a95c..e6eb692 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.introspector.adoc
@@ -1,5 +1,5 @@
 = Core MetaModel Introspection
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -27,7 +27,7 @@ Only applies if the introspector is configured to perform full introspection up-
 isis.core.meta-model. +
 introspector.mode
 
-| 
+|
 | Whether all known types should be fully introspected as part of the bootstrapping, or should only be partially introspected initially.
 
 Leaving this as lazy means that there's a chance that metamodel validation errors will not be discovered during bootstrap. That said, metamodel validation is still run incrementally for any classes introspected lazily after initial bootstrapping (unless ``#isValidateIncrementally()`` is disabled.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
index 6a83bdc..34ed16f 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.meta-model.validator.adoc
@@ -1,5 +1,5 @@
 = MetaModel Validator
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -52,7 +52,7 @@ isis.core.meta-model. +
 validator. +
 explicit-object-type
 
-| 
+|
 | Whether to ensure that the object type of all objects must be specified explicitly, using either ``DomainObject#objectType()`` or ``DomainService#objectType()``.
 
 It is _highly advisable_ to leave this set as enabled (the default). These object types should also (of course) be unique - that can be checked by setting the ``#isEnsureUniqueObjectTypes()`` config property.
@@ -74,7 +74,7 @@ isis.core.meta-model. +
 validator.jaxb-view-model. +
 no-arg-constructor
 
-| 
+|
 | If set, then ensures that all JAXB-style view models have a no-arg constructor.
 
 
@@ -132,7 +132,7 @@ variables-clause
 isis.core.meta-model. +
 validator.no-params-only
 
-| 
+|
 | If set, then checks that the supports ``hideXxx`` and ``disableXxx`` methods for actions do not have take parameters.
 
 Historically, the programming model allowed these methods to accept the same number of parameters as the action method to which they relate, the rationale being for similarity with the ``validateXxx`` method. However, since these parameters serve no function, the programming model has been simplified so that these supporting methods are discovered if they have exactly no parameters.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
index 50d6d95..95b38ed 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime-services.adoc
@@ -1,5 +1,5 @@
 = Core Runtime Services configurations
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.core.runtime-services~pre.adoc[]
 isis.core.runtime-services. +
 application-features.init
 
-| 
+|
 | Whether the ``ApplicationFeatureRepository`` (or the default implementation of that service, at least) should compute the set of ``ApplicationFeature`` that describe the metamodel eagerly, or lazily.
 
 
@@ -24,7 +24,7 @@ application-features.init
 isis.core.runtime-services. +
 email.override.bcc
 
-| 
+|
 | Intended for testing purposes only, if set then the requested ``bcc:`` of the email will be ignored, and instead sent to this email address instead.
 
 
@@ -33,7 +33,7 @@ email.override.bcc
 isis.core.runtime-services. +
 email.override.cc
 
-| 
+|
 | Intended for testing purposes only, if set then the requested ``cc:`` of the email will be ignored, and instead sent to this email address instead.
 
 
@@ -42,7 +42,7 @@ email.override.cc
 isis.core.runtime-services. +
 email.override.to
 
-| 
+|
 | Intended for testing purposes only, if set then the requested ``to:`` of the email will be ignored, and instead sent to this email address instead.
 
 
@@ -60,7 +60,7 @@ email.port
 isis.core.runtime-services. +
 email.sender.address
 
-| 
+|
 | Specifies the email address of the user sending the email.
 
 If the username is not specified, is also used as the username to connect to the SMTP service.
@@ -73,7 +73,7 @@ This configuration property is mandatory (for the default implementation of the
 isis.core.runtime-services. +
 email.sender.hostname
 
-| 
+|
 | Specifies the host running the SMTP service.
 
 If not specified, then the value used depends upon the email implementation. The default implementation will use the ``host`` system property.
@@ -84,7 +84,7 @@ If not specified, then the value used depends upon the email implementation. The
 isis.core.runtime-services. +
 email.sender.password
 
-| 
+|
 | Specifies the password (corresponding to the username to connect to the SMTP service.
 
 This configuration property is mandatory (for the default implementation of the ``EmailService``, at least).
@@ -95,7 +95,7 @@ This configuration property is mandatory (for the default implementation of the
 isis.core.runtime-services. +
 email.sender.username
 
-| 
+|
 | Specifies the username to use to connect to the SMTP service.
 
 If not specified, then the sender's email address will be used instead.
@@ -144,7 +144,7 @@ isis.core.runtime-services. +
 exception-recognizer.jdo. +
 disable
 
-| 
+|
 | Whether the ``ExceptionRecognizer`` implementation for JDO/DataNucleus object store - which attempts to sanitize any exceptions arising from that object store - should be disabled (meaning that exceptions will potentially propagate as more serious to the end user).
 
 
@@ -154,7 +154,7 @@ isis.core.runtime-services. +
 repository-service. +
 disable-auto-flush
 
-| 
+|
 | Normally any queries are automatically preceded by flushing pending executions.
 
 This key allows this behaviour to be disabled.
@@ -167,7 +167,7 @@ Originally introduced as part of ISIS-1134 (fixing memory leaks in the objectsto
 isis.core.runtime-services. +
 translation.po.mode
 
-| 
+|
 | Specifies the initial mode for obtaining/discovering translations.
 
 There are three modes:
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
index 2e1a860..9f49e1f 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.core.runtime.adoc
@@ -1,5 +1,5 @@
 = Core Runtime Services configurations
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -14,7 +14,7 @@ include::../section-hooks/isis.core.runtime~pre.adoc[]
 [[isis.core.runtime.locale]]
 isis.core.runtime.locale
 
-| 
+|
 | If set, then overrides the application's ``Locale#getDefault()``
 
 
@@ -22,7 +22,7 @@ isis.core.runtime.locale
 [[isis.core.runtime.timezone]]
 isis.core.runtime.timezone
 
-| 
+|
 | If set, then override's the application's timezone.
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
index 1ef7e32..6ee2b50 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.extensions.adoc
@@ -1,5 +1,5 @@
 = Extensions
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.extensions~pre.adoc[]
 isis.extensions.cors. +
 allowed-headers
 
-| 
+|
 | Which HTTP headers are allowed in a CORS request.
 
 For more information, check the usage of the ``headers`` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
@@ -26,7 +26,7 @@ For more information, check the usage of the ``headers`` init parameter for http
 isis.extensions.cors. +
 allowed-methods
 
-| 
+|
 | Which HTTP methods are permitted in a CORS request.
 
 For more information, check the usage of the ``methods`` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
index 25ddeaa..3577127 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.legacy.adoc
@@ -1,5 +1,5 @@
 = Legacy
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.legacy~pre.adoc[]
 isis.legacy.value-types.money. +
 currency
 
-| 
+|
 | Configures the default currency code used by ``MoneyValueSemanticsProvider``. @deprecated
 
 
@@ -24,7 +24,7 @@ currency
 isis.legacy.value-types. +
 percentage.format
 
-| 
+|
 | Configures the formats understood by ``PercentageValueSemanticsProvider``. @deprecated
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
index 3e3ddae..ced5879 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.adoc
@@ -1,5 +1,5 @@
 = JDO DataNucleus
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
index 761a125..944731d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.persistence.jdo-datanucleus.impl.adoc
@@ -1,5 +1,5 @@
 = DataNucleus Configuration
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -17,7 +17,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 ConnectionFactory2Name
 
-| 
+|
 | null
 
 
@@ -28,7 +28,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 ConnectionFactoryName
 
-| 
+|
 | null
 
 
@@ -39,7 +39,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 ConnectionPasswordDecrypter
 
-| 
+|
 | null
 
 
@@ -50,7 +50,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 PersistenceUnitLoadClasses
 
-| 
+|
 | null
 
 
@@ -60,7 +60,7 @@ isis.persistence. +
 jdo-datanucleus.impl. +
 datanucleus.cache.level2.mode
 
-| 
+|
 | Values of javax.persistence.SharedCacheMode, capitalized
 
 
@@ -87,7 +87,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 connection-factory-name
 
-| 
+|
 | The JNDI name for a connection factory for transactional connections.
 
 For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
@@ -104,7 +104,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 connection-factory2-name
 
-| 
+|
 | The JNDI name for a connection factory for non-transactional connections.
 
 For RBDMS, it must be a JNDI name that points to a javax.sql.DataSource object.
@@ -121,7 +121,7 @@ jdo-datanucleus.impl. +
 datanucleus. +
 connection-password-decrypter
 
-| 
+|
 | Name of a class that implements ``DecryptionProvider`` and should only be specified if the password is encrypted in the persistence properties.
 
 See also ``json`` (camelCasing instead of kebab-casing).
@@ -135,7 +135,7 @@ isis.persistence. +
 jdo-datanucleus.impl. +
 datanucleus.identifier.case
 
-| 
+|
 | null
 
 
@@ -161,7 +161,7 @@ jdo-datanucleus.impl. +
 datanucleus.objectProvider. +
 className
 
-| 
+|
 | null
 
 
@@ -190,7 +190,7 @@ datanucleus. +
 persistenceByReachabilityAtCom +
 mit
 
-| 
+|
 | null
 
 
@@ -201,7 +201,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 auto-create-all
 
-| 
+|
 | Whether DN should automatically create the database schema on bootstrapping.
 
 This should be set to ``true`` when running against an in-memory database, but set to ``false`` when running against a persistent database (use something like flyway instead to manage schema evolution).
@@ -218,7 +218,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 auto-create-database
 
-| 
+|
 | Previously we defaulted this property to "true", but that could cause the target database to be modified
 
 See also ``json`` (camelCasing instead of kebab-casing).
@@ -233,7 +233,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 autoCreateAll
 
-| 
+|
 | null
 
 
@@ -244,7 +244,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 autoCreateDatabase
 
-| 
+|
 | null
 
 
@@ -268,7 +268,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 validateAll
 
-| 
+|
 | null
 
 
@@ -279,7 +279,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 validateConstraints
 
-| 
+|
 | null
 
 
@@ -290,7 +290,7 @@ jdo-datanucleus.impl. +
 datanucleus.schema. +
 validateTables
 
-| 
+|
 | null
 
 
@@ -300,7 +300,7 @@ isis.persistence. +
 jdo-datanucleus.impl. +
 datanucleus.transaction-type
 
-| 
+|
 | Type of transaction to use.
 
 If running under JavaSE the default is RESOURCE_LOCAL, and if running under JavaEE the default is JTA.
@@ -318,7 +318,7 @@ jdo. +
 PersistenceManagerFactoryClass +
 
 
-| 
+|
 | null
 
 
@@ -329,7 +329,7 @@ jdo-datanucleus.impl.javax. +
 jdo.option. +
 ConnectionDriverName
 
-| 
+|
 | null
 
 
@@ -339,7 +339,7 @@ isis.persistence. +
 jdo-datanucleus.impl.javax. +
 jdo.option.ConnectionPassword
 
-| 
+|
 | null
 
 
@@ -349,7 +349,7 @@ isis.persistence. +
 jdo-datanucleus.impl.javax. +
 jdo.option.ConnectionURL
 
-| 
+|
 | null
 
 
@@ -359,7 +359,7 @@ isis.persistence. +
 jdo-datanucleus.impl.javax. +
 jdo.option.ConnectionUserName
 
-| 
+|
 | null
 
 
@@ -370,7 +370,7 @@ jdo-datanucleus.impl.javax. +
 jdo.option. +
 connection-driver-name
 
-| 
+|
 | JDBC driver used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -385,7 +385,7 @@ jdo-datanucleus.impl.javax. +
 jdo.option. +
 connection-password
 
-| 
+|
 | Password for the user account used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -399,7 +399,7 @@ isis.persistence. +
 jdo-datanucleus.impl.javax. +
 jdo.option.connection-url
 
-| 
+|
 | URL used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
@@ -414,7 +414,7 @@ jdo-datanucleus.impl.javax. +
 jdo.option. +
 connection-user-name
 
-| 
+|
 | User account used by JDO/DataNucleus object store to connect.
 
 See also ``json`` (PascalCasing instead of kebab-casing).
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
index bb41833..4de57c7 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.security.shiro.adoc
@@ -1,5 +1,5 @@
 = Shiro Security Implementation
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -16,7 +16,7 @@ isis.security.shiro. +
 auto-logout-if-already- +
 authenticated
 
-| 
+|
 | If the Shiro subject is found to be still authenticated, then will be logged out anyway and then re-authenticated.
 
 Applies only to the Restful Objects viewer.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
index 59bcddf..b3b5199 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.testing.adoc
@@ -1,5 +1,5 @@
 = Testing
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.testing~pre.adoc[]
 isis.testing.fixtures. +
 initial-script
 
-| 
+|
 | Indicates the fixture script class to run initially.
 
 Intended for use when prototyping against an in-memory database (but will run in production mode as well if required).
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
index a33e2d3..61c8d59 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.value-types.adoc
@@ -1,5 +1,5 @@
 = Value types
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.value-types~pre.adoc[]
 isis.value-types.primitives. +
 integer.format
 
-| 
+|
 | null
 
 
@@ -24,7 +24,7 @@ integer.format
 isis.value-types.java-lang. +
 byte.format
 
-| 
+|
 | Configures the number format understood by ``ByteValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -33,7 +33,7 @@ byte.format
 isis.value-types.java-lang. +
 double.format
 
-| 
+|
 | Configures the number format understood by ``DoubleValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -42,7 +42,7 @@ double.format
 isis.value-types.java-lang. +
 float.format
 
-| 
+|
 | Configures the number format understood by ``FloatValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -51,7 +51,7 @@ float.format
 isis.value-types.java-lang. +
 long.format
 
-| 
+|
 | Configures the number format understood by ``LongValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -60,7 +60,7 @@ long.format
 isis.value-types.java-lang. +
 short.format
 
-| 
+|
 | Configures the number format understood by ``ShortValueSemanticsProviderAbstract``. @deprecated
 
 
@@ -69,7 +69,7 @@ short.format
 isis.value-types.java-math. +
 big-decimal.format
 
-| 
+|
 | Configures the number format understood by ``BigDecimalValueSemanticsProvider``. @deprecated
 
 
@@ -78,7 +78,7 @@ big-decimal.format
 isis.value-types.java-math. +
 big-integer.format
 
-| 
+|
 | Configures the number format understood by ``BigIntegerValueSemanticsProvider``. @deprecated
 
 
@@ -204,7 +204,7 @@ local-date.format
 isis.value-types.primitives. +
 int.format
 
-| 
+|
 | Configures the number format understood by ``IntValueSemanticsProviderAbstract``. @deprecated
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
index 6f50e2b..72a8916 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.restfulobjects.adoc
@@ -1,5 +1,5 @@
 = Restful Objects Viewer
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.viewer.restfulobjects~pre.adoc[]
 isis.viewer.restfulobjects. +
 base-uri
 
-| 
+|
 | If left unset (the default), then the RO viewer will use the ``UriInfo`` (injected using ``Context``) to figure out the base Uri (used to render ``href``s).
 
 This will be correct much of the time, but will almost certainly be wrong if there is a reverse proxy.
@@ -28,7 +28,7 @@ If set, eg ``com/``, then this value will be used instead.
 isis.viewer.restfulobjects. +
 honor-ui-hints
 
-| 
+|
 | Whether to enable the ``x-ro-follow-links`` support, to minimize round trips.
 
 The RO viewer provides the capability for the client to set the optional ``x-ro-follow-links`` query parameter, as described in section 34.4 of the RO spec v1.0. If used, the resultant representation includes the result of following the associated link, but through a server-side "join", somewhat akin to GraphQL.
@@ -41,7 +41,7 @@ By default this functionality is disabled, this configuration property enables t
 isis.viewer.restfulobjects. +
 object-property-values-only
 
-| 
+|
 | When rendering domain objects, if set the representation returned is stripped back to a minimal set, excluding links to actions and collections and with a simplified representation of an object's properties.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -52,7 +52,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 strict-accept-checking
 
-| 
+|
 | If set, then any unrecognised ``Accept`` headers will result in an HTTP _Not Acceptable_ response code (406).
 
 
@@ -61,7 +61,7 @@ strict-accept-checking
 isis.viewer.restfulobjects. +
 suppress-described-by-links
 
-| 
+|
 | If set, then the representations returned will omit any links to the formal domain-type representations.
 
 
@@ -71,7 +71,7 @@ isis.viewer.restfulobjects. +
 suppress-member-disabled- +
 reason
 
-| 
+|
 | If set, then - should there be an interaction with an action, property or collection that is disabled - then this will prevent the ``disabledReason`` reason from being added to the returned representation.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -82,7 +82,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-extensions
 
-| 
+|
 | If set, then the ``x-isis-format`` key (under ``extensions``) for properties will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -93,7 +93,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-id
 
-| 
+|
 | If set, then the ``id`` key for all members will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -104,7 +104,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-member-links
 
-| 
+|
 | If set, then the detail link (in other words ``]``) for all members will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
@@ -115,7 +115,7 @@ This is disabled by default. If enabled, then the representations returned are n
 isis.viewer.restfulobjects. +
 suppress-update-link
 
-| 
+|
 | If set, then the update link (in other words `` ]`` to perform a bulk update of an object) will be suppressed.
 
 This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
index 5ce1e38..6d789e3 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.viewer.wicket.adoc
@@ -1,5 +1,5 @@
 = Wicket Viewer
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -15,7 +15,7 @@ include::../section-hooks/isis.viewer.wicket~pre.adoc[]
 isis.viewer.wicket. +
 ajax-debug-mode
 
-| 
+|
 | Whether the Ajax debug should be shown, by default this is disabled.
 
 
@@ -36,7 +36,7 @@ There is usually very little reason to change this from its default.
 isis.viewer.wicket. +
 application.about
 
-| 
+|
 | Label used on the about page.
 
 
@@ -45,7 +45,7 @@ application.about
 isis.viewer.wicket. +
 application.brand-logo-header
 
-| 
+|
 | Either the location of the image file (relative to the class-path resource root), or an absolute URL.
 
 This is rendered on the header panel. An image with a size of 160x40 works well. If not specified, the application.name is used instead.
@@ -56,7 +56,7 @@ This is rendered on the header panel. An image with a size of 160x40 works well.
 isis.viewer.wicket. +
 application.brand-logo-signin
 
-| 
+|
 | Either the location of the image file (relative to the class-path resource root), or an absolute URL.
 
 This is rendered on the sign-in page. An image with a size of 400x40 works well. If not specified, the application name is used instead.
@@ -67,7 +67,7 @@ This is rendered on the sign-in page. An image with a size of 400x40 works well.
 isis.viewer.wicket. +
 application.css
 
-| 
+|
 | URL of file to read any custom CSS, relative to ``static`` package on the class path.
 
 A typical value is ``css``. This will result in this file being read from the ``static/css`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).
@@ -79,7 +79,7 @@ isis.viewer.wicket. +
 application. +
 favicon-content-type
 
-| 
+|
 | Specifies the content type of the favIcon, if any.
 
 
@@ -88,7 +88,7 @@ favicon-content-type
 isis.viewer.wicket. +
 application.favicon-url
 
-| 
+|
 | Specifies the URL to use of the favIcon.
 
 This is expected to be a local resource.
@@ -99,7 +99,7 @@ This is expected to be a local resource.
 isis.viewer.wicket. +
 application.js
 
-| 
+|
 | URL of file to read any custom Javascript, relative to ``static`` package on the class path.
 
 A typical value is ``js``. This will result in this file being read from the ``static/js`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).
@@ -131,7 +131,7 @@ application.name
 isis.viewer.wicket. +
 application.version
 
-| 
+|
 | The version of the application, eg 1.0, 1.1, etc.
 
 If present, then this will be shown in the footer on every page as well as on the about page.
@@ -199,7 +199,7 @@ max-parent-chain-length
 isis.viewer.wicket. +
 clear-original-destination
 
-| 
+|
 | If the end user uses a deep link to access the Wicket viewer, but is not authenticated, then this configuration property determines whether to continue through to that original destination once authenticated, or simply to go to the home page.
 
 The default behaviour is to honour the original destination requested.
@@ -209,7 +209,7 @@ The default behaviour is to honour the original destination requested.
 [[isis.viewer.wicket.credit]]
 isis.viewer.wicket.credit
 
-| 
+|
 | List of organisations or individuals to give credit to, shown as links and icons in the footer. A maximum of 3 credits can be specified.
 
 IntelliJ unfortunately does not provide IDE completion for lists of classes; YMMV.
@@ -266,7 +266,7 @@ Each Date scalar panel will use ``#getDatePattern()`` or ``#getDateTimePattern()
 isis.viewer.wicket. +
 development-utilities.enable
 
-| 
+|
 | Determines whether debug bar and other stuff influenced by ``DebugSettings#isDevelopmentUtilitiesEnabled()`` is enabled or not.
 
 By default, depends on the mode (prototyping = enabled, server = disabled). This property acts as an override.
@@ -277,7 +277,7 @@ By default, depends on the mode (prototyping = enabled, server = disabled). This
 isis.viewer.wicket. +
 dialog-mode
 
-| 
+|
 | Whether the dialog mode rendered when invoking actions on domain objects should be to use the sidebar (the default) or to use a modal dialog.
 
 This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.
@@ -288,7 +288,7 @@ This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle(
 isis.viewer.wicket. +
 dialog-mode-for-menu
 
-| 
+|
 | Whether the dialog mode rendered when invoking actions on domain services (that is, menus) should be to use a modal dialog (the default) or to use the sidebar panel.
 
 This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.
@@ -299,7 +299,7 @@ This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle(
 isis.viewer.wicket. +
 live-reload-url
 
-| 
+|
 | If specified, then is rendered on each page to enable live reload.
 
 Configuring live reload also requires an appropriate plugin to the web browser (eg see http://livereload.com/[livereload.com] and a mechanism to trigger changes, eg by watching ``xml`` files.
@@ -311,7 +311,7 @@ isis.viewer.wicket. +
 max-title-length-in-parented- +
 tables
 
-| 
+|
 | null
 
 
@@ -321,7 +321,7 @@ isis.viewer.wicket. +
 max-title-length-in- +
 standalone-tables
 
-| 
+|
 | null
 
 
@@ -363,7 +363,7 @@ This behaviour is enabled by default, but can be disabled using this flag.
 isis.viewer.wicket. +
 prompt-style
 
-| 
+|
 | Whether to use a modal dialog for property edits and for actions associated with properties.
 
 This can be overridden on a case-by-case basis using ``@PropertyLayout#promptStyle`` and ``@ActionLayout#promptStyle``.
@@ -376,7 +376,7 @@ This behaviour is disabled by default; the viewer will use an inline prompt in t
 isis.viewer.wicket. +
 redirect-even-if-same-object
 
-| 
+|
 | Whether to redirect to a new page, even if the object being shown (after an action invocation or a property edit) is the same as the previous page.
 
 This behaviour is disabled by default; the viewer will update the existing page if it can, making for a smoother user experience. If enabled then this reinstates the pre-1.15.0 behaviour of redirecting in all cases.
@@ -396,7 +396,7 @@ remember-me.cookie-key
 isis.viewer.wicket. +
 remember-me.encryption-key
 
-| 
+|
 | If the "remember me" feature is available, optionally specifies an encryption key (a complex string acting as salt to the encryption algorithm) for computing the encrypted credentials.
 
 If not set, then (in production mode) the Wicket viewer will compute a random key each time it is started. This will mean that any credentials stored between sessions will become invalid.
@@ -411,7 +411,7 @@ In prototype mode this setting is effectively ignored, because the same key will
 isis.viewer.wicket. +
 remember-me.suppress
 
-| 
+|
 | Whether the sign-in page should have a "remember me" link (the default), or if it should be suppressed.
 
 If "remember me" is available and checked, then the viewer will allow users to login based on encrypted credentials stored in a cookie. An encryption key can optionally be specified.
@@ -456,7 +456,7 @@ By default this is enabled, in other words Wicket tags are stripped. Please be a
 isis.viewer.wicket. +
 suppress-password-reset
 
-| 
+|
 | Whether to suppress the password reset link on the sign-in page.
 
 Although this is disabled by default (in other words the 'reset password' link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressSignUp()`` sign-up link).
@@ -467,7 +467,7 @@ Although this is disabled by default (in other words the 'reset password' link i
 isis.viewer.wicket. +
 suppress-sign-up
 
-| 
+|
 | Whether to suppress the sign-up link on the sign-in page.
 
 Although this is disabled by default (in other words the sign-up link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressPasswordReset()`` password reset link).
@@ -478,7 +478,7 @@ Although this is disabled by default (in other words the sign-up link is not sup
 isis.viewer.wicket.themes. +
 enabled
 
-| 
+|
 | A comma separated list of enabled theme names, as defined by https://bootswatch.com.
 
 
@@ -510,7 +510,7 @@ IsisWicketThemeSupportDefault
 isis.viewer.wicket.themes. +
 show-chooser
 
-| 
+|
 | Whether the theme chooser widget should be available in the footer.
 
 
@@ -542,7 +542,7 @@ This behaviour is enabled by default.
 isis.viewer.wicket.welcome. +
 text
 
-| 
+|
 | Text to be displayed on the application’s home page, used as a fallback if welcome.file is not specified. If a @HomePage action exists, then that will take precedence.
 
 
@@ -551,7 +551,7 @@ text
 isis.viewer.wicket. +
 wicket-source-plugin
 
-| 
+|
 | Whether the Wicket source plugin should be enabled; if so, the markup includes links to the Wicket source.
 
 This behaviour is disabled by default. Please be aware that enabloing it can substantially impact performance.
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc b/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
index 10ac211..430e7a3 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/resteasy.adoc
@@ -1,5 +1,5 @@
 = RestEasy Configuration
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
@@ -14,7 +14,7 @@ include::../section-hooks/resteasy~pre.adoc[]
 [[resteasy.as-map]]
 resteasy.as-map
 
-| 
+|
 | null
 
 
@@ -23,7 +23,7 @@ resteasy.as-map
 resteasy.authentication. +
 strategy-class-name
 
-| 
+|
 | Defaults to ``AuthenticationSessionStrategyBasicAuth``.
 
 
@@ -31,7 +31,7 @@ strategy-class-name
 [[resteasy.environment]]
 resteasy.environment
 
-| 
+|
 | null
 
 
@@ -40,7 +40,7 @@ resteasy.environment
 resteasy.jaxrs.app. +
 registration
 
-| 
+|
 | How the implementation of the JAX-RS application is discovered.
 
 
@@ -58,7 +58,7 @@ Note that this is used rather than ``prefix`` because there is _NO_ implementati
 [[resteasy.jaxrs.defaultPath]]
 resteasy.jaxrs.defaultPath
 
-| 
+|
 | The path at which the RO viewer should be mounted.
 
 
@@ -66,7 +66,7 @@ resteasy.jaxrs.defaultPath
 [[resteasy.resteasy-settings]]
 resteasy.resteasy-settings
 
-| 
+|
 | null
 
 


[isis] 41/41: ISIS-2278: fixes unit tests

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

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

commit 4daaccfab8279d54cf8974f2aaf6378514312039
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 17:13:47 2020 +0000

    ISIS-2278: fixes unit tests
---
 .../wrapper/WrapperFactoryDefault.java             | 12 ++++++++++-
 .../WrapperFactoryDefault_wrappedObject_Test.java  | 13 +++++++++++
 ...actoryDefault_wrappedObject_transient_Test.java | 25 +++++++++++++++++++---
 3 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index ed51f75..190e7fc 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -23,9 +23,11 @@ import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
@@ -177,7 +179,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
         if (domainObject instanceof WrappingObject) {
             val wrapperObject = (WrappingObject) domainObject;
             val executionMode = wrapperObject.__isis_executionModes();
-            if(executionMode != modes) {
+            if(! equivalent(executionMode, modes)) {
                 val underlyingDomainObject = wrapperObject.__isis_wrapped();
                 return _Casts.uncheckedCast(createProxy(underlyingDomainObject, syncControl));
             }
@@ -186,6 +188,14 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return createProxy(domainObject, syncControl);
     }
 
+    private static boolean equivalent(ImmutableEnumSet<ExecutionMode> first, ImmutableEnumSet<ExecutionMode> second) {
+        return equivalent(first.toEnumSet(), second.toEnumSet());
+    }
+
+    private static boolean equivalent(EnumSet<ExecutionMode> first, EnumSet<ExecutionMode> second) {
+        return first.containsAll(second) && second.containsAll(first);
+    }
+
     @Override
     public <T> T wrapMixin(Class<T> mixinClass, Object mixedIn) {
         return wrapMixin(mixinClass, mixedIn, control());
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java
index ea4e97e..b784c5c 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_Test.java
@@ -36,14 +36,17 @@ import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.Command.Executor;
 import org.apache.isis.applib.services.command.CommandContext;
+import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.HiddenException;
 import org.apache.isis.applib.services.wrapper.InvalidException;
+import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.codegen.bytebuddy.services.ProxyFactoryServiceByteBuddy;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
@@ -72,6 +75,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationDefault;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.session.IsisSessionTracker;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.Employee;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.EmployeeRepository;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.EmployeeRepositoryImpl;
@@ -97,9 +101,13 @@ public class WrapperFactoryDefault_wrappedObject_Test {
     @Mock private ObjectSpecification mockOnType;
     @Mock private SpecificationLoader mockSpecificationLoader;
     @Mock private IsisSessionFactory mockIsisSessionFactory;
+    @Mock private IsisSessionTracker mockIsisSessionTracker;
+    @Mock private CommandExecutorService mockCommandExecutorService;
+    private AsyncControlService asyncControlService = new AsyncControlService();
     @Mock private ObjectSpecificationDefault mockEmployeeSpec;
     @Mock private FactoryService mockFactoryService;
     @Mock private TransactionService mockTransactionService;
+    @Mock private BookmarkService mockBookmarkService;
     @Mock protected ObjectManager mockObjectManager;
     
     private ObjectMember employeeNameMember;
@@ -138,7 +146,12 @@ public class WrapperFactoryDefault_wrappedObject_Test {
                 .singleton(mockCommandDtoServiceInternal)
                 .singleton(mockFactoryService)
                 .singleton(mockIsisSessionFactory)
+                .singleton(mockIsisSessionTracker)
                 .singleton(mockTransactionService)
+                .singleton(mockCommandExecutorService)
+                .singleton(mockCommandDtoServiceInternal)
+                .singleton(asyncControlService)
+                .singleton(mockBookmarkService)
                 .build();
         
         metaModelContext.getServiceInjector().injectServicesInto(wrapperFactory);
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java
index 814148e..ecb3904 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault_wrappedObject_transient_Test.java
@@ -36,10 +36,16 @@ import static org.junit.Assert.assertThat;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.services.bookmark.BookmarkService;
+import org.apache.isis.applib.services.command.Command;
+import org.apache.isis.applib.services.command.CommandContext;
+import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.wrapper.DisabledException;
+import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
 import org.apache.isis.applib.services.wrapper.events.PropertyModifyEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyVisibilityEvent;
@@ -62,11 +68,14 @@ import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor;
 import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacetViaSetterMethod;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
+import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
+import org.apache.isis.core.runtime.session.IsisSessionTracker;
 import org.apache.isis.core.runtimeservices.wrapper.dom.employees.Employee;
 import org.apache.isis.core.security.authentication.AuthenticationSessionTracker;
 import org.apache.isis.core.security.authentication.standard.SimpleSession;
@@ -84,19 +93,24 @@ public class WrapperFactoryDefault_wrappedObject_transient_Test {
     public final JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
 
     @Mock private AuthenticationSessionTracker mockAuthenticationSessionTracker;
+    @Mock private MessageService mockMessageService;
+    @Mock private CommandDtoServiceInternal mockCommandDtoServiceInternal;
+    @Mock private ObjectSpecification mockOnType;
     @Mock private SpecificationLoader mockSpecificationLoader;
     @Mock private IsisSessionFactory mockIsisSessionFactory;
+    @Mock private IsisSessionTracker mockIsisSessionTracker;
+    @Mock private CommandExecutorService mockCommandExecutorService;
+    private AsyncControlService asyncControlService = new AsyncControlService();
     @Mock private FactoryService mockFactoryService;
     @Mock private TransactionService mockTransactionService;
-    
-    
+
     @Mock private ManagedObject mockEmployeeAdapter;
-    @Mock private ObjectSpecificationDefault mockOnType;
     @Mock private ObjectSpecificationDefault mockEmployeeSpec;
     @Mock private OneToOneAssociation mockPasswordMember;
     @Mock private Identifier mockPasswordIdentifier;
     @Mock private ServiceInjector mockServiceInjector;
     @Mock private ServiceRegistry mockServiceRegistry;
+    @Mock private BookmarkService mockBookmarkService;
     @Mock protected ManagedObject mockPasswordAdapter;
     @Mock protected ObjectManager mockObjectManager;
 
@@ -130,7 +144,12 @@ public class WrapperFactoryDefault_wrappedObject_transient_Test {
                 .singleton(wrapperFactory = createWrapperFactory(proxyFactoryService))
                 .singleton(mockFactoryService)
                 .singleton(mockIsisSessionFactory)
+                .singleton(mockIsisSessionTracker)
                 .singleton(mockTransactionService)
+                .singleton(mockCommandExecutorService)
+                .singleton(mockCommandDtoServiceInternal)
+                .singleton(asyncControlService)
+                .singleton(mockBookmarkService)
                 .build();
         
         metaModelContext.getServiceInjector().injectServicesInto(wrapperFactory);


[isis] 33/41: ISIS-2278: cleaning up implementation

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

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

commit 086032f1aef63cb635b2d7e3a8b37bebd1181389
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 08:46:11 2020 +0000

    ISIS-2278: cleaning up implementation
---
 .../services/wrapper/control/ControlAbstract.java  |  17 +-
 .../services/wrapper/control/SyncControl.java      |  23 ++
 .../wrapper/WrapperFactoryDefault.java             | 245 +++++++++++----------
 3 files changed, 158 insertions(+), 127 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
index bcb01c9..8886d26 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
@@ -71,25 +71,16 @@ public class ControlAbstract<T extends ControlAbstract<T>> {
         return (T)this;
     }
 
-    private boolean execute = true;
-    public T withExecute() {
-        execute = true;
-        return (T)this;
-    }
-    public T withNoExecute() {
-        execute = false;
-        return (T)this;
-    }
-
     // end::refguide[]
+
+    /**
+     * Not API.
+     */
     public ImmutableEnumSet<ExecutionMode> getExecutionModes() {
         EnumSet<ExecutionMode> modes = EnumSet.noneOf(ExecutionMode.class);
         if(!checkRules) {
             modes.add(ExecutionMode.SKIP_RULE_VALIDATION);
         }
-        if(!execute) {
-            modes.add(ExecutionMode.SKIP_EXECUTION);
-        }
         return ImmutableEnumSet.from(modes);
     }
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
index bc16f36..dbef24b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
@@ -21,6 +21,7 @@ package org.apache.isis.applib.services.wrapper.control;
 import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ForkJoinPool;
@@ -52,5 +53,27 @@ public class SyncControl extends ControlAbstract<SyncControl> {
         });
     }
 
+    private boolean execute = true;
+    public SyncControl withExecute() {
+        execute = true;
+        return this;
+    }
+    public SyncControl withNoExecute() {
+        execute = false;
+        return this;
+    }
+
+    /**
+     * Not API.
+     */
+    public ImmutableEnumSet<ExecutionMode> getExecutionModes() {
+        EnumSet<ExecutionMode> modes = EnumSet.copyOf(super.getExecutionModes().toEnumSet());
+        if(!execute) {
+            modes.add(ExecutionMode.SKIP_EXECUTION);
+        }
+        return ImmutableEnumSet.from(modes);
+    }
+
+
 }
 // end::refguide[]
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index ccbdfb0..eaa599d 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -27,26 +27,20 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.function.BiConsumer;
-import java.util.stream.Collectors;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.inject.Provider;
 
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
@@ -73,11 +67,9 @@ import org.apache.isis.applib.services.wrapper.events.PropertyModifyEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
-import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactory;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
@@ -90,15 +82,19 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
+import org.apache.isis.core.runtime.session.IsisSession;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.session.IsisSessionTracker;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcher;
 import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEventDispatcherTypeSafe;
 import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
-import org.apache.isis.schema.cmd.v2.CommandDto;
-import org.apache.isis.schema.common.v2.OidDto;
+import org.apache.isis.core.security.authentication.AuthenticationSession;
+import org.apache.isis.core.security.authentication.standard.SimpleSession;
 
+import static org.apache.isis.applib.services.wrapper.control.SyncControl.control;
+
+import lombok.Data;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
@@ -123,6 +119,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     @Inject private CommandExecutorService commandExecutorService;
     @Inject protected ProxyFactoryService proxyFactoryService; // protected to allow JUnit test
     @Inject private CommandDtoServiceInternal commandDtoServiceInternal;
+    @Inject private AsyncControlService asyncControlService;
 
     private final List<InteractionListener> listeners = new ArrayList<>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher>
@@ -157,7 +154,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     
     @Override
     public <T> T wrap(T domainObject) {
-        return wrap(domainObject, SyncControl.control());
+        return wrap(domainObject, control());
     }
 
     @Override
@@ -179,7 +176,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
     @Override
     public <T> T wrapMixin(Class<T> mixinClass, Object mixedIn) {
-        return wrapMixin(mixinClass, mixedIn, SyncControl.control());
+        return wrapMixin(mixinClass, mixedIn, control());
     }
 
     @Override
@@ -209,160 +206,173 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
     // -- ASYNC WRAPPING
 
-    @Inject
-    private AsyncControlService asyncControlService;
 
     @Override
     public <T,R> T async(
             final T domainObject,
             final AsyncControl<R> asyncControl) {
 
-        final ImmutableEnumSet<ExecutionMode> executionModes = asyncControl.getExecutionModes();
-        final ExecutorService executorService = asyncControl.getExecutorService();
-
-        Class<T> domainClass = (Class<T>) domainObject.getClass();
-        ProxyFactory<T> factory = proxyFactoryService.factory(domainClass, WrappingObject.class);
+        val proxyFactory = proxyFactoryService.factory((Class<T>) domainObject.getClass(), WrappingObject.class);
 
-        return factory.createInstance(new InvocationHandler() {
+        return proxyFactory.createInstance(new InvocationHandler() {
             @Override
             public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
 
-                //
-                // executed in the same thread as caller..
-                //
-                final boolean inheritedFromObject = method.getDeclaringClass().equals(Object.class);
-                if (inheritedFromObject) {
+                if (isInheritedFromJavaLangObject(method)) {
                     return method.invoke(domainObject, args);
                 }
 
-                val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-                if (!skipRules) {
-                    SyncControl syncControl = SyncControl.control().withNoExecute();
-                    T syncProxy = WrapperFactoryDefault.this.createProxy(domainObject, syncControl);
+                if (shouldCheckRules(asyncControl)) {
+                    T syncProxy = WrapperFactoryDefault.this.createProxy(domainObject, control().withNoExecute());
                     method.invoke(syncProxy, args);
                 }
 
-                //
-                // submit async stuff
-                //
-                final ObjectSpecificationDefault targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
-                final ObjectMember member = targetObjSpec.getMember(method);
-
-                if (member == null) {
+                val actionAndTarget = forRegular(method, domainObject);
+                if( ! actionAndTarget.isMemberFound()) {
                     return method.invoke(domainObject, args);
                 }
 
-                if (!(member instanceof ObjectAction)) {
-                    throw new UnsupportedOperationException(
-                            "Only actions can be executed in the background "
-                                    + "(method " + method.getName() + " represents a " + member.getFeatureType().name() + "')");
-                }
-
-                ObjectAction action = (ObjectAction) member;
-
-                val isisSession = isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
-                val authSession = isisSession.getAuthenticationSession();
-
-                final ManagedObject domainObjectAdapter = isisSession.getObjectManager().adapt(domainObject);
-                final List<ManagedObject> argAdapters = Arrays.asList(WrapperFactoryDefault.this.adaptersFor(args));
-
-                final List<ManagedObject> targetList = Collections.singletonList(domainObjectAdapter);
-                final CommandDto dto =
-                        commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
-                final OidDto oidDto = dto.getTargets().getOid().get(0);
-
-                asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
-
-                Future future = executorService.submit(() ->
-                        isisSessionFactory.runAuthenticated(authSession,
-                                () -> commandExecutorService.executeCommand(dto)));
-                asyncControlService.update(asyncControl, future);
-                return null;
+                return submitAsync(actionAndTarget, args, asyncControl);
             }
         }, false);
     }
 
     @Override
     public <T, R> T asyncMixin(Class<T> mixinClass, Object mixedIn, AsyncControl<R> asyncControl) {
-        T mixin = factoryService.mixin(mixinClass, mixedIn);
 
-        final ImmutableEnumSet<ExecutionMode> executionModes = asyncControl.getExecutionModes();
-        final ExecutorService executorService = asyncControl.getExecutorService();
-
-        ProxyFactory<T> factory = proxyFactoryService.factory(mixinClass, new Class[]{WrappingObject.class}, new Class[]{mixedIn.getClass()});
+        T mixin = factoryService.mixin(mixinClass, mixedIn);
+        val proxyFactory = proxyFactoryService.factory(mixinClass, new Class[]{WrappingObject.class}, new Class[]{mixedIn.getClass()});
 
-        return factory.createInstance(new InvocationHandler() {
+        return proxyFactory.createInstance(new InvocationHandler() {
             @Override
             public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
 
-                //
-                // executed in the same thread as caller..
-                //
-                final boolean inheritedFromObject = method.getDeclaringClass().equals(Object.class);
+                final boolean inheritedFromObject = isInheritedFromJavaLangObject(method);
                 if (inheritedFromObject) {
                     return method.invoke(mixin, args);
                 }
 
-                val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-                if (!skipRules) {
-                    T syncProxy = WrapperFactoryDefault.this.createProxy(mixin, SyncControl.control().withNoExecute());
+                if (shouldCheckRules(asyncControl)) {
+                    T syncProxy = WrapperFactoryDefault.this.createProxy(mixin, control().withNoExecute());
                     method.invoke(syncProxy, args);
                 }
 
-                //
-                // submit async stuff
-                //
-                final ObjectSpecificationDefault mixinSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
-                final ObjectMember member = mixinSpec.getMember(method);
-                if (member == null) {
+                val actionAndTarget = forMixin(method, mixedIn);
+                if (! actionAndTarget.isMemberFound()) {
                     return method.invoke(mixin, args);
                 }
 
-                // find corresponding action of the mixedIn (this is the 'real' target).
-                String memberId = member.getId();
+                return submitAsync(actionAndTarget, args, asyncControl);
+            }
+        }, new Object[]{ mixedIn });
+    }
+
+    private boolean isInheritedFromJavaLangObject(final Method method) {
+        return method.getDeclaringClass().equals(Object.class);
+    }
 
-                Class<?> mixedInClass = mixedIn.getClass();
-                final ObjectSpecificationDefault mixedInSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(mixedInClass);
-                // don't care about anything other than actions.
+    private <R> boolean shouldCheckRules(AsyncControl<R> asyncControl) {
+        val executionModes = asyncControl.getExecutionModes();
+        val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+        return !skipRules;
+    }
 
-                //Optional<ObjectAction> targetActionIfAny = mixedInSpec.getObjectAction(memberId);
-                Optional<ObjectActionMixedIn> targetActionIfAny = mixedInSpec.streamObjectActions(Contributed.INCLUDED)
-                        .filter(ObjectActionMixedIn.class::isInstance)
-                        .map(ObjectActionMixedIn.class::cast)
-                        .filter(x -> x.hasMixinAction((ObjectAction) member))
-                        .findFirst();
+    private <R> Object submitAsync(
+            final ActionAndTarget actionAndTarget,
+            final Object[] args,
+            final AsyncControl<R> asyncControl) {
 
-                if(!targetActionIfAny.isPresent()) {
-                    throw new UnsupportedOperationException(
-                            "Could not locate objectAction with id='" + memberId + "' on mixedIn class '" + mixedInClass.getName() + "'");
-                }
-                ObjectAction action = targetActionIfAny.get();
+        val executorService = asyncControl.getExecutorService();
+        val isisSession = currentIsisSession();
+        val asyncAuthSession = authSessionFrom(asyncControl, isisSession.getAuthenticationSession());
 
-                val isisSession = isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
-                val authSession = isisSession.getAuthenticationSession();
+        val action = actionAndTarget.getAction();
+        val targetAdapter = actionAndTarget.getTarget();
+        val method = actionAndTarget.getMethod();
 
-                final ManagedObject mixedInAdapter = isisSession.getObjectManager().adapt(mixedIn);
-                final List<ManagedObject> argAdapters = Arrays.asList(WrapperFactoryDefault.this.adaptersFor(args));
+        val argAdapters = Arrays.asList(WrapperFactoryDefault.this.adaptersFor(args));
+        val targetList = Collections.singletonList(targetAdapter);
+        val commandDto = commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+        val oidDto = commandDto.getTargets().getOid().get(0);
 
-                final List<ManagedObject> targetList = Collections.singletonList(mixedInAdapter);
-                final CommandDto dto = commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
-                final OidDto oidDto = dto.getTargets().getOid().get(0);
+        asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
 
-                asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
+        Future future = executorService.submit(() ->
+                isisSessionFactory.runAuthenticated(asyncAuthSession,
+                        () -> commandExecutorService.executeCommand(commandDto)));
 
-                Future future = executorService.submit(() ->
-                        isisSessionFactory.runAuthenticated(authSession,
-                                () -> commandExecutorService.executeCommand(dto)));
-                asyncControlService.update(asyncControl, future);
-                return null;
+        asyncControlService.update(asyncControl, future);
 
-            }
-        }, new Object[]{ mixedIn });
+        return null;
+    }
+
+    private <T> ActionAndTarget forRegular(Method method, T domainObject) {
+
+        val targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
+        val objectMember = targetObjSpec.getMember(method);
+        if(objectMember == null) {
+            return new ActionAndTarget(false, null, null, null);
+        }
+
+        if (!(objectMember instanceof ObjectAction)) {
+            throw new UnsupportedOperationException(
+                    "Only actions can be executed in the background "
+                            + "(method " + method.getName() + " represents a " + objectMember.getFeatureType().name() + "')");
+        }
+
+        return ActionAndTarget.found((ObjectAction) objectMember, currentObjectManager().adapt(domainObject), method);
+    }
+
+    private <T> ActionAndTarget forMixin(Method method, T mixedIn) {
+
+        final ObjectSpecificationDefault mixinSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
+        final ObjectMember mixinMember = mixinSpec.getMember(method);
+        if (mixinMember == null) {
+            return ActionAndTarget.notFound();
+        }
+
+        // find corresponding action of the mixedIn (this is the 'real' target).
+        val mixedInClass = mixedIn.getClass();
+        val mixedInSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(mixedInClass);
+
+        // don't care about anything other than actions.
+        Optional<ObjectActionMixedIn> targetActionIfAny = mixedInSpec.streamObjectActions(Contributed.INCLUDED)
+                .filter(ObjectActionMixedIn.class::isInstance)
+                .map(ObjectActionMixedIn.class::cast)
+                .filter(x -> x.hasMixinAction((ObjectAction) mixinMember))
+                .findFirst();
+
+        if(!targetActionIfAny.isPresent()) {
+            throw new UnsupportedOperationException(String.format(
+                    "Could not locate objectAction delegating to mixinAction id='%s' on mixedIn class '%s'",
+                    mixinMember.getId(), mixedInClass.getName()));
+        }
+
+        return ActionAndTarget.found(targetActionIfAny.get(), currentObjectManager().adapt(mixedIn), method);
+    }
+
+    private static <R> SimpleSession authSessionFrom(AsyncControl<R> asyncControl, AuthenticationSession authSession) {
+        val user = asyncControl.getUser();
+        val roles = asyncControl.getRoles();
+        return new SimpleSession(user != null ? user : authSession.getUserName(), roles != null ? roles : authSession.getRoles());
+    }
+
+    @Data
+    static class ActionAndTarget {
+        static ActionAndTarget notFound() {
+            return new ActionAndTarget(false, null, null, null);
+        }
+        static ActionAndTarget found(ObjectAction action, ManagedObject target, final Method method) {
+            return new ActionAndTarget(true, action, target, method);
+        }
+        private final boolean memberFound;
+        private final ObjectAction action;
+        private final ManagedObject target;
+        private final Method method;
     }
 
     private ManagedObject[] adaptersFor(final Object[] args) {
-        final ObjectManager objectManager =
-                isisSessionTracker.currentSession().get().getObjectManager();
+        final ObjectManager objectManager = currentObjectManager();
         return CommandUtil.adaptersFor(args, objectManager);
     }
 
@@ -414,5 +424,12 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
 
+    private IsisSession currentIsisSession() {
+        return isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
+    }
+
+    private ObjectManager currentObjectManager() {
+        return currentIsisSession().getObjectManager();
+    }
 
 }


[isis] 26/41: ISIS-2062: refguide docs, simplify/reinstate nextTransaction() for TransactionService

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

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

commit 03a896fdb18ca72a7f2eae1f6245c855e0e02f6b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 13 00:29:56 2020 +0100

    ISIS-2062: refguide docs, simplify/reinstate nextTransaction() for TransactionService
---
 .../examples/services/command/CommandContext.java  |  16 ---
 .../services/confview/ConfigurationMenu.java       |   6 +-
 .../examples/services/hint/HintStore.java          |  10 +-
 .../examples/services/i18n/TranslationService.java |  46 ++++---
 .../examples/services/iactn/Interaction.java       |  14 +--
 .../services/iactn/InteractionContext.java         |  16 +--
 .../examples/services/jaxb/JaxbService.java        |  28 +++--
 .../examples/services/layout/LayoutService.java    |  12 +-
 .../services/layout/LayoutServiceMenu.java         |  25 +++-
 .../services/menu/MenuBarsLoaderService.java       |   4 +-
 .../examples/services/menu/MenuBarsService.java    |   6 +-
 .../examples/services/message/MessageService.java  |  33 ++++--
 .../examples/services/metamodel}/BeanSort.java     |  60 ++++++----
 .../services/metamodel/MetaModelService.java       |  27 +++--
 .../services/metamodel/MetaModelServiceMenu.java   |  36 +++---
 .../examples/services/metrics/MetricsService.java  |   8 +-
 .../services/publish/PublishedObjects.java         |  18 +--
 .../services/publish/PublisherService.java         |   4 +-
 .../queryresultscache/QueryResultsCache.java       |  62 ++++++----
 .../examples/services/repository/EntityState.java  |  17 ++-
 .../services/repository/RepositoryService.java     |  43 ++++---
 .../examples/services/routing/RoutingService.java  |   5 +-
 .../examples/services/scratchpad/Scratchpad.java   |  44 +------
 .../services/session/SessionLoggingService.java    |   8 +-
 .../examples/services/sudo/SudoService.java        |  23 ++--
 .../examples/services/swagger/SwaggerService.java  |  22 ++--
 .../services/tablecol/TableColumnOrderService.java |   4 +-
 .../examples/services/title/TitleService.java      |   4 +-
 .../services/urlencoding/UrlEncodingService.java   |   4 +-
 .../examples/services/user}/RoleMemento.java       |   8 +-
 .../examples/services/user}/UserMemento.java       |  16 +--
 .../examples/services/user/UserService.java        |   4 +-
 .../services/userprof/UserProfileService.java      |   2 +-
 .../services/userreg/UserRegistrationService.java  |  15 +--
 .../examples/services/wrapper/WrapperFactory.java  |  69 ++++++-----
 .../examples/services/xactn/TransactionId.java     |   5 +-
 .../services/xactn/TransactionService.java         |  79 ++++++------
 .../examples/services/xactn/TransactionState.java  |   7 --
 .../services/xmlsnapshot/XmlSnapshotService.java   |  17 ++-
 .../applib-svc/pages/ConfigurationMenu.adoc        |   2 +-
 .../adoc/modules/applib-svc/pages/HintStore.adoc   |  49 ++------
 .../applib-svc/pages/HomePageResolverService.adoc  |  13 +-
 .../applib-svc/pages/InteractionContext.adoc       |  93 +++++----------
 .../adoc/modules/applib-svc/pages/JaxbService.adoc |  32 ++---
 .../modules/applib-svc/pages/LayoutService.adoc    |  30 ++---
 .../applib-svc/pages/LayoutServiceMenu.adoc        |  12 +-
 .../modules/applib-svc/pages/LocaleProvider.adoc   |  20 +---
 .../applib-svc/pages/MenuBarsLoaderService.adoc    |  15 +--
 .../modules/applib-svc/pages/MenuBarsService.adoc  |  25 ++--
 .../modules/applib-svc/pages/MessageService.adoc   |  40 +++----
 .../modules/applib-svc/pages/MetaModelService.adoc |  98 +++++++--------
 .../applib-svc/pages/MetaModelServiceMenu.adoc     |  11 +-
 .../modules/applib-svc/pages/MetricsService.adoc   |  24 ++--
 .../modules/applib-svc/pages/PublisherService.adoc |  50 ++++----
 .../applib-svc/pages/QueryResultsCache.adoc        |  37 ++----
 .../applib-svc/pages/QueryResultsCacheControl.adoc |  16 ++-
 .../applib-svc/pages/RepositoryService.adoc        |  84 +++++++------
 .../modules/applib-svc/pages/RoutingService.adoc   |  16 +--
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |  22 ++--
 .../modules/applib-svc/pages/ServiceInjector.adoc  |  17 +++
 .../modules/applib-svc/pages/ServiceRegistry.adoc  |   3 +
 .../applib-svc/pages/SessionLoggingService.adoc    |  25 ++--
 .../adoc/modules/applib-svc/pages/SudoService.adoc |  37 +++---
 .../modules/applib-svc/pages/SwaggerService.adoc   |  29 ++---
 .../applib-svc/pages/TableColumnOrderService.adoc  |  15 +--
 .../modules/applib-svc/pages/TitleService.adoc     |  21 ++--
 .../applib-svc/pages/TransactionService.adoc       | 104 +++-------------
 .../applib-svc/pages/TranslationService.adoc       |  78 +++---------
 .../applib-svc/pages/TranslationsResolver.adoc     |  23 +---
 .../applib-svc/pages/UrlEncodingService.adoc       |  17 ++-
 .../applib-svc/pages/UserProfileService.adoc       |  15 +--
 .../applib-svc/pages/UserRegistrationService.adoc  |  19 +--
 .../adoc/modules/applib-svc/pages/UserService.adoc |  25 +---
 .../modules/applib-svc/pages/WrapperFactory.adoc   |  55 +++------
 .../applib-svc/pages/XmlSnapshotService.adoc       |  24 ++--
 .../org/apache/isis/applib/IsisModuleApplib.java   |   3 +-
 .../apache/isis/applib/security/package-info.java  |  36 ------
 .../isis/applib/services}/MethodReferences.java    |   2 +-
 .../applib/services/command/CommandContext.java    |  16 ---
 .../services/confview/ConfigurationMenu.java       |   6 +-
 .../isis/applib/services/hint/HintStore.java       |  10 +-
 .../applib/services/i18n/TranslationService.java   |  46 ++++---
 .../isis/applib/services/iactn/Interaction.java    |  22 ++--
 .../applib/services/iactn/InteractionContext.java  |  16 +--
 .../isis/applib/services/jaxb/JaxbService.java     |  28 +++--
 .../isis/applib/services/layout/LayoutService.java |  12 +-
 .../applib/services/layout/LayoutServiceMenu.java  |  25 +++-
 .../services/menu/MenuBarsLoaderService.java       |   4 +-
 .../isis/applib/services/menu/MenuBarsService.java |   4 +-
 .../applib/services/message/MessageService.java    |  33 ++++--
 .../isis/applib/services/metamodel}/BeanSort.java  |  60 ++++++----
 .../services/metamodel/MetaModelService.java       |  27 +++--
 .../services/metamodel/MetaModelServiceMenu.java   |  36 +++---
 .../applib/services/metrics/MetricsService.java    |   8 +-
 .../applib/services/publish/PublishedObjects.java  |  18 +--
 .../applib/services/publish/PublisherService.java  |   4 +-
 .../queryresultscache/QueryResultsCache.java       |  62 ++++++----
 .../applib/services/repository/EntityState.java    |  17 ++-
 .../services/repository/RepositoryService.java     |  43 ++++---
 .../applib/services/routing/RoutingService.java    |   5 +-
 .../applib/services/scratchpad/Scratchpad.java     |  44 +------
 .../services/session/SessionLoggingService.java    |  31 ++---
 .../session/SessionLoggingServiceLogging.java      |  51 ++++++++
 .../isis/applib/services/sudo/SudoService.java     |  23 ++--
 .../applib/services/swagger/SwaggerService.java    |  22 ++--
 .../services/tablecol/TableColumnOrderService.java |   4 +-
 .../isis/applib/services/title/TitleService.java   |   4 +-
 .../{security => services/user}/RoleMemento.java   |   8 +-
 .../{security => services/user}/UserMemento.java   |  16 +--
 .../isis/applib/services/user/UserService.java     |   4 +-
 .../isis/applib/services/user/package-info.java    |  14 ++-
 .../services/userprof/UserProfileService.java      |   2 +-
 .../services/userreg/UserRegistrationService.java  |  15 +--
 .../isis/applib/services/wrapper/AsyncWrap.java    |  20 ++--
 .../applib/services/wrapper/WrapperFactory.java    |  68 ++++++-----
 .../isis/applib/services/xactn/TransactionId.java  |   5 +-
 .../applib/services/xactn/TransactionService.java  |  79 ++++++------
 .../applib/services/xactn/TransactionState.java    |   7 --
 .../services/xmlsnapshot/XmlSnapshotService.java   |  17 ++-
 .../core/config/beans/IsisBeanTypeRegistry.java    |   2 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |   2 +-
 .../dflt/ProgrammingModelFacetsJava8.java          |   2 +-
 .../metamodel/MetaModelServiceDefault.java         |   2 +-
 .../isis/core/metamodel/spec/ManagedObject.java    |   8 +-
 .../core/metamodel/spec/ObjectSpecification.java   |   2 +-
 .../specimpl/ObjectSpecificationAbstract.java      |   2 +-
 .../testspec/ObjectSpecificationStub.java          |   2 +-
 .../transaction/ChangedObjectsService.java         |  14 ---
 .../JavaObjectWithBasicProgramConventions.java     |   2 +-
 .../IsisModuleCoreRuntimeServices.java             |   2 +
 .../i18n/po/TranslationServicePo.java              |  10 +-
 .../publish/PublisherDispatchServiceDefault.java   |  16 ---
 .../QueryResultsCacheDefault.java                  |  30 +----
 .../scratchpad/ScratchpadDefault.java              |  22 +---
 .../runtimeservices/user/UserServiceDefault.java   |   4 +-
 .../runtimeservices/wrapper/AsyncWrapDefault.java  |  10 +-
 .../xactn/TransactionServiceSpring.java            | 132 ++++++++++++---------
 .../authentication/AuthenticationSession.java      |   2 +-
 .../AuthenticationSessionAbstract.java             |   4 +-
 .../secman/jdo/dom/user/ApplicationUser.java       |   4 +-
 .../isis/legacy/applib/DomainObjectContainer.java  |   2 +-
 .../metrics/MetricsServiceDefault.java             |  16 ---
 .../persistence/PersistenceSession5.java           |   8 +-
 .../acceptheader/AcceptHeaderServiceForRest.java   |  16 ---
 .../wicket/model/models/ActionPromptProvider.java  |   2 +-
 .../components/scalars/ScalarPanelAbstract2.java   |   2 +-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |   2 +-
 .../AuthenticatedWebSessionForIsis.java            |  20 ++--
 148 files changed, 1504 insertions(+), 1838 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/command/CommandContext.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/command/CommandContext.java
index 2cad28e..ffbcb9c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/command/CommandContext.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/command/CommandContext.java
@@ -53,22 +53,6 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class CommandContext {
 
-    // end::refguide[]
-    public CommandContext() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-    // tag::refguide[]
     @Getter
     private Command command;
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/confview/ConfigurationMenu.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/confview/ConfigurationMenu.java
index 7e83574..695ff8e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/confview/ConfigurationMenu.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/confview/ConfigurationMenu.java
@@ -32,12 +32,14 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-// tag::refguide[]
 @Named("isisApplib.ConfigurationMenu")
 @DomainService(objectType = "isisApplib.ConfigurationMenu")
 @DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.TERTIARY)
+// tag::refguide[]
+// ...
 public class ConfigurationMenu {
 
+    // ...
     // end::refguide[]
     public static abstract class ActionDomainEvent
             extends IsisModuleApplib.ActionDomainEvent<ConfigurationMenu> {}
@@ -52,7 +54,6 @@ public class ConfigurationMenu {
     public static class ConfigurationDomainEvent
             extends ActionDomainEvent {}
 
-    // tag::refguide[]
     @Action(
             domainEvent = ConfigurationDomainEvent.class,
             semantics = SemanticsOf.SAFE
@@ -61,6 +62,7 @@ public class ConfigurationMenu {
             cssClassFa = "fa-wrench"
     )
     @MemberOrder(sequence = "500.900.1")
+    // tag::refguide[]
     public Set<ConfigurationProperty> configuration(){
         return configurationService.allProperties();
     }
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/hint/HintStore.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/hint/HintStore.java
index 8572827..4444ea4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/hint/HintStore.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/hint/HintStore.java
@@ -34,15 +34,15 @@ public interface HintStore {
     // end::refguide-1[]
     // tag::refguide[]
 
-    String get(final Bookmark bookmark, String hintKey);
+    String get(final Bookmark bookmark, String hintKey);                // <.>
 
-    void set(final Bookmark bookmark, String hintKey, String value);
+    void set(final Bookmark bookmark, String hintKey, String value);    // <.>
 
-    void remove(final Bookmark bookmark, String hintKey);
+    void remove(final Bookmark bookmark, String hintKey);               // <.>
 
-    void removeAll(Bookmark bookmark);
+    void removeAll(Bookmark bookmark);                                  // <.>
 
-    Set<String> findHintKeys(Bookmark bookmark);
+    Set<String> findHintKeys(Bookmark bookmark);                        // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/i18n/TranslationService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/i18n/TranslationService.java
index 5f55e2f..c413f15 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/i18n/TranslationService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/i18n/TranslationService.java
@@ -37,7 +37,9 @@ public interface TranslationService {
      * @return
      */
     // tag::refguide[]
-    String translate(final String context, final String text);
+    String translate(                   // <.>
+            final String context,
+            final String text);
 
     // end::refguide[]
     /**
@@ -55,46 +57,40 @@ public interface TranslationService {
      * @return
      */
     // tag::refguide[]
-    String translate(final String context, final String singularText, final String pluralText, int num);
+    String translate(                   // <.>
+            final String context,
+            final String singularText,
+            final String pluralText,
+            int num);
 
     // end::refguide[]
     // tag::refguide-1[]
     enum Mode {
-
-        DISABLED (
+        DISABLED
             // end::refguide-1[]
+            (
                 configValue->
                     ("disable".equalsIgnoreCase(configValue) ||
                      "disabled".equalsIgnoreCase(configValue))
+            )
             // tag::refguide-1[]
-            // ...
-        ),
-
-        // synonym, needs to be defined, such that config beans (since 2.0) do work
-        DISABLE(
-            // end::refguide-1[]
-                configValue->false
-            // tag::refguide-1[]
-            // ...
-        ),
-
-        READ(
+        , READ
             // end::refguide-1[]
+            (
                 configValue->
                     ("read".equalsIgnoreCase(configValue) ||
                      "reader".equalsIgnoreCase(configValue))
+            )
             // tag::refguide-1[]
-            // ...
-        ),
-
-        WRITE(
+        , WRITE
             // end::refguide-1[]
+            (
                 configValue ->
                     !READ.matches(configValue) &&
                     !DISABLED.matches(configValue)
-            // tag::refguide-1[]
-            // ...
-        );
+            )
+        ;
+        // tag::refguide-1[]
         // end::refguide-1[]
 
         // -- handle values from configuration
@@ -116,7 +112,7 @@ public interface TranslationService {
             return this == WRITE;
         }
         public boolean isDisabled() {
-            return this == DISABLED || this == DISABLE;
+            return this == DISABLED;
         }
 
         // tag::refguide-1[]
@@ -142,7 +138,7 @@ public interface TranslationService {
      * </p>
      */
     // tag::refguide[]
-    Mode getMode();
+    Mode getMode();                     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/Interaction.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/Interaction.java
index c65f26f..d003734 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/Interaction.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/Interaction.java
@@ -85,9 +85,9 @@ import lombok.extern.log4j.Log4j2;
 public class Interaction implements HasUniqueId {
 
     @Getter @Setter
-    private UUID uniqueId;
-    // end::refguide[]
+    private UUID uniqueId;                          // <.>
 
+    // end::refguide[]
     private final List<Execution<?,?>> executionGraphs = _Lists.newArrayList();
 
     /**
@@ -107,7 +107,7 @@ public class Interaction implements HasUniqueId {
      *  graph is populated, but then delegate to the PublisherService immediately at the end... ie {@link org.apache.isis.schema.ixn.v2.InteractionDto}s are published as we go, not all in a batch at the end.
      */
     // tag::refguide[]
-    public List<Execution<?,?>> getExecutions() {
+    public List<Execution<?,?>> getExecutions() {   // <.>
         // end::refguide[]
 
         return Collections.unmodifiableList(executionGraphs);
@@ -122,7 +122,7 @@ public class Interaction implements HasUniqueId {
      */
     // tag::refguide[]
     @Getter
-    private Execution<?,?> currentExecution;
+    private Execution<?,?> currentExecution;        // <.>
 
     // end::refguide[]
     /**
@@ -130,7 +130,7 @@ public class Interaction implements HasUniqueId {
      */
     // tag::refguide[]
     @Getter
-    private Execution<?,?> priorExecution;
+    private Execution<?,?> priorExecution;          // <.>
 
     // end::refguide[]
     /**
@@ -322,10 +322,8 @@ public class Interaction implements HasUniqueId {
     }
     // end::refguide-1[]
 
-    // tag::refguide[]
     private final Map<String, LongAdder> maxBySequence = _Maps.newHashMap();
 
-    // end::refguide[]
     /**
      * Generates numbers in a named sequence.
      *
@@ -333,7 +331,7 @@ public class Interaction implements HasUniqueId {
      * generate sequence numbers corresponding to the sequences enumerated by the {@link Sequence} enum.
      */
     // tag::refguide[]
-    public int next(final String sequenceId) {
+    public int next(final String sequenceId) {      // <.>
         // end::refguide[]
 
         final LongAdder adder = maxBySequence.computeIfAbsent(sequenceId, this::newAdder);
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java
index a647228..c960db4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java
@@ -52,26 +52,12 @@ import lombok.extern.log4j.Log4j2;
 public class InteractionContext {
 
     // end::refguide[]
-    public InteractionContext() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
     /**
      * The currently active {@link Interaction} for this thread.
      */
     // tag::refguide[]
     @Getter
-    private Interaction interaction;
+    private Interaction interaction;    // <1>
     // end::refguide[]
 
     /**
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/jaxb/JaxbService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/jaxb/JaxbService.java
index 61bafdc..c2ad2ca 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/jaxb/JaxbService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/jaxb/JaxbService.java
@@ -43,29 +43,39 @@ import org.apache.isis.core.commons.internal.collections._Maps;
 // tag::refguide[]
 public interface JaxbService {
 
-    Object fromXml(JAXBContext jaxbContext, String xml);
+    Object fromXml(                                     // <.>
+            JAXBContext jaxbContext,
+            String xml);
 
-    Object fromXml(JAXBContext jaxbContext, String xml, Map<String,Object> unmarshallerProperties);
+    Object fromXml(                                     // <.>
+            JAXBContext jaxbContext,
+            String xml,
+            Map<String,Object> unmarshallerProperties);
 
     // end::refguide[]
     /**
      * As {@link #fromXml(JAXBContext, String)}, but downcast to a specific type.
      */
     // tag::refguide[]
-    <T> T fromXml(Class<T> domainClass, String xml);
+    <T> T fromXml(Class<T> domainClass, String xml);    // <.>
 
     // end::refguide[]
     /**
      * As {@link #fromXml(JAXBContext, String, Map)}, but downcast to a specific type.
      */
     // tag::refguide[]
-    <T> T fromXml(Class<T> domainClass, String xml, Map<String,Object> unmarshallerProperties);
+    <T> T fromXml(                                      // <.>
+            Class<T> domainClass,
+            String xml,
+            Map<String,Object> unmarshallerProperties);
 
-    String toXml(final Object domainObject);
-
-    String toXml(final Object domainObject, Map<String,Object> marshallerProperties);
+    String toXml(final Object domainObject);            // <.>
 
+    String toXml(                                       // <.>
+            final Object domainObject,
+            Map<String,Object> marshallerProperties);
 
+    // end::refguide[]
     /**
      * Controls whether, when generating {@link #toXsd(Object, IsisSchemas) XML schemas},
      * any of the common Isis schemas (in the namespace <code>http://org.apache.isis.schema</code>) should be included
@@ -98,7 +108,9 @@ public interface JaxbService {
         // tag::refguide[]
     }
 
-    Map<String, String> toXsd(final Object domainObject, final IsisSchemas isisSchemas);
+    Map<String, String> toXsd(                          // <.>
+            final Object domainObject,
+            final IsisSchemas isisSchemas);
 
     // end::refguide[]
     class Simple implements JaxbService {
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutService.java
index a0fb471..c18724a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutService.java
@@ -26,7 +26,6 @@ import org.apache.isis.applib.services.menu.MenuBarsService;
 public interface LayoutService {
 
     // end::refguide[]
-
     /**
      * Mode of operation when downloading a layout file (while prototyping). It affects the way the file's
      * content is assembled. Once a layout file is in place, its layout data takes precedence over any
@@ -34,7 +33,6 @@ public interface LayoutService {
      */
     // tag::refguide-1[]
     enum Style {
-
         // end::refguide-1[]
         /**
          * The current layout for the domain class.
@@ -47,7 +45,6 @@ public interface LayoutService {
          */
         // tag::refguide-1[]
         CURRENT,
-
         // end::refguide-1[]
         /**
          * As per {@link #NORMALIZED}, but also with all (non-null) facets for all
@@ -62,7 +59,6 @@ public interface LayoutService {
          */
         // tag::refguide-1[]
         COMPLETE,
-
         // end::refguide-1[]
         /**
          * Default, whereby missing properties/collections/actions are added to regions,
@@ -78,7 +74,6 @@ public interface LayoutService {
          */
         // tag::refguide-1[]
         NORMALIZED,
-
         // end::refguide-1[]
         /**
          * As per {@link #NORMALIZED}, but with no properties/collections/actions.
@@ -96,19 +91,18 @@ public interface LayoutService {
     }
     // end::refguide-1[]
 
-    // end::refguide[]
     /**
      * Obtains the serialized XML form of the layout (grid) for the specified domain class.
      */
     // tag::refguide[]
-    String toXml(Class<?> domainClass, Style style);
+    String toXml(Class<?> domainClass, Style style);        // <.>
 
     // end::refguide[]
     /**
      * Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
      */
     // tag::refguide[]
-    byte[] toZip(final Style style);
+    byte[] toZip(final Style style);                        // <.>
 
     // end::refguide[]
     /**
@@ -116,7 +110,7 @@ public interface LayoutService {
      * @param type - either the current menubars (could be loaded from a file) or the fallback (obtained from metamodel facets)
      */
     // tag::refguide[]
-    String toMenuBarsXml(final MenuBarsService.Type type);
+    String toMenuBarsXml(final MenuBarsService.Type type);  // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutServiceMenu.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutServiceMenu.java
index 9d2cf55..0006792 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutServiceMenu.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/layout/LayoutServiceMenu.java
@@ -43,8 +43,11 @@ import org.apache.isis.core.commons.internal.base._Strings;
         named = "Prototyping",
         menuBar = DomainServiceLayout.MenuBar.SECONDARY
         )
+// tag::refguide[]
+// ...
 public class LayoutServiceMenu {
 
+    // end::refguide[]
     public static abstract class ActionDomainEvent
     extends IsisModuleApplib.ActionDomainEvent<LayoutServiceMenu> {}
 
@@ -70,14 +73,21 @@ public class LayoutServiceMenu {
             named = "Download Object Layouts (ZIP)"
             )
     @MemberOrder(sequence="500.400.1")
+    // tag::refguide[]
+    // ...
     public Blob downloadLayouts(final LayoutService.Style style) {
+        // end::refguide[]
 
         final String fileName = "layouts." + style.name().toLowerCase() + ".zip";
 
         final byte[] zipBytes = layoutService.toZip(style);
         return new Blob(fileName, mimeTypeApplicationZip, zipBytes);
+
+        // tag::refguide[]
+        // ...
     }
 
+    // end::refguide[]
     public LayoutService.Style default0DownloadLayouts() {
         return LayoutService.Style.NORMALIZED;
     }
@@ -94,14 +104,20 @@ public class LayoutServiceMenu {
             named = "Download Menu Bars Layout (XML)"
             )
     @MemberOrder(sequence="500.400.2")
+    // tag::refguide[]
+    // ...
     public Clob downloadMenuBarsLayout(
             @ParameterLayout(named = "File name") final String fileName,
             final MenuBarsService.Type type) {
+        // end::refguide[]
 
         final String xml = layoutService.toMenuBarsXml(type);
 
         return new Clob(_Strings.asFileNameWithExtension(fileName,  ".xml"), "text/xml", xml);
+        // tag::refguide[]
+        // ...
     }
+    // end::refguide[]
 
     public String default0DownloadMenuBarsLayout() {
         return "menubars.layout.xml";
@@ -110,12 +126,9 @@ public class LayoutServiceMenu {
     public MenuBarsService.Type default1DownloadMenuBarsLayout() {
         return MenuBarsService.Type.DEFAULT;
     }
-
-
-    // //////////////////////////////////////
-
+    // tag::refguide[]
 
     @Inject LayoutService layoutService;
 
-
-}
\ No newline at end of file
+}
+// end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsLoaderService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsLoaderService.java
index 5ca9688..72c86c7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsLoaderService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsLoaderService.java
@@ -29,14 +29,14 @@ public interface MenuBarsLoaderService {
      * Whether dynamic reloading of layouts is enabled.
      */
     // tag::refguide[]
-    boolean supportsReloading();
+    boolean supportsReloading();    // <.>
 
     // end::refguide[]
     /**
      * Returns a new instance of a {@link BS3MenuBars}, else <tt>null</tt>.
      */
     // tag::refguide[]
-    BS3MenuBars menuBars();
+    BS3MenuBars menuBars();         // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsService.java
index 10197af..6dac827 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/menu/MenuBarsService.java
@@ -26,7 +26,6 @@ public interface MenuBarsService {
     // end::refguide[]
     // tag::refguide-1[]
     enum Type {
-
         // end::refguide-1[]
         /**
          * Either derived from annotations or as obtained elsewhere
@@ -35,7 +34,6 @@ public interface MenuBarsService {
          */
         // tag::refguide-1[]
         DEFAULT,
-
         // end::refguide-1[]
         /**
          * As derived from annotations.
@@ -51,10 +49,10 @@ public interface MenuBarsService {
      * @return
      */
     // tag::refguide[]
-    default MenuBars menuBars() {
+    default MenuBars menuBars() {           // <.>
         return menuBars(Type.DEFAULT);
     }
 
-    MenuBars menuBars(final Type type);
+    MenuBars menuBars(final Type type);     // <.>
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/message/MessageService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/message/MessageService.java
index b2e32d6..dbbb094 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/message/MessageService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/message/MessageService.java
@@ -36,7 +36,7 @@ public interface MessageService {
      * @see #raiseError(String)
      */
     // tag::refguide[]
-    void informUser(String message);
+    void informUser(String message);            // <.>
 
     // end::refguide[]
     /**
@@ -53,14 +53,19 @@ public interface MessageService {
      * @see #raiseError(org.apache.isis.applib.services.i18n.TranslatableString, Class, String)
      */
     // tag::refguide[]
-    String informUser(TranslatableString message, final Class<?> contextClass, final String contextMethod);
+    String informUser(                          // <.>
+            TranslatableString message,
+            final Class<?> contextClass,
+            final String contextMethod);
 
     // end::refguide[]
     /**
      * Override of {@link MessageService#informUser(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
      */
     // tag::refguide[]
-    String informUser(TranslatableString message, final String translationContext);
+    String informUser(                          // <.>
+            TranslatableString message,
+            final String translationContext);
 
     // end::refguide[]
     /**
@@ -73,7 +78,7 @@ public interface MessageService {
      * @see #informUser(String)
      */
     // tag::refguide[]
-    void warnUser(String message);
+    void warnUser(String message);              // <.>
 
     // end::refguide[]
     /**
@@ -90,14 +95,19 @@ public interface MessageService {
      * @see #raiseError(org.apache.isis.applib.services.i18n.TranslatableString, Class, String)
      */
     // tag::refguide[]
-    String warnUser(TranslatableString message, final Class<?> contextClass, final String contextMethod);
+    String warnUser(                            // <.>
+            TranslatableString message,
+            final Class<?> contextClass,
+            final String contextMethod);
 
     // end::refguide[]
     /**
      * Override of {@link MessageService#warnUser(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
      */
     // tag::refguide[]
-    String warnUser(TranslatableString message, final String translationContext);
+    String warnUser(                            // <.>
+            TranslatableString message,
+            final String translationContext);
 
     // end::refguide[]
     /**
@@ -110,7 +120,7 @@ public interface MessageService {
      * @see #informUser(String)
      */
     // tag::refguide[]
-    void raiseError(String message);
+    void raiseError(String message);            // <.>
 
     // end::refguide[]
     /**
@@ -127,14 +137,19 @@ public interface MessageService {
      * @see #warnUser(org.apache.isis.applib.services.i18n.TranslatableString, Class, String)
      */
     // tag::refguide[]
-    String raiseError(TranslatableString message, final Class<?> contextClass, final String contextMethod);
+    String raiseError(                          // <.>
+            TranslatableString message,
+            final Class<?> contextClass,
+            final String contextMethod);
 
     // end::refguide[]
     /**
      * Override of {@link MessageService#raiseError(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
      */
     // tag::refguide[]
-    String raiseError(TranslatableString message, final String translationContext);
+    String raiseError(                          // <.>
+            TranslatableString message,
+            final String translationContext);
 
 }
 // end::refguide[]
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/ioc/BeanSort.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/BeanSort.java
similarity index 80%
copy from core/commons/src/main/java/org/apache/isis/core/commons/internal/ioc/BeanSort.java
copy to api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/BeanSort.java
index 37c271a..63bb5fd 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/ioc/BeanSort.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/BeanSort.java
@@ -16,65 +16,72 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.commons.internal.ioc;
+package org.apache.isis.applib.services.metamodel;
 
 /**
  * Top level object classification.
- *
  */
+// tag::refguide[]
 public enum BeanSort {
-
+    // end::refguide[]
     /**
      * Stateful object, with a state that can be marshaled and unmarshaled.
-     * <p> 
-     * Includes classes annotated with {@code @DomainObject}, when *not* associated 
+     * <p>
+     * Includes classes annotated with {@code @DomainObject}, when *not* associated
      * with a persistence layer. <p>  see also {@link #ENTITY}
      */
+    // tag::refguide[]
     VIEW_MODEL,
-
+    // end::refguide[]
     /**
      * Persistable object, associated with a persistence layer/context.
      * <p>
-     * Includes classes annotated with {@code @DomainObject}, when associated 
+     * Includes classes annotated with {@code @DomainObject}, when associated
      * with a persistence layer. <p>  see also {@link #VIEW_MODEL}
-     *  
+     *
      */
+    // tag::refguide[]
     ENTITY,
-
+    // end::refguide[]
     /**
-     * Injectable object, associated with a lifecycle context 
+     * Injectable object, associated with a lifecycle context
      * (application-scoped, request-scoped, ...).
      * <p>
      * to be introspected: YES
      */
-    MANAGED_BEAN_CONTRIBUTING, 
-
+    // tag::refguide[]
+    MANAGED_BEAN_CONTRIBUTING,
+    // end::refguide[]
     /**
-     * Injectable object, associated with a lifecycle context 
+     * Injectable object, associated with a lifecycle context
      * (application-scoped, request-scoped, ...).
      * <p>
      * to be introspected: NO
      */
+    // tag::refguide[]
     MANAGED_BEAN_NOT_CONTRIBUTING,
-    
+    // end::refguide[]
     /**
-     * Object associated with an 'entity' or 'bean' to act as contributer of 
+     * Object associated with an 'entity' or 'bean' to act as contributer of
      * domain actions or properties. Might also be stateful similar to VIEW_MODEL.
      */
+    // tag::refguide[]
     MIXIN,
-
+    // end::refguide[]
     /**
      * Immutable, serializable object.
      */
+    // tag::refguide[]
     VALUE,
-
+    // end::refguide[]
     /**
      * Container of objects.
      */
+    // tag::refguide[]
     COLLECTION,
-
     UNKNOWN;
-    
+    // end::refguide[]
+
     // -- SIMPLE PREDICATES
 
     public boolean isManagedBean() {
@@ -104,20 +111,23 @@ public enum BeanSort {
     public boolean isUnknown() {
         return this == UNKNOWN;
     }
-    
+
     // -- HIGER LEVEL PREDICATES
-    
+
     public boolean isToBeIntrospected() {
-        
+
         if(isUnknown()) {
             return false;
         }
         if(this == MANAGED_BEAN_NOT_CONTRIBUTING) {
             return false;
         }
-        
+
         return true;
     }
-    
 
-}
\ No newline at end of file
+
+    // tag::refguide[]
+    // ...
+}
+// end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelService.java
index dd2ebf5..c0c3c09 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelService.java
@@ -28,7 +28,6 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.CommandDtoProcessor;
 import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
 import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
 import lombok.val;
@@ -48,16 +47,16 @@ public interface MetaModelService {
      * Provides a reverse lookup of a domain class' object type, as defined by {@link DomainObject#objectType()} (or any other mechanism that corresponds to Isis' <code>ObjectSpecIdFacet</code>).
      */
     // tag::refguide[]
-    Class<?> fromObjectType(final String objectType);
+    Class<?> fromObjectType(final String objectType);   // <.>
 
     // end::refguide[]
     /**
      * Provides a lookup of a domain class' object type, as defined by {@link DomainObject#objectType()} (or any other mechanism that corresponds to Isis' <code>ObjectSpecIdFacet</code>).
      */
     // tag::refguide[]
-    String toObjectType(final Class<?> domainType);
+    String toObjectType(final Class<?> domainType);     // <.>
 
-    void rebuild(final Class<?> domainType);
+    void rebuild(final Class<?> domainType);            // <.>
 
     // end::refguide[]
     /**
@@ -73,43 +72,41 @@ public interface MetaModelService {
      *
      */
     // tag::refguide[]
-    DomainModel getDomainModel();
+    DomainModel getDomainModel();                       // <.>
 
-    BeanSort sortOf(Class<?> domainType, Mode mode);
+    BeanSort sortOf(Class<?> domainType, Mode mode);    // <.>
 
-    BeanSort sortOf(Bookmark bookmark, Mode mode);
+    BeanSort sortOf(Bookmark bookmark, Mode mode);      // <.>
 
-    CommandDtoProcessor commandDtoProcessorFor(String memberIdentifier);
+    CommandDtoProcessor commandDtoProcessorFor(         // <.>
+                            String memberIdentifier);
 
     // end::refguide[]
     // tag::refguide-1[]
     enum Mode {
-
         // end::refguide-1[]
         /**
          * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then throw an exception.
          */
         // tag::refguide-1[]
         STRICT,
-
         // end::refguide-1[]
         /**
          * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then return {@link Sort#UNKNOWN}.
          */
         // tag::refguide-1[]
         RELAXED
-
     }
     // end::refguide-1[]
 
     // tag::refguide-2[]
     class Config {
-
         private static final int IGNORE_NOOP_FACETS = 1;
         private static final int IGNORE_INTERFACES = 2;
         private static final int IGNORE_ABSTRACT_CLASSES = 4;
         private static final int IGNORE_BUILT_IN_VALUE_TYPES = 8;
         private static final int IGNORE_MIXINS = 16;
+        // end::refguide-2[]
 
         private static final String WILDCARD = "*";
 
@@ -165,11 +162,13 @@ public interface MetaModelService {
          * this {@code Config}'s packagePrefixes.
          * @param packagePrefix - prefix to be added
          */
+        // tag::refguide-2[]
         public Config withPackagePrefix(final String packagePrefix) {
             val newPrefixes = _Sets.newHashSet(this.packagePrefixes);
             newPrefixes.add(packagePrefix);
             return new Config(mask, newPrefixes);
         }
+        // end::refguide-2[]
 
         public boolean isIgnoreNoop() {
             return hasFlag(IGNORE_NOOP_FACETS);
@@ -193,11 +192,13 @@ public interface MetaModelService {
             return (mask & x) == x;
         }
 
+        // tag::refguide-2[]
+        // ...
     }
     // end::refguide-2[]
 
     // tag::refguide[]
-    MetamodelDto exportMetaModel(final Config config);
+    MetamodelDto exportMetaModel(final Config config);  // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelServiceMenu.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelServiceMenu.java
index 0b76f27..00690db 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelServiceMenu.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metamodel/MetaModelServiceMenu.java
@@ -53,8 +53,10 @@ import org.apache.isis.schema.metamodel.v2.MetamodelDto;
         named = "Prototyping",
         menuBar = DomainServiceLayout.MenuBar.SECONDARY
 )
+// tag::refguide[]
 public class MetaModelServiceMenu {
 
+    // end::refguide[]
     public static abstract class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<MetaModelServiceMenu> { }
 
     final MimeType mimeTypeTextCsv;
@@ -69,11 +71,8 @@ public class MetaModelServiceMenu {
         }
     }
 
-    // //////////////////////////////////////
-
     public static class DownloadMetaModelEvent extends ActionDomainEvent { }
 
-
     @Action(
             domainEvent = DownloadMetaModelEvent.class,
             semantics = SemanticsOf.NON_IDEMPOTENT, //disable client-side caching
@@ -84,9 +83,12 @@ public class MetaModelServiceMenu {
             named = "Download Meta Model (CSV)"
             )
     @MemberOrder(sequence="500.500.2")
+    // tag::refguide[]
+    // ...
     public Clob downloadMetaModelCsv(
             @ParameterLayout(named = ".csv file name")
             final String csvFileName) {
+        // end::refguide[]
 
         final DomainModel domainMembers =  metaModelService.getDomainModel();
         final List<String> list = asList(domainMembers);
@@ -95,22 +97,18 @@ public class MetaModelServiceMenu {
         return new Clob(
                 withSuffix(csvFileName, "csv"),
                 mimeTypeTextCsv, buf.toString().toCharArray());
+
+        // tag::refguide[]
+        // ...
     }
 
+    // end::refguide[]
+
     public String default0DownloadMetaModelCsv() {
         return "metamodel.csv";
     }
 
-//    private String toXml(MetamodelDto model) {
-//        return jaxbService.toXml(model);
-//    }
-
-
-    // //////////////////////////////////////
-
-
     public static class DownloadMetaModelXmlEvent extends ActionDomainEvent { }
-
     @Action(
             domainEvent = DownloadMetaModelXmlEvent.class,
             semantics = SemanticsOf.NON_IDEMPOTENT, //disable client-side caching
@@ -121,6 +119,8 @@ public class MetaModelServiceMenu {
             named = "Download Meta Model (XML)"
             )
     @MemberOrder(sequence="500.500.2")
+    // tag::refguide[]
+    // ...
     public Clob downloadMetaModelXml(
             @ParameterLayout(named = ".xml file name")
             final String fileName,
@@ -131,6 +131,7 @@ public class MetaModelServiceMenu {
             @Parameter(optionality=Optionality.MANDATORY)
             final boolean ignoreInterfaces
             ) {
+        // end::refguide[]
 
         MetaModelService.Config config =
                 new MetaModelService.Config()
@@ -150,7 +151,11 @@ public class MetaModelServiceMenu {
 
         final String xml = jaxbService.toXml(metamodelDto);
         return new Clob(_Strings.asFileNameWithExtension(fileName,  ".xml"), "text/xml", xml);
+
+        // tag::refguide[]
+        // ...
     }
+    // end::refguide[]
 
     public String validateDownloadMetaModelXml(
             final String fileName, final List<String> packagePrefixes, final boolean ignoreInterfaces) {
@@ -187,9 +192,6 @@ public class MetaModelServiceMenu {
         return true;
     }
 
-
-    // //////////////////////////////////////
-
     private static StringBuilder asBuf(final List<String> list) {
         final StringBuilder buf = new StringBuilder();
         for (final String row : list) {
@@ -243,6 +245,9 @@ public class MetaModelServiceMenu {
         return fileName;
     }
 
+    // tag::refguide[]
+
+    // ...
 
     @Inject
     MetaModelService metaModelService;
@@ -250,3 +255,4 @@ public class MetaModelServiceMenu {
     JaxbService jaxbService;
 
 }
+// end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/metrics/MetricsService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metrics/MetricsService.java
index 633610f..61419cc 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/metrics/MetricsService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/metrics/MetricsService.java
@@ -29,7 +29,7 @@ public interface MetricsService {
      * The number of objects that have, so far in this request, been loaded from the database.
      *
      * <p>
-     *     Corresponds to the number of times that {@link javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)} is fired.
+     *     Corresponds to the number of times that <code>javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)</code> (or equivalent) is fired.
      * </p>
      *
      * <p>
@@ -37,7 +37,7 @@ public interface MetricsService {
      * </p>
      */
     // tag::refguide[]
-    int numberObjectsLoaded();
+    int numberObjectsLoaded();      // <.>
 
     // end::refguide[]
     /**
@@ -45,7 +45,7 @@ public interface MetricsService {
      * good measure of the footprint of the interaction.
      *
      * <p>
-     *     Corresponds to the number of times that {@link javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)} callback is fired.
+     *     Corresponds to the number of times that <code>javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)</code> (or equivalent) callback is fired.
      * </p>
      *
      * <p>
@@ -53,7 +53,7 @@ public interface MetricsService {
      * </p>
      */
     // tag::refguide[]
-    int numberObjectsDirtied();
+    int numberObjectsDirtied();     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublishedObjects.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublishedObjects.java
index ebc2fcd..a8eb892 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublishedObjects.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublishedObjects.java
@@ -26,18 +26,20 @@ import org.apache.isis.applib.services.HasUsername;
 import org.apache.isis.schema.chg.v2.ChangesDto;
 
 // tag::refguide[]
-public interface PublishedObjects extends HasUniqueId, HasUsername {
+public interface PublishedObjects
+        extends HasUniqueId,            // <.>
+                HasUsername {           // <.>
 
-    Timestamp getCompletedAt();
+    Timestamp getCompletedAt();         // <.>
 
-    ChangesDto getDto();
+    int getNumberLoaded();              // <.>
+    int getNumberCreated();             // <.>
+    int getNumberUpdated();             // <.>
+    int getNumberDeleted();             // <.>
 
-    int getNumberLoaded();
-    int getNumberCreated();
-    int getNumberUpdated();
-    int getNumberDeleted();
+    int getNumberPropertiesModified();  // <.>
 
-    int getNumberPropertiesModified();
+    ChangesDto getDto();                // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublisherService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublisherService.java
index dea94e0..78521d8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublisherService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/publish/PublisherService.java
@@ -36,8 +36,8 @@ public interface PublisherService {
      * some flexibility here, though.
      */
     // tag::refguide[]
-    void publish(final Interaction.Execution<?, ?> execution);
+    void publish(final Interaction.Execution<?, ?> execution);  // <.>
 
-    void publish(final PublishedObjects publishedObjects);
+    void publish(final PublishedObjects publishedObjects);      // <.>
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/queryresultscache/QueryResultsCache.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/queryresultscache/QueryResultsCache.java
index ed26436..6e22285 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/queryresultscache/QueryResultsCache.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/queryresultscache/QueryResultsCache.java
@@ -21,12 +21,7 @@ package org.apache.isis.applib.services.queryresultscache;
 import java.util.Arrays;
 import java.util.concurrent.Callable;
 
-import org.apache.isis.core.commons.handler.MethodReferences.Call0;
-import org.apache.isis.core.commons.handler.MethodReferences.Call1;
-import org.apache.isis.core.commons.handler.MethodReferences.Call2;
-import org.apache.isis.core.commons.handler.MethodReferences.Call3;
-import org.apache.isis.core.commons.handler.MethodReferences.Call4;
-import org.apache.isis.core.commons.handler.MethodReferences.Call5;
+import org.apache.isis.applib.services.MethodReferences;
 
 import lombok.Data;
 import lombok.Getter;
@@ -45,37 +40,56 @@ import lombok.Getter;
 // tag::refguide[]
 public interface QueryResultsCache {
 
-    <T> T execute(Callable<T> callable, Class<?> callingClass, String methodName, Object... keys);
+    <T> T execute(                                      // <.>
+            Callable<T> callable,
+            Class<?> callingClass, String methodName,
+            Object... keys);
 
-    <R> R execute(Call0<? extends R> action, Class<?> callingClass, String methodName);
-    
-    <R, A0> R execute(Call1<? extends R, A0> action, Class<?> callingClass, String methodName,
+    // end::refguide[]
+
+    /**
+     * Not API, for framework use only.
+     */
+    void onTransactionEnded();                          // <.>
+
+    <R> R execute(                                      // <.>
+            MethodReferences.Call0<? extends R> action,
+            Class<?> callingClass, String methodName);
+
+    <R, A0> R execute(                                  // <.>
+            MethodReferences.Call1<? extends R, A0> action,
+            Class<?> callingClass, String methodName,
             A0 arg0);
-    
-    <R, A0, A1> R execute(Call2<? extends R, A0, A1> action, Class<?> callingClass, String methodName, 
+
+    <R, A0, A1> R execute(                              // <.>
+            MethodReferences.Call2<? extends R, A0, A1> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1);
-    
-    <R, A0, A1, A2> R execute(Call3<? extends R, A0, A1, A2> action, Class<?> callingClass, String methodName,
+
+    <R, A0, A1, A2> R execute(                          // <.>
+            MethodReferences.Call3<? extends R, A0, A1, A2> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1, A2 arg2);
-    
-    <R, A0, A1, A2, A3> R execute(Call4<? extends R, A0, A1, A2, A3> action, Class<?> callingClass, String methodName,
+
+    <R, A0, A1, A2, A3> R execute(                      // <.>
+            MethodReferences.Call4<? extends R, A0, A1, A2, A3> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1, A2 arg2, A3 arg3);
-    
-    <R, A0, A1, A2, A3, A4> R execute(Call5<? extends R, A0, A1, A2, A3, A4> action, Class<?> callingClass, String methodName,
+
+    <R, A0, A1, A2, A3, A4> R execute(                  // <.>
+            MethodReferences.Call5<? extends R, A0, A1, A2, A3, A4> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1, A2 arg2, A3 arg3, A4 arg4);
-    
-    void onTransactionEnded();
 
-    // end::refguide[]
     // tag::refguide-1[]
     class Key {
 
         @Getter
-        private final Class<?> callingClass;
+        private final Class<?> callingClass;            // <.>
         @Getter
-        private final String methodName;
+        private final String methodName;                // <.>
         @Getter
-        private final Object[] keys;
+        private final Object[] keys;                    // <.>
 
         // end::refguide-1[]
         public Key(Class<?> callingClass, String methodName, Object... keys) {
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/EntityState.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/EntityState.java
index 26ed267..d3379c2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/EntityState.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/EntityState.java
@@ -27,25 +27,24 @@ package org.apache.isis.applib.services.repository;
  */
 // tag::refguide[]
 public enum EntityState {
-
-    not_Persistable,
-    persistable_Attached,
-    persistable_Detached,
-    persistable_Destroyed,
+    NOT_PERSISTABLE,
+    PERSISTABLE_ATTACHED,
+    PERSISTABLE_DETACHED,
+    PERSISTABLE_DESTROYED,
     // end::refguide[]
     ;
 
     public boolean isPersistable() {
-        return this != not_Persistable;
+        return this != NOT_PERSISTABLE;
     }
     public boolean isAttached() {
-        return this == persistable_Attached;
+        return this == PERSISTABLE_ATTACHED;
     }
     public boolean isDetached() {
-        return this == persistable_Detached;
+        return this == PERSISTABLE_DETACHED;
     }
     public boolean isDestroyed() {
-        return this == persistable_Destroyed;
+        return this == PERSISTABLE_DESTROYED;
     }
 
     // tag::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java
index 237b417..a90dd99 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/repository/RepositoryService.java
@@ -34,13 +34,13 @@ public interface RepositoryService {
 
     // end::refguide[]
     /**
-     * Returns the EntityState of given {@code object}. Returns {@link EntityState#not_Persistable} for {@code object==null}.
+     * Returns the EntityState of given {@code object}. Returns {@link EntityState#NOT_PERSISTABLE} for {@code object==null}.
      * @param object
      * @return (non-null)
      * @since 2.0
      */
     // tag::refguide[]
-    EntityState getEntityState(@Nullable Object object);
+    EntityState getEntityState(@Nullable Object object);    // <.>
 
     // end::refguide[]
     /**
@@ -49,7 +49,7 @@ public interface RepositoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T detachedEntity(Class<T> ofType);
+    <T> T detachedEntity(Class<T> ofType);                  // <.>
 
     // end::refguide[]
     /**
@@ -58,7 +58,7 @@ public interface RepositoryService {
      * @see #isPersistent(Object)
      */
     // tag::refguide[]
-    <T> T persist(T domainObject);
+    <T> T persist(T domainObject);                          // <.>
 
     // end::refguide[]
     /**
@@ -67,7 +67,7 @@ public interface RepositoryService {
      * @see #persist(Object)
      */
     // tag::refguide[]
-    <T> T persistAndFlush(T domainObject);
+    <T> T persistAndFlush(T domainObject);                  // <.>
 
     // end::refguide[]
     /**
@@ -76,7 +76,7 @@ public interface RepositoryService {
      * @param domainObject
      */
     // tag::refguide[]
-    void remove(Object domainObject);
+    void remove(Object domainObject);                       // <.>
 
     // end::refguide[]
     /**
@@ -85,7 +85,7 @@ public interface RepositoryService {
      * @param domainObject
      */
     // tag::refguide[]
-    void removeAndFlush(Object domainObject);
+    void removeAndFlush(Object domainObject);               // <.>
 
     // end::refguide[]
     /**
@@ -93,7 +93,7 @@ public interface RepositoryService {
      *      * within the specified range..
      */
     // tag::refguide[]
-    <T> List<T> allInstances(Class<T> ofType);
+    <T> List<T> allInstances(Class<T> ofType);              // <.>
 
     // end::refguide[]
     /**
@@ -121,7 +121,9 @@ public interface RepositoryService {
      * @return
      */
     // tag::refguide[]
-    <T> List<T> allInstances(Class<T> ofType, long start, long count);
+    <T> List<T> allInstances(                               // <.>
+            Class<T> ofType,
+            long start, long count);
 
     // end::refguide[]
     /**
@@ -129,7 +131,9 @@ public interface RepositoryService {
      * within the specified range.
      */
     // tag::refguide[]
-    <T> List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate);
+    <T> List<T> allMatches(                                 // <.>
+            Class<T> ofType,
+            Predicate<? super T> predicate);
 
     // end::refguide[]
     /**
@@ -159,7 +163,10 @@ public interface RepositoryService {
      * @return
      */
     // tag::refguide[]
-    <T> List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate, long start, long count);
+    <T> List<T> allMatches(                                 // <.>
+            Class<T> ofType,
+            Predicate<? super T> predicate,
+            long start, long count);
 
     // end::refguide[]
     /**
@@ -177,7 +184,7 @@ public interface RepositoryService {
      * </p>
      */
     // tag::refguide[]
-    <T> List<T> allMatches(Query<T> query);
+    <T> List<T> allMatches(Query<T> query);                 // <.>
 
     // end::refguide[]
     /**
@@ -195,7 +202,9 @@ public interface RepositoryService {
      * </p>
      */
     // tag::refguide[]
-    <T> Optional<T> uniqueMatch(Class<T> ofType, Predicate<T> predicate);
+    <T> Optional<T> uniqueMatch(                            // <.>
+            Class<T> ofType,
+            Predicate<T> predicate);
 
     // end::refguide[]
     /**
@@ -213,7 +222,7 @@ public interface RepositoryService {
      * @see #firstMatch(Query)
      */
     // tag::refguide[]
-    <T> Optional<T> uniqueMatch(Query<T> query);
+    <T> Optional<T> uniqueMatch(Query<T> query);            // <.>
 
     // end::refguide[]
     /**
@@ -231,7 +240,9 @@ public interface RepositoryService {
      * </p>
      */
     // tag::refguide[]
-    <T> Optional<T> firstMatch(Class<T> ofType, Predicate<T> predicate);
+    <T> Optional<T> firstMatch(                             // <.>
+            Class<T> ofType,
+            Predicate<T> predicate);
 
     // end::refguide[]
     /**
@@ -245,7 +256,7 @@ public interface RepositoryService {
      * @see #firstMatch(Query)
      */
     // tag::refguide[]
-    <T> Optional<T> firstMatch(Query<T> query);
+    <T> Optional<T> firstMatch(Query<T> query);             // <.>
     // end::refguide[]
 
     // -- DEPRECATIONS
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/routing/RoutingService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/routing/RoutingService.java
index a4574b3..9226ba8c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/routing/RoutingService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/routing/RoutingService.java
@@ -26,8 +26,9 @@ import org.apache.isis.applib.annotation.Programmatic;
 // tag::refguide[]
 public interface RoutingService {
 
-    boolean canRoute(Object original);
-    Object route(Object original);
+    boolean canRoute(Object original);  // <.>
+
+    Object route(Object original);      // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java
index f45cae7..758a0bb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java
@@ -46,64 +46,28 @@ import lombok.extern.log4j.Log4j2;
  * available for use; no further configuration is required.
  */
 // tag::refguide[]
-@Service
-@Order(OrderPrecedence.EARLY)
-@Primary
-@Named("isisApplib.Scratchpad")
-@Qualifier("Default")
-@IsisSessionScope
-@Log4j2
-public class Scratchpad {
-
-    // end::refguide[]
-    public Scratchpad(){
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-    // end::refguide[]
-    /**
-     * Provides a mechanism for each object being acted upon to pass
-     * data to the next object.
-     */
-    // tag::refguide[]
-    private final Map<Object, Object> userData = _Maps.newHashMap();
+public interface Scratchpad {
 
     // end::refguide[]
     /**
      * Obtain user-data, as set by a previous object being acted upon.
      */
     // tag::refguide[]
-    public Object get(Object key) {
-        return userData.get(key);
-    }
+    public Object get(Object key);
 
     // end::refguide[]
     /**
      * Set user-data, for the use of a subsequent object being acted upon.
      */
     // tag::refguide[]
-    public void put(Object key, Object value) {
-        userData.put(key, value);
-    }
+    public void put(Object key, Object value);
 
     // end::refguide[]
     /**
      * Clear any user data.
      */
     // tag::refguide[]
-    public void clear() {
-        userData.clear();
-    }
+    public void clear();
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/session/SessionLoggingService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/session/SessionLoggingService.java
index 31acc4e..3abf398 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/session/SessionLoggingService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/session/SessionLoggingService.java
@@ -40,7 +40,13 @@ public interface SessionLoggingService {
         RESTART
     }
 
-    void log(Type type, String username, Date date, CausedBy causedBy, String sessionId);
+    void log(
+            Type type,
+            String username,
+            Date date,
+            CausedBy causedBy,
+            String sessionId        // <.>
+    );
     // end::refguide[]
 
     // tag::refguide-1[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/sudo/SudoService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/sudo/SudoService.java
index afbbad5..f5e94e2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/sudo/SudoService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/sudo/SudoService.java
@@ -38,7 +38,8 @@ public interface SudoService {
      * If included in the list of roles, then will disable security checks (can view and use all object members).
      */
     // tag::refguide[]
-    String ACCESS_ALL_ROLE = SudoService.class.getName() + "#accessAll";
+    String ACCESS_ALL_ROLE =                                // <.>
+            SudoService.class.getName() + "#accessAll";
 
     // end::refguide[]
     /**
@@ -49,7 +50,9 @@ public interface SudoService {
      * </p>
      */
     // tag::refguide[]
-    void sudo(String username, final Runnable runnable);
+    void sudo(                                              // <.>
+            String username,
+            final Runnable runnable);
 
     // end::refguide[]
     /**
@@ -60,21 +63,27 @@ public interface SudoService {
      * </p>
      */
     // tag::refguide[]
-    <T> T sudo(String username, final Callable<T> callable);
+    <T> T sudo(                                             // <.>
+            String username,
+            final Callable<T> callable);
 
     // end::refguide[]
     /**
      * Executes the supplied block, with the {@link UserService} returning the specified user with the specified roles.
      */
     // tag::refguide[]
-    void sudo(String username, List<String> roles, final Runnable runnable);
+    void sudo(                                              // <.>
+            String username, List<String> roles,
+            final Runnable runnable);
 
     // end::refguide[]
     /**
      * Executes the supplied block, with the {@link UserService} returning the specified user with the specified roles.
      */
     // tag::refguide[]
-    <T> T sudo(String username, List<String> roles, final Callable<T> callable);
+    <T> T sudo(                                             // <.>
+            String username, List<String> roles,
+            final Callable<T> callable);
 
     // end::refguide[]
 
@@ -95,9 +104,9 @@ public interface SudoService {
          * </p>
          */
         // tag::refguide-1[]
-        void runAs(String username, List<String> roles);
+        void runAs(String username, List<String> roles);    // <.>
 
-        void releaseRunAs();
+        void releaseRunAs();                                // <.>
     }
     // end::refguide-1[]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/swagger/SwaggerService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/swagger/SwaggerService.java
index 15ba710..6dca161 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/swagger/SwaggerService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/swagger/SwaggerService.java
@@ -28,10 +28,13 @@ import org.apache.isis.applib.annotation.ViewModel;
 // tag::refguide[]
 public interface SwaggerService {
 
+    String generateSwaggerSpec(             // <.>
+            final Visibility visibility,
+            final Format format);
+
     // end::refguide[]
     // tag::refguide[]
     enum Visibility {
-
         // end::refguide[]
         /**
          * Specification for use by third-party clients, ie public use.
@@ -42,8 +45,7 @@ public interface SwaggerService {
          * </p>
          */
         // tag::refguide[]
-        PUBLIC,
-
+        PUBLIC,                             // <.>
         // end::refguide[]
         /**
          * Specification for use only by internally-managed clients, ie private internal use.
@@ -52,14 +54,15 @@ public interface SwaggerService {
          * Includes specifications of domain entities as well as view models.
          * </p>
          */
-        PRIVATE,
-
+        // tag::refguide[]
+        PRIVATE,                            // <.>
         // end::refguide[]
         /**
          * As {@link #PRIVATE}, also including any prototype actions (where {@link Action#restrictTo()} set to
          * {@link RestrictTo#PROTOTYPING}).
          */
-        PRIVATE_WITH_PROTOTYPING
+        // tag::refguide[]
+        PRIVATE_WITH_PROTOTYPING            // <.>
         // end::refguide[]
         ;
 
@@ -67,12 +70,11 @@ public interface SwaggerService {
             return this == PUBLIC;
         }
         // tag::refguide[]
-
     }
 
     enum Format {
-        JSON,
-        YAML
+        JSON,                               // <.>
+        YAML                                // <.>
         // end::refguide[]
         ;
         /**
@@ -88,7 +90,5 @@ public interface SwaggerService {
         // tag::refguide[]
     }
 
-    String generateSwaggerSpec(final Visibility visibility, final Format format);
-
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/tablecol/TableColumnOrderService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/tablecol/TableColumnOrderService.java
index 3c73edc..a9cf899 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/tablecol/TableColumnOrderService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/tablecol/TableColumnOrderService.java
@@ -32,13 +32,13 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 // tag::refguide[]
 public interface TableColumnOrderService {
 
-    List<String> orderParented(
+    List<String> orderParented(                 // <.>
             final Object parent,
             final String collectionId,
             final Class<?> collectionType,
             final List<String> propertyIds);
 
-    List<String> orderStandalone(
+    List<String> orderStandalone(               // <.>
             final Class<?> collectionType,
             final List<String> propertyIds);
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/title/TitleService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/title/TitleService.java
index 38e4e6f..46ba64a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/title/TitleService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/title/TitleService.java
@@ -28,7 +28,7 @@ public interface TitleService {
      * Isis viewers.
      */
     // tag::refguide[]
-    String titleOf(Object domainObject);
+    String titleOf(Object domainObject);        // <.>
 
     // end::refguide[]
     /**
@@ -36,7 +36,7 @@ public interface TitleService {
      * Isis viewers.
      */
     // tag::refguide[]
-    String iconNameOf(Object domainObject);
+    String iconNameOf(Object domainObject);     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/urlencoding/UrlEncodingService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/urlencoding/UrlEncodingService.java
index 219d9f9..33a4870 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/urlencoding/UrlEncodingService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/urlencoding/UrlEncodingService.java
@@ -28,10 +28,10 @@ import org.apache.isis.core.commons.internal.memento._Mementos.EncoderDecoder;
 public interface UrlEncodingService extends EncoderDecoder {
 
     @Override
-    String encode(final byte[] bytes);
+    String encode(final byte[] bytes);      // <.>
 
     @Override
-    byte[] decode(String str);
+    byte[] decode(String str);              // <.>
 
     default String encodeString(final String str) {
         return encode(_Strings.toBytes(str, StandardCharsets.UTF_8));
diff --git a/api/applib/src/main/java/org/apache/isis/applib/security/RoleMemento.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/RoleMemento.java
similarity index 94%
copy from api/applib/src/main/java/org/apache/isis/applib/security/RoleMemento.java
copy to api/applib/src/main/adoc/modules/applib-svc/examples/services/user/RoleMemento.java
index a220a2b..1453a09 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/security/RoleMemento.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/RoleMemento.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.security;
+package org.apache.isis.applib.services.user;
 
 import org.apache.isis.applib.annotation.MemberOrder;
 
@@ -48,18 +48,22 @@ public final class RoleMemento {
         this.description = description;
     }
 
-    // tag::refguide[]
     public String title() {
         return name;
     }
 
     @MemberOrder(sequence = "1.1")
+    // tag::refguide[]
     @Getter
     private final String name;
 
+    // end::refguide[]
     @MemberOrder(sequence = "1.2")
+    // tag::refguide[]
     @Getter
     private final String description;
 
+    // ...
+
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserMemento.java
similarity index 95%
copy from api/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java
copy to api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserMemento.java
index bf3bb7a..d90ea91 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserMemento.java
@@ -17,10 +17,11 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.security;
+package org.apache.isis.applib.services.user;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.isis.applib.annotation.MemberOrder;
@@ -61,17 +62,15 @@ public final class UserMemento {
         this.roles.addAll(roles);
     }
 
-    // tag::refguide[]
     public String title() {
         return name;
     }
 
-    // end::refguide[]
     /**
      * The user's login name.
      */
-    // tag::refguide[]
     @MemberOrder(sequence = "1.1")
+    // tag::refguide[]
     @Getter
     private final String name;
 
@@ -79,11 +78,12 @@ public final class UserMemento {
     /**
      * The roles associated with this user.
      */
-    // tag::refguide[]
-    @Getter
     @MemberOrder(sequence = "1.1")
     private final List<RoleMemento> roles = new ArrayList<RoleMemento>();
-
+    // tag::refguide[]
+    public List<RoleMemento> getRoles() {
+        return Collections.unmodifiableList(roles);
+    }
     // end::refguide[]
     /**
      * Determine if the specified name is this user.
@@ -140,5 +140,7 @@ public final class UserMemento {
 
     // tag::refguide[]
 
+    // ...
+
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserService.java
index 5a6e855..e12ff02 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/user/UserService.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.applib.services.user;
 
-import org.apache.isis.applib.security.UserMemento;
-
 // tag::refguide[]
 public interface UserService {
 
@@ -29,7 +27,7 @@ public interface UserService {
      * Get the details about the current user.
      */
     // tag::refguide[]
-    UserMemento getUser();
+    UserMemento getUser();      // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/userprof/UserProfileService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/userprof/UserProfileService.java
index 57a7415..f9e5651 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/userprof/UserProfileService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/userprof/UserProfileService.java
@@ -41,7 +41,7 @@ public interface UserProfileService {
      * </p>
      */
     // tag::refguide[]
-    String userProfileName();
+    String userProfileName();   // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/UserRegistrationService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/UserRegistrationService.java
index 2de2650..a8b50f4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/UserRegistrationService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/UserRegistrationService.java
@@ -24,13 +24,6 @@ import org.apache.isis.applib.annotation.Programmatic;
  * Required API to enable users to register an account on the system (aka &quot;sign up&quot;).
  *
  * <p>
- *     The framework does <i>not</i> provide an implementation of this API, because different Isis applications will
- *     be configured to use different security mechanisms.  However, do note that the (non-ASF)
- *     <a href="https://github.com/isisaddons/isis-module-security">Isis addon security module</a> does provide
- *     an implementation of this service.
- * </p>
- *
- * <p>
  *     User registration also requires that the {@link EmailNotificationService} and
  *     {@link org.apache.isis.applib.services.email.EmailService} to be configured.  The framework provides default
  *     implementations of both of these services.  The notification service requires no further configuration.
@@ -41,13 +34,13 @@ import org.apache.isis.applib.annotation.Programmatic;
 // tag::refguide[]
 public interface UserRegistrationService {
 
-    boolean usernameExists(String username);
+    boolean usernameExists(String username);                                // <.>
 
-    void registerUser(UserDetails userDetails);
+    boolean emailExists(String emailAddress);                               // <.>
 
-    boolean emailExists(String emailAddress);
+    void registerUser(UserDetails userDetails);                             // <.>
 
-    boolean updatePasswordByEmail(String emailAddress, String password);
+    boolean updatePasswordByEmail(String emailAddress, String password);    // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
index e903e32..29425da 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/wrapper/WrapperFactory.java
@@ -27,6 +27,8 @@ import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 
+import static org.apache.isis.core.commons.collections.ImmutableEnumSet.*;
+
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
 import lombok.experimental.UtilityClass;
@@ -79,76 +81,72 @@ public interface WrapperFactory {
      *
      * @see WrapperFactory#wrap(Object, ImmutableEnumSet)
      */
-    // tag::refguide-1[]
     @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
+    // tag::refguide-1[]
     enum ExecutionMode {
-
         // end::refguide-1[]
         /**
          * Skip all business rules.
          */
         // tag::refguide-1[]
         SKIP_RULE_VALIDATION,
-
         // end::refguide-1[]
         /**
          * Skip execution.
          */
         // tag::refguide-1[]
         SKIP_EXECUTION,
-
         // end::refguide-1[]
         /**
          * Don't fail fast, swallow any exception during validation or execution.
          */
         // tag::refguide-1[]
         SWALLOW_EXCEPTIONS,
-
     }
     // end::refguide-1[]
 
     // tag::refguide-2[]
     @UtilityClass
     class ExecutionModes {
-
         // end::refguide-2[]
         /**
          * Validate all business rules and then execute. May throw exceptions in order to fail fast.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> EXECUTE = ImmutableEnumSet.noneOf(ExecutionMode.class);
-
+        public static final ImmutableEnumSet<ExecutionMode> EXECUTE =
+                                noneOf(ExecutionMode.class);
         // end::refguide-2[]
         /**
          * Skip all business rules and then execute, does throw an exception if execution fails.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES = ImmutableEnumSet.of(ExecutionMode.SKIP_RULE_VALIDATION);
-
+        public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES =
+                                of(ExecutionMode.SKIP_RULE_VALIDATION);
         // end::refguide-2[]
         /**
          * Validate all business rules but do not execute, throw an exception if validation
          * fails.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE = ImmutableEnumSet.of(ExecutionMode.SKIP_EXECUTION);
-
+        public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE =
+                                of(ExecutionMode.SKIP_EXECUTION);
         // end::refguide-2[]
         /**
          * Validate all business rules and then execute, but don't throw an exception if validation
          * or execution fails.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> TRY = ImmutableEnumSet.of(ExecutionMode.SWALLOW_EXCEPTIONS);
-
+        public static final ImmutableEnumSet<ExecutionMode> TRY =
+                                of(ExecutionMode.SWALLOW_EXCEPTIONS);
         // end::refguide-2[]
         /**
          * Skips all steps.
          * @since 2.0
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> NOOP = ImmutableEnumSet.of(ExecutionMode.SKIP_RULE_VALIDATION, ExecutionMode.SKIP_EXECUTION);
-
+        public static final ImmutableEnumSet<ExecutionMode> NOOP =
+                                of(ExecutionMode.SKIP_RULE_VALIDATION,
+                                   ExecutionMode.SKIP_EXECUTION);
     }
     // end::refguide-2[]
 
@@ -160,14 +158,14 @@ public interface WrapperFactory {
      * then should just return the object back unchanged.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject);
+    <T> T wrap(T domainObject);                                     // <.>
 
     // end::refguide[]
     /**
      * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
      */
     // tag::refguide[]
-    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);
+    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
 
     // end::refguide[]
     /**
@@ -175,7 +173,7 @@ public interface WrapperFactory {
      * to make this feature more discoverable.
      */
     // tag::refguide[]
-    <T> T wrapTry(T domainObject);
+    <T> T wrapTry(T domainObject);                                  // <.>
 
     // end::refguide[]
     /**
@@ -183,7 +181,7 @@ public interface WrapperFactory {
      * to make this feature more discoverable.
      */
     // tag::refguide[]
-    <T> T wrapNoExecute(T domainObject);
+    <T> T wrapNoExecute(T domainObject);                            // <.>
 
     // end::refguide[]
     /**
@@ -191,7 +189,7 @@ public interface WrapperFactory {
      * to make this feature more discoverable.
      */
     // tag::refguide[]
-    <T> T wrapSkipRules(T domainObject);
+    <T> T wrapSkipRules(T domainObject);                            // <.>
 
     // end::refguide[]
     /**
@@ -203,7 +201,8 @@ public interface WrapperFactory {
      * etc.), but doesn't modify the model.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject, ImmutableEnumSet<ExecutionMode> mode);
+    <T> T wrap(T domainObject,                                      // <.>
+               ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
@@ -214,7 +213,7 @@ public interface WrapperFactory {
      * should just return the object back unchanged.
      */
     // tag::refguide[]
-    <T> T unwrap(T possibleWrappedDomainObject);
+    <T> T unwrap(T possibleWrappedDomainObject);                    // <.>
 
     // end::refguide[]
     /**
@@ -226,7 +225,7 @@ public interface WrapperFactory {
      * @return
      */
     // tag::refguide[]
-    <T> boolean isWrapper(T possibleWrappedDomainObject);
+    <T> boolean isWrapper(T possibleWrappedDomainObject);           // <.>
 
     // end::refguide[]
 
@@ -245,7 +244,8 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> AsyncWrap<T> async(T domainObject, ImmutableEnumSet<ExecutionMode> mode);
+    <T> AsyncWrap<T> async(T domainObject,                          // <.>
+                           ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
@@ -257,7 +257,7 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    default <T> AsyncWrap<T> async(T domainObject) {
+    default <T> AsyncWrap<T> async(T domainObject) {                // <.>
         // end::refguide[]
 
         return async(domainObject, ExecutionModes.EXECUTE);
@@ -279,7 +279,9 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> AsyncWrap<T> asyncMixin(Class<T> mixinClass, Object mixedIn, ImmutableEnumSet<ExecutionMode> mode);
+    <T> AsyncWrap<T> asyncMixin(                                    // <.>
+                        Class<T> mixinClass, Object mixedIn,
+                        ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
@@ -292,7 +294,8 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    default <T> AsyncWrap<T> asyncMixin(Class<T> mixinClass, Object mixedIn) {
+    default <T> AsyncWrap<T> asyncMixin(                            // <.>
+                        Class<T> mixinClass, Object mixedIn) {
         // end::refguide[]
 
         return asyncMixin(mixinClass, mixedIn, ExecutionModes.EXECUTE);
@@ -312,7 +315,7 @@ public interface WrapperFactory {
      * {@link #addInteractionListener(InteractionListener)}.
      */
     // tag::refguide[]
-    List<InteractionListener> getListeners();
+    List<InteractionListener> getListeners();                       // <.>
 
     // end::refguide[]
     /**
@@ -329,7 +332,7 @@ public interface WrapperFactory {
      * @return
      */
     // tag::refguide[]
-    boolean addInteractionListener(InteractionListener listener);
+    boolean addInteractionListener(InteractionListener listener);   // <.>
 
     // end::refguide[]
     /**
@@ -346,9 +349,11 @@ public interface WrapperFactory {
      * @return
      */
     // tag::refguide[]
-    boolean removeInteractionListener(InteractionListener listener);
+    boolean removeInteractionListener(                              // <.>
+                    InteractionListener listener);
 
-    void notifyListeners(InteractionEvent ev);
+    void notifyListeners(InteractionEvent ev);                      // <.>
 
 }
 // end::refguide[]
+w
\ No newline at end of file
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionId.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionId.java
index 8536f13..08f15fd 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionId.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionId.java
@@ -24,12 +24,10 @@ import org.apache.isis.applib.services.HasUniqueId;
 
 import lombok.Data;
 
-// tag::refguide[]
 @Data(staticConstructor = "of")
+// tag::refguide[]
 public final class TransactionId implements HasUniqueId {
-
     private final UUID uniqueId;
-
     // end::refguide[]
     /**
      * The {@link HasUniqueId#getUniqueId()} is actually an identifier for the request/
@@ -38,7 +36,6 @@ public final class TransactionId implements HasUniqueId {
      */
     // tag::refguide[]
     private final int sequence;
-
     // end::refguide[]
     private static final TransactionId EMPTY = TransactionId.of(UUID.fromString("0000-00-00-00-000000"), 0);
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java
index 27264a9..578d883 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionService.java
@@ -35,62 +35,71 @@ public interface TransactionService {
      * @return nullable
      */
     // tag::refguide[]
-    TransactionId currentTransactionId();
-
-    // end::refguide[]
-    /**
-     * Flush all changes to the object store.
-     *
-     * <p>
-     * Occasionally useful to ensure that newly persisted domain objects
-     * are flushed to the database prior to a subsequent repository query.
-     * </p>
-     */
-    // tag::refguide[]
-    void flushTransaction();
+    TransactionId currentTransactionId();                   // <.>
 
     // end::refguide[]
     /**
      * @return - the state of the current transaction.  If there is no current transaction, then returns {@link TransactionState#NONE}.
      */
     // tag::refguide[]
-    TransactionState currentTransactionState();
+    TransactionState currentTransactionState();             // <.>
 
     // end::refguide[]
     /**
-     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-     * boundary creates a new one.
+     * Flush all changes to the object store.
      *
-     * @param task
+     * <p>
+     * Occasionally useful to ensure that newly persisted domain objects
+     * are flushed to the database prior to a subsequent repository query.
+     * </p>
      */
     // tag::refguide[]
-    void executeWithinTransaction(Runnable task);
+    void flushTransaction();                                // <.>
 
     // end::refguide[]
+
     /**
-     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-     * boundary creates a new one.
+     * Commits the current transaction (if there is one), and begins a new one.
      *
-     * @param task
+     * If there is no current transaction, then is a no-op.
      */
     // tag::refguide[]
-    <T> T executeWithinTransaction(Supplier<T> task);
+    void nextTransaction();                                 // <.>
 
-    // end::refguide[]
-    /**
-     * Runs given {@code task} within its own (new) transactional boundary.
-     * @param task
-     */
-    // tag::refguide[]
-    void executeWithinNewTransaction(Runnable task);
+//    // end::refguide[]
+//
+//   not sure there's any need for these additional methods?
+//   in any case, the executeWithinNewTransaction at time of writing is incorrect (doesn't create a new xactn).
+//
+//    /**
+//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+//     * boundary creates a new one.
+//     *
+//     * @param task
+//     */
+//    void executeWithinTransaction(Runnable task);           // <.>
+//
+//    /**
+//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+//     * boundary creates a new one.
+//     *
+//     * @param task
+//     */
+//    <T> T executeWithinTransaction(Supplier<T> task);       // <.>
+//
+//    /**
+//     * Runs given {@code task} within its own (new) transactional boundary.
+//     * @param task
+//     */
+//    void executeWithinNewTransaction(Runnable task);        // <.>
+//
+//    /**
+//     * Runs given {@code task} within its own (new) transactional boundary.
+//     * @param task
+//     */
+//    <T> T executeWithinNewTransaction(Supplier<T> task);    // <.>
 
-    // end::refguide[]
-    /**
-     * Runs given {@code task} within its own (new) transactional boundary.
-     * @param task
-     */
     // tag::refguide[]
-    <T> T executeWithinNewTransaction(Supplier<T> task);
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionState.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionState.java
index d1be4e4..4585d03 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionState.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xactn/TransactionState.java
@@ -20,14 +20,12 @@ package org.apache.isis.applib.services.xactn;
 
 // tag::refguide[]
 public enum TransactionState {
-
     // end::refguide[]
     /**
      * No transaction exists.
      */
     // tag::refguide[]
     NONE,
-
     // end::refguide[]
     /**
      * Started, still in progress.
@@ -37,7 +35,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     IN_PROGRESS,
-
     // end::refguide[]
     /**
      * Started, but has hit an exception.
@@ -51,7 +48,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     MUST_ABORT,
-
     // end::refguide[]
     /**
      * Completed, having successfully committed.
@@ -61,7 +57,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     COMMITTED,
-
     // end::refguide[]
     /**
      * Completed, having aborted.
@@ -71,7 +66,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     ABORTED
-
     // end::refguide[]
     ;
 
@@ -111,6 +105,5 @@ public enum TransactionState {
     }
 
     // tag::refguide[]
-
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
index 88e6bd9..07c399d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/xmlsnapshot/XmlSnapshotService.java
@@ -78,9 +78,11 @@ public interface XmlSnapshotService {
     // end::refguide-3[]
 
     // tag::refguide[]
-    XmlSnapshotService.Snapshot snapshotFor(final Object domainObject);
+    XmlSnapshotService.Snapshot snapshotFor(                    // <.>
+                                    final Object domainObject);
 
-    XmlSnapshotService.Builder builderFor(final Object domainObject);
+    XmlSnapshotService.Builder builderFor(                      // <.>
+                                    final Object domainObject);
 
     // end::refguide[]
     /**
@@ -88,28 +90,31 @@ public interface XmlSnapshotService {
      * {@link Snapshot#getXsdDocumentAsString()}) back into a {@link Document W3C Document}.
      */
     // tag::refguide[]
-    Document asDocument(String xmlStr);
+    Document asDocument(String xmlStr);                         // <.>
 
     // end::refguide[]
     /**
      * Convenience method to extract value of an XML element, based on its type.
      */
     // tag::refguide[]
-    <T> T getChildElementValue(final Element el, final String tagname, final Class<T> expectedCls);
+    <T> T getChildElementValue(                                 // <.>
+            final Element el, final String tagname,
+            final Class<T> expectedCls);
 
     // end::refguide[]
     /**
      * Convenience method to walk XML document.
      */
     // tag::refguide[]
-    Element getChildElement(final Element el, final String tagname);
+    Element getChildElement(                                    // <.>
+            final Element el, final String tagname);
 
     // end::refguide[]
     /**
      * Convenience method to obtain value of child text node.
      */
     // tag::refguide[]
-    String getChildTextValue(final Element el);
+    String getChildTextValue(final Element el);                 // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
index bbde2b1..06963ec 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
@@ -7,7 +7,7 @@ The `ConfigurationMenu` service simply provides a UI in order to access the conf
 
 == Implementation
 
-The `ConfigurationMenu` implementation is very simple:
+The `ConfigurationMenu` implementation is very simple (annotations omitted):
 
 [source,java]
 ----
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
index e2b3ddc..1f4cf78 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
@@ -6,14 +6,11 @@
 WARNING: TODO - to review for v2.
 
 The `HintStore` service defines an SPI for the xref:vw:ROOT:about.adoc[Wicket viewer] to store UI hints on a per-object basis.
-For example, the viewer remembers which tabs are selected, and for collections which view is selected (eg table or hidden),
-which page of a table to render, or whether "show all" (rows) is toggled.
-
-The default implementation of this service uses the HTTP session.  The service is an SPI because the amount of data
-stored could potentially be quite large (for large numbers of users who use the app all day).  An SPI makes it easy to
-plug in an alternative implementation that is more sophisticated than the default (eg implementing MRU/LRU queue, or
-using a NoSQL database, or simply to disabling the functionality altogether).
+For example, the viewer remembers which tabs are selected, and for collections which view is selected (eg table or hidden), which page of a table to render, or whether "show all" (rows) is toggled.
 
+The default implementation of this service uses the HTTP session.
+The service is an SPI because the amount of data stored could potentially be quite large (for large numbers of users who use the app all day).
+An SPI makes it easy to plug in an alternative implementation that is more sophisticated than the default (eg implementing MRU/LRU queue, or using a NoSQL database, or simply to disabling the functionality altogether).
 
 == SPI
 
@@ -21,29 +18,19 @@ The SPI of `HintStore` is:
 
 [source,java]
 ----
-public interface HintStore {
-    String get(final Bookmark bookmark, String hintKey);                // <1>
-    void set(final Bookmark bookmark, String hintKey, String value);    // <2>
-    void remove(final Bookmark bookmark, String hintKey);               // <3>
-    void removeAll(Bookmark bookmark);                                  // <4>
-    Set<String> findHintKeys(Bookmark bookmark);                        // <5>
-}
+include::refguide:applib-svc:example$services/hint/HintStore.java[tags="refguide"]
 ----
-<1> obtain a hint (eg which tab to open) for a particular object.  Object identity is represented by `Bookmark`, as
-per the xref:refguide:applib-svc:BookmarkService.adoc[`BookmarkService`], so that alternative implementations can easily serialize this state to a string.
-<2> set the state of a hint.  (The value of) all hints are represented as strings.
-<3> remove a single hint for an object;
-<4> remove all hints
-<5> obtain all known hints for an object
-
 
+<.> obtain a hint (eg which tab to open) for a particular object.
+Object identity is represented by `Bookmark`, as per the xref:refguide:applib-svc:BookmarkService.adoc[`BookmarkService`], so that alternative implementations can easily serialize this state to a string.
+<.> set the state of a hint.
+(The value of) all hints are represented as strings.
+<.> remove a single hint for an object; <.> remove all hints <.> obtain all known hints for an object
 
 == Implementation
 
 The core framework provides a default implementation of this service (`org.apache.isis.viewer.wicket.viewer.services.HintStoreUsingWicketSession`).
 
-
-
 == View models
 
 Hints are stored against the `Bookmark` of a domain object, essentially the identifier of the domain object.
@@ -53,17 +40,12 @@ This means that any hints stored against the view model's bookmark are in effect
 To address this issue the `HintStore` provides an optional interface that the view model can implement, the intent of which is to expose the "logical" identity of the view model.
 This interface is:
 
-
 [source,java]
 ----
-public interface HintStore {
-    interface HintIdProvider {
-        String hintId();
-    }
-}
+include::refguide:applib-svc:example$services/hint/HintStore.java[tags="refguide-1",indent=0]
 ----
 
-For example, suppose that there's a view model that wraps a `Customer` and its ``Order``s
+For example, suppose that there's a view model that wraps a `Customer` and its ``Order``s.
 For this the `Customer` represents the logical identity.
 This view model might therefore be implemented as follows:
 
@@ -88,12 +70,7 @@ public class CustomerAndOrders implements HintStore.HintIdProvider {
 }
 ----
 
-
-
-
-
 == Related Services
 
 The xref:vw:ROOT:about.adoc[Wicket viewer] exposes the xref:refguide:applib-cm:rgcms.adoc#__rgcms_classes_mixins_Object_clearHints["clear hints"]
-mixin action that is for use by end-users of the application to clear any UI hints that have accumulated for a
-domain object.
+mixin action that is for use by end-users of the application to clear any UI hints that have accumulated for a domain object.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
index 45dc3dd..7baea9e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
@@ -9,21 +9,16 @@ This service simply provides access to the home page object (if any) annotated w
 
 It was originally introduced to support the default implementation of xref:refguide:applib-svc:RoutingService.adoc[`RoutingService`], but was factored out to support alternative implementations of that service (and may be useful for other use cases).
 
-
-== API & Implementation
+== API
 
 The API defined by `HomePageResolverService` is:
 
 [source,java]
 ----
-public interface HomePageResolverService {
-    Object homePage();
-}
+include::refguide:applib-svc:example$services/homepage/HomePageResolverService.java[tags="refguide"]
 ----
 
-The default implementation is provided by `o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault`.
-
-Any custom implementations should be annotated using `@org.springframework.stereotype.Service`.
-
+== Implementation
 
+The default implementation is provided by `o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
index 6dcd1a3..d6f19c5 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
@@ -9,29 +9,19 @@ WARNING: TODO - to review for v2.
 The `InteractionContext` is a request-scoped domain service that is used to obtain the current
 `Interaction`.
 
-An `Interaction` generally consists of a single top-level `Execution`, either to invoke an action or to edit a
-property.  If that top-level action or property uses xref:refguide:applib-svc:WrapperFactory.adoc[`WrapperFactory`] to
-invoke child actions/properties, then those sub-executions are captured as a call-graph.  The `Execution` is thus a
-graph structure.
-
-If a bulk action is performed (as per an action annotated using
-xref:refguide:applib-ant:Action.adoc#invokeOn[`@Action#invokeOn`]), then this will result in multiple ``Interaction``s, one
-per selected object (not one `Interaction` with multiple top-level ``Execution``s).
+An `Interaction` generally consists of a single top-level `Execution`, either to invoke an action or to edit a property.
+If that top-level action or property uses xref:refguide:applib-svc:WrapperFactory.adoc[`WrapperFactory`] to invoke child actions/properties, then those sub-executions are captured as a call-graph.
+The `Execution` is thus a graph structure.
 
+If a bulk action is performed (as per an action annotated using xref:refguide:applib-ant:Action.adoc#invokeOn[`@Action#invokeOn`]), then this will result in multiple ``Interaction``s, one per selected object (not one `Interaction` with multiple top-level ``Execution``s).
 
 It is possible for ``Interaction.Execution``s to be persisted; this is supported by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module, for example.
 Persistent``Interaction``s support several use cases:
 
-* they enable profiling of the running application (which actions are invoked then most often, what is their response
-time)
+* they enable profiling of the running application (which actions are invoked then most often, what is their response time)
 
 * if auditing is configured (using xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`]), they provide better audit information, since the
-`Interaction.Execution` captures the 'cause' of an interaction and can be correlated to the audit records (the "effect"
-of the interaction) by way of the xref:refguide:applib-cm:classes/mixins.adoc#HasUniqueId[`transactionId`]
-
-
-
-
+`Interaction.Execution` captures the 'cause' of an interaction and can be correlated to the audit records (the "effect" of the interaction) by way of the xref:refguide:applib-cm:classes/mixins.adoc#HasUniqueId[`transactionId`]
 
 == API
 
@@ -49,43 +39,35 @@ The public API of the `InteractionContext` domain service itself consists of sim
 
 [source,java]
 ----
-@IsisSessionScope
-public class InteractionContext {
-    public Interaction getInteraction();            // <1>
-}
+include::refguide:applib-svc:example$services/iactn/InteractionContext.java[tags="refguide"]
 ----
-<1> Returns the currently active {@link Interaction} for this thread.
+<.> Returns the currently active {@link Interaction} for this thread.
 
 This class is concrete (that is, it is also the implementation).
 
-
 === `Interaction`
 
 The public API of the `Interaction` class consists of:
 
 [source,java]
 ----
-public class Interaction {
-    public UUID getTransactionId();                 // <1>
-    public Execution getPriorExecution();           // <2>
-    public Execution getCurrentExecution();         // <3>
-    public List<Execution> getExecutions();         // <4>
-    public int next(final String sequenceId);       // <5>
-}
+include::refguide:applib-svc:example$services/iactn/Interaction.java[tags="refguide"]
 ----
-<1> The unique identifier of this interaction.  This will be the same value as held in `Command` (obtainable from xref:refguide:applib-svc:CommandContext.adoc[`CommandContext`]).
-<2> The member `Execution` (action invocation or property edit) that preceded the current one.
-<3> The current execution.
-<4> * Returns a (list of) execution}s in the order that they were pushed.  Generally there will be just one entry in this list, but additional entries may arise from the use of mixins/contributions when re-rendering a modified object.
-<5> Generates numbers in a named sequence.  Used by the framework both to number successive interaction ``Execution``s and for events published by the xref:refguide:applib-svc:PublisherService.adoc[`PublisherService`].
+<.> The unique identifier of this interaction.
+<.> Returns a (list of) execution}s in the order that they were pushed.
+Generally there will be just one entry in this list, but additional entries may arise from the use of mixins/contributions when re-rendering a modified object.
+This will be the same value as held in `Command` (obtainable from xref:refguide:applib-svc:CommandContext.adoc[`CommandContext`]).
+<.> The current execution.
+<.> The member `Execution` (action invocation or property edit) that preceded the current one.
+<.> Generates numbers in a named sequence.
+Used by the framework both to number successive interaction ``Execution``s and for events published by the xref:refguide:applib-svc:PublisherService.adoc[`PublisherService`].
 
 This class is concrete (is also the implementation).
 
-
 === `Interaction.Execution`
 
-The `Interaction.Execution` (static nested) class represents an action invocation/property edit as a node in a
-call-stack execution graph.  Sub-executions can be performed using the
+The `Interaction.Execution` (static nested) class represents an action invocation/property edit as a node in a call-stack execution graph.
+Sub-executions can be performed using the
 xref:refguide:applib-svc:WrapperFactory.adoc[`WrapperFactory`].
 
 It has the following public API:
@@ -118,19 +100,16 @@ public abstract class Execution {
 <1> The owning `Interaction`.
 <2> Whether this is an action invocation or a property edit.
 <3> A string uniquely identifying the action or property (similar to Javadoc syntax).
-<4> The object on which the action is being invoked or property edited.  In the case of a mixin this will be the mixin object itself (rather than the mixed-in object).
-<5> A human-friendly description of the class of the target object, and of the name of the action invoked/property
-edited on the target object.
-<6> The parent action/property that invoked this action/property edit (if any), and any actions/property edits made in
-turn via the xref:refguide:applib-svc:WrapperFactory.adoc[`WrapperFactory`].
-<7> The domain event fired via the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] representing the
-execution of this action invocation/property edit.
+<4> The object on which the action is being invoked or property edited.
+In the case of a mixin this will be the mixin object itself (rather than the mixed-in object).
+<5> A human-friendly description of the class of the target object, and of the name of the action invoked/property edited on the target object.
+<6> The parent action/property that invoked this action/property edit (if any), and any actions/property edits made in turn via the xref:refguide:applib-svc:WrapperFactory.adoc[`WrapperFactory`].
+<7> The domain event fired via the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] representing the execution of this action invocation/property edit.
 <8> The date/time at which this execution started/completed.
-<9> The object returned by the action invocation/property edit, or the exception thrown.  For `void` methods and for actions returning collections, the value will be `null`.
+<9> The object returned by the action invocation/property edit, or the exception thrown.
+For `void` methods and for actions returning collections, the value will be `null`.
 <10> A DTO (instance of the xref:refguide:schema:ixn.adoc["ixn" schema]) being a serializable representation of this action invocation/property edit.
 
-
-
 [NOTE]
 ====
 
@@ -138,10 +117,9 @@ Unlike the similar xref:refguide:applib-svc:CommandContext.adoc[`CommandContext`
 That said, the framework simply instantiates the `Interaction` using the
 xref:refguide:applib-svc:FactoryService.adoc[`FactoryService`].
 If a different implementation of `Interaction` was required, then a custom implementation of
- xref:refguide:applib-svc:FactoryService.adoc[`FactoryService`] could always be supplied.
+xref:refguide:applib-svc:FactoryService.adoc[`FactoryService`] could always be supplied.
 ====
 
-
 There are two concrete subclasses of `Execution`.
 
 The first is `ActionInvocation`, representing the execution of an action being invoked:
@@ -152,8 +130,8 @@ public class ActionInvocation extends Execution {
     public List<Object> getArgs();                  // <1>
 }
 ----
-<1> The objects passed in as the arguments to the action's parameters.  Any of these could be `null`.
-
+<1> The objects passed in as the arguments to the action's parameters.
+Any of these could be `null`.
 
 The second is `PropertyEdit`, and naturally enough represents the execution of a property being edited:
 
@@ -163,17 +141,13 @@ public class PropertyEdit extends Execution {
     public Object getNewValue();                    // <1>
 }
 ----
-<1> The object used as the new value of the property.  Could be `null` if the property is being cleared.
-
+<1> The object used as the new value of the property.
+Could be `null` if the property is being cleared.
 
 == Implementation
 
 This class (`o.a.i.applib.services.iactn.InteractionContext`) is also the default implementation.
 
-
-
-
-
 == Interacting with the services
 
 Typically domain objects will have little need to interact with the `InteractionContext` and `Interaction` directly.
@@ -181,11 +155,6 @@ The services are used within the framework however, primarily to support the
 xref:refguide:applib-svc:PublisherService.adoc[`PublisherService`] SPI, and to emit domain events over the
 xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`].
 
-
-
-
-
-
 == Related Classes
 
 This service is very similar in nature to xref:refguide:applib-svc:CommandContext.adoc[`CommandContext`], in that the `Interaction` object accessed through it is very similar to the `Command` object obtained from the `CommandContext`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
index e96b9a8..fdb9d47 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
@@ -3,8 +3,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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-
 The `JaxbService` allows instances of JAXB-annotated classes to be marshalled to XML and unmarshalled from XML back into domain objects.
 
 == API
@@ -13,23 +11,17 @@ The API defined by `JaxbService` is:
 
 [source,java]
 ----
-public interface JaxbService {
-    @Programmatic
-    <T> T fromXml(Class<T> domainClass, String xml);                                            // <1>
-    @Programmatic
-    public String toXml(final Object domainObject);                                             // <2>
-    public enum IsisSchemas {                                                                   // <3>
-        INCLUDE, IGNORE
-    }
-    @Programmatic
-    public Map<String, String> toXsd(final Object domainObject, final IsisSchemas isSchemas);} // <4>
-}
+include::refguide:applib-svc:example$services/jaxb/JaxbService.java[tags="refguide"]
 ----
-<1> unmarshalls the XML into an instance of the class.
-<2> marshalls the domain object into XML
-<3> whether to include or exclude the Isis schemas in the generated map of XSDs.
+<.> unmarshalls the XML into an instance of the class, using a preconfigured JAXB
+<.> ditto, but providing properties to the JAXB unmarshaller.
 Discussed further below.
-<4> generates a map of each of the schemas referenced; the key is the schema namespace, the value is the XML of the schema itself.
+<.> unmarshalls the XML to the specified domain class
+<.> ditto, but providing properties to the JAXB unmarshaller.
+<.> marshalls the domain object into XML
+<.> ditto, but providing properties to the JAXB unmarshaller.
+<.> generates a map of each of the schemas referenced; the key is the schema namespace, the value is the XML of the schema itself.
+This can either include or exclude the Isis schemas in the generated map.
 
 With respect to the `IsisSchemas` enum: a JAXB-annotated domain object will live in its own XSD namespace and may reference multiple other XSD schemas.
 In particular, many JAXB domain objects will reference the
@@ -42,9 +34,7 @@ Apache Isis provides a default implementation of the service, `o.a.i.applib.serv
 
 == Usage within the framework
 
-This service is provided as a convenience for applications, but is also used internally by the framework to
-xref:refguide:applib-ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated
+This service is provided as a convenience for applications, but is also used internally by the framework to marshall xref:refguide:applib-ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated
 xref:userguide:fun:building-blocks.adoc#view-models[view models].
-The functionality to download XML and XSD schemas is also exposed in the UI through mixins to xref:refguide:applib-cm:classes/mixins.adoc#Dto[`Dto`] interface.
-
+The functionality to download XML and XSD schemas is also exposed in the UI through mixins of the xref:refguide:applib-cm:classes/mixins.adoc#Dto[`Dto`] interface.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
index 068022b..b49f662 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
@@ -3,44 +3,34 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-
-
-The `LayoutService` provides the ability to obtain the XML layout for a single domain object or for all domain objects.
+The `LayoutService` domain service provides the ability to obtain the XML layout for a single domain object or for all domain objects.
 This functionality is surfaced through the user interface through a related xref:refguide:applib-svc:LayoutService.adoc#related-mixins-and-menus[mixin and menu action].
 
-== API & Implementation
+== API
 
 The API defined by `LayoutService` is:
 
 [source,java]
 ----
-public interface LayoutService {
-    String toXml(Class<?> domainClass, Style style);        // <1>
-    byte[] toZip(Style style);                              // <2>
-}
+include::refguide:applib-svc:example$services/layout/LayoutService.java[tags="refguide"]
 ----
-<1> Returns the serialized XML form of the layout (grid) for the specified domain class, in specified style (discussed below).
-<2> Returns (a byte array) of a zip of the serialized XML of the layouts (grids), for all domain entities and view models.
+<.> Returns the serialized XML form of the layout (grid) for the specified domain class, in specified style (discussed below).
+<.> Returns (a byte array) of a zip of the serialized XML of the layouts (grids), for all domain entities and view models.
+<.> Returns the serialized XML form of the menu bars (`menubars.layout.xml`)
 
 The `Style` enum is defined as:
 
 [source,java]
 ----
-enum Style {
-    CURRENT,
-    COMPLETE,
-    NORMALIZED,
-    MINIMAL
-}
+include::refguide:applib-svc:example$services/layout/LayoutService.java[tags="refguide-1",indent=0]
 ----
 
 The `CURRENT` style corresponds to the layout already loaded for the domain class, typically from an already persisted `layout.xml` file.
 The other three styles allow the developer to choose how much metadata is to be specified in the XML, and how much (if any) will be obtained elsewhere, typically from annotations in the metamodel.
 The table below summarises the choices:
 
-.Table caption
 [cols="<.>,^.>,^.>,^.>",options="header"]
+.Styles
 |===
 
 | Style
@@ -80,6 +70,10 @@ You can then remove the `@MemberGroupLayout` and `@MemberOrder` annotations from
 The grid regions will be empty in this version, and the framework will use the `@MemberOrder` annotation to bind object members to those regions.
 The only annotation that can be safely removed from the source code with this style is the `@MemberGroupLayout` annotation.
 
+== Implementation
+
+The framework provides a default implementation, `o.a.i.core.metamodel.services.layout.LayoutServiceDefault`.
+
 == Related Mixins and Menus
 
 The service's functionality is exposed in the UI through a mixin (per object) and a menu action (for all objects):
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
index 7a616c7..c378a6b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
@@ -4,5 +4,13 @@
 :page-partial:
 
 
-WARNING: TODO: v2 - to document.
-Just exposes xref:LayoutService.adoc[`LayoutService`] in the UI.
+The `LayoutServiceMenu` service simply provides a UI to allow layouts (obtained from xref:LayoutService.adoc[`LayoutService`]) to be downloaded within the UI.
+
+== API
+
+The `LayoutServiceMenu` implementation is very simple (annotations and supporting methods omitted):
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/layout/LayoutServiceMenu.java[tags="refguide"]
+----
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
index a852a8c..0bf203c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
@@ -4,37 +4,28 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
 
 
 The `LocaleProvider` service is one of the services that work together to implement Apache Isis' support for i18n, being used by Isis' default implementation of xref:refguide:applib-svc:TranslationService.adoc[`TranslationService`].
 
 The role of the service itself is simply to return the `Locale` of the current user.
 
-
 [NOTE]
 ====
 For the "big picture" and further details on Apache Isis' i18n support, see xref:userguide:btb:i18n.adoc[here].
 ====
 
-
-
 == SPI
 
 The SPI defined by this service is:
 
 [source,java]
 ----
-public interface LocaleProvider {
-    @Programmatic
-    Locale getLocale();
-}
+include::refguide:applib-svc:example$services/i18n/LocaleProvider.java[tags="refguide"]
 ----
 
-This is notionally request-scoped, returning the `Locale` of the current user; _not_ that of the server.  (Note that the implementation is not required to actually be xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`], however).
-
-
-
+This is notionally request-scoped, returning the `Locale` of the current user; _not_ that of the server.
+(Note that the implementation does not required any special scoping such as xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`], for example).
 
 == Implementation
 
@@ -45,11 +36,6 @@ Isis' xref:vw:ROOT:about.adoc[Wicket viewer] provides an implementation of this
 Currently there is no equivalent implementation for the xref:vro:ROOT:about.adoc[RestfulObjects viewer].
 ====
 
-
-
-
-
-
 == Related Services
 
 This service works in conjunction with xref:refguide:applib-svc:TranslationService.adoc[`TranslationService`] and xref:refguide:applib-svc:TranslationsResolver.adoc[`TranslationsResolver`] in order to provide i18n support.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
index ea13a9b..961b1a2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
@@ -3,25 +3,22 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-
 
 The `MenuBarsLoaderService` is used by the default implementation of xref:refguide:applib-svc:MenuBarsService.adoc[MenuBarsService] to return a a xref:refguide:applib-cm:classes/menubars.adoc[`MenuBars`] instance deserialized from the `menubars.layout.xml` file read from the classpath.
 
-== SPI and Implementation
+== SPI
 
 The SPI defined by this service is:
 
 [source,java]
 ----
-public interface MenuBarsLoaderService {
-    boolean supportsReloading();        // <1>
-    MenuBars menuBars();                // <2>
-}
+include::refguide:applib-svc:example$services/menu/MenuBarsLoaderService.java[tags="refguide"]
 ----
-<1> Whether dynamic reloading of the menu bars layout is enabled.
+<.> Whether dynamic reloading of the menu bars layout is enabled.
 If not, then the xref:refguide:applib-svc:MenuBarsService.adoc[MenuBarsService] will cache the layout once loaded.
-<2> Returns a new instance of `MenuBars` if possible, otherwise null.
+<.> Returns a new instance of `MenuBars` if possible, otherwise null.
+
+== Implementation
 
 The framework provides a default implementation of this service, namely `o.a.i.core.runtime.services.menu.MenuBarsLayoutServiceDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
index f14248e..da10ba6 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
@@ -9,24 +9,25 @@ WARNING: TODO - to review for v2.
 The `MenuBarsService` is responsible for returning a xref:refguide:applib-cm:classes/menubars.adoc[`MenuBars`] instance, a data structure representing the arrangement of domain service actions across multiple menu bars, menus and sections.
 This is used by the Wicket viewer to build up the menu, and is also served as the "menuBars" resource by the xref:vro:ROOT:about.adoc[Restful Objects] viewer.
 
-== SPI and Implementation
+== SPI
 
 The SPI defined by this service is:
 
 [source,java]
 ----
-public interface MenuBarsService {
-    enum Strategy {                         // <1>
-        DEFAULT,
-        FALLBACK
-    }
-    MenuBars menuBars();                    // <2>
-    MenuBars menuBars(Strategy strategy);   // <3>
-}
+include::refguide:applib-svc:example$services/menu/MenuBarsService.java[tags="refguide"]
 ----
-<1> Select whether to return the "default" `MenuBars` instance - which may be obtained from anywhere, eg read from the classpath, or to "fallback"" and derive from the metamodel facet/annotations.
-<2> Convenience API to return the default `MenuBars` instance
-<3> Returns an instance of `MenuBars` according the specified strategy.
+<.> Convenience API to return the default `MenuBars` instance
+<.> Returns an instance of `MenuBars` according the specified type...
+
+\... where `Type` is used to specify whether to return the "default" `MenuBars` instance - which may be obtained from anywhere, eg read from the classpath, or to "fallback"" and derive from the metamodel facet/annotations.
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/menu/MenuBarsService.java[tags="refguide-1"]
+----
+
+== Implementation
 
 The framework provides a default implementation of this service, namely `o.a.i.core.runtime.services.menu.MenuBarsServiceDefault`.
 This uses the xref:refguide:applib-svc:MenuBarsLoaderService.adoc[MenuBarsLoaderService] to load a serialized form of `MenuBars` instance, called `menubars.layout.xml`, from the classpath.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc
index 40c6fd7..a9b47d1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService.adoc
@@ -15,33 +15,29 @@ The API of `MessageService` is:
 
 [source,java]
 ----
-public interface MessageService {
+include::refguide:applib-svc:example$services/message/MessageService.java[tags="refguide"]
+----
+<.> display as a transient message to the user (not requiring acknowledgement).  In the xref:vw:ROOT:about.adoc[Wicket viewer] this is implemented as a toast that automatically disappears after a period of time.
+<.> ditto, but with translatable string, for xref:userguide:btb:i18n.adoc[i18n support].
+<.> ditto, but with an arbitrary translation context (rather than one inferred from a context class and method)
+<.> warn the user about a situation with the specified message.  In the xref:vw:ROOT:about.adoc[Wicket viewer] this is implemented as a toast that must be closed by the end-user.
+<.> ditto, but with translatable string, for i18n support.
+<.> ditto, but with an arbitrary translation context (rather than one inferred from a context class and method)
+<.> show the user an unexpected application error.  In the xref:vw:ROOT:about.adoc[Wicket viewer] this is implemented as a toast (with a different colour) that must be closed by the end-user.
+<.> ditto, but with translatable string, for i18n support.
+<.> ditto, but with an arbitrary translation context (rather than one inferred from a context class and method)
 
-    void informUser(String message);                                                            // <1>
-    String informUser(TranslatableString message, Class<?> contextClass, String contextMethod); // <2>
-    String informUser(TranslatableString message, String translationContext);
+The i18n versions of these methods that take `contextClass` and `contextMethod` parameters use this to create a context string, eg "com.mycompany.Customer#placeOrder".
 
-    void warnUser(String message);                                                              // <3>
-    String warnUser(TranslatableString message, Class<?> contextClass, String contextMethod);   // <4>
-    String warnUser(TranslatableString message, String translationContext);
 
-    void raiseError(String message);                                                            // <5>
-    String raiseError(TranslatableString message, Class<?> contextClass, String contextMethod); // <6>
-    String raiseError(TranslatableString message, String translationContext);
-    ...
-}
-----
-<1> display as a transient message to the user (not requiring acknowledgement).  In the xref:vw:ROOT:about.adoc[Wicket viewer] this is implemented as a toast that automatically disappears after a period of time.
-<2> ditto, but with translatable string, for xref:userguide:btb:i18n.adoc[i18n support].
-<3> warn the user about a situation with the specified message.  In the xref:vw:ROOT:about.adoc[Wicket viewer] this is implemented as a toast that must be closed by the end-user.
-<4> ditto, but with translatable string, for i18n support.
-<5> show the user an unexpected application error.  In the xref:vw:ROOT:about.adoc[Wicket viewer] this is implemented as a toast (with a different colour) that must be closed by the end-user.
-<6> ditto, but with translatable string, for i18n support.
+== Implementation
 
-The i18n versions of these methods all have an override which simply creates a single context string from the `contextClass` and `contextMethod` parameters (eg "com.mycompany.Customer#placeOrder").
+The core framework provides a default implementation of this service, `o.a.i.core.runtime.services.message.MessageServiceDefault`.
 
 
 
+== Usage
+
 For example:
 
 [source,java]
@@ -57,8 +53,4 @@ public Order addItem(Product product, @ParameterLayout(named="Quantity") int qua
 
 
 
-== Implementation
-
-The core framework provides a default implementation of this service, `o.a.i.core.runtime.services.message.MessageServiceDefault`.
-
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
index b5b5ce2..3d76a03 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
@@ -3,8 +3,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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-
 
 The `MetaModelService` service provides access to a number of aspects of Apache Isis' internal metamodel.
 
@@ -16,69 +14,61 @@ The API defined by the service is:
 
 [source,java]
 ----
-public interface MetaModelService {
-    Class<?> fromObjectType(String objectType);         // <1>
-    String toObjectType(Class<?> domainType);           // <2>
-    void rebuild(Class<?> domainType);                  // <3>
-    List<DomainMember> export();                        // <4>
-
-    enum Sort {                                         // <5>
-        VIEW_MODEL, JDO_ENTITY, DOMAIN_SERVICE,
-        MIXIN, VALUE, COLLECTION, UNKNOWN;
-    }
-    enum Mode {
-        STRICT,
-        RELAXED
-    }
-    Sort sortOf(Class<?> domainType);                   // <6>
-    Sort sortOf(Bookmark bookmark);
-
-    Sort sortOf(Class<?> domainType, Mode mode);
-    Sort sortOf(Bookmark bookmark, Mode mode);
-
-    AppManifest getAppManifest();                       // <7>
-    AppManifest2 getAppManifest2();
-
-    CommandDtoProcessor commandDtoProcessorFor(         // <8>
-                        String memberIdentifier);
-
-    MetamodelDto exportMetaModel(final Config config);  // <9>
-
-    public static class Config {
-        public Config withIgnoreNoop() { /* ... */ }
-        public Config withIgnoreInterfaces() { /* ... */ }
-        public Config withIgnoreAbstractClasses() { /* ... */ }
-        public Config withIgnoreBuiltInValueTypes() { /* ... */ }
-        public Config withIgnoreMixins() { /* ... */ }
-        public Config withPackagePrefix(final String packagePrefix) { /* ... */ }
-    }
-}
+include::refguide:applib-svc:example$services/metamodel/MetaModelService.java[tags="refguide"]
+----
+<.> reverse lookup of a domain class' object type
+<.> lookup of a domain class' object type
+<.> invalidate and rebuild the internal metadata for the specified domain type.
+<.> returns a structure representing all the known types held in the domain model.
+Further details below.
+<.> what sort of object a domain type is represents:
++
+accepting:
++
+[source,java]
+----
+include::refguide:applib-svc:example$services/metamodel/MetaModelService.java[tags="refguide-1",indent=0]
+----
++
+and returning:
++
+[source,java]
+----
+include::refguide:applib-svc:example$services/metamodel/BeanSort.java[tags="refguide"]
 ----
-<1> reverse lookup of a domain class' object type
-<2> lookup of a domain class' object type
-<3> invalidate and rebuild the internal metadata (an `ObjectSpecification`) for the specified domain type.
-<4> returns a list of representations of each of member of each domain class.
-<5> what sort of object a domain type is (or bookmark) represents
-<6> whether to throw an exception or return `Sort.UNKNOWN` if the object type is not recognized.  (The overloads with no `Mode` parameter default to strict mode).
-<7> returns the `AppManifest` used to bootstrap the application.
-If an `AppManifest2` was used (from a `Module`), then this is also returned (else just `null`).
-<8> obtain an implementation of `CommandDtoProcessor` (if any) as per an xref:refguide:applib-ant:Action.adoc#command[`@Action#commandDtoProcessor()`] or xref:refguide:applib-ant:Property.adoc#command[`@Property#commandDtoProcessor()`].
+<.> what sort of object the domain type inferred from a bookmark represents
+<.> obtain an implementation of `CommandDtoProcessor` (if any) as per an xref:refguide:applib-ant:Action.adoc#command[`@Action#commandDtoProcessor()`] or xref:refguide:applib-ant:Property.adoc#command[`@Property#commandDtoProcessor()`].
 +
 This is used by the xref:refguide:applib-svc:ContentMappingService.adoc#implementations[framework-provided implementations] of `ContentMappingService`.
+<.> Exports the entire metamodel as a DTO, serializable into XML using JAXB.
+Discussed further below.
 
-<9> Exports the entire metamodel as a DTO, serializable into XML using JAXB.
-+
-The `Config` property specifies which package(s) to include and can be used to ignore certain elements.
+The `DomainModel` is simply:
 
+[source,java]
+----
+include::refguide:applib-svc:example$services/metamodel/DomainModel.java[tags="refguide"]
+----
 
+where `DomainMember` in turn is:
 
+[source,java]
+----
+include::refguide:applib-svc:example$services/metamodel/DomainMember.java[tags="refguide"]
+----
 
-== Implementation
+For the `exportMetaModel()` method, the `Config` property specifies which package(s) to include and can be used to ignore certain elements:
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/metamodel/MetaModelService.java[tags="refguide-2",indent=0]
+----
 
-The framework provides a default implementation of this service, `o.a.i.c.m.services.metamodel.MetaModelServiceDefault`.
 
 
-WARNING: TODO: v2 - discuss `DomainModel`; discuss `DomainMember` in more depth
+== Implementation
+
+The framework provides a default implementation of this service, `o.a.i.c.m.services.metamodel.MetaModelServiceDefault`.
 
 
 == Related Services
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc
index 81a181e..480f2c9 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu.adoc
@@ -3,4 +3,13 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO: v2 - to document.  Supporting UI for MetaModelService.
+The `MetaModelServiceMenu` service simply provides a UI to allow domain model metadata (obtained from xref:MetaModelService.adoc[`MetaModelService`]) to be downloaded within the UI.
+
+== API
+
+The `MetaModelServiceMenu` implementation is very simple (annotations and supporting methods omitted):
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/metamodel/MetaModelServiceMenu.java[tags="refguide"]
+----
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
index 0e553a8..b72fcfb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
@@ -4,33 +4,25 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
 
-
-The `MetricsService` is a request-scoped domain service that hooks into the JDO/DataNucleus ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
+The `MetricsService` is an xref:refguide:applib-ant:IsisSessionScope.adoc[`IsisSessionScope`]d domain service that hooks into the JDO/DataNucleus ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
 
 The service is used by the xref:refguide:applib-svc:InteractionContext.adoc[`InteractionContext`] domain service (to populate the DTO held by the `Interaction.Execution`) and also by the (internal) xref:core:runtime-services:PublisherDispatchService.adoc[`PublisherDispatchService`] domain service (to populate the `PublishedObjects` class.
 
 
-== API & Implementation
+== API
 
 The API of the service is:
 
 [source,java]
 ----
-@IsisSessionScope
-public interface MetricsService {
-    int numberObjectsLoaded();              // <1>
-    int numberObjectsDirtied();             // <2>
-    int numberObjectPropertiesModified();   // <3>
-}
+include::refguide:applib-svc:example$services/metrics/MetricsService.java[tags="refguide"]
 ----
-<1> The number of objects that have, so far in this request, been loaded from the database.
-Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)` is fired.
-<2> The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.
-Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)` callback is fired.
-<3> The number of individual properties of objects that were modified; a good measure of the amount of work being done in the interaction.
-Corresponds to the number of times that the xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`]'s `audit(...)` method will be called as the transaction completes.
+<.> The number of objects that have, so far in this request, been loaded from the database.
+<.> The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.
+
+
+== Implementation
 
 The framework provides a default implementation of this API, namely `o.a.i.c.r.s.metrics.MetricsServiceDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
index 798b216..bb259f4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
@@ -23,40 +23,34 @@ The SPI defined by the service is:
 
 [source,java]
 ----
-public interface PublisherService {
-    void publish(final Interaction.Execution<?, ?> execution);  // <1>
-    void publish(final PublishedObjects publishedObjects);      // <2>
-}
+include::refguide:applib-svc:example$services/publish/PublisherService.java[tags="refguide"]
 ----
-<1> to publish an individual action invocation or property edit, as captured within an `Interaction.Execution`.
-<2> to publish a set of changed objects.
+<.> to publish an individual action invocation or property edit, as captured within an `Interaction.Execution`.
+<.> to publish a set of changed objects.
 
-Each `Interaction.Execution` has an owning `Interaction`; this is the same object obtainable from xref:refguide:applib-svc:InteractionContext.adoc[`InteractionContext`].
-Implementations that publish member executions can use `Interaction.Execution#getDto()` method to return a DTO (as per the xref:refguide:schema:ixn.adoc["ixn" schema]) which can be converted into a serializable XML representation using the `InteractionDtoUtils` utility class.
-The XML can either serialize a single execution, or can be a "deep" serialization of an execution and all sub-executions.
-
-The full API of `PublishedObjects` itself is:
+where `PublishedObjects` is provides statistics on the interaction execution (action invocation or property edit):
 
 [source,java]
 ----
-public interface PublishedObjects extends HasUniqueId, HasUsername {
-    UUID getTransactionId();                                    // <1>
-    String getUsername();                                       // <2>
-    Timestamp getCompletedAt();                                 // <3>
-    ChangesDto getDto();                                        // <4>
-
-    int getNumberLoaded();                                      // <5>
-    int getNumberCreated();
-    int getNumberUpdated();
-    int getNumberDeleted();
-    int getNumberPropertiesModified();
-}
+include::refguide:applib-svc:example$services/publish/PublishedObjects.java[tags="refguide"]
 ----
-<1> inherited from `HasUniqueId`, correlates back to the unique identifier of the transaction in which these objects were changed.
-<2> inherited from `HasUsername`, is the user that initiated the transaction causing these objects to change
-<3> the time that this set of objects was collated (just before the completion of the transaction completes)..
-<4> returns a DTO (as per the xref:refguide:schema:chg.adoc["chg" schema]) which can be converted into a serializable XML representation can be obtained using the `ChangesDtoUtils` utility class.
-<5> metrics as to the number of objects loaded, created, updated or deleted and the number of object properties modified (in other words the "size" or "weight" of the transaction).
+<.> inherited from `HasUniqueId`, correlates back to the unique identifier of the transaction in which these objects were changed.
+<.> inherited from `HasUsername`, is the user that initiated the transaction causing these objects to change
+<.> Time that the interaction execution completed
+<.> Number of domain objects loaded in this interaction
+<.> Number of domain objects created in this interaction
+<.> Number of domain objects updated in this interaction
+<.> Number of domain objects deleted in this interaction
+<.> Number of domain objects properties that were changed in this interaction
+<.> Same details, as per xref:refguide:schema:chg.adoc[`chg.xsd`] schema.
+This can be converted into a serializable XML representation using the `ChangesDtoUtils` utility class.
+
+The numbers of objects loaded, created, updated or deleted and the number of object properties modified (in other words the "size" or "weight" of the transaction).
+
+Each `Interaction.Execution` has an owning `Interaction`; this is the same object obtainable from xref:refguide:applib-svc:InteractionContext.adoc[`InteractionContext`].
+Implementations that publish member executions can use `Interaction.Execution#getDto()` method to return a DTO (as per the xref:refguide:schema:ixn.adoc["ixn" schema]) which can be converted into a serializable XML representation using the `InteractionDtoUtils` utility class.
+The XML can either serialize a single execution, or can be a "deep" serialization of an execution and all sub-executions.
+
 
 
 == Implementations
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
index feb0a7a..9d8a072 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
@@ -23,40 +23,17 @@ The API defined by `QueryResultsCache` is:
 
 [source,java]
 ----
-@IsisSessionScope
-public class QueryResultsCache {
-    public static class Key {
-        public Key(Class<?> callingClass, String methodName, Object... keys) {...}
-        public Class<?> getCallingClass() { /* ... */ }
-        public String getMethodName() { /* ... */ }
-        public Object[] getKeys() { /* ... */ }
-    }
-    public static class Value<T> {
-        public Value(T result) { /* ... */ }
-        private T result;
-        public T getResult() {
-            return result;
-        }
-    }
-    @Programmatic
-    public <T> T execute(
-        final Callable<T> callable,
-        final Class<?> callingClass, final String methodName, final Object... keys) { /* ... */ }
-    @Programmatic
-    public <T> T execute(final Callable<T> callable, final Key cacheKey) { /* ... */ }
-    @Programmatic
-    public <T> Value<T> get(
-        final Class<?> callingClass, final String methodName, final Object... keys) { /* ... */ }
-    @Programmatic
-    public <T> Value<T> get(final Key cacheKey) { /* ... */ }
-    @Programmatic
-    public <T> void put(final Key cacheKey, final T result) { /* ... */ }
-}
+include::refguide:applib-svc:example$services/queryresultscache/QueryResultsCache.java[tags="refguide"]
 ----
+<.> Execute the callable if not already cached for the supplied calling class, method and keys.
+
+There are also overloaded generics versions of  `execute(...)` that simplify the calling of this domain service.
+
 
 == Implementation
 
-TODO: v2 - QueryResultsCacheDefault in core runtime-services
+The framework provides a default implementation of `o.a.i.core.runtimeservices.queryresultscache.QueryResultsCacheDefault`.
+
 
 == Usage
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc
index 77c1be5..620016b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl.adoc
@@ -3,5 +3,19 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - v2 : to document.
+The `QueryResultsCacheControl` domain service is used to enable or disable caching by xref:refguide:applib-svc:QueryResultsCache.adoc[`QueryResultsCache`].
 
+
+== API
+
+The API for this service is simply:
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/queryresultscache/QueryResultCacheControl.java[tags="refguide"]
+----
+
+== Implementation
+
+The xref:testing:fixtures:about.adoc[fixtures module] provides an implementation, `o.a.i.testing.fixtures.applib.queryresultscache.QueryResultsCacheControlDefault`.
+This will cause the cache to be ignored while fixtures are being installed.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
index 1aca3e3..db92fe3 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
@@ -12,64 +12,60 @@ You can use it during prototyping to write naive queries (find all rows, then fi
 
 
 
-
-
 == API
 
 The API of `RepositoryService` is:
 
 [source,java]
 ----
-public interface RepositoryService {
-    <T> T instantiate(final Class<T> ofType);                                               // <1>
+include::refguide:applib-svc:example$services/repository/RepositoryService.java[tags="refguide"]
+----
+<.> determine the state of this domain entity:
++
+[source,java]
+----
+include::refguide:applib-svc:example$services/repository/EntityState.java[tags="refguide"]
+----
 
-    boolean isPersistent(Object domainObject);                                              // <2>
-    void persist(Object domainObject);                                                      // <3>
-    void persistAndFlush(Object domainObject);                                              // <4>
+<.> create a new non-persisted domain entity.
+This is identical to
+xref:refguide:applib-svc:FactoryService.adoc[`FactoryService`]'s `detachedEntity(...)` method, but is provided in the
+``RepositoryService``'s API too because instantiating and persisting objects are often done together.
 
-    void remove(Object persistentDomainObject);                                             // <5>
-    void removeAndFlush(Object persistentDomainObject);                                     // <6>
+<.> persist (ie save) an object to the persistent object store (or do nothing if it is already persistent).
 
-    <T> List<T> allInstances(Class<T> ofType, long... range);                               // <7>
+<.> persist (ie save) and flush; same as `persist()`, but also flushes changes to database and updates managed properties and collections (i.e., 1-1, 1-n, m-n relationships automatically maintained by the DataNucleus persistence mechanism).
 
-    <T> List<T> allMatches(Query<T> query);                                                 // <8>
-    <T> List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate, long... range); // <9>
+<.> remove (ie delete) an object from the persistent object store (or do nothing if it has already been deleted).
 
-    <T> T uniqueMatch(Query<T> query);                                                      // <10>
-    <T> T uniqueMatch(final Class<T> ofType, final Predicate<T> predicate);                 // <11>
+<.> remove (delete) and flush;  same as `remove()`, but also flushes changes to database and updates managed properties and collections (i.e., 1-1, 1-n, m-n relationships automatically maintained by the DataNucleus persistence mechanism).
 
-    @Deprecated
-    <T> T firstMatch(Query<T> query);                                                       // <12>
-    @Deprecated
-    <T> T firstMatch(final Class<T> ofType, final Predicate<T> predicate);                  // <13>
-}
-----
-<1> create a new non-persisted domain entity.
-This is identical to
-xref:refguide:applib-svc:FactoryService.adoc[`FactoryService`]'s `instantiate(...)` method, but is provided in the
-``RepositoryService``'s API too because instantiating and persisting objects are often done together.
-<2> test whether a particular domain object is persistent or not
-<3> persist (ie save) an object to the persistent object store (or do nothing if it is already persistent).
-<4> persist (ie save) and flush; same as `persist()`, but also flushes changes to database and updates managed properties and collections (i.e., 1-1, 1-n, m-n relationships automatically maintained by the DataNucleus persistence mechanism).
-<5> remove (ie delete) an object from the persistent object store (or do nothing if it has already been deleted).
-<6> remove (delete) and flush;  same as `remove()`, but also flushes changes to database and updates managed properties and collections (i.e., 1-1, 1-n, m-n relationships automatically maintained by the DataNucleus persistence mechanism).
-<7> return all persisted instances of specified type.
+<.> return all persisted instances of specified type.
 Mostly for prototyping, though can be useful to obtain all instances of domain entities if the number is known to be small.
-The optional varargs parameters are for paging control; more on this below.
-<8> all persistence instances matching the specified `Query`.
-`Query` itself is an Isis abstraction on top of JDO/DataNucleus' Query API.
+
+<.> as previous, with paging.
+
+<.> all persisted instances matching the `Predicate`.
+Client-side filtering so only really intended for prototyping.
+
+<.> as previous, with paging.
+
+<.> all persisted instances matching the (server-side) `Query`.
 *This is the primary API used for querying*
-<9> As the previous, but with client-side filtering using a `Predicate`.
-Only really intended for prototyping.
-<10> Returns the first instance that matches the supplied query.
-If no instance is found then `null `will be returned, while if there is more that one instances a run-time exception will be thrown.
+
+<.> returns the one-and-only match of an instance matching the `Predicate`.
+If there is more that one instances a run-time exception will be thrown.
+Client-side filtering so only really intended for prototyping.
+
+<.> returns the one-and-only match of an instance matching the (server-side) `Query`
 Generally this method is preferred for looking up an object by its (primary or alternate) key.
-<11> As the previous, but with client-side filtering using a `Predicate`.
-Only really intended for prototyping.
-<12> (Deprecated) returns the first instance that matches the supplied query.  If no instance is found then `null `will be returned.
+
+<.> returns the first instance that matches the `Predicate`.
+No exception is thrown if more than one matches, so this is less strict that `uniqueMatch(...)`.
+Client-side filtering so only really intended for prototyping.
+
+<.> returns the first instance that matches the (server-side) `Query`.
 No exception is thrown if more than one matches, so this is less strict that `uniqueMatch(...)`.
-<13> (Deprecated) As the previous, but with client-side filtering using a `Predicate`.
-Only really intended for prototyping.
 
 
 The `uniqueMatch(...)` methods are the recommended way of querying for (precisely) one instance.
@@ -85,7 +81,7 @@ This section briefly discusses how application code can use (some of) these APIs
 
 [source,java]
 ----
-Customer cust = repositoryService.instantiate(Customer.class);
+Customer cust = repositoryService.detachedEntity(Customer.class);
 cust.setFirstName("Freddie");
 cust.setLastName("Mercury");
 repositoryService.persist(cust);
@@ -123,7 +119,7 @@ public abstract class Warehouse extends SalesVIPEntity<Marketplace> {
         MarketplaceExcludedProduct marketplaceExcludedProduct = this.findExcludedProduct(product);
         if (marketplaceExcludedProduct == null) {
             marketplaceExcludedProduct =
-                this.factoryService.instantiate(MarketplaceExcludedProduct.class);
+                this.repositoryService.detachedEntity(MarketplaceExcludedProduct.class);
         }
 
         this.wrap(marketplaceExcludedProduct).setMarketplace(this);
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
index c3fbb2a..4fa7a14 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
@@ -37,23 +37,19 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface RoutingService {
-    @Programmatic
-    boolean canRoute(Object original);  // <1>
-    @Programmatic
-    Object route(Object original);      // <2>
-}
+include::refguide:applib-svc:example$services/routing/RoutingService.java[tags="refguide"]
 ----
-<1> whether this implementation recognizes and can "route" the object.  The `route(...)` method is only called if this method returns `true`.
-<2> the object to use; this may be the same as the original object, some other object, or (indeed) `null`.
+<.> whether this implementation recognizes and can "route" the object.
+The `route(...)` method is only called if this method returns `true`.
+<.> the object to use; this may be the same as the original object, some other object, or (indeed) `null`.
 
 
 
 
 == Implementation
 
-The framework provides a default implementation - `RoutingServiceDefault` - which will always return the original object provided, or the home page if a `null` or `void` was provided.
-It uses the xref:refguide:applib-svc:HomePageResolverService.adoc[`HomePageResolverService`].
+The framework provides a default implementation - `o.a.i.runtimeservices.routing.RoutingServiceDefault` - which will always return the original object provided, or the home page if a `null` or `void` was provided.
+Under the covers it uses the xref:refguide:applib-svc:HomePageResolverService.adoc[`HomePageResolverService`].
 
 There can be multiple implementations of `RoutingService` registered.
 These are checked in turn (chain of responsibility pattern), ordered according to the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation or equivalent (as explained in the xref:refguide:applib-svc:about.adoc#overriding-the-services.adoc[introduction] to this guide).
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
index 05c5c0d..7e9eaaa 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
@@ -6,34 +6,26 @@
 WARNING: TODO - to review for v2.
 
 
-The `Scratchpad` (request-scoped) domain service allows objects to exchange information even if they do not directly call each other.
+The `Scratchpad` domain service allows objects to exchange information even if they do not directly call each other.
 
 
 
-
-== API & Implementation
+== API
 
 The API of `Scratchpad` service is:
 
 [source,java]
 ----
-@IsisSessionScope
-public class Scratchpad {
-    @Programmatic
-    public Object get(Object key) { /* ... */ }
-    @Programmatic
-    public void put(Object key, Object value) { /* ... */ }
-    @Programmatic
-    public void clear() { /* ... */ }
-}
+include::refguide:applib-svc:example$services/scratchpad/Scratchpad.java[tags="refguide"]
 ----
 
+The key values should obey the general contract for hash maps.
 
-== Implementation
 
-This class (`o.a.i.applib.services.scratchpad.Scratchpad`) is also the implementation.
-And, as you can see, the service is just a request-scoped wrapper around a `java.util.Map`.
+== Implementation
 
+This framework provides a default implementation of `o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault`.
+This is just an xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`]'d wrapper around a `java.util.Map`.
 
 
 == Usage
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
index 5e6e52b..ee22d56 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
@@ -3,3 +3,20 @@
 :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 [...]
 
 WARNING: TODO - v2 - to document.
+
+
+== API
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/inject/ServiceInjector.java[tags="refguide"]
+----
+
+== Implementation
+
+The framework provides a default implementation of `o.a.i.core.metamodel.services.ServiceInjectorDefault`.
+
+
+== Related Services
+
+See xref:refguide:applib-svc:ServiceRegistry.adoc[`ServiceRegistry`] to just lookup existing domain services by type.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
index cf8b0b4..00ab898 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
@@ -55,3 +55,6 @@ The alternative is to use the xref:refguide:applib-svc:FactoryService.adoc[`Fact
 The core framework provides a default implementation of this service (`o.a.i.core.runtime.services.registry.ServiceRegistryDefault`).
 
 
+== Related Services
+
+See xref:refguide:applib-svc:ServiceInjector.adoc[`ServiceInjector`] to inject domain services rather than just look them up.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
index 1652bfa..4abcbec 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
@@ -3,11 +3,11 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-
 
 The `SessionLoggingService` defines an SPI to keep track of (typically: to log) the current sessions that are using the application.
 
+Multiple implementations can be registered; all will be called.
+
 
 == SPI
 
@@ -15,27 +15,18 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface SessionLoggingService {
-    public enum Type { LOGIN, LOGOUT }
-    public enum CausedBy { USER, SESSION_EXPIRATION, RESTART }
-
-    void log(
-        Type type,
-        String username,
-        Date date,
-        CausedBy causedBy,
-        String sessionId);  // <1>
-}
+include::refguide:applib-svc:example$services/session/SessionLoggingService.java[tags="refguide"]
 ----
-<1> an internal identifier (the JVM hashCode of the Wicket session).
+<.> an internal identifier (the JVM hashCode of the Wicket session).
 
 
 
 
 == Implementations
 
-The framework provides an implementation, `SessionLoggingService.Stderr` that just prints out to standard error.
-This is not registered by default, but can be easily registered manually using `AppManifestAbstract.Builder#withAdditionalServices(...)`.
+The framework provides a default implementation, `o.a.i.applib.services.session.SessionLoggingServiceLogging` that logs using log4j2.
+
+
 
-The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s sessionlogger module provides an implementation that logs each session as a JDO entity.
+//The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s sessionlogger module provides an implementation that logs each session as a JDO entity.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
index df0591b..8d85a60 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
@@ -16,27 +16,22 @@ The API provided by the service is:
 
 [source,java]
 ----
-public interface SudoService {
-    @Programmatic
-    void sudo(String username, final Runnable runnable);
-    @Programmatic
-    <T> T sudo(String username, final Callable<T> callable);
-    @Programmatic
-    void sudo(String username, List<String> roles, final Runnable runnable);
-    @Programmatic
-    <T> T sudo(String username, List<String> roles, final Callable<T> callable);
-}
+include::refguide:applib-svc:example$services/sudo/SudoService.java[tags="refguide"]
 ----
-
-which will run the provided block of code (a `Runnable` or a `Callable`) in a way such that calls to
-`UserService#getUser()` will return the specified user (and roles, if specified).
-(If roles are not specified, then the roles of the current user are preserved).
+<.> special role which, if granted, will in effect disable security.
+See xref:#access_all_role[below] for more details.
+<.> executes the `Runnable` block of code in a way that calls to xref:UserService.adoc[`UserService`]'s `getUser()` will return the specified user.
+The roles of the current user are preserved.
+<.> ditto, but executes a `Callable`
+<.> executes the `Runnable` block of code in a way that calls to `UserService#getUser()` will return the specified user.
+The effective roles returned are those specified.
+<.> ditto, but executes a `Callable`
 
 The current user/role reported by the internal xref:core:runtime-services:AuthenticationSessionProvider.adoc[`AuthenticationSessionProvider`] will also return the specified user/roles.
 
 [IMPORTANT]
 ====
-Note however that this the "effective user" does not propagate through to the xref:security:ROOT:about.adoc[Shiro security mechanism], which will continue to be evaluated according to the permissions of the current user.
+Note that this the "effective user" does not propagate through to the xref:security:ROOT:about.adoc[Shiro security mechanism], which will continue to be evaluated according to the permissions of the current user.
 See the xref:refguide:applib-svc:SudoService.adoc#ACCESS-ALL-ROLE[`ACCESS-ALL-ROLE`] below for details of how to circumvent this.
 ====
 
@@ -108,13 +103,7 @@ The default implementation of xref:refguide:applib-svc:UserService.adoc[`UserSer
 
 [source,java]
 ----
-public interface SudoService {
-    ...
-    interface Spi {
-        void runAs(String username, List<String> roles);        // <1>
-        void releaseRunAs();                                    // <2>
-    }
-}
+include::refguide:applib-svc:example$services/sudo/SudoService.java[tags="refguide-1",indent=0]
 ----
 <1> Called by `SudoService#sudo(...)`, prior to invoking its `Runnable` or `Callable`.
 <2> Called by `SudoService#sudo(...)`, after its `Runnable` or `Callable` has been invoked.
@@ -122,5 +111,9 @@ public interface SudoService {
 The names of these methods were chosen based on link:https://shiro.apache.org/static/1.2.6/apidocs/org/apache/shiro/subject/Subject.html#runAs-org.apache.shiro.subject.PrincipalCollection-[similar names within Shiro].
 
 
+== Related Services
+
+The `IsisSessionFactory` is a lower-level framework service.
+It provides the `IsisSessionFactory#runAuthenticated(...)` method as a way to programmatically start a new `IsisSession` (these can be nested).
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
index 4ed9e21..42bfd0e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
@@ -24,24 +24,19 @@ The API defined by `SwaggerService` is:
 
 [source,java]
 ----
-public interface SwaggerService {
-    enum Visibility {
-        PUBLIC,                     // <1>
-        PRIVATE,                    // <2>
-        PRIVATE_WITH_PROTOTYPING;   // <3>
-    }
-    enum Format {                   // <4>
-        JSON,
-        YAML
-    }
-    String generateSwaggerSpec(final Visibility visibility, final Format format);
-}
+include::refguide:applib-svc:example$services/swagger/SwaggerService.java[tags="refguide"]
 ----
-<1> Generate a Swagger spec for use by third-party clients, ie public use.  This specification is restricted only to
+<.> Generate a Swagger spec with the specified visibility and format (discussed below).
+
+<.> Produces a limited spec for use by third-party clients, ie public use.
+This specification is restricted only to
 xref:userguide:fun:building-blocks.adoc#view-models[view model]s and to domain services with a xref:refguide:applib-ant:DomainService.adoc#nature[nature] of `VIEW_REST_ONLY`.
-<2> Generate a Swagger spec for use only by internally-managed clients, ie private internal use.  This specification includes domain entities and all menu domain services (as well as any view models).
-<3> Generate a Swagger spec that is the same as private case (above), but also including any xref:refguide:applib-ant:Action.adoc#restrictTo[prototype] actions.
-<4> Swagger specs can be written either in JSON or YAML format.
+<.> Produces a more complete spec, for internally-managed clients, ie private internal use.
+This specification includes domain entities and all menu domain services (as well as any view models).
+<.> Ditto, but also including any xref:refguide:applib-ant:Action.adoc#restrictTo[prototype] actions.
+
+<.> Generate as JSON...
+<.> \... or as YAML.
 
 
 
@@ -60,7 +55,7 @@ This service is provided as a convenience for applications, it is not (currently
 
 == Related Services
 
-A `SwaggerServiceMenu` domain service provides a prototype action that enables the swagger spec to be downloaded from the Wicket viewer's UI.
+A `SwaggerServiceMenu` domain service (part of the xref:vro:ROOT:about.adoc[Restful Objects viewer]) provides a prototype action that enables the swagger spec to be downloaded from theUI.
 
 // FIXME: currently removed in v2, may reinstate
 //Apache Isis' xref:refguide:mvn:about.adoc[Maven plugin] also provides a xref:refguide:mvn:swagger.adoc[swagger goal] which allows the spec file(s) to be generated at build time.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
index dcdf1dd..9c38b48 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
@@ -15,19 +15,10 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface TableColumnOrderService {
-    List<String> orderParented(                  // <1>
-            Object parent,
-            String collectionId,
-            Class<?> collectionType,
-            List<String> propertyIds);
-    List<String> orderStandalone(                // <2>
-            Class<?> collectionType,
-            List<String> propertyIds);
-}
+include::refguide:applib-svc:example$services/tablecol/TableColumnOrderService.java[tags="refguide"]
 ----
-<1> for the parent collection owned by the specified parent and collection Id, return the set of property ids in the same or other order.
-<2> for the standalone collection of the specified type, return the set of property ids in the same or other order, else return `null` if provides no reordering.
+<.> for the parent collection owned by the specified parent and collection Id, return the set of property ids in the same or other order.
+<.> for the standalone collection of the specified type, return the set of property ids in the same or other order, else return `null` if provides no reordering.
 
 There can be multiple implementations of `TableColumnOrderService` registered, ordered as per the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation (or equivalent).
 The ordering provided by the first such service that returns a non-`null` value will be used.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
index 6e715b5..e9efdb5 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
@@ -15,13 +15,17 @@ The API of `TitleService` is:
 
 [source,java]
 ----
-public interface TitleService {
-    String titleOf(Object domainObject);                // <1>
-    String iconNameOf(Object domainObject);             // <2>
-}
+include::refguide:applib-svc:example$services/title/TitleService.java[tags="refguide"]
 ----
-<1> return the title of the object, as rendered in the UI by the Apache Isis viewers.
-<2> return the icon name of the object, as rendered in the UI by the Apache Isis viewers.
+<.> return the title of the object, as rendered in the UI by the Apache Isis viewers.
+
+<.> return the icon name of the object, as rendered in the UI by the Apache Isis viewers.
+
+
+== Implementation
+
+The core framework provides a default implementation of this service (`o.a.i.core.metamodel.services.title.TitleServiceDefault`).
+
 
 
 
@@ -49,9 +53,4 @@ In this example, whatever the title of a `Customer`, it is reused within the tit
 
 
 
-== Implementation
-
-The core framework provides a default implementation of this service (`o.a.i.core.metamodel.services.title.TitleServiceDefault`).
-
-
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
index 915db4b..362c243 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
@@ -7,114 +7,48 @@
 WARNING: TODO - to review for v2.
 Document `Transaction` and `TransactionId` and `TransactionState`.
 
+
 The `TransactionService` (and its various supertypes) allows domain objects to influence user transactions.
 
 
 
 == API
 
-The API of `TransactionService3` is:
-
-[source,java]
-----
-public interface TransactionService3 {
-    Transaction2 currentTransaction();      // <1>
-    void nextTransaction();                 // <2>
-    void nextTransaction(Policy policy);    // <3>
-    void flushTransaction();                // <4>
-    TransactionState getTransactionState(); // <5>
-}
-----
-<1> to obtain a handle on the current `Transaction`, discussed further below
-<2> The framework automatically start a transaction before each user interaction (action invocation or property edit), and will commit that transaction after the interaction has completed.
-Under certain circumstances (eg actions used to perform data migration, say, or for large fixture scripts), it can be helpful to programmatically complete one transaction and start another one.
-<3> overload of nextTransaction() that provides more control on the action to be performed if the current transaction has been marked for abort only
-<4> If the user interaction creates/persists an object or deletes an object (eg using the
-xref:refguide:applib-svc:RepositoryService.adoc[`RepositoryService`]'s `persist()` or `delete()` methods), then the framework actually queues up the work and only performs the persistence command either at the end of the transaction or immediately prior to the next query.
-Performing a flush will cause any pending calls to be performed immediately.
-<5> the state of the current or most recently completed transaction.
-
-
-Here `TransactionState` is an enum defined as:
+The API of `TransactionService` is:
 
 [source,java]
 ----
-public enum TransactionState {
-    NONE,           // <1>
-    IN_PROGRESS,    // <2>
-    MUST_ABORT,     // <3>
-    COMMITTED,      // <4>
-    ABORTED;        // <5>
-}
+include::refguide:applib-svc:example$services/xactn/TransactionService.java[tags="refguide"]
 ----
-<1> No transaction exists.
-<2> Started, still in progress.
-May flush, commit or abort.
-<3> Started, but has hit an exception.
-May not flush or commit, can only abort.
-<4> Completed, having successfully committed.
-May not flush or abort or commit.
-<5> Completed, having aborted.
-Again, may not flush or abort or commit.
-
-
-As noted above, `nextTransaction()` can be useful for actions used to perform data migration, say, or for large fixture scripts.
-It is also used by the xref:vw:ROOT:about.adoc[Wicket viewer]'s support for bulk actions; each action is invoked in its own transaction.
-An overload of this method takes a `Policy` enum, defined as:
 
+<.> obtains the identity of the current transaction.
+(Note, although there is an internal `Transaction` object, this isn't exposed in the API).
++
 [source,java]
 ----
-public enum Policy {
-    UNLESS_MARKED_FOR_ABORT,
-    ALWAYS
-}
+include::refguide:applib-svc:example$services/xactn/TransactionId.java[tags="refguide"]
 ----
++
+The `uniqueId` is in effect a session Id (eg new id per HTTP request).
+The sequence is because there could be more than one transaction per request/session.
 
-If the current transaction has been marked for abort, then the `Policy.UNLESS_MARKED_FOR_ABORT` will escalate to a runtime exception, that is, will fail fast.
-Specifying `Policy.ALWAYS` is provided for use by integration tests so that they can continue on with the test teardown even if the test caused an issue.
-
-The `Transaction2` object - as obtained by `currentTransaction()` method, above - is a minimal wrapper around the underlying database transaction.  Its API is:
-
+<.> obtains the state of the current transaction:
++
 [source,java]
 ----
-public interface Transaction2 {
-    UUID getTransactionId();                    // <1>
-    int getSequence();                          // <2>
-    void flush();                               // <3>
-    TransactionState getTransactionState();     // <4>
-    void clearAbortCause();                     // <5>
-}
+include::refguide:applib-svc:example$services/xactn/TransactionState.java[tags="refguide"]
 ----
-<1> is a unique identifier for the interaction/request, as defined by the
-xref:refguide:applib-cm:classes/mixins.adoc#HasUniqueId[`HasUniqueId`] mixin.
-<2> there can actually be multiple transactions within such a request/interaction; the sequence is a (0-based) is used to distinguish such.
-<3> as per `TransactionService#flushTransaction()` described above.
-<4> The state of this transaction (same as `TransactionService#getTransactionState()`).
-<5> (For framework use only) If the cause has been rendered higher up in the stack, then clear the cause so that it won't be picked up and rendered elsewhere.
 
-[TIP]
-====
-One place where `clearAboutCause()` may be useful is for application-level handling of SQL integrity exceptions, eg as described in link:https://issues.apache.org/jira/browse/ISIS-1476[ISIS-1476]:
+<.> If the user interaction creates/persists an object or deletes an object (eg using the
+xref:refguide:applib-svc:RepositoryService.adoc[`RepositoryService`]'s `persist()` or `delete()` methods), then the framework actually queues up the work and only performs the persistence command either at the end of the transaction or immediately prior to the next query.
+Performing a flush will cause any pending calls to be performed immediately.
 
-[source,java]
-----
-try {
-    // do something...
-} catch (final JDODataStoreException e) {
-    if (Iterables.filter(Throwables.getCausalChain(e),
-        SQLIntegrityConstraintViolationException.class) != null) {
-        // ignore
-        this.transactionService.currentTransaction().clearAbortCause();
-    } else {
-        throw e;
-    }
-}
-----
-====
+<.> The framework automatically start a transaction before each user interaction (action invocation or property edit), and will commit that transaction after the interaction has completed.
+Under certain circumstances (eg actions used to perform data migration, say, or for large fixture scripts), it can be helpful to programmatically complete one transaction and start another one.
 
 
 == Implementation
 
-The core framework provides a default implementation of this service, `o.a.i.core.metamodel.services.xactn.TransactionServiceDefault`.
+The core framework provides a default implementation of this service, `o.a.i.core.runtimeservices.xactn.TransactionServiceSpring`.
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
index 8c108c8..4373b9b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
@@ -3,8 +3,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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
-Document `TranslatableString`.
 
 The `TranslationService` is the cornerstone of Apache Isis' i18n support.
 Its role is to be able to provide translated versions of the various elements within the Apache Isis metamodel (service and object classes, properties, collections, actions, action parameters) and also to translate business rule (disable/valid) messages, and exceptions.
@@ -24,80 +22,38 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface TranslationService {
-    @Programmatic
-    String translate(String context, String text);      // <1>
-    @Programmatic
-    String translate(String context,                    // <2>
-                     String singularText,
-                     String pluralText, int num);
-
-    enum Mode { READ, WRITE;}
-    @Programmatic
-    Mode getMode();                                     // <3>
-}
-
+include::refguide:applib-svc:example$services/i18n/TranslationService.java[tags="refguide"]
 ----
-<1> translate the text, in the locale of the "current user".
-<2> return a translation of either the singular or the plural text, dependent on the `num` parameter, in the locale of the "current user"
-<3> whether this implementation is operating in read or in write mode.
-
+<.> translate the text, in the locale of the "current user".
+<.> return a translation of either the singular or the plural text, dependent on the `num` parameter, in the locale of the "current user"
+<.> whether this implementation is operating in read or in write mode:
++
+[source,java]
+----
+include::refguide:applib-svc:example$services/i18n/TranslationService.java[tags="refguide-1"]
+----
++
 If in read mode, then the translations are expected to be present.
-
 If in write mode, then the implementation is saving translation keys, and will always return the untranslated translation.
 
 
 
-
 == Implementation
 
-The Apache Isis framework provides a default implementation (`TranslationServicePo`) that uses the GNU `.pot` and `.po` files for translations.
-It relies on the `LocaleProvider` service (to return the `Locale` of the current user) and also the `TranslationsResolver` service (to read existing translations).
-
-The framework also provides a supporting `TranslationServicePoMenu` provides menu items under the "Prototyping" secondary menu for controlling this service and downloading `.pot` files for translation.
-
-If the menu items are not required then these can be suppressed either using security or by implementing a xref:userguide:btb:about.adoc#vetoing-visibility[vetoing subscriber].
-
-For more details on the implementation, see xref:userguide:btb:i18n.adoc[i18n support].
-
-
-If the menu items are not required then these can be suppressed either using security or by implementing a xref:userguide:btb:about.adoc#vetoing-visibility[vetoing subscriber].
-
-=== Configuration Properties
-
-The default implementation of this domain service recognises the following configuration properties:
-
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(default value)
-|Description
-
-|`isis.services.` +
-`translation.` +
-`p`
-| `read`,`write`,`disabled`
-|Whether to force the `TranslationService` into either read or write mode.
-It can also be disabled.
-This can be useful for integration tests.
-
-See xref:userguide:btb:i18n.adoc[i18n support] to learn more about the translation service.
-
-|===
-
+The Apache Isis framework provides a default implementation (`o.a.i.core.runtimeservices.i18n.po.TranslationServicePo`) that uses the GNU `.pot` and `.po` files for translations.
 
 
 
+== Related Services
 
-== Related Menus
+The default implementation (`TranslationServicePo`) relies on xref:refguide:applib-svc:LocaleProvider.adoc[`LocaleProvider`] service (to return the `Locale` of the current user), and xref:TranslationsResolver.adoc[`TranslationsResolver`] service (to read existing translations).
 
-The `TranslationServicePoMenu` menu exposes the `TranslationServicePo` service's `toPot()` method so that all
-translations can be downloaded as a single file.
+The framework also provides a supporting `TranslationServicePoMenu` provides menu items under the "Prototyping" secondary menu for controlling this service and downloading `.pot` files for translation.
 
+If the menu items are not required then these can be suppressed either using security or by implementing a xref:userguide:btb:about.adoc#vetoing-visibility[vetoing subscriber].
 
+For more details on the implementation, see xref:userguide:btb:i18n.adoc[i18n support].
 
-== Related Services
+If the menu items are not required then these can be suppressed either using security or by implementing a xref:userguide:btb:about.adoc#vetoing-visibility[vetoing subscriber].
 
-This service works in conjunction with xref:refguide:applib-svc:LocaleProvider.adoc[`LocaleProvider`] and xref:refguide:applib-svc:TranslationsResolver.adoc[`TranslationsResolver`] in order to provide i18n support.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
index 3a43aa6..059b92e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
@@ -3,18 +3,13 @@
 :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 [...]
 :page-partial:
 
-WARNING: TODO - to review for v2.
 
 
-The `TranslationsResolver` service is one of the services that work together to implement Apache Isis' support for i18n, being used by Isis' default implementation of xref:refguide:applib-svc:TranslationService.adoc[`TranslationService`].
+The `TranslationsResolver` domain service locates and return translations.
 
-The role of the service itself is locate and return translations.
+It is one of the supporting services that work together to implement Apache Isis' support for i18n, being used by Isis' default implementation of xref:refguide:applib-svc:TranslationService.adoc[`TranslationService`].
 
-
-[NOTE]
-====
 For the "big picture" and further details on Apache Isis' i18n support, see xref:userguide:btb:i18n.adoc[here].
-====
 
 
 
@@ -24,24 +19,16 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface TranslationsResolver {
-    @Programmatic
-    List<String> readLines(final String file);
-}
+include::refguide:applib-svc:example$services/i18n/TranslationsResolver.java[tags="refguide"]
 ----
 
 
+
 == Implementation
 
 Isis' xref:vw:ROOT:about.adoc[Wicket viewer] provides an implementation of this service (`TranslationsResolverWicket`) which leverages Apache Wicket APIs.  This searches for translation files in the standard `WEB-INF/` directory.
 
-[NOTE]
-====
-Currently there is no equivalent implementation for the xref:vro:ROOT:about.adoc[RestfulObjects viewer].
-====
-
-
-
+There is no equivalent implementation for the xref:vro:ROOT:about.adoc[RestfulObjects viewer].
 
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
index e3d3504..37885a1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
@@ -28,22 +28,21 @@ The SPI defined by the service is:
 
 [source,java]
 ----
-public interface UrlEncodingService {
-    @Programmatic
-    public String encode(final String str);     // <1>
-    @Programmatic
-    public String decode(String str);           // <2>
-}
+include::refguide:applib-svc:example$services/urlencoding/UrlEncodingService.java[tags="refguide"]
 ----
-<1> convert the string (eg view model memento) into a string safe for use within an URL
-<2> unconvert the string from its URL form into its original form URL
+<.> convert the string (eg view model memento) into a string safe for use within an URL
+
+<.> unconvert the string from its URL form into its original form URL
+
 
 
 
 == Implementation
 
-The framework provides a default implementation -- `UrlEncodingServiceWithCompression` (also in the applib) --that first (gzip) compresses the state and then uses `base-64` encoding of the resulting bytes.
+The framework provides a default implementation, `o.a.i.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression`, that first (gzip) compresses the state and then uses `base-64` encoding of the resulting bytes.
 As already noted, be aware that the maximum length of a URL should not exceed 2083 characters.
 For large view models, there's the possibility that this limit could be exceeded; in such cases register an alternative implementation of this service.
 
+The applib also provides `UrlEncodingServiceUsingBaseEncodingAbstract`, which is provided as a convenient base class for alternative implementations.
+
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
index 8bf946e..8eaefd1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
@@ -18,12 +18,9 @@ The SPI defined by the service is:
 
 [source,java]
 ----
-public interface UserProfileService {
-    @Programmatic
-    String userProfileName();       // <1>
-}
+include::refguide:applib-svc:example$services/userprof/UserProfileService.java[tags="refguide"]
 ----
-<1> is used (in the Wicket viewer) as the menu name of the tertiary "Me" menu bar.
+<.> is used (in the Wicket viewer) as the menu name of the tertiary "Me" menu bar.
 
 If the method returns `null` or throws an exception then the framework will default to using the current user name.
 
@@ -36,10 +33,10 @@ In the future this API may be expanded; one obvious possibility is to return a p
 The framework provides a default implementation of this service, `o.a.i.core.runtime.services.UserProfileServiceDefault`.
 This simply returns the user's name as the user's profile name.
 
-An example implementation can also be found in the (non-ASF)
-http://github.com/apache/isis-app-todoapp[TodoApp]:
-
-image::reference-services-spi/UserProfileService/todoapp.png[width="800px",link="{imagesdir}/reference-services-spi/UserProfileService/todoapp.png"]
+//An example implementation can also be found in the (non-ASF)
+//http://github.com/apache/isis-app-todoapp[TodoApp]:
+//
+//image::reference-services-spi/UserProfileService/todoapp.png[width="800px",link="{imagesdir}/reference-services-spi/UserProfileService/todoapp.png"]
 
 
 [NOTE]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
index c08fefd..3cf9543 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
@@ -30,22 +30,13 @@ The SPI defined by the service is:
 
 [source,java]
 ----
-public interface UserRegistrationService {
-    @Programmatic
-    boolean usernameExists(String username);                                    // <1>
-    @Programmatic
-    boolean emailExists(String emailAddress);                                   // <2>
-    @Programmatic
-    void registerUser(String username, String password, String emailAddress);   // <3>
-    @Programmatic
-    boolean updatePasswordByEmail(String emailAddress, String password);        // <4>
-}
+include::refguide:applib-svc:example$services/userreg/UserRegistrationService.java[tags="refguide"]
 ----
-<1> checks if there is already a user with the specified username
-<2> checks if there is already a user with the specified email address
-<3> creates the user, with specified password and email address.
+<.> checks if there is already a user with the specified username
+<.> checks if there is already a user with the specified email address
+<.> creates the user, with specified password and email address.
 The username and email address must both be unique (not being used by an existing user)
-<4> allows the user to reset their password
+<.> allows the user to reset their password
 
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
index 5b876ab..e83ea48 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
@@ -18,35 +18,21 @@ The API of `UserService` is:
 
 [source,java]
 ----
-public interface UserService {
-    UserMemento getUser();
-}
+include::refguide:applib-svc:example$services/user/UserService.java[tags="refguide"]
 ----
 
-where in turn (the essence of) `UserMemento` is:
+where in turn `UserMemento` is:
 
 [source,java]
 ----
-public final class UserMemento {
-    public String getName() { /* ... */ }
-    public boolean isCurrentUser(final String userName) { /* ... */ }
-
-    public List<RoleMemento> getRoles() { /* ... */ }
-    public boolean hasRole(final RoleMemento role) { /* ... */ }
-    public boolean hasRole(final String roleName) { /* ... */ }
-    ...
-}
+include::refguide:applib-svc:example$services/user/UserMemento.java[tags="refguide"]
 ----
 
-and `RoleMemento` is simpler still:
+and `RoleMemento` is still:
 
 [source,java]
 ----
-public final class RoleMemento {
-    public String getName() { /* ... */ }
-    public String getDescription() { /* ... */ }
-    ...
-}
+include::refguide:applib-svc:example$services/user/RoleMemento.java[tags="refguide"]
 ----
 
 The roles associated with the `UserMemento` will be based on the configured xref:security:ROOT:about.adoc[security] (typically Shiro).
@@ -56,7 +42,6 @@ In addition, when using the xref:vw:ROOT:about.adoc[Wicket viewer] there will be
 
 
 
-
 == Implementation
 
 The core framework provides a default implementation of this service (`o.a.i.core.runtime.services.user.UserServiceDefault`).
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
index ac127c2..660f040 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
@@ -4,7 +4,7 @@
 :page-partial:
 
 WARNING: TODO - to review for v2.
-Document `WrappingObject`.
+Document `WrappingObject`, document `AsyncWrap`
 
 
 The `WrapperFactory` provides the ability to enforce business rules for programmatic interactions between domain objects.
@@ -31,64 +31,45 @@ The API provided by the service is:
 
 [source,java]
 ----
-public interface WrapperFactory {
-
-    public static enum ExecutionMode {                      // <1>
-        EXECUTE,
-        SKIP_RULES,
-        NO_EXECUTE,
-        TRY,
-    }
-
-    @Programmatic
-    <T> T wrap(T domainObject, ExecutionMode mode);         // <2>
-
-    @Programmatic
-    <T> T wrap(T domainObject);                             // <3>
-    @Programmatic
-    <T> T wrapSkipRules(T domainObject);                    // <4>
-    @Programmatic
-    <T> T wrapNoExecute(T domainObject);                    // <5>
-    @Programmatic
-    <T> T wrapTry(T domainObject);                          // <6>
-    @Programmatic
+include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide"]
+----
 
-    @Programmatic
-    <T> T unwrap(T possibleWrappedDomainObject);            // <7>
-    @Programmatic
-    <T> boolean isWrapper(T possibleWrappedDomainObject);   // <8>
-    ...
- }
+[source,java]
 ----
-<1> enumerates how the wrapper returned by `wrap(...)` interacts with the underlying domain object.
+include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide-1",indent=0]
+----
+[source,java]
+----
+include::refguide:applib-svc:example$services/wrapper/WrapperFactory.java[tags="refguide-2",indent=0]
+----
+<.> enumerates how the wrapper returned by `wrap(...)` interacts with the underlying domain object.
 
-<2> wraps the underlying domain object with a wrapper as specified by the execution mode.
+<.> wraps the underlying domain object with a wrapper as specified by the execution mode.
 +
 If the domain object is already wrapped, then wrapping it again does nothing; the wrapper is returned unchanged.
 
-<3> wraps the underlying domain object with a wrapper that will validate all business rules and then execute if they pass.
+<.> wraps the underlying domain object with a wrapper that will validate all business rules and then execute if they pass.
 +
 This is the same as invoke `wrap(...)` with `ExecuteMode#EXECUTE`.
 
-<4> wraps the underlying domain object with a wrapper that will validate all business rules but will not actually perform the interaction.
+<.> wraps the underlying domain object with a wrapper that will validate all business rules but will not actually perform the interaction.
 +
 This is the same as invoke `wrap(...)` with `ExecuteMode#NO_EXECUTE`.
 
-<5> wraps the underlying domain object with a wrapper that will NOT check any business rules and instead will just perform the interaction.
+<.> wraps the underlying domain object with a wrapper that will NOT check any business rules and instead will just perform the interaction.
 +
 This is the same as invoke `wrap(...)` with `ExecuteMode#SKIP_RULES`.
 
-<6> wraps the underlying domain object with a wrapper that will validate the business rules, and just return `null` if any fail.
+<.> wraps the underlying domain object with a wrapper that will validate the business rules, and just return `null` if any fail.
 If all business rules pass, then will just perform the interaction.
 +
 This is the same as invoke `wrap(...)` with `ExecuteMode#TRY`.
 
-
-<7> Obtains the underlying domain object, if wrapped.
+<.> Obtains the underlying domain object, if wrapped.
 +
 If the object is not wrapped, returns back unchanged.
 
-<8> whether the supplied object has been wrapped.
+<.> whether the supplied object has been wrapped.
 
 If the interface is performed (action invoked or property set), then - irrespective of whether the business rules were checked or skipped -  a xref:refguide:applib-ant:Action.adoc#command[command]s will be created and pre- and post-execute xref:refguide:applib-ant:Action.adoc#domainEvent[domain event]s) will be fired
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
index b40d58d..4cfe129 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
@@ -23,20 +23,22 @@ The (basic) API of `XmlSnapshotService` is:
 
 [source]
 ----
-public interface XmlSnapshotService {
-    public interface Snapshot {
-        Document getXmlDocument();
-        Document getXsdDocument();
-        String getXmlDocumentAsString();
-        String getXsdDocumentAsString();
-    }
-    @Programmatic
-    public XmlSnapshotService.Snapshot snapshotFor(Object domainObject);
-    ...
-}
+include::refguide:applib-svc:example$services/xmlsnapshot/XmlSnapshotService.java[tags="refguide"]
+----
+
+[source]
+----
+include::refguide:applib-svc:example$services/xmlsnapshot/XmlSnapshotService.java[tags="refguide-1"]
 ----
 
 
+== Implementation
+
+The framework provides a default implementation of this service, `o.a.i.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault`.
+
+
+== Usage
+
 The most straight-forward usage of this service is simply:
 
 [source,java]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
index 0774410..5e0c58d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
@@ -43,6 +43,7 @@ import org.apache.isis.applib.services.layout.LayoutServiceMenu;
 import org.apache.isis.applib.services.metamodel.MetaModelServiceMenu;
 import org.apache.isis.applib.services.publish.PublisherServiceLogging;
 import org.apache.isis.applib.services.scratchpad.Scratchpad;
+import org.apache.isis.applib.services.session.SessionLoggingServiceLogging;
 import org.apache.isis.schema.IsisModuleSchema;
 
 @Configuration
@@ -76,7 +77,7 @@ import org.apache.isis.schema.IsisModuleSchema;
         InteractionContext.class,
         JaxbServiceDefault.class,
         PublisherServiceLogging.class,
-        Scratchpad.class
+        SessionLoggingServiceLogging.class,
 
 })
 public class IsisModuleApplib {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/security/package-info.java b/api/applib/src/main/java/org/apache/isis/applib/security/package-info.java
deleted file mode 100644
index 23fc47e..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/security/package-info.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-/**
- * This package defines types that represent the
- * currently logged-in {@link org.apache.isis.applib.security.UserMemento user}
- * and their {@link org.apache.isis.applib.security.RoleMemento role}s.
- *
- * <p>
- * Typically domain objects do not need to have any knowledge of <i>who</i>
- * is using them, because authorization is provided declaratively by the
- * framework and is type-based.  However, there are occasions; for example,
- * only an <tt>Employee</tt> and his superiors might be allowed to view their salary.
- *
- * <p>
- * The types are suffixed &quot;Memento&quot; because they snapshot the user
- * and roles at the time that the user logs in, but are not updated after that
- * point.
- */
-package org.apache.isis.applib.security;
\ No newline at end of file
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/handler/MethodReferences.java b/api/applib/src/main/java/org/apache/isis/applib/services/MethodReferences.java
similarity index 98%
rename from core/commons/src/main/java/org/apache/isis/core/commons/handler/MethodReferences.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/MethodReferences.java
index 2fa4266..f7ecdea 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/handler/MethodReferences.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/MethodReferences.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.commons.handler;
+package org.apache.isis.applib.services;
 
 import lombok.experimental.UtilityClass;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
index 2cad28e..ffbcb9c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
@@ -53,22 +53,6 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class CommandContext {
 
-    // end::refguide[]
-    public CommandContext() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-    // tag::refguide[]
     @Getter
     private Command command;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java b/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
index 7e83574..695ff8e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
@@ -32,12 +32,14 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-// tag::refguide[]
 @Named("isisApplib.ConfigurationMenu")
 @DomainService(objectType = "isisApplib.ConfigurationMenu")
 @DomainServiceLayout(menuBar = DomainServiceLayout.MenuBar.TERTIARY)
+// tag::refguide[]
+// ...
 public class ConfigurationMenu {
 
+    // ...
     // end::refguide[]
     public static abstract class ActionDomainEvent
             extends IsisModuleApplib.ActionDomainEvent<ConfigurationMenu> {}
@@ -52,7 +54,6 @@ public class ConfigurationMenu {
     public static class ConfigurationDomainEvent
             extends ActionDomainEvent {}
 
-    // tag::refguide[]
     @Action(
             domainEvent = ConfigurationDomainEvent.class,
             semantics = SemanticsOf.SAFE
@@ -61,6 +62,7 @@ public class ConfigurationMenu {
             cssClassFa = "fa-wrench"
     )
     @MemberOrder(sequence = "500.900.1")
+    // tag::refguide[]
     public Set<ConfigurationProperty> configuration(){
         return configurationService.allProperties();
     }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintStore.java b/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintStore.java
index 8572827..4444ea4 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintStore.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintStore.java
@@ -34,15 +34,15 @@ public interface HintStore {
     // end::refguide-1[]
     // tag::refguide[]
 
-    String get(final Bookmark bookmark, String hintKey);
+    String get(final Bookmark bookmark, String hintKey);                // <.>
 
-    void set(final Bookmark bookmark, String hintKey, String value);
+    void set(final Bookmark bookmark, String hintKey, String value);    // <.>
 
-    void remove(final Bookmark bookmark, String hintKey);
+    void remove(final Bookmark bookmark, String hintKey);               // <.>
 
-    void removeAll(Bookmark bookmark);
+    void removeAll(Bookmark bookmark);                                  // <.>
 
-    Set<String> findHintKeys(Bookmark bookmark);
+    Set<String> findHintKeys(Bookmark bookmark);                        // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java b/api/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
index 5f55e2f..c413f15 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
@@ -37,7 +37,9 @@ public interface TranslationService {
      * @return
      */
     // tag::refguide[]
-    String translate(final String context, final String text);
+    String translate(                   // <.>
+            final String context,
+            final String text);
 
     // end::refguide[]
     /**
@@ -55,46 +57,40 @@ public interface TranslationService {
      * @return
      */
     // tag::refguide[]
-    String translate(final String context, final String singularText, final String pluralText, int num);
+    String translate(                   // <.>
+            final String context,
+            final String singularText,
+            final String pluralText,
+            int num);
 
     // end::refguide[]
     // tag::refguide-1[]
     enum Mode {
-
-        DISABLED (
+        DISABLED
             // end::refguide-1[]
+            (
                 configValue->
                     ("disable".equalsIgnoreCase(configValue) ||
                      "disabled".equalsIgnoreCase(configValue))
+            )
             // tag::refguide-1[]
-            // ...
-        ),
-
-        // synonym, needs to be defined, such that config beans (since 2.0) do work
-        DISABLE(
-            // end::refguide-1[]
-                configValue->false
-            // tag::refguide-1[]
-            // ...
-        ),
-
-        READ(
+        , READ
             // end::refguide-1[]
+            (
                 configValue->
                     ("read".equalsIgnoreCase(configValue) ||
                      "reader".equalsIgnoreCase(configValue))
+            )
             // tag::refguide-1[]
-            // ...
-        ),
-
-        WRITE(
+        , WRITE
             // end::refguide-1[]
+            (
                 configValue ->
                     !READ.matches(configValue) &&
                     !DISABLED.matches(configValue)
-            // tag::refguide-1[]
-            // ...
-        );
+            )
+        ;
+        // tag::refguide-1[]
         // end::refguide-1[]
 
         // -- handle values from configuration
@@ -116,7 +112,7 @@ public interface TranslationService {
             return this == WRITE;
         }
         public boolean isDisabled() {
-            return this == DISABLED || this == DISABLE;
+            return this == DISABLED;
         }
 
         // tag::refguide-1[]
@@ -142,7 +138,7 @@ public interface TranslationService {
      * </p>
      */
     // tag::refguide[]
-    Mode getMode();
+    Mode getMode();                     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
index c65f26f..c97cba3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
@@ -85,9 +85,9 @@ import lombok.extern.log4j.Log4j2;
 public class Interaction implements HasUniqueId {
 
     @Getter @Setter
-    private UUID uniqueId;
-    // end::refguide[]
+    private UUID uniqueId;                          // <.>
 
+    // end::refguide[]
     private final List<Execution<?,?>> executionGraphs = _Lists.newArrayList();
 
     /**
@@ -107,7 +107,7 @@ public class Interaction implements HasUniqueId {
      *  graph is populated, but then delegate to the PublisherService immediately at the end... ie {@link org.apache.isis.schema.ixn.v2.InteractionDto}s are published as we go, not all in a batch at the end.
      */
     // tag::refguide[]
-    public List<Execution<?,?>> getExecutions() {
+    public List<Execution<?,?>> getExecutions() {   // <.>
         // end::refguide[]
 
         return Collections.unmodifiableList(executionGraphs);
@@ -122,7 +122,7 @@ public class Interaction implements HasUniqueId {
      */
     // tag::refguide[]
     @Getter
-    private Execution<?,?> currentExecution;
+    private Execution<?,?> currentExecution;        // <.>
 
     // end::refguide[]
     /**
@@ -130,7 +130,7 @@ public class Interaction implements HasUniqueId {
      */
     // tag::refguide[]
     @Getter
-    private Execution<?,?> priorExecution;
+    private Execution<?,?> priorExecution;          // <.>
 
     // end::refguide[]
     /**
@@ -206,15 +206,15 @@ public class Interaction implements HasUniqueId {
                 execution.setReturned(result);
                 return result;
             } catch (Exception ex) {
-                
+
                 //TODO there is an issue with exceptions getting swallowed, unless this is fixed,
                 // we rather print all of them, no matter whether recognized or not later on
                 // examples are IllegalArgument- or NullPointer- exceptions being swallowed when using the
                 // WrapperFactory utilizing async calls
                 log.error("failed to execute an interaction", ex);
-                
-                // just because an exception has thrown, does not mean it is that significant; 
-                // it could be that it is recognized by an ExceptionRecognizer and is not severe 
+
+                // just because an exception has thrown, does not mean it is that significant;
+                // it could be that it is recognized by an ExceptionRecognizer and is not severe
                 // eg. unique index violation in the DB
                 getCurrentExecution().setThrew(ex);
 
@@ -322,10 +322,8 @@ public class Interaction implements HasUniqueId {
     }
     // end::refguide-1[]
 
-    // tag::refguide[]
     private final Map<String, LongAdder> maxBySequence = _Maps.newHashMap();
 
-    // end::refguide[]
     /**
      * Generates numbers in a named sequence.
      *
@@ -333,7 +331,7 @@ public class Interaction implements HasUniqueId {
      * generate sequence numbers corresponding to the sequences enumerated by the {@link Sequence} enum.
      */
     // tag::refguide[]
-    public int next(final String sequenceId) {
+    public int next(final String sequenceId) {      // <.>
         // end::refguide[]
 
         final LongAdder adder = maxBySequence.computeIfAbsent(sequenceId, this::newAdder);
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
index a647228..c960db4 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
@@ -52,26 +52,12 @@ import lombok.extern.log4j.Log4j2;
 public class InteractionContext {
 
     // end::refguide[]
-    public InteractionContext() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
     /**
      * The currently active {@link Interaction} for this thread.
      */
     // tag::refguide[]
     @Getter
-    private Interaction interaction;
+    private Interaction interaction;    // <1>
     // end::refguide[]
 
     /**
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java b/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java
index 61bafdc..c2ad2ca 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbService.java
@@ -43,29 +43,39 @@ import org.apache.isis.core.commons.internal.collections._Maps;
 // tag::refguide[]
 public interface JaxbService {
 
-    Object fromXml(JAXBContext jaxbContext, String xml);
+    Object fromXml(                                     // <.>
+            JAXBContext jaxbContext,
+            String xml);
 
-    Object fromXml(JAXBContext jaxbContext, String xml, Map<String,Object> unmarshallerProperties);
+    Object fromXml(                                     // <.>
+            JAXBContext jaxbContext,
+            String xml,
+            Map<String,Object> unmarshallerProperties);
 
     // end::refguide[]
     /**
      * As {@link #fromXml(JAXBContext, String)}, but downcast to a specific type.
      */
     // tag::refguide[]
-    <T> T fromXml(Class<T> domainClass, String xml);
+    <T> T fromXml(Class<T> domainClass, String xml);    // <.>
 
     // end::refguide[]
     /**
      * As {@link #fromXml(JAXBContext, String, Map)}, but downcast to a specific type.
      */
     // tag::refguide[]
-    <T> T fromXml(Class<T> domainClass, String xml, Map<String,Object> unmarshallerProperties);
+    <T> T fromXml(                                      // <.>
+            Class<T> domainClass,
+            String xml,
+            Map<String,Object> unmarshallerProperties);
 
-    String toXml(final Object domainObject);
-
-    String toXml(final Object domainObject, Map<String,Object> marshallerProperties);
+    String toXml(final Object domainObject);            // <.>
 
+    String toXml(                                       // <.>
+            final Object domainObject,
+            Map<String,Object> marshallerProperties);
 
+    // end::refguide[]
     /**
      * Controls whether, when generating {@link #toXsd(Object, IsisSchemas) XML schemas},
      * any of the common Isis schemas (in the namespace <code>http://org.apache.isis.schema</code>) should be included
@@ -98,7 +108,9 @@ public interface JaxbService {
         // tag::refguide[]
     }
 
-    Map<String, String> toXsd(final Object domainObject, final IsisSchemas isisSchemas);
+    Map<String, String> toXsd(                          // <.>
+            final Object domainObject,
+            final IsisSchemas isisSchemas);
 
     // end::refguide[]
     class Simple implements JaxbService {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
index a0fb471..c18724a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
@@ -26,7 +26,6 @@ import org.apache.isis.applib.services.menu.MenuBarsService;
 public interface LayoutService {
 
     // end::refguide[]
-
     /**
      * Mode of operation when downloading a layout file (while prototyping). It affects the way the file's
      * content is assembled. Once a layout file is in place, its layout data takes precedence over any
@@ -34,7 +33,6 @@ public interface LayoutService {
      */
     // tag::refguide-1[]
     enum Style {
-
         // end::refguide-1[]
         /**
          * The current layout for the domain class.
@@ -47,7 +45,6 @@ public interface LayoutService {
          */
         // tag::refguide-1[]
         CURRENT,
-
         // end::refguide-1[]
         /**
          * As per {@link #NORMALIZED}, but also with all (non-null) facets for all
@@ -62,7 +59,6 @@ public interface LayoutService {
          */
         // tag::refguide-1[]
         COMPLETE,
-
         // end::refguide-1[]
         /**
          * Default, whereby missing properties/collections/actions are added to regions,
@@ -78,7 +74,6 @@ public interface LayoutService {
          */
         // tag::refguide-1[]
         NORMALIZED,
-
         // end::refguide-1[]
         /**
          * As per {@link #NORMALIZED}, but with no properties/collections/actions.
@@ -96,19 +91,18 @@ public interface LayoutService {
     }
     // end::refguide-1[]
 
-    // end::refguide[]
     /**
      * Obtains the serialized XML form of the layout (grid) for the specified domain class.
      */
     // tag::refguide[]
-    String toXml(Class<?> domainClass, Style style);
+    String toXml(Class<?> domainClass, Style style);        // <.>
 
     // end::refguide[]
     /**
      * Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
      */
     // tag::refguide[]
-    byte[] toZip(final Style style);
+    byte[] toZip(final Style style);                        // <.>
 
     // end::refguide[]
     /**
@@ -116,7 +110,7 @@ public interface LayoutService {
      * @param type - either the current menubars (could be loaded from a file) or the fallback (obtained from metamodel facets)
      */
     // tag::refguide[]
-    String toMenuBarsXml(final MenuBarsService.Type type);
+    String toMenuBarsXml(final MenuBarsService.Type type);  // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
index 9d2cf55..0006792 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
@@ -43,8 +43,11 @@ import org.apache.isis.core.commons.internal.base._Strings;
         named = "Prototyping",
         menuBar = DomainServiceLayout.MenuBar.SECONDARY
         )
+// tag::refguide[]
+// ...
 public class LayoutServiceMenu {
 
+    // end::refguide[]
     public static abstract class ActionDomainEvent
     extends IsisModuleApplib.ActionDomainEvent<LayoutServiceMenu> {}
 
@@ -70,14 +73,21 @@ public class LayoutServiceMenu {
             named = "Download Object Layouts (ZIP)"
             )
     @MemberOrder(sequence="500.400.1")
+    // tag::refguide[]
+    // ...
     public Blob downloadLayouts(final LayoutService.Style style) {
+        // end::refguide[]
 
         final String fileName = "layouts." + style.name().toLowerCase() + ".zip";
 
         final byte[] zipBytes = layoutService.toZip(style);
         return new Blob(fileName, mimeTypeApplicationZip, zipBytes);
+
+        // tag::refguide[]
+        // ...
     }
 
+    // end::refguide[]
     public LayoutService.Style default0DownloadLayouts() {
         return LayoutService.Style.NORMALIZED;
     }
@@ -94,14 +104,20 @@ public class LayoutServiceMenu {
             named = "Download Menu Bars Layout (XML)"
             )
     @MemberOrder(sequence="500.400.2")
+    // tag::refguide[]
+    // ...
     public Clob downloadMenuBarsLayout(
             @ParameterLayout(named = "File name") final String fileName,
             final MenuBarsService.Type type) {
+        // end::refguide[]
 
         final String xml = layoutService.toMenuBarsXml(type);
 
         return new Clob(_Strings.asFileNameWithExtension(fileName,  ".xml"), "text/xml", xml);
+        // tag::refguide[]
+        // ...
     }
+    // end::refguide[]
 
     public String default0DownloadMenuBarsLayout() {
         return "menubars.layout.xml";
@@ -110,12 +126,9 @@ public class LayoutServiceMenu {
     public MenuBarsService.Type default1DownloadMenuBarsLayout() {
         return MenuBarsService.Type.DEFAULT;
     }
-
-
-    // //////////////////////////////////////
-
+    // tag::refguide[]
 
     @Inject LayoutService layoutService;
 
-
-}
\ No newline at end of file
+}
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java b/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java
index 5ca9688..72c86c7 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java
@@ -29,14 +29,14 @@ public interface MenuBarsLoaderService {
      * Whether dynamic reloading of layouts is enabled.
      */
     // tag::refguide[]
-    boolean supportsReloading();
+    boolean supportsReloading();    // <.>
 
     // end::refguide[]
     /**
      * Returns a new instance of a {@link BS3MenuBars}, else <tt>null</tt>.
      */
     // tag::refguide[]
-    BS3MenuBars menuBars();
+    BS3MenuBars menuBars();         // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java b/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
index 10197af..042318b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
@@ -51,10 +51,10 @@ public interface MenuBarsService {
      * @return
      */
     // tag::refguide[]
-    default MenuBars menuBars() {
+    default MenuBars menuBars() {           // <.>
         return menuBars(Type.DEFAULT);
     }
 
-    MenuBars menuBars(final Type type);
+    MenuBars menuBars(final Type type);     // <.>
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java b/api/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java
index b2e32d6..dbbb094 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java
@@ -36,7 +36,7 @@ public interface MessageService {
      * @see #raiseError(String)
      */
     // tag::refguide[]
-    void informUser(String message);
+    void informUser(String message);            // <.>
 
     // end::refguide[]
     /**
@@ -53,14 +53,19 @@ public interface MessageService {
      * @see #raiseError(org.apache.isis.applib.services.i18n.TranslatableString, Class, String)
      */
     // tag::refguide[]
-    String informUser(TranslatableString message, final Class<?> contextClass, final String contextMethod);
+    String informUser(                          // <.>
+            TranslatableString message,
+            final Class<?> contextClass,
+            final String contextMethod);
 
     // end::refguide[]
     /**
      * Override of {@link MessageService#informUser(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
      */
     // tag::refguide[]
-    String informUser(TranslatableString message, final String translationContext);
+    String informUser(                          // <.>
+            TranslatableString message,
+            final String translationContext);
 
     // end::refguide[]
     /**
@@ -73,7 +78,7 @@ public interface MessageService {
      * @see #informUser(String)
      */
     // tag::refguide[]
-    void warnUser(String message);
+    void warnUser(String message);              // <.>
 
     // end::refguide[]
     /**
@@ -90,14 +95,19 @@ public interface MessageService {
      * @see #raiseError(org.apache.isis.applib.services.i18n.TranslatableString, Class, String)
      */
     // tag::refguide[]
-    String warnUser(TranslatableString message, final Class<?> contextClass, final String contextMethod);
+    String warnUser(                            // <.>
+            TranslatableString message,
+            final Class<?> contextClass,
+            final String contextMethod);
 
     // end::refguide[]
     /**
      * Override of {@link MessageService#warnUser(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
      */
     // tag::refguide[]
-    String warnUser(TranslatableString message, final String translationContext);
+    String warnUser(                            // <.>
+            TranslatableString message,
+            final String translationContext);
 
     // end::refguide[]
     /**
@@ -110,7 +120,7 @@ public interface MessageService {
      * @see #informUser(String)
      */
     // tag::refguide[]
-    void raiseError(String message);
+    void raiseError(String message);            // <.>
 
     // end::refguide[]
     /**
@@ -127,14 +137,19 @@ public interface MessageService {
      * @see #warnUser(org.apache.isis.applib.services.i18n.TranslatableString, Class, String)
      */
     // tag::refguide[]
-    String raiseError(TranslatableString message, final Class<?> contextClass, final String contextMethod);
+    String raiseError(                          // <.>
+            TranslatableString message,
+            final Class<?> contextClass,
+            final String contextMethod);
 
     // end::refguide[]
     /**
      * Override of {@link MessageService#raiseError(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
      */
     // tag::refguide[]
-    String raiseError(TranslatableString message, final String translationContext);
+    String raiseError(                          // <.>
+            TranslatableString message,
+            final String translationContext);
 
 }
 // end::refguide[]
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/ioc/BeanSort.java b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/BeanSort.java
similarity index 80%
rename from core/commons/src/main/java/org/apache/isis/core/commons/internal/ioc/BeanSort.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/metamodel/BeanSort.java
index 37c271a..63bb5fd 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/ioc/BeanSort.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/BeanSort.java
@@ -16,65 +16,72 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.commons.internal.ioc;
+package org.apache.isis.applib.services.metamodel;
 
 /**
  * Top level object classification.
- *
  */
+// tag::refguide[]
 public enum BeanSort {
-
+    // end::refguide[]
     /**
      * Stateful object, with a state that can be marshaled and unmarshaled.
-     * <p> 
-     * Includes classes annotated with {@code @DomainObject}, when *not* associated 
+     * <p>
+     * Includes classes annotated with {@code @DomainObject}, when *not* associated
      * with a persistence layer. <p>  see also {@link #ENTITY}
      */
+    // tag::refguide[]
     VIEW_MODEL,
-
+    // end::refguide[]
     /**
      * Persistable object, associated with a persistence layer/context.
      * <p>
-     * Includes classes annotated with {@code @DomainObject}, when associated 
+     * Includes classes annotated with {@code @DomainObject}, when associated
      * with a persistence layer. <p>  see also {@link #VIEW_MODEL}
-     *  
+     *
      */
+    // tag::refguide[]
     ENTITY,
-
+    // end::refguide[]
     /**
-     * Injectable object, associated with a lifecycle context 
+     * Injectable object, associated with a lifecycle context
      * (application-scoped, request-scoped, ...).
      * <p>
      * to be introspected: YES
      */
-    MANAGED_BEAN_CONTRIBUTING, 
-
+    // tag::refguide[]
+    MANAGED_BEAN_CONTRIBUTING,
+    // end::refguide[]
     /**
-     * Injectable object, associated with a lifecycle context 
+     * Injectable object, associated with a lifecycle context
      * (application-scoped, request-scoped, ...).
      * <p>
      * to be introspected: NO
      */
+    // tag::refguide[]
     MANAGED_BEAN_NOT_CONTRIBUTING,
-    
+    // end::refguide[]
     /**
-     * Object associated with an 'entity' or 'bean' to act as contributer of 
+     * Object associated with an 'entity' or 'bean' to act as contributer of
      * domain actions or properties. Might also be stateful similar to VIEW_MODEL.
      */
+    // tag::refguide[]
     MIXIN,
-
+    // end::refguide[]
     /**
      * Immutable, serializable object.
      */
+    // tag::refguide[]
     VALUE,
-
+    // end::refguide[]
     /**
      * Container of objects.
      */
+    // tag::refguide[]
     COLLECTION,
-
     UNKNOWN;
-    
+    // end::refguide[]
+
     // -- SIMPLE PREDICATES
 
     public boolean isManagedBean() {
@@ -104,20 +111,23 @@ public enum BeanSort {
     public boolean isUnknown() {
         return this == UNKNOWN;
     }
-    
+
     // -- HIGER LEVEL PREDICATES
-    
+
     public boolean isToBeIntrospected() {
-        
+
         if(isUnknown()) {
             return false;
         }
         if(this == MANAGED_BEAN_NOT_CONTRIBUTING) {
             return false;
         }
-        
+
         return true;
     }
-    
 
-}
\ No newline at end of file
+
+    // tag::refguide[]
+    // ...
+}
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
index dd2ebf5..c0c3c09 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelService.java
@@ -28,7 +28,6 @@ import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.CommandDtoProcessor;
 import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
 import org.apache.isis.schema.metamodel.v2.MetamodelDto;
 
 import lombok.val;
@@ -48,16 +47,16 @@ public interface MetaModelService {
      * Provides a reverse lookup of a domain class' object type, as defined by {@link DomainObject#objectType()} (or any other mechanism that corresponds to Isis' <code>ObjectSpecIdFacet</code>).
      */
     // tag::refguide[]
-    Class<?> fromObjectType(final String objectType);
+    Class<?> fromObjectType(final String objectType);   // <.>
 
     // end::refguide[]
     /**
      * Provides a lookup of a domain class' object type, as defined by {@link DomainObject#objectType()} (or any other mechanism that corresponds to Isis' <code>ObjectSpecIdFacet</code>).
      */
     // tag::refguide[]
-    String toObjectType(final Class<?> domainType);
+    String toObjectType(final Class<?> domainType);     // <.>
 
-    void rebuild(final Class<?> domainType);
+    void rebuild(final Class<?> domainType);            // <.>
 
     // end::refguide[]
     /**
@@ -73,43 +72,41 @@ public interface MetaModelService {
      *
      */
     // tag::refguide[]
-    DomainModel getDomainModel();
+    DomainModel getDomainModel();                       // <.>
 
-    BeanSort sortOf(Class<?> domainType, Mode mode);
+    BeanSort sortOf(Class<?> domainType, Mode mode);    // <.>
 
-    BeanSort sortOf(Bookmark bookmark, Mode mode);
+    BeanSort sortOf(Bookmark bookmark, Mode mode);      // <.>
 
-    CommandDtoProcessor commandDtoProcessorFor(String memberIdentifier);
+    CommandDtoProcessor commandDtoProcessorFor(         // <.>
+                            String memberIdentifier);
 
     // end::refguide[]
     // tag::refguide-1[]
     enum Mode {
-
         // end::refguide-1[]
         /**
          * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then throw an exception.
          */
         // tag::refguide-1[]
         STRICT,
-
         // end::refguide-1[]
         /**
          * If the {@link #sortOf(Class, Mode) sort of} object type is unknown, then return {@link Sort#UNKNOWN}.
          */
         // tag::refguide-1[]
         RELAXED
-
     }
     // end::refguide-1[]
 
     // tag::refguide-2[]
     class Config {
-
         private static final int IGNORE_NOOP_FACETS = 1;
         private static final int IGNORE_INTERFACES = 2;
         private static final int IGNORE_ABSTRACT_CLASSES = 4;
         private static final int IGNORE_BUILT_IN_VALUE_TYPES = 8;
         private static final int IGNORE_MIXINS = 16;
+        // end::refguide-2[]
 
         private static final String WILDCARD = "*";
 
@@ -165,11 +162,13 @@ public interface MetaModelService {
          * this {@code Config}'s packagePrefixes.
          * @param packagePrefix - prefix to be added
          */
+        // tag::refguide-2[]
         public Config withPackagePrefix(final String packagePrefix) {
             val newPrefixes = _Sets.newHashSet(this.packagePrefixes);
             newPrefixes.add(packagePrefix);
             return new Config(mask, newPrefixes);
         }
+        // end::refguide-2[]
 
         public boolean isIgnoreNoop() {
             return hasFlag(IGNORE_NOOP_FACETS);
@@ -193,11 +192,13 @@ public interface MetaModelService {
             return (mask & x) == x;
         }
 
+        // tag::refguide-2[]
+        // ...
     }
     // end::refguide-2[]
 
     // tag::refguide[]
-    MetamodelDto exportMetaModel(final Config config);
+    MetamodelDto exportMetaModel(final Config config);  // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServiceMenu.java b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServiceMenu.java
index 0b76f27..00690db 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServiceMenu.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServiceMenu.java
@@ -53,8 +53,10 @@ import org.apache.isis.schema.metamodel.v2.MetamodelDto;
         named = "Prototyping",
         menuBar = DomainServiceLayout.MenuBar.SECONDARY
 )
+// tag::refguide[]
 public class MetaModelServiceMenu {
 
+    // end::refguide[]
     public static abstract class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<MetaModelServiceMenu> { }
 
     final MimeType mimeTypeTextCsv;
@@ -69,11 +71,8 @@ public class MetaModelServiceMenu {
         }
     }
 
-    // //////////////////////////////////////
-
     public static class DownloadMetaModelEvent extends ActionDomainEvent { }
 
-
     @Action(
             domainEvent = DownloadMetaModelEvent.class,
             semantics = SemanticsOf.NON_IDEMPOTENT, //disable client-side caching
@@ -84,9 +83,12 @@ public class MetaModelServiceMenu {
             named = "Download Meta Model (CSV)"
             )
     @MemberOrder(sequence="500.500.2")
+    // tag::refguide[]
+    // ...
     public Clob downloadMetaModelCsv(
             @ParameterLayout(named = ".csv file name")
             final String csvFileName) {
+        // end::refguide[]
 
         final DomainModel domainMembers =  metaModelService.getDomainModel();
         final List<String> list = asList(domainMembers);
@@ -95,22 +97,18 @@ public class MetaModelServiceMenu {
         return new Clob(
                 withSuffix(csvFileName, "csv"),
                 mimeTypeTextCsv, buf.toString().toCharArray());
+
+        // tag::refguide[]
+        // ...
     }
 
+    // end::refguide[]
+
     public String default0DownloadMetaModelCsv() {
         return "metamodel.csv";
     }
 
-//    private String toXml(MetamodelDto model) {
-//        return jaxbService.toXml(model);
-//    }
-
-
-    // //////////////////////////////////////
-
-
     public static class DownloadMetaModelXmlEvent extends ActionDomainEvent { }
-
     @Action(
             domainEvent = DownloadMetaModelXmlEvent.class,
             semantics = SemanticsOf.NON_IDEMPOTENT, //disable client-side caching
@@ -121,6 +119,8 @@ public class MetaModelServiceMenu {
             named = "Download Meta Model (XML)"
             )
     @MemberOrder(sequence="500.500.2")
+    // tag::refguide[]
+    // ...
     public Clob downloadMetaModelXml(
             @ParameterLayout(named = ".xml file name")
             final String fileName,
@@ -131,6 +131,7 @@ public class MetaModelServiceMenu {
             @Parameter(optionality=Optionality.MANDATORY)
             final boolean ignoreInterfaces
             ) {
+        // end::refguide[]
 
         MetaModelService.Config config =
                 new MetaModelService.Config()
@@ -150,7 +151,11 @@ public class MetaModelServiceMenu {
 
         final String xml = jaxbService.toXml(metamodelDto);
         return new Clob(_Strings.asFileNameWithExtension(fileName,  ".xml"), "text/xml", xml);
+
+        // tag::refguide[]
+        // ...
     }
+    // end::refguide[]
 
     public String validateDownloadMetaModelXml(
             final String fileName, final List<String> packagePrefixes, final boolean ignoreInterfaces) {
@@ -187,9 +192,6 @@ public class MetaModelServiceMenu {
         return true;
     }
 
-
-    // //////////////////////////////////////
-
     private static StringBuilder asBuf(final List<String> list) {
         final StringBuilder buf = new StringBuilder();
         for (final String row : list) {
@@ -243,6 +245,9 @@ public class MetaModelServiceMenu {
         return fileName;
     }
 
+    // tag::refguide[]
+
+    // ...
 
     @Inject
     MetaModelService metaModelService;
@@ -250,3 +255,4 @@ public class MetaModelServiceMenu {
     JaxbService jaxbService;
 
 }
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java b/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java
index 633610f..61419cc 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/metrics/MetricsService.java
@@ -29,7 +29,7 @@ public interface MetricsService {
      * The number of objects that have, so far in this request, been loaded from the database.
      *
      * <p>
-     *     Corresponds to the number of times that {@link javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)} is fired.
+     *     Corresponds to the number of times that <code>javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)</code> (or equivalent) is fired.
      * </p>
      *
      * <p>
@@ -37,7 +37,7 @@ public interface MetricsService {
      * </p>
      */
     // tag::refguide[]
-    int numberObjectsLoaded();
+    int numberObjectsLoaded();      // <.>
 
     // end::refguide[]
     /**
@@ -45,7 +45,7 @@ public interface MetricsService {
      * good measure of the footprint of the interaction.
      *
      * <p>
-     *     Corresponds to the number of times that {@link javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)} callback is fired.
+     *     Corresponds to the number of times that <code>javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)</code> (or equivalent) callback is fired.
      * </p>
      *
      * <p>
@@ -53,7 +53,7 @@ public interface MetricsService {
      * </p>
      */
     // tag::refguide[]
-    int numberObjectsDirtied();
+    int numberObjectsDirtied();     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java
index ebc2fcd..a8eb892 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublishedObjects.java
@@ -26,18 +26,20 @@ import org.apache.isis.applib.services.HasUsername;
 import org.apache.isis.schema.chg.v2.ChangesDto;
 
 // tag::refguide[]
-public interface PublishedObjects extends HasUniqueId, HasUsername {
+public interface PublishedObjects
+        extends HasUniqueId,            // <.>
+                HasUsername {           // <.>
 
-    Timestamp getCompletedAt();
+    Timestamp getCompletedAt();         // <.>
 
-    ChangesDto getDto();
+    int getNumberLoaded();              // <.>
+    int getNumberCreated();             // <.>
+    int getNumberUpdated();             // <.>
+    int getNumberDeleted();             // <.>
 
-    int getNumberLoaded();
-    int getNumberCreated();
-    int getNumberUpdated();
-    int getNumberDeleted();
+    int getNumberPropertiesModified();  // <.>
 
-    int getNumberPropertiesModified();
+    ChangesDto getDto();                // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherService.java b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherService.java
index dea94e0..78521d8 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherService.java
@@ -36,8 +36,8 @@ public interface PublisherService {
      * some flexibility here, though.
      */
     // tag::refguide[]
-    void publish(final Interaction.Execution<?, ?> execution);
+    void publish(final Interaction.Execution<?, ?> execution);  // <.>
 
-    void publish(final PublishedObjects publishedObjects);
+    void publish(final PublishedObjects publishedObjects);      // <.>
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/api/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
index ed26436..6e22285 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
@@ -21,12 +21,7 @@ package org.apache.isis.applib.services.queryresultscache;
 import java.util.Arrays;
 import java.util.concurrent.Callable;
 
-import org.apache.isis.core.commons.handler.MethodReferences.Call0;
-import org.apache.isis.core.commons.handler.MethodReferences.Call1;
-import org.apache.isis.core.commons.handler.MethodReferences.Call2;
-import org.apache.isis.core.commons.handler.MethodReferences.Call3;
-import org.apache.isis.core.commons.handler.MethodReferences.Call4;
-import org.apache.isis.core.commons.handler.MethodReferences.Call5;
+import org.apache.isis.applib.services.MethodReferences;
 
 import lombok.Data;
 import lombok.Getter;
@@ -45,37 +40,56 @@ import lombok.Getter;
 // tag::refguide[]
 public interface QueryResultsCache {
 
-    <T> T execute(Callable<T> callable, Class<?> callingClass, String methodName, Object... keys);
+    <T> T execute(                                      // <.>
+            Callable<T> callable,
+            Class<?> callingClass, String methodName,
+            Object... keys);
 
-    <R> R execute(Call0<? extends R> action, Class<?> callingClass, String methodName);
-    
-    <R, A0> R execute(Call1<? extends R, A0> action, Class<?> callingClass, String methodName,
+    // end::refguide[]
+
+    /**
+     * Not API, for framework use only.
+     */
+    void onTransactionEnded();                          // <.>
+
+    <R> R execute(                                      // <.>
+            MethodReferences.Call0<? extends R> action,
+            Class<?> callingClass, String methodName);
+
+    <R, A0> R execute(                                  // <.>
+            MethodReferences.Call1<? extends R, A0> action,
+            Class<?> callingClass, String methodName,
             A0 arg0);
-    
-    <R, A0, A1> R execute(Call2<? extends R, A0, A1> action, Class<?> callingClass, String methodName, 
+
+    <R, A0, A1> R execute(                              // <.>
+            MethodReferences.Call2<? extends R, A0, A1> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1);
-    
-    <R, A0, A1, A2> R execute(Call3<? extends R, A0, A1, A2> action, Class<?> callingClass, String methodName,
+
+    <R, A0, A1, A2> R execute(                          // <.>
+            MethodReferences.Call3<? extends R, A0, A1, A2> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1, A2 arg2);
-    
-    <R, A0, A1, A2, A3> R execute(Call4<? extends R, A0, A1, A2, A3> action, Class<?> callingClass, String methodName,
+
+    <R, A0, A1, A2, A3> R execute(                      // <.>
+            MethodReferences.Call4<? extends R, A0, A1, A2, A3> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1, A2 arg2, A3 arg3);
-    
-    <R, A0, A1, A2, A3, A4> R execute(Call5<? extends R, A0, A1, A2, A3, A4> action, Class<?> callingClass, String methodName,
+
+    <R, A0, A1, A2, A3, A4> R execute(                  // <.>
+            MethodReferences.Call5<? extends R, A0, A1, A2, A3, A4> action,
+            Class<?> callingClass, String methodName,
             A0 arg0, A1 arg1, A2 arg2, A3 arg3, A4 arg4);
-    
-    void onTransactionEnded();
 
-    // end::refguide[]
     // tag::refguide-1[]
     class Key {
 
         @Getter
-        private final Class<?> callingClass;
+        private final Class<?> callingClass;            // <.>
         @Getter
-        private final String methodName;
+        private final String methodName;                // <.>
         @Getter
-        private final Object[] keys;
+        private final Object[] keys;                    // <.>
 
         // end::refguide-1[]
         public Key(Class<?> callingClass, String methodName, Object... keys) {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/repository/EntityState.java b/api/applib/src/main/java/org/apache/isis/applib/services/repository/EntityState.java
index 26ed267..d3379c2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/repository/EntityState.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/repository/EntityState.java
@@ -27,25 +27,24 @@ package org.apache.isis.applib.services.repository;
  */
 // tag::refguide[]
 public enum EntityState {
-
-    not_Persistable,
-    persistable_Attached,
-    persistable_Detached,
-    persistable_Destroyed,
+    NOT_PERSISTABLE,
+    PERSISTABLE_ATTACHED,
+    PERSISTABLE_DETACHED,
+    PERSISTABLE_DESTROYED,
     // end::refguide[]
     ;
 
     public boolean isPersistable() {
-        return this != not_Persistable;
+        return this != NOT_PERSISTABLE;
     }
     public boolean isAttached() {
-        return this == persistable_Attached;
+        return this == PERSISTABLE_ATTACHED;
     }
     public boolean isDetached() {
-        return this == persistable_Detached;
+        return this == PERSISTABLE_DETACHED;
     }
     public boolean isDestroyed() {
-        return this == persistable_Destroyed;
+        return this == PERSISTABLE_DESTROYED;
     }
 
     // tag::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java b/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
index 237b417..a90dd99 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/repository/RepositoryService.java
@@ -34,13 +34,13 @@ public interface RepositoryService {
 
     // end::refguide[]
     /**
-     * Returns the EntityState of given {@code object}. Returns {@link EntityState#not_Persistable} for {@code object==null}.
+     * Returns the EntityState of given {@code object}. Returns {@link EntityState#NOT_PERSISTABLE} for {@code object==null}.
      * @param object
      * @return (non-null)
      * @since 2.0
      */
     // tag::refguide[]
-    EntityState getEntityState(@Nullable Object object);
+    EntityState getEntityState(@Nullable Object object);    // <.>
 
     // end::refguide[]
     /**
@@ -49,7 +49,7 @@ public interface RepositoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T detachedEntity(Class<T> ofType);
+    <T> T detachedEntity(Class<T> ofType);                  // <.>
 
     // end::refguide[]
     /**
@@ -58,7 +58,7 @@ public interface RepositoryService {
      * @see #isPersistent(Object)
      */
     // tag::refguide[]
-    <T> T persist(T domainObject);
+    <T> T persist(T domainObject);                          // <.>
 
     // end::refguide[]
     /**
@@ -67,7 +67,7 @@ public interface RepositoryService {
      * @see #persist(Object)
      */
     // tag::refguide[]
-    <T> T persistAndFlush(T domainObject);
+    <T> T persistAndFlush(T domainObject);                  // <.>
 
     // end::refguide[]
     /**
@@ -76,7 +76,7 @@ public interface RepositoryService {
      * @param domainObject
      */
     // tag::refguide[]
-    void remove(Object domainObject);
+    void remove(Object domainObject);                       // <.>
 
     // end::refguide[]
     /**
@@ -85,7 +85,7 @@ public interface RepositoryService {
      * @param domainObject
      */
     // tag::refguide[]
-    void removeAndFlush(Object domainObject);
+    void removeAndFlush(Object domainObject);               // <.>
 
     // end::refguide[]
     /**
@@ -93,7 +93,7 @@ public interface RepositoryService {
      *      * within the specified range..
      */
     // tag::refguide[]
-    <T> List<T> allInstances(Class<T> ofType);
+    <T> List<T> allInstances(Class<T> ofType);              // <.>
 
     // end::refguide[]
     /**
@@ -121,7 +121,9 @@ public interface RepositoryService {
      * @return
      */
     // tag::refguide[]
-    <T> List<T> allInstances(Class<T> ofType, long start, long count);
+    <T> List<T> allInstances(                               // <.>
+            Class<T> ofType,
+            long start, long count);
 
     // end::refguide[]
     /**
@@ -129,7 +131,9 @@ public interface RepositoryService {
      * within the specified range.
      */
     // tag::refguide[]
-    <T> List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate);
+    <T> List<T> allMatches(                                 // <.>
+            Class<T> ofType,
+            Predicate<? super T> predicate);
 
     // end::refguide[]
     /**
@@ -159,7 +163,10 @@ public interface RepositoryService {
      * @return
      */
     // tag::refguide[]
-    <T> List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate, long start, long count);
+    <T> List<T> allMatches(                                 // <.>
+            Class<T> ofType,
+            Predicate<? super T> predicate,
+            long start, long count);
 
     // end::refguide[]
     /**
@@ -177,7 +184,7 @@ public interface RepositoryService {
      * </p>
      */
     // tag::refguide[]
-    <T> List<T> allMatches(Query<T> query);
+    <T> List<T> allMatches(Query<T> query);                 // <.>
 
     // end::refguide[]
     /**
@@ -195,7 +202,9 @@ public interface RepositoryService {
      * </p>
      */
     // tag::refguide[]
-    <T> Optional<T> uniqueMatch(Class<T> ofType, Predicate<T> predicate);
+    <T> Optional<T> uniqueMatch(                            // <.>
+            Class<T> ofType,
+            Predicate<T> predicate);
 
     // end::refguide[]
     /**
@@ -213,7 +222,7 @@ public interface RepositoryService {
      * @see #firstMatch(Query)
      */
     // tag::refguide[]
-    <T> Optional<T> uniqueMatch(Query<T> query);
+    <T> Optional<T> uniqueMatch(Query<T> query);            // <.>
 
     // end::refguide[]
     /**
@@ -231,7 +240,9 @@ public interface RepositoryService {
      * </p>
      */
     // tag::refguide[]
-    <T> Optional<T> firstMatch(Class<T> ofType, Predicate<T> predicate);
+    <T> Optional<T> firstMatch(                             // <.>
+            Class<T> ofType,
+            Predicate<T> predicate);
 
     // end::refguide[]
     /**
@@ -245,7 +256,7 @@ public interface RepositoryService {
      * @see #firstMatch(Query)
      */
     // tag::refguide[]
-    <T> Optional<T> firstMatch(Query<T> query);
+    <T> Optional<T> firstMatch(Query<T> query);             // <.>
     // end::refguide[]
 
     // -- DEPRECATIONS
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingService.java b/api/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingService.java
index a4574b3..9226ba8c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/routing/RoutingService.java
@@ -26,8 +26,9 @@ import org.apache.isis.applib.annotation.Programmatic;
 // tag::refguide[]
 public interface RoutingService {
 
-    boolean canRoute(Object original);
-    Object route(Object original);
+    boolean canRoute(Object original);  // <.>
+
+    Object route(Object original);      // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java b/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
index f45cae7..758a0bb 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
@@ -46,64 +46,28 @@ import lombok.extern.log4j.Log4j2;
  * available for use; no further configuration is required.
  */
 // tag::refguide[]
-@Service
-@Order(OrderPrecedence.EARLY)
-@Primary
-@Named("isisApplib.Scratchpad")
-@Qualifier("Default")
-@IsisSessionScope
-@Log4j2
-public class Scratchpad {
-
-    // end::refguide[]
-    public Scratchpad(){
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-    // end::refguide[]
-    /**
-     * Provides a mechanism for each object being acted upon to pass
-     * data to the next object.
-     */
-    // tag::refguide[]
-    private final Map<Object, Object> userData = _Maps.newHashMap();
+public interface Scratchpad {
 
     // end::refguide[]
     /**
      * Obtain user-data, as set by a previous object being acted upon.
      */
     // tag::refguide[]
-    public Object get(Object key) {
-        return userData.get(key);
-    }
+    public Object get(Object key);
 
     // end::refguide[]
     /**
      * Set user-data, for the use of a subsequent object being acted upon.
      */
     // tag::refguide[]
-    public void put(Object key, Object value) {
-        userData.put(key, value);
-    }
+    public void put(Object key, Object value);
 
     // end::refguide[]
     /**
      * Clear any user data.
      */
     // tag::refguide[]
-    public void clear() {
-        userData.clear();
-    }
+    public void clear();
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java b/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
index 31acc4e..f10b74d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingService.java
@@ -40,32 +40,15 @@ public interface SessionLoggingService {
         RESTART
     }
 
-    void log(Type type, String username, Date date, CausedBy causedBy, String sessionId);
+    void log(
+            Type type,
+            String username,
+            Date date,
+            CausedBy causedBy,
+            String sessionId        // <.>
+    );
     // end::refguide[]
 
-    // tag::refguide-1[]
-    class Stderr implements SessionLoggingService {
-
-        @Override
-        public void log(final Type type, final String username, final Date date, final CausedBy causedBy, final String sessionId) {
-            final StringBuilder logMessage = new StringBuilder();
-            logMessage.append("User '").append(username);
-            logMessage.append("' with sessionId '").append(sessionId)
-            .append("' has logged ");
-            if (type == Type.LOGIN) {
-                logMessage.append("in");
-            } else {
-                logMessage.append("out");
-            }
-            logMessage.append(" at '").append(date).append("'.");
-            if (causedBy == CausedBy.SESSION_EXPIRATION) {
-                logMessage.append("Cause: session expiration");
-            }
-            System.err.println(logMessage);
-        }
-    }
-    // end::refguide-1[]
-
     // tag::refguide[]
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingServiceLogging.java b/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingServiceLogging.java
new file mode 100644
index 0000000..fa7a9b1
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/session/SessionLoggingServiceLogging.java
@@ -0,0 +1,51 @@
+package org.apache.isis.applib.services.session;
+
+import java.util.Date;
+
+import javax.inject.Named;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Service;
+
+import org.apache.isis.applib.annotation.OrderPrecedence;
+
+import lombok.extern.log4j.Log4j2;
+
+@Service
+@Named("isisApplib.SessionLoggingServiceLogging")
+@Order(OrderPrecedence.LATE)
+@Primary
+@Qualifier("logging")
+@Log4j2
+// tag::refguide[]
+public class SessionLoggingServiceLogging implements SessionLoggingService {
+
+    @Override
+    public void log(
+            final Type type,
+            final String username,
+            final Date date,
+            final CausedBy causedBy,
+            final String sessionId) {
+
+        if(log.isDebugEnabled()) {
+            final StringBuilder logMessage = new StringBuilder();
+            logMessage.append("User '").append(username);
+            logMessage.append("' with sessionId '").append(sessionId)
+            .append("' has logged ");
+            if (type == Type.LOGIN) {
+                logMessage.append("in");
+            } else {
+                logMessage.append("out");
+            }
+            logMessage.append(" at '").append(date).append("'.");
+            if (causedBy == CausedBy.SESSION_EXPIRATION) {
+                logMessage.append("Cause: session expiration");
+            }
+            log.debug(logMessage);
+        }
+    }
+}
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
index afbbad5..f5e94e2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/sudo/SudoService.java
@@ -38,7 +38,8 @@ public interface SudoService {
      * If included in the list of roles, then will disable security checks (can view and use all object members).
      */
     // tag::refguide[]
-    String ACCESS_ALL_ROLE = SudoService.class.getName() + "#accessAll";
+    String ACCESS_ALL_ROLE =                                // <.>
+            SudoService.class.getName() + "#accessAll";
 
     // end::refguide[]
     /**
@@ -49,7 +50,9 @@ public interface SudoService {
      * </p>
      */
     // tag::refguide[]
-    void sudo(String username, final Runnable runnable);
+    void sudo(                                              // <.>
+            String username,
+            final Runnable runnable);
 
     // end::refguide[]
     /**
@@ -60,21 +63,27 @@ public interface SudoService {
      * </p>
      */
     // tag::refguide[]
-    <T> T sudo(String username, final Callable<T> callable);
+    <T> T sudo(                                             // <.>
+            String username,
+            final Callable<T> callable);
 
     // end::refguide[]
     /**
      * Executes the supplied block, with the {@link UserService} returning the specified user with the specified roles.
      */
     // tag::refguide[]
-    void sudo(String username, List<String> roles, final Runnable runnable);
+    void sudo(                                              // <.>
+            String username, List<String> roles,
+            final Runnable runnable);
 
     // end::refguide[]
     /**
      * Executes the supplied block, with the {@link UserService} returning the specified user with the specified roles.
      */
     // tag::refguide[]
-    <T> T sudo(String username, List<String> roles, final Callable<T> callable);
+    <T> T sudo(                                             // <.>
+            String username, List<String> roles,
+            final Callable<T> callable);
 
     // end::refguide[]
 
@@ -95,9 +104,9 @@ public interface SudoService {
          * </p>
          */
         // tag::refguide-1[]
-        void runAs(String username, List<String> roles);
+        void runAs(String username, List<String> roles);    // <.>
 
-        void releaseRunAs();
+        void releaseRunAs();                                // <.>
     }
     // end::refguide-1[]
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerService.java b/api/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerService.java
index 15ba710..6dca161 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerService.java
@@ -28,10 +28,13 @@ import org.apache.isis.applib.annotation.ViewModel;
 // tag::refguide[]
 public interface SwaggerService {
 
+    String generateSwaggerSpec(             // <.>
+            final Visibility visibility,
+            final Format format);
+
     // end::refguide[]
     // tag::refguide[]
     enum Visibility {
-
         // end::refguide[]
         /**
          * Specification for use by third-party clients, ie public use.
@@ -42,8 +45,7 @@ public interface SwaggerService {
          * </p>
          */
         // tag::refguide[]
-        PUBLIC,
-
+        PUBLIC,                             // <.>
         // end::refguide[]
         /**
          * Specification for use only by internally-managed clients, ie private internal use.
@@ -52,14 +54,15 @@ public interface SwaggerService {
          * Includes specifications of domain entities as well as view models.
          * </p>
          */
-        PRIVATE,
-
+        // tag::refguide[]
+        PRIVATE,                            // <.>
         // end::refguide[]
         /**
          * As {@link #PRIVATE}, also including any prototype actions (where {@link Action#restrictTo()} set to
          * {@link RestrictTo#PROTOTYPING}).
          */
-        PRIVATE_WITH_PROTOTYPING
+        // tag::refguide[]
+        PRIVATE_WITH_PROTOTYPING            // <.>
         // end::refguide[]
         ;
 
@@ -67,12 +70,11 @@ public interface SwaggerService {
             return this == PUBLIC;
         }
         // tag::refguide[]
-
     }
 
     enum Format {
-        JSON,
-        YAML
+        JSON,                               // <.>
+        YAML                                // <.>
         // end::refguide[]
         ;
         /**
@@ -88,7 +90,5 @@ public interface SwaggerService {
         // tag::refguide[]
     }
 
-    String generateSwaggerSpec(final Visibility visibility, final Format format);
-
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java b/api/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java
index 3c73edc..a9cf899 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java
@@ -32,13 +32,13 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 // tag::refguide[]
 public interface TableColumnOrderService {
 
-    List<String> orderParented(
+    List<String> orderParented(                 // <.>
             final Object parent,
             final String collectionId,
             final Class<?> collectionType,
             final List<String> propertyIds);
 
-    List<String> orderStandalone(
+    List<String> orderStandalone(               // <.>
             final Class<?> collectionType,
             final List<String> propertyIds);
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/title/TitleService.java b/api/applib/src/main/java/org/apache/isis/applib/services/title/TitleService.java
index 38e4e6f..46ba64a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/title/TitleService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/title/TitleService.java
@@ -28,7 +28,7 @@ public interface TitleService {
      * Isis viewers.
      */
     // tag::refguide[]
-    String titleOf(Object domainObject);
+    String titleOf(Object domainObject);        // <.>
 
     // end::refguide[]
     /**
@@ -36,7 +36,7 @@ public interface TitleService {
      * Isis viewers.
      */
     // tag::refguide[]
-    String iconNameOf(Object domainObject);
+    String iconNameOf(Object domainObject);     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/security/RoleMemento.java b/api/applib/src/main/java/org/apache/isis/applib/services/user/RoleMemento.java
similarity index 94%
rename from api/applib/src/main/java/org/apache/isis/applib/security/RoleMemento.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/user/RoleMemento.java
index a220a2b..1453a09 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/security/RoleMemento.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/user/RoleMemento.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.security;
+package org.apache.isis.applib.services.user;
 
 import org.apache.isis.applib.annotation.MemberOrder;
 
@@ -48,18 +48,22 @@ public final class RoleMemento {
         this.description = description;
     }
 
-    // tag::refguide[]
     public String title() {
         return name;
     }
 
     @MemberOrder(sequence = "1.1")
+    // tag::refguide[]
     @Getter
     private final String name;
 
+    // end::refguide[]
     @MemberOrder(sequence = "1.2")
+    // tag::refguide[]
     @Getter
     private final String description;
 
+    // ...
+
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java b/api/applib/src/main/java/org/apache/isis/applib/services/user/UserMemento.java
similarity index 95%
rename from api/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java
rename to api/applib/src/main/java/org/apache/isis/applib/services/user/UserMemento.java
index bf3bb7a..d90ea91 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/security/UserMemento.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/user/UserMemento.java
@@ -17,10 +17,11 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.security;
+package org.apache.isis.applib.services.user;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.isis.applib.annotation.MemberOrder;
@@ -61,17 +62,15 @@ public final class UserMemento {
         this.roles.addAll(roles);
     }
 
-    // tag::refguide[]
     public String title() {
         return name;
     }
 
-    // end::refguide[]
     /**
      * The user's login name.
      */
-    // tag::refguide[]
     @MemberOrder(sequence = "1.1")
+    // tag::refguide[]
     @Getter
     private final String name;
 
@@ -79,11 +78,12 @@ public final class UserMemento {
     /**
      * The roles associated with this user.
      */
-    // tag::refguide[]
-    @Getter
     @MemberOrder(sequence = "1.1")
     private final List<RoleMemento> roles = new ArrayList<RoleMemento>();
-
+    // tag::refguide[]
+    public List<RoleMemento> getRoles() {
+        return Collections.unmodifiableList(roles);
+    }
     // end::refguide[]
     /**
      * Determine if the specified name is this user.
@@ -140,5 +140,7 @@ public final class UserMemento {
 
     // tag::refguide[]
 
+    // ...
+
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/user/UserService.java b/api/applib/src/main/java/org/apache/isis/applib/services/user/UserService.java
index 5a6e855..e12ff02 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/user/UserService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/user/UserService.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.applib.services.user;
 
-import org.apache.isis.applib.security.UserMemento;
-
 // tag::refguide[]
 public interface UserService {
 
@@ -29,7 +27,7 @@ public interface UserService {
      * Get the details about the current user.
      */
     // tag::refguide[]
-    UserMemento getUser();
+    UserMemento getUser();      // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/user/package-info.java b/api/applib/src/main/java/org/apache/isis/applib/services/user/package-info.java
index 36c8fc4..3fd69e1 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/user/package-info.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/user/package-info.java
@@ -18,8 +18,20 @@
  */
 
 /**
- * The {@link UserService} allows the domain object to obtain the identity of the user interacting with said object.
+ * This package defines types that represent the
+ * currently logged-in {@link org.apache.isis.applib.services.user.UserMemento user}
+ * and their {@link org.apache.isis.applib.services.user.RoleMemento role}s, as well as
+ * {@link org.apache.isis.applib.services.user.UserService} to obtain the current user.
  *
+ * <p>
+ * Typically domain objects do not need to have any knowledge of <i>who</i>
+ * is using them, because authorization is provided declaratively by the
+ * framework and is type-based.  However, there are occasions; for example,
+ * only an <tt>Employee</tt> and his superiors might be allowed to view their salary.
  *
+ * <p>
+ * The types are suffixed &quot;Memento&quot; because they snapshot the user
+ * and roles at the time that the user logs in, but are not updated after that
+ * point.
  */
 package org.apache.isis.applib.services.user;
\ No newline at end of file
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/userprof/UserProfileService.java b/api/applib/src/main/java/org/apache/isis/applib/services/userprof/UserProfileService.java
index 57a7415..f9e5651 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/userprof/UserProfileService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/userprof/UserProfileService.java
@@ -41,7 +41,7 @@ public interface UserProfileService {
      * </p>
      */
     // tag::refguide[]
-    String userProfileName();
+    String userProfileName();   // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/userreg/UserRegistrationService.java b/api/applib/src/main/java/org/apache/isis/applib/services/userreg/UserRegistrationService.java
index 2de2650..a8b50f4 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/userreg/UserRegistrationService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/userreg/UserRegistrationService.java
@@ -24,13 +24,6 @@ import org.apache.isis.applib.annotation.Programmatic;
  * Required API to enable users to register an account on the system (aka &quot;sign up&quot;).
  *
  * <p>
- *     The framework does <i>not</i> provide an implementation of this API, because different Isis applications will
- *     be configured to use different security mechanisms.  However, do note that the (non-ASF)
- *     <a href="https://github.com/isisaddons/isis-module-security">Isis addon security module</a> does provide
- *     an implementation of this service.
- * </p>
- *
- * <p>
  *     User registration also requires that the {@link EmailNotificationService} and
  *     {@link org.apache.isis.applib.services.email.EmailService} to be configured.  The framework provides default
  *     implementations of both of these services.  The notification service requires no further configuration.
@@ -41,13 +34,13 @@ import org.apache.isis.applib.annotation.Programmatic;
 // tag::refguide[]
 public interface UserRegistrationService {
 
-    boolean usernameExists(String username);
+    boolean usernameExists(String username);                                // <.>
 
-    void registerUser(UserDetails userDetails);
+    boolean emailExists(String emailAddress);                               // <.>
 
-    boolean emailExists(String emailAddress);
+    void registerUser(UserDetails userDetails);                             // <.>
 
-    boolean updatePasswordByEmail(String emailAddress, String password);
+    boolean updatePasswordByEmail(String emailAddress, String password);    // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
index f042d97..59e1ef2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
@@ -24,16 +24,16 @@ import java.util.function.Consumer;
 
 import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
-import org.apache.isis.core.commons.handler.MethodReferences.Call1;
-import org.apache.isis.core.commons.handler.MethodReferences.Call2;
-import org.apache.isis.core.commons.handler.MethodReferences.Call3;
-import org.apache.isis.core.commons.handler.MethodReferences.Call4;
-import org.apache.isis.core.commons.handler.MethodReferences.Call5;
-import org.apache.isis.core.commons.handler.MethodReferences.Run1;
-import org.apache.isis.core.commons.handler.MethodReferences.Run2;
-import org.apache.isis.core.commons.handler.MethodReferences.Run3;
-import org.apache.isis.core.commons.handler.MethodReferences.Run4;
-import org.apache.isis.core.commons.handler.MethodReferences.Run5;
+import org.apache.isis.applib.services.MethodReferences.Call1;
+import org.apache.isis.applib.services.MethodReferences.Call2;
+import org.apache.isis.applib.services.MethodReferences.Call3;
+import org.apache.isis.applib.services.MethodReferences.Call4;
+import org.apache.isis.applib.services.MethodReferences.Call5;
+import org.apache.isis.applib.services.MethodReferences.Run1;
+import org.apache.isis.applib.services.MethodReferences.Run2;
+import org.apache.isis.applib.services.MethodReferences.Run3;
+import org.apache.isis.applib.services.MethodReferences.Run4;
+import org.apache.isis.applib.services.MethodReferences.Run5;
 
 /**
  * Binds to a domain object, to prepare for type-safe asynchronous action invocation.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index e903e32..72bbd83 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -27,6 +27,8 @@ import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 
+import static org.apache.isis.core.commons.collections.ImmutableEnumSet.*;
+
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
 import lombok.experimental.UtilityClass;
@@ -79,76 +81,72 @@ public interface WrapperFactory {
      *
      * @see WrapperFactory#wrap(Object, ImmutableEnumSet)
      */
-    // tag::refguide-1[]
     @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
+    // tag::refguide-1[]
     enum ExecutionMode {
-
         // end::refguide-1[]
         /**
          * Skip all business rules.
          */
         // tag::refguide-1[]
         SKIP_RULE_VALIDATION,
-
         // end::refguide-1[]
         /**
          * Skip execution.
          */
         // tag::refguide-1[]
         SKIP_EXECUTION,
-
         // end::refguide-1[]
         /**
          * Don't fail fast, swallow any exception during validation or execution.
          */
         // tag::refguide-1[]
         SWALLOW_EXCEPTIONS,
-
     }
     // end::refguide-1[]
 
     // tag::refguide-2[]
     @UtilityClass
     class ExecutionModes {
-
         // end::refguide-2[]
         /**
          * Validate all business rules and then execute. May throw exceptions in order to fail fast.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> EXECUTE = ImmutableEnumSet.noneOf(ExecutionMode.class);
-
+        public static final ImmutableEnumSet<ExecutionMode> EXECUTE =
+                                noneOf(ExecutionMode.class);
         // end::refguide-2[]
         /**
          * Skip all business rules and then execute, does throw an exception if execution fails.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES = ImmutableEnumSet.of(ExecutionMode.SKIP_RULE_VALIDATION);
-
+        public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES =
+                                of(ExecutionMode.SKIP_RULE_VALIDATION);
         // end::refguide-2[]
         /**
          * Validate all business rules but do not execute, throw an exception if validation
          * fails.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE = ImmutableEnumSet.of(ExecutionMode.SKIP_EXECUTION);
-
+        public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE =
+                                of(ExecutionMode.SKIP_EXECUTION);
         // end::refguide-2[]
         /**
          * Validate all business rules and then execute, but don't throw an exception if validation
          * or execution fails.
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> TRY = ImmutableEnumSet.of(ExecutionMode.SWALLOW_EXCEPTIONS);
-
+        public static final ImmutableEnumSet<ExecutionMode> TRY =
+                                of(ExecutionMode.SWALLOW_EXCEPTIONS);
         // end::refguide-2[]
         /**
          * Skips all steps.
          * @since 2.0
          */
         // tag::refguide-2[]
-        public static final ImmutableEnumSet<ExecutionMode> NOOP = ImmutableEnumSet.of(ExecutionMode.SKIP_RULE_VALIDATION, ExecutionMode.SKIP_EXECUTION);
-
+        public static final ImmutableEnumSet<ExecutionMode> NOOP =
+                                of(ExecutionMode.SKIP_RULE_VALIDATION,
+                                   ExecutionMode.SKIP_EXECUTION);
     }
     // end::refguide-2[]
 
@@ -160,14 +158,14 @@ public interface WrapperFactory {
      * then should just return the object back unchanged.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject);
+    <T> T wrap(T domainObject);                                     // <.>
 
     // end::refguide[]
     /**
      * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
      */
     // tag::refguide[]
-    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);
+    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
 
     // end::refguide[]
     /**
@@ -175,7 +173,7 @@ public interface WrapperFactory {
      * to make this feature more discoverable.
      */
     // tag::refguide[]
-    <T> T wrapTry(T domainObject);
+    <T> T wrapTry(T domainObject);                                  // <.>
 
     // end::refguide[]
     /**
@@ -183,7 +181,7 @@ public interface WrapperFactory {
      * to make this feature more discoverable.
      */
     // tag::refguide[]
-    <T> T wrapNoExecute(T domainObject);
+    <T> T wrapNoExecute(T domainObject);                            // <.>
 
     // end::refguide[]
     /**
@@ -191,7 +189,7 @@ public interface WrapperFactory {
      * to make this feature more discoverable.
      */
     // tag::refguide[]
-    <T> T wrapSkipRules(T domainObject);
+    <T> T wrapSkipRules(T domainObject);                            // <.>
 
     // end::refguide[]
     /**
@@ -203,7 +201,8 @@ public interface WrapperFactory {
      * etc.), but doesn't modify the model.
      */
     // tag::refguide[]
-    <T> T wrap(T domainObject, ImmutableEnumSet<ExecutionMode> mode);
+    <T> T wrap(T domainObject,                                      // <.>
+               ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
@@ -214,7 +213,7 @@ public interface WrapperFactory {
      * should just return the object back unchanged.
      */
     // tag::refguide[]
-    <T> T unwrap(T possibleWrappedDomainObject);
+    <T> T unwrap(T possibleWrappedDomainObject);                    // <.>
 
     // end::refguide[]
     /**
@@ -226,7 +225,7 @@ public interface WrapperFactory {
      * @return
      */
     // tag::refguide[]
-    <T> boolean isWrapper(T possibleWrappedDomainObject);
+    <T> boolean isWrapper(T possibleWrappedDomainObject);           // <.>
 
     // end::refguide[]
 
@@ -245,7 +244,8 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> AsyncWrap<T> async(T domainObject, ImmutableEnumSet<ExecutionMode> mode);
+    <T> AsyncWrap<T> async(T domainObject,                          // <.>
+                           ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
@@ -257,7 +257,7 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    default <T> AsyncWrap<T> async(T domainObject) {
+    default <T> AsyncWrap<T> async(T domainObject) {                // <.>
         // end::refguide[]
 
         return async(domainObject, ExecutionModes.EXECUTE);
@@ -279,7 +279,9 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> AsyncWrap<T> asyncMixin(Class<T> mixinClass, Object mixedIn, ImmutableEnumSet<ExecutionMode> mode);
+    <T> AsyncWrap<T> asyncMixin(                                    // <.>
+                        Class<T> mixinClass, Object mixedIn,
+                        ImmutableEnumSet<ExecutionMode> mode);
 
     // end::refguide[]
     /**
@@ -292,7 +294,8 @@ public interface WrapperFactory {
      * @since 2.0
      */
     // tag::refguide[]
-    default <T> AsyncWrap<T> asyncMixin(Class<T> mixinClass, Object mixedIn) {
+    default <T> AsyncWrap<T> asyncMixin(                            // <.>
+                        Class<T> mixinClass, Object mixedIn) {
         // end::refguide[]
 
         return asyncMixin(mixinClass, mixedIn, ExecutionModes.EXECUTE);
@@ -312,7 +315,7 @@ public interface WrapperFactory {
      * {@link #addInteractionListener(InteractionListener)}.
      */
     // tag::refguide[]
-    List<InteractionListener> getListeners();
+    List<InteractionListener> getListeners();                       // <.>
 
     // end::refguide[]
     /**
@@ -329,7 +332,7 @@ public interface WrapperFactory {
      * @return
      */
     // tag::refguide[]
-    boolean addInteractionListener(InteractionListener listener);
+    boolean addInteractionListener(InteractionListener listener);   // <.>
 
     // end::refguide[]
     /**
@@ -346,9 +349,10 @@ public interface WrapperFactory {
      * @return
      */
     // tag::refguide[]
-    boolean removeInteractionListener(InteractionListener listener);
+    boolean removeInteractionListener(                              // <.>
+                    InteractionListener listener);
 
-    void notifyListeners(InteractionEvent ev);
+    void notifyListeners(InteractionEvent ev);                      // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java
index 8536f13..08f15fd 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java
@@ -24,12 +24,10 @@ import org.apache.isis.applib.services.HasUniqueId;
 
 import lombok.Data;
 
-// tag::refguide[]
 @Data(staticConstructor = "of")
+// tag::refguide[]
 public final class TransactionId implements HasUniqueId {
-
     private final UUID uniqueId;
-
     // end::refguide[]
     /**
      * The {@link HasUniqueId#getUniqueId()} is actually an identifier for the request/
@@ -38,7 +36,6 @@ public final class TransactionId implements HasUniqueId {
      */
     // tag::refguide[]
     private final int sequence;
-
     // end::refguide[]
     private static final TransactionId EMPTY = TransactionId.of(UUID.fromString("0000-00-00-00-000000"), 0);
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
index 27264a9..578d883 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
@@ -35,62 +35,71 @@ public interface TransactionService {
      * @return nullable
      */
     // tag::refguide[]
-    TransactionId currentTransactionId();
-
-    // end::refguide[]
-    /**
-     * Flush all changes to the object store.
-     *
-     * <p>
-     * Occasionally useful to ensure that newly persisted domain objects
-     * are flushed to the database prior to a subsequent repository query.
-     * </p>
-     */
-    // tag::refguide[]
-    void flushTransaction();
+    TransactionId currentTransactionId();                   // <.>
 
     // end::refguide[]
     /**
      * @return - the state of the current transaction.  If there is no current transaction, then returns {@link TransactionState#NONE}.
      */
     // tag::refguide[]
-    TransactionState currentTransactionState();
+    TransactionState currentTransactionState();             // <.>
 
     // end::refguide[]
     /**
-     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-     * boundary creates a new one.
+     * Flush all changes to the object store.
      *
-     * @param task
+     * <p>
+     * Occasionally useful to ensure that newly persisted domain objects
+     * are flushed to the database prior to a subsequent repository query.
+     * </p>
      */
     // tag::refguide[]
-    void executeWithinTransaction(Runnable task);
+    void flushTransaction();                                // <.>
 
     // end::refguide[]
+
     /**
-     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
-     * boundary creates a new one.
+     * Commits the current transaction (if there is one), and begins a new one.
      *
-     * @param task
+     * If there is no current transaction, then is a no-op.
      */
     // tag::refguide[]
-    <T> T executeWithinTransaction(Supplier<T> task);
+    void nextTransaction();                                 // <.>
 
-    // end::refguide[]
-    /**
-     * Runs given {@code task} within its own (new) transactional boundary.
-     * @param task
-     */
-    // tag::refguide[]
-    void executeWithinNewTransaction(Runnable task);
+//    // end::refguide[]
+//
+//   not sure there's any need for these additional methods?
+//   in any case, the executeWithinNewTransaction at time of writing is incorrect (doesn't create a new xactn).
+//
+//    /**
+//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+//     * boundary creates a new one.
+//     *
+//     * @param task
+//     */
+//    void executeWithinTransaction(Runnable task);           // <.>
+//
+//    /**
+//     * Runs given {@code task} within an existing transactional boundary, or in the absence of such a
+//     * boundary creates a new one.
+//     *
+//     * @param task
+//     */
+//    <T> T executeWithinTransaction(Supplier<T> task);       // <.>
+//
+//    /**
+//     * Runs given {@code task} within its own (new) transactional boundary.
+//     * @param task
+//     */
+//    void executeWithinNewTransaction(Runnable task);        // <.>
+//
+//    /**
+//     * Runs given {@code task} within its own (new) transactional boundary.
+//     * @param task
+//     */
+//    <T> T executeWithinNewTransaction(Supplier<T> task);    // <.>
 
-    // end::refguide[]
-    /**
-     * Runs given {@code task} within its own (new) transactional boundary.
-     * @param task
-     */
     // tag::refguide[]
-    <T> T executeWithinNewTransaction(Supplier<T> task);
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionState.java b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionState.java
index d1be4e4..4585d03 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionState.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionState.java
@@ -20,14 +20,12 @@ package org.apache.isis.applib.services.xactn;
 
 // tag::refguide[]
 public enum TransactionState {
-
     // end::refguide[]
     /**
      * No transaction exists.
      */
     // tag::refguide[]
     NONE,
-
     // end::refguide[]
     /**
      * Started, still in progress.
@@ -37,7 +35,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     IN_PROGRESS,
-
     // end::refguide[]
     /**
      * Started, but has hit an exception.
@@ -51,7 +48,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     MUST_ABORT,
-
     // end::refguide[]
     /**
      * Completed, having successfully committed.
@@ -61,7 +57,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     COMMITTED,
-
     // end::refguide[]
     /**
      * Completed, having aborted.
@@ -71,7 +66,6 @@ public enum TransactionState {
      */
     // tag::refguide[]
     ABORTED
-
     // end::refguide[]
     ;
 
@@ -111,6 +105,5 @@ public enum TransactionState {
     }
 
     // tag::refguide[]
-
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
index 88e6bd9..07c399d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
@@ -78,9 +78,11 @@ public interface XmlSnapshotService {
     // end::refguide-3[]
 
     // tag::refguide[]
-    XmlSnapshotService.Snapshot snapshotFor(final Object domainObject);
+    XmlSnapshotService.Snapshot snapshotFor(                    // <.>
+                                    final Object domainObject);
 
-    XmlSnapshotService.Builder builderFor(final Object domainObject);
+    XmlSnapshotService.Builder builderFor(                      // <.>
+                                    final Object domainObject);
 
     // end::refguide[]
     /**
@@ -88,28 +90,31 @@ public interface XmlSnapshotService {
      * {@link Snapshot#getXsdDocumentAsString()}) back into a {@link Document W3C Document}.
      */
     // tag::refguide[]
-    Document asDocument(String xmlStr);
+    Document asDocument(String xmlStr);                         // <.>
 
     // end::refguide[]
     /**
      * Convenience method to extract value of an XML element, based on its type.
      */
     // tag::refguide[]
-    <T> T getChildElementValue(final Element el, final String tagname, final Class<T> expectedCls);
+    <T> T getChildElementValue(                                 // <.>
+            final Element el, final String tagname,
+            final Class<T> expectedCls);
 
     // end::refguide[]
     /**
      * Convenience method to walk XML document.
      */
     // tag::refguide[]
-    Element getChildElement(final Element el, final String tagname);
+    Element getChildElement(                                    // <.>
+            final Element el, final String tagname);
 
     // end::refguide[]
     /**
      * Convenience method to obtain value of child text node.
      */
     // tag::refguide[]
-    String getChildTextValue(final Element el);
+    String getChildTextValue(final Element el);                 // <.>
 
 }
 // end::refguide[]
diff --git a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistry.java b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistry.java
index e983dfd..bc1c68c 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistry.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeRegistry.java
@@ -38,7 +38,7 @@ import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.internal.collections._Sets;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.commons.internal.reflection._Reflect;
 
 import static org.apache.isis.core.commons.internal.base._With.requires;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 1bc20bc..e565760 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -50,7 +50,7 @@ import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.metamodel.commons.MethodInvocationPreprocessor;
 import org.apache.isis.core.metamodel.commons.ThrowableExtensions;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 6bc4609..53277ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -21,7 +21,7 @@ import java.util.stream.Collectors;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.inject.ServiceInjector;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.metamodel.authorization.standard.AuthorizationFacetFactory;
 import org.apache.isis.core.metamodel.facets.OrphanedSupportingMethodValidator;
 import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactory;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
index bc75466..1f379c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefault.java
@@ -40,7 +40,7 @@ import org.apache.isis.applib.services.metamodel.DomainMember;
 import org.apache.isis.applib.services.metamodel.DomainModel;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureId;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index b2fba77..6a0ff1e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -718,7 +718,7 @@ public interface ManagedObject {
     
     static EntityState _entityState(ManagedObject adapter) {
         if(adapter==null) {
-            return EntityState.not_Persistable;
+            return EntityState.NOT_PERSISTABLE;
         }
         return _entityState(adapter.getSpecification(), adapter.getPojo());
     }
@@ -726,7 +726,7 @@ public interface ManagedObject {
     static EntityState _entityState(ObjectSpecification spec, Object pojo) {
 
         if(spec==null || pojo==null || !spec.isEntity()) {
-            return EntityState.not_Persistable;
+            return EntityState.NOT_PERSISTABLE;
         }
 
         val entityFacet = spec.getFacet(EntityFacet.class);
@@ -739,7 +739,7 @@ public interface ManagedObject {
     
 
     static boolean _isDestroyed(ManagedObject adapter) {
-        return _entityState(adapter) == EntityState.persistable_Destroyed;
+        return _entityState(adapter) == EntityState.PERSISTABLE_DESTROYED;
     }
 
     static void _whenFirstIsBookmarkable_ensureSecondIsAsWell(
@@ -755,7 +755,7 @@ public interface ManagedObject {
             }
 
             val entityState = _entityState(second);
-            if(entityState != EntityState.persistable_Attached) {
+            if(entityState != EntityState.PERSISTABLE_ATTACHED) {
                 throw _Exceptions.illegalArgument(
                         "can't set a reference to a transient object [%s] from a persistent one [%s]",
                         second,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 53dce28..2c4993a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -28,7 +28,7 @@ import java.util.stream.Stream;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.internal.collections._Streams;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 9abddc8..f617845 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -42,7 +42,7 @@ import org.apache.isis.core.commons.internal.collections._Multimaps.ListMultimap
 import org.apache.isis.core.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.internal.collections._Streams;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistry;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistryHolder;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index ae2eae9..a4b984e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -28,7 +28,7 @@ import java.util.stream.Stream;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
index 4ad3f56..acd6494 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
@@ -58,20 +58,6 @@ import lombok.extern.log4j.Log4j2;
 public class ChangedObjectsService implements TransactionScopeListener {
 
     // end::refguide[]
-    public ChangedObjectsService() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
     /**
      * Used for auditing: this contains the pre- values of every property of every object enlisted.
      *
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/JavaObjectWithBasicProgramConventions.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/JavaObjectWithBasicProgramConventions.java
index acce270..0875758 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/JavaObjectWithBasicProgramConventions.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/JavaObjectWithBasicProgramConventions.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import org.junit.Assert;
 
-import org.apache.isis.applib.security.UserMemento;
+import org.apache.isis.applib.services.user.UserMemento;
 
 public class JavaObjectWithBasicProgramConventions implements Interface1, Interface2 {
     public static String classActionValid;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
index d2e011b..0ee6346 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/IsisModuleCoreRuntimeServices.java
@@ -48,6 +48,7 @@ import org.apache.isis.core.runtimeservices.publish.PublisherDispatchServiceDefa
 import org.apache.isis.core.runtimeservices.queryresultscache.QueryResultsCacheDefault;
 import org.apache.isis.core.runtimeservices.repository.RepositoryServiceDefault;
 import org.apache.isis.core.runtimeservices.routing.RoutingServiceDefault;
+import org.apache.isis.core.runtimeservices.scratchpad.ScratchpadDefault;
 import org.apache.isis.core.runtimeservices.session.IsisSessionFactoryDefault;
 import org.apache.isis.core.runtimeservices.sudo.SudoServiceDefault;
 import org.apache.isis.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression;
@@ -84,6 +85,7 @@ import org.apache.isis.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefaul
         MessageServiceDefault.class,
         PublisherDispatchServiceDefault.class,
         QueryResultsCacheDefault.class,
+        ScratchpadDefault.class,
         SudoServiceDefault.class,
         TransactionServiceSpring.class,
         UrlEncodingServiceWithCompression.class,
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/TranslationServicePo.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/TranslationServicePo.java
index a2d7e63..40aa06c 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/TranslationServicePo.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/i18n/po/TranslationServicePo.java
@@ -62,8 +62,7 @@ public class TranslationServicePo implements TranslationService {
 
         final Mode translationMode = configuration.getCore().getRuntimeServices().getTranslation().getPo().getMode();
 
-        final boolean translationDisabled = (Mode.DISABLED == translationMode || Mode.DISABLE == translationMode);
-        if(translationDisabled) {
+        if(translationMode == Mode.DISABLED) {
             // switch to disabled mode
             po = new PoDisabled(this);
             return;
@@ -74,9 +73,7 @@ public class TranslationServicePo implements TranslationService {
             return;
         }
 
-        final boolean forceRead = (Mode.READ == translationMode);
-
-        if(!forceRead) {
+        if(translationMode != Mode.READ) {
             // remain in write mode
             return;
         }
@@ -87,9 +84,6 @@ public class TranslationServicePo implements TranslationService {
         po = poReader;
     }
 
-    protected boolean isPrototypeOrTest() {
-        return systemEnvironment.isPrototyping() || systemEnvironment.isUnitTesting();
-    }
 
     @PreDestroy
     public void shutdown() {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
index e864f0a..2103fdb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
@@ -69,22 +69,6 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class PublisherDispatchServiceDefault implements PublisherDispatchService {
 
-// end::refguide[]
-    public PublisherDispatchServiceDefault() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-// tag::refguide[]
     @Inject private List<PublisherService> publisherServices;
 
     @Inject private ClockService clockService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java
index 5c0c97f..972c87a 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/queryresultscache/QueryResultsCacheDefault.java
@@ -21,8 +21,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
 import javax.inject.Named;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,12 +34,12 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.TransactionScopeListener;
 import org.apache.isis.applib.services.queryresultscache.QueryResultCacheControl;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
-import org.apache.isis.core.commons.handler.MethodReferences.Call0;
-import org.apache.isis.core.commons.handler.MethodReferences.Call1;
-import org.apache.isis.core.commons.handler.MethodReferences.Call2;
-import org.apache.isis.core.commons.handler.MethodReferences.Call3;
-import org.apache.isis.core.commons.handler.MethodReferences.Call4;
-import org.apache.isis.core.commons.handler.MethodReferences.Call5;
+import org.apache.isis.applib.services.MethodReferences.Call0;
+import org.apache.isis.applib.services.MethodReferences.Call1;
+import org.apache.isis.applib.services.MethodReferences.Call2;
+import org.apache.isis.applib.services.MethodReferences.Call3;
+import org.apache.isis.applib.services.MethodReferences.Call4;
+import org.apache.isis.applib.services.MethodReferences.Call5;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.commons.internal.collections._Maps;
@@ -67,22 +65,6 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class QueryResultsCacheDefault implements QueryResultsCache, TransactionScopeListener {
 
-// end::refguide[]
-    public QueryResultsCacheDefault() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-// tag::refguide[]
     private final Map<Key, Value<?>> cache = _Maps.newHashMap();
     
     @Override
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java
similarity index 87%
copy from api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java
copy to core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java
index f45cae7..4c4b6b2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/scratchpad/Scratchpad.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/scratchpad/ScratchpadDefault.java
@@ -16,12 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.scratchpad;
+package org.apache.isis.core.runtimeservices.scratchpad;
 
 import java.util.Map;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
 import javax.inject.Named;
 
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -31,6 +29,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.IsisSessionScope;
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.services.scratchpad.Scratchpad;
 import org.apache.isis.core.commons.internal.collections._Maps;
 
 import lombok.extern.log4j.Log4j2;
@@ -53,22 +52,7 @@ import lombok.extern.log4j.Log4j2;
 @Qualifier("Default")
 @IsisSessionScope
 @Log4j2
-public class Scratchpad {
-
-    // end::refguide[]
-    public Scratchpad(){
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
+public class ScratchpadDefault implements Scratchpad {
 
     // end::refguide[]
     /**
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
index 9a79a67..51c8230 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/user/UserServiceDefault.java
@@ -33,8 +33,8 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.security.RoleMemento;
-import org.apache.isis.applib.security.UserMemento;
+import org.apache.isis.applib.services.user.RoleMemento;
+import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.applib.services.sudo.SudoService;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.core.commons.collections.Can;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
index a76ee78..cc4f688 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/AsyncWrapDefault.java
@@ -30,11 +30,11 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
-import org.apache.isis.core.commons.handler.MethodReferences.Call1;
-import org.apache.isis.core.commons.handler.MethodReferences.Call2;
-import org.apache.isis.core.commons.handler.MethodReferences.Call3;
-import org.apache.isis.core.commons.handler.MethodReferences.Call4;
-import org.apache.isis.core.commons.handler.MethodReferences.Call5;
+import org.apache.isis.applib.services.MethodReferences.Call1;
+import org.apache.isis.applib.services.MethodReferences.Call2;
+import org.apache.isis.applib.services.MethodReferences.Call3;
+import org.apache.isis.applib.services.MethodReferences.Call4;
+import org.apache.isis.applib.services.MethodReferences.Call5;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.security.authentication.AuthenticationSessionTracker;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java
index 52f8935..6d554fd 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/xactn/TransactionServiceSpring.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.runtimeservices.xactn;
 import java.util.function.Supplier;
 
 import javax.annotation.Nonnull;
+import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -53,19 +54,21 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class TransactionServiceSpring implements TransactionService {
 
+    private final PlatformTransactionManager platformTransactionManager;
+
     // single TransactionTemplate shared amongst all methods in this instance
     private final TransactionTemplate transactionTemplate;
 
-    // use constructor-injection to supply the PlatformTransactionManager
-    public TransactionServiceSpring(PlatformTransactionManager transactionManager) {
-        this.transactionTemplate = new TransactionTemplate(transactionManager);
-
+    @Inject
+    public TransactionServiceSpring(PlatformTransactionManager platformTransactionManager) {
+        this.platformTransactionManager = platformTransactionManager;
+        this.transactionTemplate = new TransactionTemplate(platformTransactionManager);
     }
 
     @Override
     public void flushTransaction() {
 
-        val txObject = currentTransactionObject(false);
+        val txObject = currentTransactionObject(WarnIfNonePolicy.IGNORE);
 
         if(txObject==null) {
             return;
@@ -78,7 +81,7 @@ public class TransactionServiceSpring implements TransactionService {
     @Override
     public TransactionId currentTransactionId() {
 
-        val txObject = currentTransactionObject(false);
+        val txObject = currentTransactionObject(WarnIfNonePolicy.IGNORE);
 
         if(txObject==null) {
             return null;
@@ -91,7 +94,7 @@ public class TransactionServiceSpring implements TransactionService {
     @Override @Nonnull
     public TransactionState currentTransactionState() {
 
-        val txObject = currentTransactionObject(false);
+        val txObject = currentTransactionObject(WarnIfNonePolicy.IGNORE);
 
         if(txObject==null || txObject.getCurrentTransaction()==null) {
             return TransactionState.NONE;
@@ -104,65 +107,84 @@ public class TransactionServiceSpring implements TransactionService {
     }
 
     @Override
-    public void executeWithinNewTransaction(Runnable task) {
-        
-        transactionTemplate.execute(new TransactionCallbackWithoutResult() {
-            // the code in this method executes in a transactional context
-            @Override
-            protected void doInTransactionWithoutResult(TransactionStatus status) {
-                task.run();
-            }
-        });
-    }
-
-    @Override
-    public <T> T executeWithinNewTransaction(Supplier<T> task) {
-        
-        return transactionTemplate.execute(new TransactionCallback<T>() {
-            // the code in this method executes in a transactional context
-            @Override
-            public T doInTransaction(TransactionStatus status) {
-                return task.get();
-            }
-        });
-    }
-    
-    @Override
-    public void executeWithinTransaction(Runnable task) {
-        
-        val txState = currentTransactionState();
-        if(txState != TransactionState.NONE) {
-            task.run();
-            flushTransaction();
+    public void nextTransaction() {
+        val status = platformTransactionManager.getTransaction(transactionTemplate);
+        if(status.isCompleted()) {
             return;
         }
-        
-        executeWithinNewTransaction(task);
-        
-    }
-
-    @Override
-    public <T> T executeWithinTransaction(Supplier<T> task) {
-        
-        val txState = currentTransactionState();
-        if(txState != TransactionState.NONE) {
-            val result = task.get();
-            flushTransaction();
-            return result;
+        if(status.isRollbackOnly()) {
+            platformTransactionManager.rollback(status);
+        } else {
+            platformTransactionManager.commit(status);
         }
-        
-        return executeWithinNewTransaction(task);
-        
+        // begins a new transaction
+        platformTransactionManager.getTransaction(transactionTemplate);
     }
 
+//    @Override
+//    public void executeWithinNewTransaction(Runnable task) {
+//        transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+//            // the code in this method executes in a transactional context
+//            @Override
+//            protected void doInTransactionWithoutResult(TransactionStatus status) {
+//                task.run();
+//            }
+//        });
+//    }
+//
+//    @Override
+//    public <T> T executeWithinNewTransaction(Supplier<T> task) {
+//
+//        return transactionTemplate.execute(new TransactionCallback<T>() {
+//            // the code in this method executes in a transactional context
+//            @Override
+//            public T doInTransaction(TransactionStatus status) {
+//                return task.get();
+//            }
+//        });
+//    }
+
+//    @Override
+//    public void executeWithinTransaction(Runnable task) {
+//
+//        val txState = currentTransactionState();
+//        if(txState != TransactionState.NONE) {
+//            task.run();
+//            flushTransaction();
+//            return;
+//        }
+//
+//        executeWithinNewTransaction(task);
+//
+//    }
+//
+//    @Override
+//    public <T> T executeWithinTransaction(Supplier<T> task) {
+//
+//        val txState = currentTransactionState();
+//        if(txState != TransactionState.NONE) {
+//            val result = task.get();
+//            flushTransaction();
+//            return result;
+//        }
+//
+//        return executeWithinNewTransaction(task);
+//
+//    }
+
     // -- HELPER
 
-    private IsisTransactionObject currentTransactionObject(boolean warnIfNone) {
+    enum WarnIfNonePolicy {
+        IGNORE,
+        LOG
+    }
+
+    private IsisTransactionObject currentTransactionObject(WarnIfNonePolicy warnIfNonePolicy) {
 
         val txObject = IsisTransactionAspectSupport.currentTransactionObject().orElse(null);
 
         if(txObject==null) {
-            if(warnIfNone) {
+            if(warnIfNonePolicy == WarnIfNonePolicy.LOG) {
                 log.warn("no current txStatus present");
                 _Exceptions.dumpStackTrace(System.out, 0, 1000);
             }
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java
index 0b96848..b84c045 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSession.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.security.authentication;
 
 import java.io.Serializable;
 
-import org.apache.isis.applib.security.UserMemento;
+import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
 
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java
index 51e5e41..fe3a39a 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/AuthenticationSessionAbstract.java
@@ -27,8 +27,8 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Stream;
 
-import org.apache.isis.applib.security.RoleMemento;
-import org.apache.isis.applib.security.UserMemento;
+import org.apache.isis.applib.services.user.RoleMemento;
+import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.applib.util.ToString;
 import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.commons.internal.base._Strings;
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
index 84f2be0..acb6402 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
@@ -40,8 +40,8 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.security.RoleMemento;
-import org.apache.isis.applib.security.UserMemento;
+import org.apache.isis.applib.services.user.RoleMemento;
+import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ObjectContracts.ObjectContract;
diff --git a/legacy/extensions/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java b/legacy/extensions/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
index 0b06771..5edf7da 100644
--- a/legacy/extensions/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
+++ b/legacy/extensions/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
@@ -35,7 +35,7 @@ import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.query.Query;
-import org.apache.isis.applib.security.UserMemento;
+import org.apache.isis.applib.services.user.UserMemento;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.inject.ServiceInjector;
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
index 4470562..faac835 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
@@ -51,22 +51,6 @@ import lombok.extern.log4j.Log4j2;
 public class MetricsServiceDefault 
 implements MetricsService, InstanceLifecycleListener, LoadLifecycleListener, TransactionScopeListener {
 
-// end::refguide[]
-    public MetricsServiceDefault() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-// tag::refguide[]
     @Inject private javax.inject.Provider<ChangedObjectsService> changedObjectsProvider;
     
     private LongAdder numberLoaded = new LongAdder();
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
index 333e1b8..e6cc345 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
@@ -824,15 +824,15 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
             val persistable = (Persistable) pojo;
             val isDeleted = persistable.dnIsDeleted();
             if(isDeleted) {
-                return EntityState.persistable_Destroyed;
+                return EntityState.PERSISTABLE_DESTROYED;
             }
             val isPersistent = persistable.dnIsPersistent();
             if(isPersistent) {
-                return EntityState.persistable_Attached;
+                return EntityState.PERSISTABLE_ATTACHED;
             }
-            return EntityState.persistable_Detached;
+            return EntityState.PERSISTABLE_DETACHED;
         }
-        return EntityState.not_Persistable;
+        return EntityState.NOT_PERSISTABLE;
     }
 
     @Override
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
index 52b552b..9b2284f 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
@@ -56,22 +56,6 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class AcceptHeaderServiceForRest implements AcceptHeaderService {
 
-// end::refguide[]
-    public AcceptHeaderServiceForRest() {
-        log.debug("init");
-    }
-
-    @PostConstruct
-    public void postConstruct() {
-        log.debug("postConstruct");
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        log.debug("preDestroy");
-    }
-
-// tag::refguide[]
     private static ThreadLocal<List<MediaType>> mediaTypesByThread = new ThreadLocal<>();
 
     /**
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
index 67cb56a..983b253 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionPromptProvider.java
@@ -23,7 +23,7 @@ import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
 import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 
 public interface ActionPromptProvider {
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 8335e5f..97b88d0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -41,7 +41,7 @@ import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.core.commons.internal.base._Strings;
 import org.apache.isis.core.commons.internal.collections._Lists;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index a1998c7..406a4dc 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -59,7 +59,7 @@ import org.apache.wicket.request.resource.ResourceReference;
 
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerService;
-import org.apache.isis.core.commons.internal.ioc.BeanSort;
+import org.apache.isis.applib.services.metamodel.BeanSort;
 import org.apache.isis.core.config.viewer.wicket.DialogMode;
 import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
 import org.apache.isis.viewer.wicket.model.hints.IsisEnvelopeEvent;
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
index 7dc7010..531cbfe 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/AuthenticatedWebSessionForIsis.java
@@ -31,6 +31,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.session.SessionLoggingService;
+import org.apache.isis.core.commons.collections.Can;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.security.authentication.AuthenticationRequest;
 import org.apache.isis.core.security.authentication.AuthenticationRequestPassword;
@@ -244,12 +245,14 @@ implements BreadcrumbModelProvider, BookmarkedPagesModelProvider, IsisWebAppComm
 
 
         val isisSessionFactory = getIsisSessionFactory();
-        val sessionLoggingService = getSessionLoggingService();
+        val sessionLoggingServices = getSessionLoggingServices();
 
         final Runnable loggingTask = ()->{
             // use hashcode as session identifier, to avoid re-binding http sessions if using Session#getId()
             int sessionHashCode = System.identityHashCode(AuthenticatedWebSessionForIsis.this);
-            sessionLoggingService.log(type, username, now(), causedBy, Integer.toString(sessionHashCode));
+            sessionLoggingServices.forEach(
+                sessionLoggingService -> sessionLoggingService.log(type, username, now(), causedBy, Integer.toString(sessionHashCode))
+            );
         };
 
         if(isisSessionFactory!=null) {
@@ -257,19 +260,10 @@ implements BreadcrumbModelProvider, BookmarkedPagesModelProvider, IsisWebAppComm
         } else {
             loggingTask.run();
         }
-
     }
 
-    protected SessionLoggingService getSessionLoggingService() {
-        try {
-            final SessionLoggingService service = 
-                    commonContext.getServiceRegistry().lookupService(SessionLoggingService.class)
-                    .orElseGet(SessionLoggingService.Stderr::new);
-            return service;
-        } catch (Exception e) {
-            // fallback to System.err
-            return new SessionLoggingService.Stderr();
-        }
+    protected Can<SessionLoggingService> getSessionLoggingServices() {
+        return commonContext.getServiceRegistry().select(SessionLoggingService.class);
     }
     
     protected IsisSessionFactory getIsisSessionFactory() {


[isis] 32/41: ISIS-2278: adds support to invoke mixins async

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

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

commit e14e55d14685608bbf0a235edb6971bfe325cdc0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 07:34:49 2020 +0000

    ISIS-2278: adds support to invoke mixins async
---
 .../applib/services/wrapper/WrapperFactory.java    |   9 +-
 .../applib/services/wrapper/WrappingObject.java    |   2 +-
 .../services/wrapper/control/AsyncControl.java     |  45 +++----
 .../services/wrapper/control/ControlAbstract.java  |  19 +--
 .../{SyncControl.java => ExceptionHandler.java}    |  49 +++-----
 .../services/wrapper/control/SyncControl.java      |  14 +--
 .../wrapper/WrapperFactoryDefault.java             | 134 ++++++++++++++-------
 .../handlers/DomainObjectInvocationHandler.java    |  32 +++--
 .../wrapper/WrapperFactoryDefaultTest.java         |   3 +-
 .../demoapp/dom/events/DemoEventSubscriber.java    |   2 +-
 .../testdomain/auditing/AuditerServiceTest.java    |  15 ++-
 .../commandexecution/WrapperAsyncTest.java         |   6 +-
 .../publishing/PublisherServiceTest.java           |   9 +-
 13 files changed, 179 insertions(+), 160 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index db42c48..09eda7d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -73,10 +73,9 @@ import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 // tag::refguide-listeners[]
 public interface WrapperFactory {
 
-    // end::refguide-listeners[]
-    // end::refguide-async[]
     // end::refguide[]
-
+    // end::refguide-async[]
+    // end::refguide-listeners[]
     /**
      * Provides the &quot;wrapper&quot; of a domain object against which to invoke the action.
      *
@@ -199,7 +198,7 @@ public interface WrapperFactory {
 
 
     //
-    // -- ITERACTION EVENT HANDLING
+    // -- INTERACTION EVENT HANDLING
     //
 
     /**
@@ -252,5 +251,5 @@ public interface WrapperFactory {
 
 }
 // end::refguide[]
-// end::refguide-listeners[]
 // end::refguide-async[]
+// end::refguide-listeners[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
index 62369ab..5d4fca6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
@@ -66,7 +66,7 @@ public interface WrappingObject {
 
     // end::refguide[]
     /**
-     * The {@link EnumSet<ExecutionMode > execution modes} inferred from the
+     * The {@link EnumSet<ExecutionMode> execution modes} inferred from the
      * {@link org.apache.isis.applib.services.wrapper.control.SyncControl} with which this wrapper was
      * {@link WrapperFactory#wrap(Object, org.apache.isis.applib.services.wrapper.control.SyncControl) created}.
      *
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
index 8059930..bfaace6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
@@ -47,45 +47,24 @@ import lombok.extern.log4j.Log4j2;
  *
  * @param <R> - return value.
  */
+// tag::refguide[]
 @Log4j2
 public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
 
-    public static AsyncControl<Void> create() {
+    public static AsyncControl<Void> control() {
         return new AsyncControl<>();
     }
-
-    public static <X> AsyncControl<X> create(final Class<X> clazz) {
+    public static <X> AsyncControl<X> control(final Class<X> clazz) {
         return new AsyncControl<>();
     }
 
-    /**
-     * Alias for {@link #create(Class)}
-     */
-    public static <X> AsyncControl<X> toReturn(final Class<X> clazz) {
-        return create(clazz);
-    }
-
-    /**
-     * Alias for {@link #create()}
-     */
-    public static AsyncControl<Void> ignoreReturn() {
-        return create();
-    }
-
-    /**
-     * Alias for {@link #create()}
-     */
-    public static AsyncControl<Void> voidReturn() {
-        return create();
-    }
-
     private AsyncControl() {
-        with((exception) -> {
+        with(exception -> {
             log.error(logMessage(), exception);
+            return null;
         });
     }
 
-
     @Getter @NonNull
     private ExecutorService executorService = ForkJoinPool.commonPool();
     public AsyncControl<R> with(ExecutorService executorService) {
@@ -93,10 +72,11 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
         return this;
     }
 
-
+    // end::refguide[]
     /**
      * Defaults to user initiating the action, if not overridden
      */
+    // tag::refguide[]
     @Getter
     private String user;
     public AsyncControl<R> withUser(final String user) {
@@ -104,9 +84,11 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
         return this;
     }
 
+    // end::refguide[]
     /**
      * Defaults to roles of user initiating the action, if not overridden
      */
+    // tag::refguide[]
     @Getter
     private List<String> roles;
     public AsyncControl<R> withRoles(final List<String> roles) {
@@ -117,12 +99,16 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
         return withRoles(Arrays.asList(roles));
     }
 
+    // end::refguide[]
     /**
      * Set by framework
      */
-    @Getter @Setter(AccessLevel.PACKAGE)
+    @Setter(AccessLevel.PACKAGE)
+    // tag::refguide[]
+    @Getter
     private Future<R> future;
 
+    // end::refguide[]
     private String logMessage() {
         StringBuilder buf = new StringBuilder("Failed to execute ");
         if(getMethod() != null) {
@@ -137,5 +123,8 @@ public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
         }
         return buf.toString();
     }
+    // tag::refguide[]
+    // ...
 
 }
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
index 0ed6a1e..bcb01c9 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
@@ -36,25 +36,30 @@ import lombok.NonNull;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
 
-@Log4j2
+// tag::refguide[]
 public class ControlAbstract<T extends ControlAbstract<T>> {
 
+    // end::refguide[]
     protected ControlAbstract() {
     }
 
     /**
      * Set by framework.
      */
-    @Getter(AccessLevel.PACKAGE)
     @Setter(AccessLevel.PACKAGE)
+    // tag::refguide[]
+    @Getter(AccessLevel.PACKAGE)
     private Method method;
 
+    // end::refguide[]
     /**
      * Set by framework.
      */
-    @Getter(AccessLevel.PACKAGE)
     @Setter(AccessLevel.PACKAGE)
+    // tag::refguide[]
+    @Getter(AccessLevel.PACKAGE)
     private Bookmark bookmark;
+    // end::refguide[]
 
     private boolean checkRules = true;
     public T withCheckRules() {
@@ -76,6 +81,7 @@ public class ControlAbstract<T extends ControlAbstract<T>> {
         return (T)this;
     }
 
+    // end::refguide[]
     public ImmutableEnumSet<ExecutionMode> getExecutionModes() {
         EnumSet<ExecutionMode> modes = EnumSet.noneOf(ExecutionMode.class);
         if(!checkRules) {
@@ -91,12 +97,11 @@ public class ControlAbstract<T extends ControlAbstract<T>> {
      * Initialized in constructor.
      */
     @Getter @NonNull
-    private Consumer<Exception> exceptionHandler;
-    public T with(Consumer<Exception> exceptionHandler) {
+    private ExceptionHandler exceptionHandler;
+    public T with(ExceptionHandler exceptionHandler) {
         this.exceptionHandler = exceptionHandler;
         return (T)this;
     }
-
-
+    // tag::refguide[]
 
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExceptionHandler.java
similarity index 54%
copy from api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
copy to api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExceptionHandler.java
index 3bc403b..651247b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExceptionHandler.java
@@ -18,43 +18,30 @@
  */
 package org.apache.isis.applib.services.wrapper.control;
 
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ForkJoinPool;
-import java.util.concurrent.Future;
 import java.util.function.Consumer;
 
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
-import org.apache.isis.schema.common.v2.OidDto;
-
-import lombok.AccessLevel;
-import lombok.Getter;
-import lombok.NonNull;
-import lombok.Setter;
 import lombok.SneakyThrows;
 import lombok.extern.log4j.Log4j2;
 
 /**
  */
-@Log4j2
-public class SyncControl extends ControlAbstract<SyncControl> {
-
-    public static SyncControl create() {
-        return new SyncControl();
-    }
-
-    private SyncControl() {
-
-        with(new Consumer<Exception>() {
-            @SneakyThrows
-            @Override
-            public void accept(Exception e) {
-                throw e;
-            }
-        });
-    }
+// tag::refguide[]
+@FunctionalInterface
+public interface ExceptionHandler {
+
+    // end::refguide[]
+    /**
+     * Handle the exception in some way.
+     *
+     * Typically this will log and rethrow the exception.  If necessary though it can
+     * return some other value instead (must be compatible with the expected return value of the interaction,
+     * that is, the action invocation or property edit).
+     *
+     * @param ex - the exception that has occurred
+     * @return - optionally, the value to return.
+     */
+    // tag::refguide[]
+    Object handle(Exception ex) throws Exception;
 
 }
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
index 3bc403b..bc16f36 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
@@ -39,22 +39,18 @@ import lombok.extern.log4j.Log4j2;
 
 /**
  */
-@Log4j2
+// end::refguide[]
 public class SyncControl extends ControlAbstract<SyncControl> {
 
-    public static SyncControl create() {
+    public static SyncControl control() {
         return new SyncControl();
     }
 
     private SyncControl() {
-
-        with(new Consumer<Exception>() {
-            @SneakyThrows
-            @Override
-            public void accept(Exception e) {
-                throw e;
-            }
+        with(exception -> {
+            throw exception;
         });
     }
 
 }
+// end::refguide[]
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 1d45c36..ccbdfb0 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -26,9 +26,11 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.function.BiConsumer;
+import java.util.stream.Collectors;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
@@ -40,17 +42,18 @@ import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
+import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
+import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
 import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
 import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
-import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.applib.services.wrapper.events.ActionArgumentEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionInvocationEvent;
@@ -81,9 +84,11 @@ import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUt
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.services.command.CommandDtoServiceInternal;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.session.IsisSessionTracker;
@@ -111,21 +116,17 @@ import lombok.extern.log4j.Log4j2;
 public class WrapperFactoryDefault implements WrapperFactory {
     
     @Inject private FactoryService factoryService;
-    @Inject private BookmarkService bookmarkService;
     @Inject private MetaModelContext metaModelContext;
     @Inject private SpecificationLoader specificationLoader;
     @Inject private IsisSessionTracker isisSessionTracker;
     @Inject private IsisSessionFactory isisSessionFactory;
     @Inject private CommandExecutorService commandExecutorService;
-    @Inject private Provider<CommandContext> commandContextProvider;
-    @Inject private TransactionService transactionService;
     @Inject protected ProxyFactoryService proxyFactoryService; // protected to allow JUnit test
     @Inject private CommandDtoServiceInternal commandDtoServiceInternal;
 
-    private final List<InteractionListener> listeners = new ArrayList<InteractionListener>();
+    private final List<InteractionListener> listeners = new ArrayList<>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher>
-        dispatchersByEventClass = 
-            new HashMap<Class<? extends InteractionEvent>, InteractionEventDispatcher>();
+        dispatchersByEventClass = new HashMap<>();
     private ProxyContextHandler proxyContextHandler;
     
     @PostConstruct
@@ -156,7 +157,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     
     @Override
     public <T> T wrap(T domainObject) {
-        return wrap(domainObject, SyncControl.create());
+        return wrap(domainObject, SyncControl.control());
     }
 
     @Override
@@ -178,7 +179,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
     @Override
     public <T> T wrapMixin(Class<T> mixinClass, Object mixedIn) {
-        return wrapMixin(mixinClass, mixedIn, SyncControl.create());
+        return wrapMixin(mixinClass, mixedIn, SyncControl.control());
     }
 
     @Override
@@ -235,14 +236,12 @@ public class WrapperFactoryDefault implements WrapperFactory {
                 }
 
                 val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-                if(!skipRules) {
-                    // normal wrapped object...
-                    SyncControl syncControl = SyncControl.create().withNoExecute();
+                if (!skipRules) {
+                    SyncControl syncControl = SyncControl.control().withNoExecute();
                     T syncProxy = WrapperFactoryDefault.this.createProxy(domainObject, syncControl);
                     method.invoke(syncProxy, args);
                 }
 
-
                 //
                 // submit async stuff
                 //
@@ -274,25 +273,91 @@ public class WrapperFactoryDefault implements WrapperFactory {
 
                 asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
 
-                Future future = executorService.submit(new Runnable() {
-                    @Override
-                    public void run() {
-
-                        isisSessionFactory.runAuthenticated(authSession, () -> {
-                            commandExecutorService.executeCommand(dto);
-                        });
-                    }
-                });
+                Future future = executorService.submit(() ->
+                        isisSessionFactory.runAuthenticated(authSession,
+                                () -> commandExecutorService.executeCommand(dto)));
                 asyncControlService.update(asyncControl, future);
                 return null;
-
             }
         }, false);
     }
 
     @Override
     public <T, R> T asyncMixin(Class<T> mixinClass, Object mixedIn, AsyncControl<R> asyncControl) {
-        throw new RuntimeException("TODO!!!");
+        T mixin = factoryService.mixin(mixinClass, mixedIn);
+
+        final ImmutableEnumSet<ExecutionMode> executionModes = asyncControl.getExecutionModes();
+        final ExecutorService executorService = asyncControl.getExecutorService();
+
+        ProxyFactory<T> factory = proxyFactoryService.factory(mixinClass, new Class[]{WrappingObject.class}, new Class[]{mixedIn.getClass()});
+
+        return factory.createInstance(new InvocationHandler() {
+            @Override
+            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+
+                //
+                // executed in the same thread as caller..
+                //
+                final boolean inheritedFromObject = method.getDeclaringClass().equals(Object.class);
+                if (inheritedFromObject) {
+                    return method.invoke(mixin, args);
+                }
+
+                val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+                if (!skipRules) {
+                    T syncProxy = WrapperFactoryDefault.this.createProxy(mixin, SyncControl.control().withNoExecute());
+                    method.invoke(syncProxy, args);
+                }
+
+                //
+                // submit async stuff
+                //
+                final ObjectSpecificationDefault mixinSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
+                final ObjectMember member = mixinSpec.getMember(method);
+                if (member == null) {
+                    return method.invoke(mixin, args);
+                }
+
+                // find corresponding action of the mixedIn (this is the 'real' target).
+                String memberId = member.getId();
+
+                Class<?> mixedInClass = mixedIn.getClass();
+                final ObjectSpecificationDefault mixedInSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(mixedInClass);
+                // don't care about anything other than actions.
+
+                //Optional<ObjectAction> targetActionIfAny = mixedInSpec.getObjectAction(memberId);
+                Optional<ObjectActionMixedIn> targetActionIfAny = mixedInSpec.streamObjectActions(Contributed.INCLUDED)
+                        .filter(ObjectActionMixedIn.class::isInstance)
+                        .map(ObjectActionMixedIn.class::cast)
+                        .filter(x -> x.hasMixinAction((ObjectAction) member))
+                        .findFirst();
+
+                if(!targetActionIfAny.isPresent()) {
+                    throw new UnsupportedOperationException(
+                            "Could not locate objectAction with id='" + memberId + "' on mixedIn class '" + mixedInClass.getName() + "'");
+                }
+                ObjectAction action = targetActionIfAny.get();
+
+                val isisSession = isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
+                val authSession = isisSession.getAuthenticationSession();
+
+                final ManagedObject mixedInAdapter = isisSession.getObjectManager().adapt(mixedIn);
+                final List<ManagedObject> argAdapters = Arrays.asList(WrapperFactoryDefault.this.adaptersFor(args));
+
+                final List<ManagedObject> targetList = Collections.singletonList(mixedInAdapter);
+                final CommandDto dto = commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+                final OidDto oidDto = dto.getTargets().getOid().get(0);
+
+                asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
+
+                Future future = executorService.submit(() ->
+                        isisSessionFactory.runAuthenticated(authSession,
+                                () -> commandExecutorService.executeCommand(dto)));
+                asyncControlService.update(asyncControl, future);
+                return null;
+
+            }
+        }, new Object[]{ mixedIn });
     }
 
     private ManagedObject[] adaptersFor(final Object[] args) {
@@ -301,25 +366,6 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return CommandUtil.adaptersFor(args, objectManager);
     }
 
-    private static ImmutableEnumSet<ExecutionMode> join(
-            ImmutableEnumSet<ExecutionMode> executionModes,
-            ExecutionMode skipRuleValidation) {
-        val tmp = executionModes.toEnumSet();
-        tmp.add(skipRuleValidation);
-        return ImmutableEnumSet.from(tmp);
-    }
-
-    private boolean shouldValidateSync(ImmutableEnumSet<ExecutionMode> executionModesSync) {
-        return !executionModesSync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-    }
-
-    private boolean shouldValidateAsync(ImmutableEnumSet<ExecutionMode> executionModesAsync) {
-        return !executionModesAsync.contains(ExecutionMode.SKIP_RULE_VALIDATION);
-    }
-
-    private boolean shouldExecuteAsync(ImmutableEnumSet<ExecutionMode> executionModesAsync) {
-        return !executionModesAsync.contains(ExecutionMode.SKIP_EXECUTION);
-    }
 
 
     // -- LISTENERS
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index 9523fe7..858f4bc 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -68,6 +68,7 @@ import org.apache.isis.core.metamodel.specloader.specimpl.MixedInMember;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionContributee;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 
+import lombok.SneakyThrows;
 import lombok.val;
 
 public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandlerDefault<T> {
@@ -796,7 +797,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         return !getSyncControl().getExecutionModes().contains(ExecutionMode.SKIP_EXECUTION);
     }
     
-
     private void runValidationTask(Runnable task) {
         if(!shouldEnforceRules()) {
             return;
@@ -808,10 +808,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         }
     }
 
-    private void handleException(Exception ex) {
-        getSyncControl().getExceptionHandler().accept(ex);
-    }
-
     private <X> X runExecutionTask(Supplier<X> task) {
         if(!shouldExecute()) {
             return null;
@@ -819,26 +815,32 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         try {
             return task.get();
         } catch(Exception ex) {
-            handleException(ex);
-            // in case the exception handler doesn't throw
-            return null;
+            return (X)handleException(ex);
         }
     }
 
+    @SneakyThrows
+    private Object handleException(Exception ex) {
+        return getSyncControl().getExceptionHandler().handle(ex);
+    }
+
     private Object singleArgUnderlyingElseThrow(Object[] args, String name) {
         if (args.length != 1) {
-            throw new IllegalArgumentException("Invoking '" + name + "' should only have a single argument");
+            throw new IllegalArgumentException(String.format(
+                    "Invoking '%s' should only have a single argument", name));
         }
         val argumentObj = underlying(args[0]);
         if (argumentObj == null) {
-            throw new IllegalArgumentException("Must provide a non-null object to '" + name +"'");
+            throw new IllegalArgumentException(String.format(
+                    "Must provide a non-null object to '%s'", name));
         }
         return argumentObj;
     }
     
     private Object singleArgUnderlyingElseNull(Object[] args, String name) {
         if (args.length != 1) {
-            throw new IllegalArgumentException("Invoking '" + name + "' should only have a single argument");
+            throw new IllegalArgumentException(String.format(
+                    "Invoking '%s' should only have a single argument", name));
         }
         val argumentObj = underlying(args[0]);
         return argumentObj;
@@ -846,7 +848,8 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     
     private void zeroArgsElseThrow(Object[] args, String name) {
         if (args.length != 0) {
-            throw new IllegalArgumentException("Invoking '" + name + "' should have no arguments");
+            throw new IllegalArgumentException(String.format(
+                    "Invoking '%s' should have no arguments", name));
         }
     }
     
@@ -856,13 +859,8 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         return mmContext.getSpecificationLoader();
     }
 
-//    protected AuthenticationSession getAuthenticationSession() {
-//        return mmContext.getAuthenticationSessionProvider().getAuthenticationSessionElseFail();
-//    }
-
     protected ObjectManager getObjectManager() {
         return mmContext.getObjectManager();
     }
 
-    
 }
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
index 408f6c3..876c8b1 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
@@ -19,7 +19,6 @@
 package org.apache.isis.core.runtimeservices.wrapper;
 
 import org.assertj.core.api.Assertions;
-import org.hamcrest.CoreMatchers;
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
@@ -126,7 +125,7 @@ public class WrapperFactoryDefaultTest {
         final DomainObject domainObject = new WrappingDomainObject(wrappedObject, ImmutableEnumSet.noneOf(ExecutionMode.class));
 
         // when
-        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, SyncControl.create().withSkipRules());
+        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, SyncControl.control().withSkipRules());
 
         // then
         assertThat(wrappingObject, is(not(domainObject)));
diff --git a/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java b/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
index 33d1253..225d443 100644
--- a/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
+++ b/examples/demo/src/main/java/demoapp/dom/events/DemoEventSubscriber.java
@@ -55,7 +55,7 @@ public class DemoEventSubscriber {
         
         val eventLogWriter = factoryService.get(EventLogWriter.class); // <-- get a new writer
         
-        wrapper.async(eventLogWriter, AsyncControl.ignoreReturn()).storeEvent(event);
+        wrapper.async(eventLogWriter, AsyncControl.control()).storeEvent(event);
 
     }
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index 4feadca..2eb40c7 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -52,6 +52,8 @@ import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
 import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
 
+import static org.apache.isis.applib.services.wrapper.control.AsyncControl.control;
+
 import lombok.val;
 
 @Smoketest
@@ -122,8 +124,7 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
     }
 
     @Test @Tag("Incubating")
-    void auditerService_shouldBeAwareOfInventoryChanges_whenUsingAsyncExecution() 
-            throws InterruptedException, ExecutionException, TimeoutException {
+    void auditerService_shouldBeAwareOfInventoryChanges_whenUsingAsyncExecution() {
 
         // given
         val books = repository.allInstances(JdoBook.class);
@@ -132,7 +133,7 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         kvStore.clear(AuditerServiceForTesting.class);
 
         // when - running within its own background task
-        val control = AsyncControl.voidReturn().with(ExecutionModes.SKIP_RULES);
+        val control = control().withSkipRules();
         // don't enforce rules for this test
         wrapper.async(book, control).setName("Book #2");
 
@@ -142,8 +143,7 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
     }
     
     @Test @Tag("Incubating")
-    void auditerService_shouldNotBeAwareOfInventoryChanges_whenUsingAsyncExecutionThatFails() 
-            throws InterruptedException, ExecutionException, TimeoutException {
+    void auditerService_shouldNotBeAwareOfInventoryChanges_whenUsingAsyncExecutionThatFails() {
 
         // given
         val books = repository.allInstances(JdoBook.class);
@@ -154,10 +154,9 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         // when - running within its own background task
         assertThrows(DisabledException.class, ()->{
 
-            val control = AsyncControl.voidReturn().with(ExecutionModes.EXECUTE);
-            wrapper.async(book, control).setName("Book #2");
+            wrapper.async(book, control()).setName("Book #2");
 
-            control.getFuture().get(1000, TimeUnit.SECONDS);
+            control().getFuture().get(1000, TimeUnit.SECONDS);
             
         });
         
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
index 29e32b5..9e2882a 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
@@ -43,7 +43,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.apache.isis.applib.events.domain.AbstractDomainEvent.Phase;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.applib.services.wrapper.control.AsyncControl;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
@@ -54,6 +53,8 @@ import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.jdo.entities.JdoProduct;
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
 
+import static org.apache.isis.applib.services.wrapper.control.AsyncControl.control;
+
 import lombok.Getter;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -120,8 +121,7 @@ class WrapperAsyncTest {
         actionDomainEventListener.prepareLatch();
 
         // use of custom executor (optional)
-        val control = AsyncControl.toReturn(JdoProduct.class)
-                .with(ExecutionModes.EXECUTE)
+        val control = control(JdoProduct.class)
                 .with(Executors.newCachedThreadPool());
         wrapper.async(inventoryManager, control)
                 .updateProductPrice(product, 123d);
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
index 20e72dc..87b21a3 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
@@ -54,6 +54,8 @@ import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
 import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
 import org.apache.isis.testing.integtestsupport.applib.IsisIntegrationTestAbstract;
 
+import static org.apache.isis.applib.services.wrapper.control.AsyncControl.control;
+
 import lombok.val;
 
 @Smoketest
@@ -144,7 +146,7 @@ class PublisherServiceTest extends IsisIntegrationTestAbstract {
         val latch = kvStore.latch(PublisherServiceForTesting.class);
 
         // when - running within its own background task
-        AsyncControl<Void> control = AsyncControl.voidReturn().with(ExecutionModes.SKIP_RULES);
+        AsyncControl<Void> control = control().withSkipRules();
         wrapper.async(book, control).setName("Book #2"); // don't enforce rules for this test
 
         control.getFuture().get(10, TimeUnit.SECONDS);
@@ -174,10 +176,9 @@ class PublisherServiceTest extends IsisIntegrationTestAbstract {
         // when - running within its own background task
         assertThrows(DisabledException.class, ()->{
 
-            val control = AsyncControl.voidReturn().with(ExecutionModes.EXECUTE);
-            wrapper.async(book, control).setName("Book #2");
+            wrapper.async(book, control()).setName("Book #2");
             
-            control.getFuture().get(10, TimeUnit.SECONDS);
+            control().getFuture().get(10, TimeUnit.SECONDS);
             
         });
 


[isis] 23/41: ISIS-2062: updates refguide docs. Also fixes for HealthCheckService

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

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

commit 12e1458e8bcb1a02b83db684eae8e693dbecf473
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 11 07:22:40 2020 +0000

    ISIS-2062: updates refguide docs.  Also fixes for HealthCheckService
---
 antora/components/comguide/modules/ROOT/nav.adoc   |   1 -
 .../modules/ROOT/pages/cutting-a-release.adoc      |  26 +-
 .../ROOT/pages/post-release-successful.adoc        | 431 +++++++++++++--------
 .../pages/what-is-apache-isis/screencasts.adoc     |   4 +-
 .../modules/ROOT/pages/2016/1.12.0/mignotes.adoc   |   4 +-
 .../modules/ROOT/pages/2016/1.12.0/relnotes.adoc   |   2 +-
 .../modules/ROOT/pages/2019/1.17.0/relnotes.adoc   |   2 +-
 .../how-to-handle-void-and-null-results.adoc       |  41 +-
 .../how-to-implement-a-spellchecker.adoc           |   2 +-
 .../btb/pages/hints-and-tips/persisted-title.adoc  |  11 +-
 .../pages/core-concepts/apache-isis-vs/cqrs.adoc   |   2 +-
 .../apache-isis-vs/event-sourcing.adoc             |   2 +-
 .../userguide/modules/fun/pages/crud/finding.adoc  |   4 +-
 .../modules/fun/pages/programming-model.adoc       |   2 +-
 .../domain-services/event-subscribers.adoc         |  18 +-
 .../pages/ui-hints/object-titles-and-icons.adoc    |  16 +-
 .../examples/annotation/IsisSessionScope.java      |   4 +-
 .../applib-ant/pages/Action/domainEvent.adoc       |  15 +-
 .../applib-ant/pages/Collection/domainEvent.adoc   |  11 +-
 .../pages/DomainObject/createdLifecycleEvent.adoc  |  10 +-
 .../pages/DomainObject/loadedLifecycleEvent.adoc   |  10 +-
 .../DomainObject/persistedLifecycleEvent.adoc      |  10 +-
 .../DomainObject/persistingLifecycleEvent.adoc     |  10 +-
 .../pages/DomainObject/removingLifecycleEvent.adoc |  10 +-
 .../pages/DomainObject/updatedLifecycleEvent.adoc  |  10 +-
 .../pages/DomainObject/updatingLifecycleEvent.adoc |  10 +-
 .../pages/DomainObjectLayout/cssClassUiEvent.adoc  |  10 +-
 .../pages/DomainObjectLayout/iconUiEvent.adoc      |  10 +-
 .../pages/DomainObjectLayout/layoutUiEvent.adoc    |  10 +-
 .../pages/DomainObjectLayout/titleUiEvent.adoc     |  10 +-
 .../adoc/modules/applib-ant/pages/HomePage.adoc    |   4 +-
 .../modules/applib-ant/pages/IsisSessionScope.adoc |  27 ++
 .../modules/applib-ant/pages/PostConstruct.adoc    |  10 +-
 .../adoc/modules/applib-ant/pages/PreDestroy.adoc  |  38 +-
 .../applib-ant/pages/Property/domainEvent.adoc     |  16 +-
 .../modules/applib-ant/pages/RequestScoped.adoc    |  48 ---
 .../adoc/modules/applib-ant/pages/about/jee.adoc   |   4 +-
 .../modules/applib-ant/partials/module-nav.adoc    |   2 +-
 .../modules/applib-cm/pages/classes/super.adoc     |   8 -
 .../pages/classes/super/AbstractSubscriber.adoc    |  15 -
 .../applib-cm/pages/methods/lifecycle/created.adoc |   2 +-
 .../applib-cm/pages/methods/lifecycle/jdo-api.adoc |  20 +-
 .../applib-cm/pages/methods/lifecycle/loaded.adoc  |   2 +-
 .../pages/methods/lifecycle/persisted.adoc         |   2 +-
 .../pages/methods/lifecycle/persisting.adoc        |   2 +-
 .../applib-cm/pages/methods/lifecycle/removed.adoc |   2 +-
 .../pages/methods/lifecycle/removing.adoc          |   2 +-
 .../applib-cm/pages/methods/lifecycle/updated.adoc |   2 +-
 .../pages/methods/lifecycle/updating.adoc          |   2 +-
 .../applib-cm/pages/methods/reserved/disable.adoc  |   3 +-
 .../services/conmap/ContentMappingService.java     |  10 +-
 .../examples/services/error/ErrorDetails.java      |  12 +-
 .../applib-svc/examples/services/error/Ticket.java |  10 +-
 .../services/exceprecog/ExceptionRecognizer.java   |  35 +-
 .../examples/services/factory/FactoryService.java  |  14 +-
 .../examples/services/grid/GridLoaderService.java  |  14 +-
 .../examples/services/grid/GridService.java        |  32 +-
 .../examples/services/grid/GridSystemService.java  |  14 +-
 .../services/iactn/InteractionContext.java         |   2 +-
 .../examples/services/linking/DeepLinkService.java |   2 +-
 .../services/userreg/EmailNotificationService.java |   8 +-
 .../applib-svc/pages/AcceptHeaderService.adoc      |   2 +-
 .../modules/applib-svc/pages/CommandContext.adoc   |   2 +-
 .../applib-svc/pages/ConfigurationViewService.adoc |   6 +-
 .../applib-svc/pages/ContentMappingService.adoc    |   8 +-
 .../modules/applib-svc/pages/DeepLinkService.adoc  |   5 +-
 .../applib-svc/pages/EmailNotificationService.adoc |  18 +-
 .../modules/applib-svc/pages/EmailService.adoc     |   1 +
 .../applib-svc/pages/ErrorReportingService.adoc    |  66 +---
 .../modules/applib-svc/pages/EventBusService.adoc  |  88 +----
 .../applib-svc/pages/ExceptionRecognizer.adoc      |  61 +--
 .../pages/ExceptionRecognizerService.adoc          | 135 +------
 .../modules/applib-svc/pages/FactoryService.adoc   |  27 +-
 .../applib-svc/pages/GridLoaderService.adoc        |  20 +-
 .../adoc/modules/applib-svc/pages/GridService.adoc |  34 +-
 .../applib-svc/pages/GridSystemService.adoc        |  34 +-
 .../applib-svc/pages/HealthCheckService.adoc       |  53 ++-
 .../adoc/modules/applib-svc/pages/HintStore.adoc   |   2 +-
 .../applib-svc/pages/HomePageResolverService.adoc  |   2 +-
 .../applib-svc/pages/InteractionContext.adoc       |   3 +-
 .../adoc/modules/applib-svc/pages/JaxbService.adoc |   2 +-
 .../modules/applib-svc/pages/LayoutService.adoc    |   1 +
 .../applib-svc/pages/LayoutServiceMenu.adoc        |   3 +-
 .../modules/applib-svc/pages/LocaleProvider.adoc   |   3 +-
 .../applib-svc/pages/MenuBarsLoaderService.adoc    |   1 +
 .../modules/applib-svc/pages/MenuBarsService.adoc  |   1 +
 .../modules/applib-svc/pages/MetaModelService.adoc |   1 +
 .../modules/applib-svc/pages/MetricsService.adoc   |   3 +-
 .../modules/applib-svc/pages/PublisherService.adoc |   1 +
 .../applib-svc/pages/QueryResultsCache.adoc        |   3 +-
 .../applib-svc/pages/RepositoryService.adoc        |   5 +-
 .../modules/applib-svc/pages/RoutingService.adoc   |   2 +-
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |   4 +-
 .../modules/applib-svc/pages/ServiceInjector.adoc  |   2 +-
 .../modules/applib-svc/pages/ServiceRegistry.adoc  |   1 +
 .../applib-svc/pages/SessionLoggingService.adoc    |   2 +-
 .../adoc/modules/applib-svc/pages/SudoService.adoc |   2 +-
 .../modules/applib-svc/pages/SwaggerService.adoc   |   1 +
 .../applib-svc/pages/TableColumnOrderService.adoc  |   2 +-
 .../modules/applib-svc/pages/TitleService.adoc     |   2 +-
 .../applib-svc/pages/TransactionService.adoc       |   3 +-
 .../applib-svc/pages/TranslationService.adoc       |   4 +-
 .../applib-svc/pages/TranslationsResolver.adoc     |   2 +-
 .../applib-svc/pages/UrlEncodingService.adoc       |   1 +
 .../applib-svc/pages/UserProfileService.adoc       |   2 +-
 .../applib-svc/pages/UserRegistrationService.adoc  |   6 +-
 .../adoc/modules/applib-svc/pages/UserService.adoc |   2 +-
 .../modules/applib-svc/pages/WrapperFactory.adoc   |   4 +-
 .../applib-svc/pages/XmlSnapshotService.adoc       |   2 +-
 .../isis/applib/annotation/IsisSessionScope.java   |   4 +-
 .../services/conmap/ContentMappingService.java     |  10 +-
 .../isis/applib/services/error/ErrorDetails.java   |  12 +-
 .../apache/isis/applib/services/error/Ticket.java  |  10 +-
 .../services/exceprecog/ExceptionRecognizer.java   |  35 +-
 .../applib/services/factory/FactoryService.java    |  14 +-
 .../applib/services/grid/GridLoaderService.java    |  14 +-
 .../isis/applib/services/grid/GridService.java     |  32 +-
 .../applib/services/grid/GridSystemService.java    |  14 +-
 .../apache/isis/applib/services/health/Health.java |   2 +-
 .../applib/services/iactn/InteractionContext.java  |   2 +-
 .../applib/services/linking/DeepLinkService.java   |   2 +-
 .../services/userreg/EmailNotificationService.java |   8 +-
 .../services/grid/GridLoaderServiceDefault.java    |   5 -
 .../transaction/ChangedObjectsService.java         |   2 +-
 .../pages/ChangedObjectsService.adoc               |   4 +-
 .../publish/PublisherDispatchServiceDefault.java   |   2 +-
 .../HealthIndicatorUsingHealthCheckService.java    |  13 +-
 .../demo/src/main/adoc/modules/demo/examples.sh    |  32 ++
 .../error/service/DemoErrorReportingService.java   |   8 +-
 .../src/main/java/demoapp/dom/error/ErrorDemo.adoc |  20 +-
 .../error/service/DemoErrorReportingService.java   |   8 +-
 .../adoc/modules/shiro/pages/about/run-as.adoc     |   4 +-
 .../FixtureScriptsSpecificationProvider.adoc       |   4 +-
 .../h2console/pages/services/H2ManagerMenu.adoc    |   3 +-
 .../pages/services/HsqlDbManagerMenu.adoc          |   5 +-
 .../applib/IsisIntegrationTestAbstract.java        |   2 +-
 ...sSessionScoped.java => IsisSessionHandler.java} |   2 +-
 .../hints-and-tips/highlight-current-row.adoc      |   5 +-
 138 files changed, 944 insertions(+), 1041 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/nav.adoc b/antora/components/comguide/modules/ROOT/nav.adoc
index 354a550..d126532 100644
--- a/antora/components/comguide/modules/ROOT/nav.adoc
+++ b/antora/components/comguide/modules/ROOT/nav.adoc
@@ -8,7 +8,6 @@
 * xref:post-release-successful.adoc[Post Release (Successful)]
 * xref:post-release-unsuccessful.adoc[Post Release (Unsuccessful)]
 * xref:release-process-for-interim-releases.adoc[Interim Releases]
-* xref:antora-publish-procedure.adoc[Antora Publish Procedure]
 * xref:key-generation.adoc[Key Generation]
 * xref:release-process-prereqs.adoc[Appendix: Release Process Prereqs]
 * xref:policies.adoc[Appendix: Policies]
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 e3b7123..79e8785 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -150,7 +150,8 @@ Commit any changes from the preceding steps:
 
 [source,bash,subs="attributes+"]
 ----
-git commit -am "$ISISJIRA: updates to pom.xml etc for release"
+git add ..
+git commit -m "$ISISJIRA: updates to pom.xml etc for release"
 ----
 
 
@@ -163,20 +164,21 @@ For example:
 
 [source,bash,subs="attributes+"]
 ----
-export ISISTMP=/c/tmp                               # <1>
-export ISISREL={isisnext}
-export ISISRC=RC1
+export ISISJIRA=ISIS-9999                           # <.>
+export ISISTMP=/c/tmp                               # <.>
+export ISISREL={isisnext}                           # <.>
+export ISISRC=RC1                                   # <.>
 export ISISBRANCH=release-$ISISREL-$ISISRC
-export ISISJIRA=ISIS-9999                           # <2>
 export ISISART=isis
 
 env | grep ISIS | sort
 ----
-<1> adjust by platform
-<2> set to an "umbrella" ticket for all release activities.
+<.> set to an "umbrella" ticket for all release activities.
 (One should exist already, xref:comguide:ROOT:post-release-successful.adoc#create-new-jira[created at] the beginning of the development cycle now completing).
+<.> adjust by platform
+<.> adjust as required
+<.> adjust as necessary if this is not the first attempt to release
 
-Obviously, alter ``$ISISREL`` as required, and bump ``$ISISRC`` for re-releasing following an xref:comguide:ROOT:post-release-unsuccessful.adoc[unsuccessful] release.
 
 [IMPORTANT]
 ====
@@ -215,7 +217,8 @@ pushd ../starters
 mvn versions:set -DnewVersion=$ISISREL
 popd
 
-git commit -am "$ISISJIRA: bumps version to $ISISREL"
+git add ..
+git commit -m "$ISISJIRA: bumps version to $ISISREL"
 ----
 
 so that they should read:
@@ -338,7 +341,8 @@ pushd ../starters
 mvn versions:set -DnewVersion=2.0.0-SNAPSHOT
 popd
 
-git commit -am "$ISISJIRA: resetting version"
+git add ..
+git commit -m "$ISISJIRA: resetting version"
 ----
 
 == Push branches
@@ -477,13 +481,13 @@ cd ../isis-site
 
 git add .
 git commit -m "$ISISJIRA : staging changes to website"
+
 sh preview.sh
 ----
 
 
 
 
-
 == Voting
 
 Once the artifacts have been uploaded, you can call a vote.
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index b14fef8..f97ffdd 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -42,6 +42,28 @@ The vote is SUCCESSFUL.
 I'll now go ahead and complete the post-release activities.
 ----
 
+== Set environment variables
+
+As we did for the cutting of the release, we set environment variables to parameterize the following steps:
+
+[source,bash,subs="attributes+"]
+----
+export ISISJIRA=ISIS-9999                           # <.>
+export ISISTMP=/c/tmp                               # <.>
+export ISISREL={isisnext}                           # <.>
+export ISISRC=RC1                                   # <.>
+export ISISBRANCH=release-$ISISREL-$ISISRC
+export ISISART=isis
+
+env | grep ISIS | sort
+----
+<.> set to an "umbrella" ticket for all release activities.
+(One should exist already, xref:comguide:ROOT:post-release-successful.adoc#create-new-jira[created at] the beginning of the development cycle now completing).
+<.> adjust by platform
+<.> adjust as required
+<.> adjust as necessary if there was more than one attempt to release
+
+
 == Update tags
 
 Replace the `-RCn` tag with another without the qualifier.
@@ -50,13 +72,244 @@ You can do this using the `scripts/promoterctag.sh` script; for example:
 
 [source,bash,subs="attributes+"]
 ----
-sh scripts/promoterctag.sh isis-{isisnext} RC1
+sh scripts/promoterctag.sh $ISISART-ISISREL $ISISRC
 ----
-
 This script pushes the tag under `refs/tags/rel`.
 As per Apache policy (communicated on 10th Jan 2016 to Apache PMCs), this path is 'protected' and is unmodifiable (guaranteeing the provenance that the ASF needs for releases).
 
-Then, continue onto the next section for the steps to promote and announce the release.
+
+== Update JIRA
+
+=== Generate Release Notes
+
+From the root directory, generate the release notes for the current release, in Asciidoc format; eg:
+
+[source,bash,subs="attributes+"]
+----
+sh scripts/jira-release-notes.sh ISIS $ISISREL > /tmp/1
+----
+
+[NOTE]
+====
+This script uses 'jq' to parse JSON.
+See the script itself for details of how to install this utility.
+====
+
+=== Close tickets
+
+Close all JIRA tickets for the release, or moved to future releases if not yet addressed.
+Any tickets that were partially implemented should be closed, and new tickets created for the functionality on the ticket not yet implemented.
+
+=== Mark the version as released
+
+In JIRA, go to the link:https://issues.apache.org/jira/plugins/servlet/project-config/ISIS/versions[administration section] for the Apache Isis project and update the version as being released.
+
+In the link:https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=87[Kanban view] this will have the effect of marking all tickets as released (clearing the "done" column).
+
+=== Create new JIRA
+
+Create a new JIRA ticket as a catch-all for the _next_ release.
+
+== Update Release Notes
+
+In the main `isis` repo (ie containing the asciidoc source):
+
+* Create a new `relnotes.adoc` file to hold the JIRA-generated release notes generated above.
++
+This should live in  `antora/components/relnotes/modules/ROOT/pages/yyyy/vvv/relnotes.adoc`
+
+** where `yyyy` is the year
+** where `vvv` is the version number
+
+* Update the `nav.adoc` file to reference these release notes
++
+In `antora/components/relnotes/ROOT/nav.adoc`
+
+* Update the table in the `about.adoc` summary
++
+In `antora/components/relnotes/ROOT/pages/about.adoc`
+
+
+* update the `doap_isis.rdf` file (which provides a machine-parseable description of the project) with details of the new release.
+Validate using the http://www.w3.org/RDF/Validator/[W3C RDF Validator] service.
++
+TIP: For more on DOAP files, see these link:http://projects.apache.org/doap.html[Apache policy docs].
+
+* Update the link:https://github.com/apache/isis/blob/master/STATUS[STATUS] file (in root of Apache Isis' source) should be updated with details of the new release.
+
+* commit the changes
++
+[source,bash,subs="attributes+"]
+----
+git add .
+git commit -m "$ISISJIRA: updates release notes, STATUS and doap_isis.rdf"
+----
+
+== Genereate website
+
+We use Antora to generate the site, not only the latest version but also any previous versions listed in `site.yml`.
+The most recently version being released is built in effect twice, as both "latest" and with its formal tag name.
+
+As a slight complication, the tags created previously on the release branch (`refs/tags/rel/xxx`) can't be used for this purpose, because the `antora.yml` files specify a branch name of simply "latest".
+We therefore temporarily modify all of the `antora.yml` files and `site.yml` with a reference to a new tag, and then change them back afterwards:
+
+* Update all `antora.yml` files:
++
+** `version: latest` -> `version: {isisnext}`
+
+* Commit the change, and tag:
++
+[source,bash,subs="attributes+"]
+----
+git add .
+git commit -m "$ISISJIRA: bumps antora.yml version to $ISISREL"
+
+git tag docs/$ISISART-$ISISREL
+git push origin refs/tags/docs/$ISISART-$ISISREL:refs/tags/docs/$ISISART-$ISISREL
+----
+
+* Now, immediately the change to `antora.yml` files back again:
+
+** `version: {isisnext}` -> `version: latest`
+
+* Commit these changes, and push the release branch:
++
+[source,bash,subs="attributes+"]
+----
+git add .
+git commit -m "$ISISJIRA: reverts antora.yml version to latest"
+
+git push
+----
+
+* Now we update `site.yml` (in `antora/playbooks`).
+This will reference the tag and also the current branch (for "latest").
+Every content source needs to be updated:
++
+For example, we change:
++
+.site.yml
+[source,yml,subs="attributes+"]
+----
+- url: .
+  start_path: antora/components/docs # docs
+  branches: HEAD
+----
++
+to:
++
+.site.yml
+[source,yml,subs="attributes+"]
+----
+- url: https://github.com/apache/isis.git
+  start_path: antora/components/docs # docs
+  tags: docs/isis-{isisnext}                    # <.>
+  branches: release-isis-{isisnext}             # <.>
+----
+<.> will generate the {isisnext} version
+<.> will generate the 'latest' version
+
+* commit this change, too (there's no need to push):
++
+[source,bash,subs="attributes+"]
+----
+git add .
+git commit -m "$ISISJIRA: reverts antora.yml version to latest"
+----
+
+* We are now in a position to actually generate the Antora website:
++
+[source,bash,subs="attributes+"]
+----
+sh preview.sh
+----
++
+This will write to `antora/target/site`; we'll use the results in the xref:#publish-website[next section].
+
+* Finally, revert the changes to `site.yml` back into "author mode".
++
+That is, so that each content source specifies a local URL and only the HEAD branch:
++
+.site.yml
+[source,yml,subs="attributes+"]
+----
+- url: .
+  start_path: antora/components/docs # docs
+  branches: HEAD
+----
+
+== Publish website
+
+We now copy the results of the Antora website generation over to the `isis-site` repo:
+
+** in the `isis-site` repo, check out the `asf-site` branch:
++
+[source,bash,subs="attributes+"]
+----
+cd ../isis-site
+
+git checkout asf-site
+git pull origin/asf-site --ff-only
+----
+
+* still in the `isis-site` repo, delete all the files in `content/` _except_ for the `schema` and `versions` directories:
++
+[source,bash,subs="attributes+"]
+----
+pushd content
+for a in $(ls -1 | grep -v schema | grep -v versions)
+do
+    rm -rf $a
+done
+popd
+----
+
+* Copy the generated Antora site to `isis-site` repo's `contents` directory:
++
+[source,bash,subs="attributes+"]
+----
+cd ../isis
+
+cp -Rf antora/target/site/* ../isis-site/content/.
+----
+
+* Back in the `isis-site` repo, commit the changes and preview:
++
+[source,bash,subs="attributes+"]
+----
+cd ../isis-site
+
+git add .
+git commit -m "$ISISJIRA : production changes to website"
+
+sh preview.sh
+----
+
+* If everything looks ok, then push the changes to make live, and switch back to the `isis` repo:
++
+[source,bash,subs="attributes+"]
+----
+git push origin asf-site
+
+cd ../isis
+----
+
+
+== Merge in release branch
+
+Because we release from a branch, the changes made in the branch should be merged back from the release branch back into the `master` branch.
+
+In the `isis` repo:
+
+[source,bash,subs="attributes+"]
+----
+git checkout master                           # update master with latest
+git pull
+git merge release-{isisnext}-RC1                  # merge branch onto master
+git push origin --delete release-{isisnext}-RC1   # remote branch no longer needed
+git branch -d release-{isisnext}-RC1              # branch no longer needed
+----
+
 
 == Release to Maven Central
 
@@ -91,7 +344,7 @@ svn co https://dist.apache.org/repos/dist/release/isis isis-dist
 ----
 
 Next, add the new release into the appropriate directory, and delete any previous release.
-The `upd.sh` script (also downloadable from link:https://gist.github.com/danhaywood/aa79c18d993df1b1e2c5a9933e48bcbc[this gist]) can be used to automate this:
+The `upd.sh` script can be used to automate this:
 
 [source,bash]
 ----
@@ -153,142 +406,11 @@ svn commit -m "publishing isis source releases to dist.apache.org"
 
 If the files are invalid, then revert using `svn revert . --recursive` and try again in a little while.
 
-== Update JIRA
-
-=== Generate Release Notes
-
-From the root directory, generate the release notes for the current release, in Asciidoc format; eg:
-
-[source,bash,subs="attributes+"]
-----
-sh scripts/jira-release-notes.sh ISIS {isisnext} > /tmp/1
-----
-
-[NOTE]
-====
-This script uses 'jq' to parse JSON.
-See the script itself for details of how to install this utility.
-====
-
-=== Close tickets
-
-Close all JIRA tickets for the release, or moved to future releases if not yet addressed.
-Any tickets that were partially implemented should be closed, and new tickets created for the functionality on the ticket not yet implemented.
-
-=== Mark the version as released
-
-In JIRA, go to the link:https://issues.apache.org/jira/plugins/servlet/project-config/ISIS/versions[administration section] for the Apache Isis project and update the version as being released.
-
-In the link:https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=87[Kanban view] this will have the effect of marking all tickets as released (clearing the "done" column).
-
-=== Create new JIRA
-
-Create a new JIRA ticket as a catch-all for the _next_ release.
-
-=== Update the ASF Reporter website
+== Update the ASF Reporter website
 
 Log the new release in the link:https://reporter.apache.org/addrelease.html?isis[ASF Reporter website].
 
 
-== Update website
-
-WARNING: TODO - v2 - need to update for Antora process.
-See also (or x-ref) the xref:antora-publish-procedure.adoc[antora publish procedure] section, also in this guide.
-
-In the main `isis` repo (ie containing the asciidoc source):
-
-* Paste in the JIRA-generated release notes generated above, adding to top of `antora/components/relnotes/modules/ROOT/pages/about.adoc`.
-+
-Also add a summary line for the release.
-
-* Update the [`site.yml`] file that declares the current and next releases.
-
-* update the `doap_isis.rdf` file (which provides a machine-parseable description of the project) with details of the new release.
-Validate using the http://www.w3.org/RDF/Validator/[W3C RDF Validator] service.
-+
-For more information on DOAP files, see these http://projects.apache.org/doap.html[Apache policy docs].
-
-* Update the link:https://github.com/apache/isis/blob/master/STATUS[STATUS] file (in root of Apache Isis' source) should be updated with details of the new release.
-
-* commit the `.adoc` changes
-
-Now we need to publish the website:
-
-* locate `template/document.html.erb` file, and remove `-SNAPSHOT` from the navbar, so that it reads something like:
-+
-[source,html,subs="attributes+"]
-----
-<p class="nav navbar-text navbar-right small">{isisnext}</p>
-----
-
-* publish to the `isis-site` repo.
-+
-This will have published to the `SNAPSHOT` directory of the `isis-site` repo.
-
-Now, in the `isis-site` repo itself:
-
-* double check that a copy of `current` exists as a named directory under `content/versions`
-+
-If for any reason it isn't there, then create a copy (under `content/versions`) before it gets deleted in the step below.
-
-* delete the `current` version and then rename the just-published `SNAPSHOT` as `current`:
-+
-[source,bash]
-----
-rm -rf content/versions/current
-mv content/versions/SNAPSHOT content/versions/current
-----
-
-* take a copy of the new `current` version as its appropriately named version:
-+
-For example:
-+
-[source,bash,subs="attributes+"]
-----
-cp -rf content/versions/current content/versions/{isisnext}
-----
-
-* update the new named version's `index.html` with one that will redirect back to the home page.
-+
-You can take a copy from one of the older named versions, or just use this text:
-+
-[source,html]
-----
-<html>
-    <head>
-        <title>Redirecting to index.html</title>
-        <meta http-equiv="refresh" content="1; URL=../../index.html">
-        <meta name="keywords" content="automatic redirection">
-        </head>
-    <body>
-        Redirecting to <a href="../../index.html">index.html</a>...
-    </body>
-</html>
-----
-
-* In the home page's index page (`content/index.html`):
-
-** update the menu to reference the new version
-
-At this point the files in the root (directly under `content`) will still be out of date; the publish process simply preserves whatever is in `content/versions/current`.
-Also, the `SNAPSHOT` will be missing (above it was renamed to `current`).
-And, we also need to make sure that any future publishing of snapshots has the correct version in the navbar.
-
-Therefore:
-
-* locate `template/document.html.erb` file, and add in `-SNAPSHOT` for version in the navbar:
-+
-[source,html,subs="attributes+"]
-----
-<p class="nav navbar-text navbar-right small">{isisnextafter}-SNAPSHOT</p>
-----
-
-* publish the website once more (from the `isis` main repo).
-
-* Finally, preview the changes (using `sh preview.sh` in the `isis-site`).
-
-If everything looks ok, then push the changes to make live.
-
 == Announce the release
 
 Announce the release to link:mailto:users@isis.apache.org[users mailing list].
@@ -330,18 +452,6 @@ Enjoy!
 link:https://blogs.apache.org/roller-ui/login.rol[Log onto] the http://blogs.apache.org/isis/[Apache blog] and create a new post.
 Copy-n-paste the above mailing list announcement should suffice.
 
-== Merge in release branch
-
-Because we release from a branch, the changes made in the branch (changes to `pom.xml` made by the `maven-release-plugin`, or any manual edits) should be merged back from the release branch back into the `master` branch:
-
-[source,bash,subs="attributes+"]
-----
-git checkout master                           # update master with latest
-git pull
-git merge release-{isisnext}-RC1                  # merge branch onto master
-git push origin --delete release-{isisnext}-RC1   # remote branch no longer needed
-git branch -d release-{isisnext}-RC1              # branch no longer needed
-----
 
 == Update dependencies
 
@@ -349,23 +459,11 @@ With the release complete, now is a good time to bump versions of dependencies (
 
 You will probably want to create a new JIRA ticket for these updates (or if minor then use the "catch-all" JIRA ticket raised earlier for the next release).
 
-=== Update parent of Core
+=== Merge in any changes from `org.apache:apache`
 
 Check (via link:http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache%22%20a%3A%22apache%22[search.maven.org]) whether there is a newer version of the Apache parent `org.apache:apache`.
 
-If there is, update the `&lt;version&gt;` in the `&lt;parent&gt;` element in the parent POM to match the newer version:
-
-[source,xml]
-----
-<parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>NN</version>
-    <relativePath />
-</parent>
-----
-
-where `NN` is the updated version number.
+If there are, merge in these changes to the `core-parent` POM.
 
 === Update plugin versions
 
@@ -419,15 +517,6 @@ For these artifacts you will need to search http://search.maven.org[Maven centra
 This is also a good time to make source code has been cleaned up and formatted according to the Apache Isis and ASF conventions.
 Use link:../dg/resources/eclipse/Apache-code-style-formatting.xml[this] Eclipse template and link:../dg/resources/eclipse/isis.importorder[this] import order.
 
-== Push changes
-
-Finally, push the changes up to origin:
-
-[source,bash]
-----
-git fetch    # check no new commits on origin/master
-git push
-----
 
 == Release (non-ASF) Modules
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
index 6c9b3ee..c01b859 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
@@ -250,13 +250,13 @@ Shows how to refactor a domain object to move (derived) collections out of the d
 
 
 |link:https://www.youtube.com/watch?v=-AQJb9GtIqI[024^] +
-Using a domain event xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[subscriber] to xref:userguide:fun:building-blocks.adoc#domain-events[decouple] and abstract business rules (xref:refguide:applib-cm:methods.adoc#validate[validation]).
+Using a domain event subscriber to xref:userguide:fun:building-blocks.adoc#domain-events[decouple] and abstract business rules (xref:refguide:applib-cm:methods.adoc#validate[validation]).
 ||||||x|||||
 
 
 
 |link:https://www.youtube.com/watch?v=6GjLW0hlrm4[025^] +
-Using a domain event xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[subscriber] to hide functionality, in this
+Using a domain event subscriber to hide functionality, in this
   case the xref:refguide:applib-cm:rgcms.adoc#__rgcms_classes_mixins_Object_clearHints["clear hints"] action automatically provided by the framework.
 ||||||||||x|
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc
index 139ec81..4be0367 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/mignotes.adoc
@@ -44,14 +44,14 @@ The properties are grouped in a "metadata" fieldset, and the mixin actions assoc
 If the domain object is a view model rather than an entity (that is, has no id or version) then the actions will instead be rendered as top-level actions.
 
 Most of these mixin object members are visible only in prototype mode, though some are visible in production mode and so potentially visible to end-users.
-If you wish to suppress these members from the view, you can either use link:https://isis.apache.org/versions/1.12.0/guides/ugsec/ugsec.html#[security], or alternatively you can write link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber[subscriber]s to veto the visibility of these members by subscribing to their respective domain events.
+If you wish to suppress these members from the view, you can either use link:https://isis.apache.org/versions/1.12.0/guides/ugsec/ugsec.html#[security], or alternatively you can write subscribers to veto the visibility of these members by subscribing to their respective domain events.
 
 
 
 == JAXB view models are editable
 
 All link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-XmlRootElement[`@XmlRootElement`] view models are now implicitly editable.
-Therefore any view models that should be read-only should have editing attribute disabled using link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-DomainObject_editing[`@DomainObject#editing()`] (or use a link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto editability).
+Therefore any view models that should be read-only should have editing attribute disabled using link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-DomainObject_editing[`@DomainObject#editing()`] (or use a subscriber to veto editability).
 
 
 == `DomainObjectContainer` domain service
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
index 329f451..e0fb8c6 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
@@ -20,7 +20,7 @@ In addition, the link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc
 
 The release also includes a number of new mixins, to automatically surface in the UI an entity's id, version (if any), and to download the layout XML and rebuild the metamodel for a given domain entity.
 There is also a mixin to clear any UI hints (part of the file-based layouts functionality).
-In all cases these mixins can be hidden using either security or by writing a link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto the visibility of the corresponding domain event.
+In all cases these mixins can be hidden using either security or by writing a subscriber to veto the visibility of the corresponding domain event.
 
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
index b563f13..832cbb1 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
@@ -78,7 +78,7 @@ In terms of notable bugs, there have been several fixes for the Restful Objects
 * link:https://issues.apache.org/jira/browse/ISIS-507[ISIS-507] - [WON'T FIX] UI: more specific icon for bookmarked repository actions
 * link:https://issues.apache.org/jira/browse/ISIS-741[ISIS-741] - [WON'T FIX] For GSOC, write an integration with Twilio or similar, for voice calls, SMS messaging, etc.
 * link:https://issues.apache.org/jira/browse/ISIS-1900[ISIS-1900] - [NOT A PROBLEM] Fix the release process to also generate .sha512 files
-* link:https://issues.apache.org/jira/browse/ISIS-1702[ISIS-1702] - [DUPLICATE] Infer @Programmatic on methods within @DomainService(nature=DOMAIN)
+* link:https://issues.apache.org/jira/browse/ISIS-1702[ISIS-1702] - [DUPLICATE] Infer @Programmatic on methods within @DomainService(natureOfService=DOMAIN)
 * link:https://issues.apache.org/jira/browse/ISIS-1671[ISIS-1671] - [DUPLICATE] Upgrade to Wicket 7.8.0
 * link:https://issues.apache.org/jira/browse/ISIS-1637[ISIS-1637] - [WON'T FIX] Non-JAXB view models do not support editable properties
 * link:https://issues.apache.org/jira/browse/ISIS-1629[ISIS-1629] - [WON'T FIX] Handle dynamic visibility of list of properties rendered
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
index a8bb243..b822230 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
@@ -28,33 +28,35 @@ The following custom implementation refines this to use the breadcrumbs (availab
 
 [source,java]
 ----
-@DomainService(nature = NatureOfService.DOMAIN)
-@DomainServiceLayout(menuOrder = "1")                                           // <1>
+import org.springframework.stereotype.Service;
+
+@Service
+@DomainServiceLayout(menuOrder = "1")                                           // <.>
 public class RoutingServiceUsingBreadcrumbs extends RoutingServiceDefault {
     @Override
     public Object route(final Object original) {
-        if(original != null) {                                                  // <2>
+        if(original != null) {                                                  // <.>
             return original;
         }
-        repositoryService.flush();                                              // <3>
+        repositoryService.flush();                                              // <.>
 
-        final BreadcrumbModelProvider wicketSession =                           // <4>
+        final BreadcrumbModelProvider wicketSession =                           // <.>
             (BreadcrumbModelProvider) AuthenticatedWebSession.get();
         final BreadcrumbModel breadcrumbModel =
             wicketSession.getBreadcrumbModel();
         final List<EntityModel> breadcrumbs = breadcrumbModel.getList();
 
         final Optional<Object> firstViewModelOrNonDeletedPojoIfAny =
-                breadcrumbs.stream()                                            // <5>
+                breadcrumbs.stream()                                            // <.>
                 .filter(entityModel -> entityModel != null)
-                .map(EntityModel::getObject)                                    // <6>
+                .map(EntityModel::getObject)                                    // <.>
                 .filter(objectAdapter -> objectAdapter != null)
-                .map(ObjectAdapter::getObject)                                  // <7>
+                .map(ObjectAdapter::getObject)                                  // <.>
                 .filter(pojo -> !(pojo instanceof Persistable) ||
-                                !((Persistable)pojo).dnIsDeleted())             // <8>
+                                !((Persistable)pojo).dnIsDeleted())             // <.>
                 .findFirst();
 
-        return firstViewModelOrNonDeletedPojoIfAny.orElse(homePage());          // <9>
+        return firstViewModelOrNonDeletedPojoIfAny.orElse(homePage());          // <.>
     }
     private Object homePage() {
         return homePageResolverService.homePage();
@@ -65,15 +67,14 @@ public class RoutingServiceUsingBreadcrumbs extends RoutingServiceDefault {
     RepositoryService repositoryService;
 }
 ----
-<1> override the default imlpementation
-<2> if a non-null object was returned, then return this
-<3> ensure that any persisted objects have been deleted.
-<4> reach inside the Wicket viewer's internals to obtain the list of breadcrumbs.
-<5> loop over all breadcrumbs
-<6> unwrap the Wicket viewer's serializable representation of each domain object (`EntityModel`) to the Isis runtime's
-representation (`ObjectAdapter`)
-<7> unwrap the Isis runtime's representation of each domain object (`ObjectAdapter`) to the domain object pojo itself
-<8> if object is persistable (not a view model) then make sure it is not deleted
-<9> return the first object if any, otherwise the home page object (if any).
+<.> override the default imlpementation
+<.> if a non-null object was returned, then return this
+<.> ensure that any persisted objects have been deleted.
+<.> reach inside the Wicket viewer's internals to obtain the list of breadcrumbs.
+<.> loop over all breadcrumbs
+<.> unwrap the Wicket viewer's serializable representation of each domain object (`EntityModel`) to the Isis runtime's representation (`ObjectAdapter`)
+<.> unwrap the Isis runtime's representation of each domain object (`ObjectAdapter`) to the domain object pojo itself
+<.> if object is persistable (not a view model) then make sure it is not deleted
+<.> return the first object if any, otherwise the home page object (if any).
 
 Note that the above implementation uses Java 8, so if you are using Java 7 then you'll need to backport accordingly.
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
index 2cfae5e..f7e698d 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
@@ -13,7 +13,7 @@ From this link:http://isis.markmail.org/thread/dduarjscrbnodfsi[thread] on the A
 
 One way to implement is to use the xref:refguide:applib-svc:EventBusService.adoc[event bus]:
 
-* Set up a xref:refguide:applib-cm:classes/domainevent.adoc[domain event] xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[subscriber] that can veto the changes.
+* Set up a xref:refguide:applib-cm:classes/domainevent.adoc[domain event] subscriber that can veto the changes.
 
 * if the change is made through an action, you can use xref:refguide:applib-ant:Action.adoc#domainEvent[`@Action#domainEvent`].
 
diff --git a/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc b/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
index a82d5f2..91b803a 100644
--- a/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
+++ b/api/adoc/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
@@ -25,9 +25,10 @@ We can then define a subscribing domain service that leverage this.
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature = NatureOfService.DOMAIN)
-public class TitlingService extends AbstractSubscriber {
+@Service
+public class TitlingService {
 
     @EventListener(ObjectPersistingEvent.class)
     public void on(ObjectPersistingEvent ev) {
@@ -56,8 +57,10 @@ It is also possible to accomplish this by accessing the JDO API directly:
 
 [source,java]
 ----
-@RequestScoped
-@DomainService(nature = NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@IsisSessionScope
+@Service
 public class TitlingService {
     @PostConstruct
     public void init() {
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
index 3c49d96..cfae7c2 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
@@ -31,7 +31,7 @@ There are other reasons though why a separate read model might make sense, such
 In these cases Apache Isis can often provide a reasonable alternative, namely to map domain entities against RDBMS views, either materialized views or dynamic.
 In such cases there is still only a single physical datastore, and so transactional integrity is retained.
 
-Or, the CQRS architecture can be more fully implemented with Apache Isis by introducing a separate read model, synchronized using the xref:refguide:applib-svc:PublisherService.adoc[`PublisherService`], or using xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[subscribers]  on the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`].
+Or, the CQRS architecture can be more fully implemented with Apache Isis by introducing a separate read model, synchronized using the xref:refguide:applib-svc:PublisherService.adoc[`PublisherService`], or using subscribers on the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`].
 One can then use xref:userguide:fun:building-blocks.adoc#view-models[view models] to surface the data in the external read datastore.
 
 With respect to commands, Apache Isis does of course support the xref:refguide:applib-svc:CommandService.adoc[`CommandService`] which allows each business action to be reified into a `Command`.
diff --git a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
index ef8c3a9..e3e109c 100644
--- a/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
+++ b/api/adoc/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
@@ -23,6 +23,6 @@ If the latter, then the subscriber will operate within a separate transaction, m
 CQRS/event sourcing advocates point out -- correctly -- that this is just how things are in the "real world" too.
 
 In Apache Isis every business action (and indeed, property and collection) emits domain events through the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`], and can optionally also be published through the xref:refguide:applib-svc:PublisherService.adoc[`PublisherService`].
-The former are dispatched and consumed in-process and within the same transaction, and for this reason the xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[subscribers] can also veto the events.
+The former are dispatched and consumed in-process and within the same transaction, and for this reason the subscribers can also veto the events.
 
 
diff --git a/api/adoc/userguide/modules/fun/pages/crud/finding.adoc b/api/adoc/userguide/modules/fun/pages/crud/finding.adoc
index 44a0fbc..6b1210e 100644
--- a/api/adoc/userguide/modules/fun/pages/crud/finding.adoc
+++ b/api/adoc/userguide/modules/fun/pages/crud/finding.adoc
@@ -33,7 +33,9 @@ and
 
 [source,java]
 ----
-@DomainService(nature=NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class CustomerRepository {
 
     public List<Customer> findByName(String name) {
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model.adoc b/api/adoc/userguide/modules/fun/pages/programming-model.adoc
index 02fe812..5bbe65d 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model.adoc
@@ -54,7 +54,7 @@ functionality is simply for other domain objects to invoke programmatically), or
 You can generally recognize an Apache Isis domain class because it will be probably be annotated using `@DomainObject` and `@DomainService`.
 
 It's worth emphasising is that domain entities and view models hold state, whereas domain services are generally stateless.
-If a domain service does hold state (eg the `Scratchpad` service noted above) then it should be scoped, for example using `@RequestScoped` (so that this state is short-lived and usable only within a single request).
+If a domain service does hold state (eg the `Scratchpad` service noted above) then it should be scoped, for example using `@IsisSessionScope` (so that this state is short-lived and usable only within a single request).
 
 The framework also defines supplementary annotations, `@DomainObjectLayout` and `@DomainServiceLayout`.
 These provide hints relating to the layout of the domain object in the user interface.
diff --git a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
index 651524d..bab37f9 100644
--- a/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
+++ b/api/adoc/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
@@ -8,20 +8,17 @@ WARNING: TODO: v2: update for Spring events rather than axon/guava
 
 Domain services acting as event subscribers can subscribe to xref:userguide:fun:building-blocks.adoc#lifecycle-events[lifecycle] events, influencing the rendering and behaviour of other objects.
 
-All subscribers must subscribe to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`]; as this amounts to a few lines of boilerplate it's easiest to inherit from the convenience `AbstractSubscriber` class.
-
 We suggest naming such classes `XxxSubscriptions`, for example:
 
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
 
-@DomainService( nature=NatureOfService.DOMAIN )         // <1>
-public class CustomerOrderSubscriptions
-                    extends AbstractSubscriber {        // <2>
+@DomainService( nature=NatureOfService.DOMAIN )         // <.>
+public class CustomerOrderSubscriptions {
 
-    @EventListener(Customer.DeletedEvent.class)         // <3>
-    public void on(final Customer.DeletedEvent ev) {    // <4>
+    @EventListener(Customer.DeletedEvent.class)         // <.>
+    public void on(final Customer.DeletedEvent ev) {    // <.>
         Customer customer = ev.getSource();
         orderRepository.delete(customer);
     }
@@ -30,10 +27,9 @@ public class CustomerOrderSubscriptions
     OrderRepository orderRepository;
 }
 ----
-<1> subscriptions do not appear in the UI at all
-<2> subclass from the `AbstractSubscriber` convenience superclass
-<3> use Spring Frameworkr's `@EventListener`
-<4> the parameter type of the method corresponds to the event emitted on the event bus.
+<.> subscriptions do not appear in the UI at all
+<.> use Spring Frameworkr's `@EventListener`
+<.> the parameter type of the method corresponds to the event emitted on the event bus.
 The actual method name does not matter (though it must have `public` visibility).
 
 
diff --git a/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc b/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
index 44d1b70..c1dd86c 100644
--- a/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
+++ b/api/adoc/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
@@ -137,9 +137,10 @@ The subscriber can then populate this event:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class AuthorSubscriptions extends AbstractSubscriber {
+@Service
+public class AuthorSubscriptions {
 
     @EventListener(Author.TitleUiEvent.class)
     public void on(Author.TitleUiEvent ev) {
@@ -236,8 +237,10 @@ WARNING: TODO: v2: what annotation is required for SpringBoot event subscribers?
 
 [source,java]
 ----
-@DomainService(nature=NatureOfService.DOMAIN)
-public class OrderSubscriptions extends AbstractSubscriber {
+import org.springframework.stereotype.Service;
+
+@Service
+public class OrderSubscriptions {
 
     @org.axonframework.eventhandling.EventHandler       p
     @com.google.common.eventbus.Subscribe               // if using guava
@@ -319,9 +322,10 @@ The subscriber can then populate this event:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class OrderSubscriptions extends AbstractSubscriber {
+@Service
+public class OrderSubscriptions {
 
     @EventListener(Order.CssClassUiEvent.class)
     public void on(Order.CssClassUiEvent ev) {
diff --git a/api/applib/src/main/adoc/modules/applib-ant/examples/annotation/IsisSessionScope.java b/api/applib/src/main/adoc/modules/applib-ant/examples/annotation/IsisSessionScope.java
index 71726e2..03aeae3 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/examples/annotation/IsisSessionScope.java
+++ b/api/applib/src/main/adoc/modules/applib-ant/examples/annotation/IsisSessionScope.java
@@ -37,8 +37,8 @@ import org.springframework.context.annotation.Scope;
  * composed annotations.
  *
  * @since 2.0
- * @see SessionScope
- * @see ApplicationScope
+ * @see org.springframework.web.context.annotation.SessionScope
+ * @see org.springframework.web.context.annotation.ApplicationScope
  * @see org.springframework.context.annotation.Scope
  * @see org.springframework.stereotype.Component
  * @see org.springframework.context.annotation.Bean
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
index 44f8ba0..4f1fd15 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
@@ -63,9 +63,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ActionDomainEvent.class)
     public void on(ActionDomainEvent ev) {
         ...
@@ -78,9 +79,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.CompletedEvent.class)
     public void on(ToDoItem.CompletedEvent ev) {
         ...
@@ -104,9 +106,10 @@ Thus the general form is:
 [source,java]
 ----
  import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
 
     @EventListener(ActionDomainEvent.class)
     public void on(ActionDomainEvent ev) {
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
index 0449666..b97d51d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
@@ -78,8 +78,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 
 [source,java]
 ----
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+import org.springframework.stereotype.Service;
+
+@Service
+public class SomeSubscriber {
     @com.google.common.eventbus.Subscribe
     public void on(CollectionDomainEvent ev) {
         ...
@@ -92,9 +94,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.DependenciesChangedEvent.class)
     public void on(ToDoItem.DependenciesChangedEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
index 256d76b..09471e5 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
@@ -60,9 +60,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectCreatedEvent.class)
     public void on(ObjectCreatedEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -77,9 +78,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectCreatedEvent.class)
     public void on(ToDoItem.ObjectCreatedEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
index 0933b41..0937d66 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
@@ -51,9 +51,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectLoadedEvent.class)
     public void on(ObjectLoadedEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -68,9 +69,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectLoadedEvent.class)
     public void on(ToDoItem.ObjectLoadedEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
index 2eb2f34..73853c2 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
@@ -57,9 +57,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectPersistedEvent.class)
     public void on(ObjectPersistedEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -74,9 +75,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectPersistedEvent.class)
     public void on(ToDoItem.ObjectPersistedEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
index 8f231ed..51274a7 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
@@ -59,9 +59,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectPersistingEvent.class)
     public void on(ObjectPersistingEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -76,9 +77,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectPersistingEvent.class)
     public void on(ToDoItem.ObjectPersistingEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
index 3c65eb1..5052ffc 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
@@ -59,9 +59,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectRemovingEvent.class)
     public void on(ObjectRemovingEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -76,9 +77,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectRemovingEvent.class)
     public void on(ToDoItem.ObjectRemovingEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
index 053d259..7ab1132 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
@@ -56,9 +56,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectUpdatedEvent.clas)
     public void on(ObjectUpdatedEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -73,9 +74,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectUpdatedEvent.class)
     public void on(ToDoItem.ObjectUpdatedEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
index 0a73164..bb0a16a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
@@ -60,9 +60,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ObjectUpdatingEvent.class)
     public void on(ObjectUpdatingEvent ev) {
         if(ev.getSource() instanceof ToDoItem) {
@@ -77,9 +78,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.ObjectUpdatingEvent.class)
     public void on(ToDoItem.ObjectUpdatingEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
index 766874d..b50f706 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
@@ -62,9 +62,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(CssClassUiEvent.class)
     public void on(CssClassUiEvent ev) {
         if(ev.getSource() instanceof ToDoItemDto) {
@@ -79,9 +80,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItemDto.CssClassUiEvent.class)
     public void on(ToDoItemDto.CssClassUiEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
index 94bf150..9577a91 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
@@ -61,9 +61,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(IconUiEvent.class)
     public void on(IconUiEvent ev) {
         if(ev.getSource() instanceof ToDoItemDto) {
@@ -78,9 +79,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItemDto.IconUiEvent.class)
     public void on(ToDoItemDto.IconUiEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
index cb20452..1efd68d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
@@ -54,9 +54,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(LayoutUiEvent.class)
     public void on(LayoutUiEvent ev) {
         if(ev.getSource() instanceof ToDoItemDto) {
@@ -71,9 +72,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListner(ToDoItemDto.LayoutUiEvent.class)
     public void on(ToDoItemDto.LayoutUiEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
index dd7b095..e8ec63e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
@@ -61,9 +61,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(TitleUiEvent.class)
     public void on(TitleUiEvent ev) {
         if(ev.getSource() instanceof ToDoItemDto) {
@@ -78,9 +79,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItemDto.TitleUiEvent.class)
     public void on(ToDoItemDto.TitleUiEvent ev) {
         ...
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
index d60a42b..b76864c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
@@ -15,7 +15,9 @@ The corresponding code is:
 
 [source,java]
 ----
-@DomainService(nature = NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class TodoAppDashboardService  {
     @Action(
             semantics = SemanticsOf.SAFE
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/IsisSessionScope.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/IsisSessionScope.adoc
new file mode 100644
index 0000000..19438ec
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/IsisSessionScope.adoc
@@ -0,0 +1,27 @@
+= `@IsisSessionScope`
+
+: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 [...]
+
+
+
+The `@IsisSessionScope` annotation indicates that a xref:refguide:applib-ant:DomainService.adoc[domain service] should be scoped with the Apache Isis session rather than a singleton.
+An Apache Isis session is created for each HTTP request, and so this annotation is conceptually very similar to the link:https://jcp.org/en/jsr/detail?id=299[JSR-299] `@javax.enterprise.context.RequestScoped` annotation.
+
+A number of the built-in domain services uses this annotation, including xref:refguide:applib-svc:Scratchpad.adoc[`Scratchpad`] and
+xref:refguide:applib-svc:QueryResultsCache.adoc[`QueryResultsCache`].
+
+One small wrinkle: these session-scoped services must be injected using the `Provider` idiom, not directly.
+For example:
+
+[source,java]
+----
+@DomainService
+public class SomeRepository {
+    // ...
+    @Inject
+    Provider<QueryResultsCache> queryResultsCacheProvider;
+}
+----
+
+If the session-scoped service is accidentally injected directly, then the framework will fail-fast with a suitable error message.
+
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc
index b27b709..d13c599 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PostConstruct.adoc
@@ -4,11 +4,12 @@
 
 WARNING: TODO: v2 - the init with args is no longer supported; instead use IsisConfiguration injected or any Spring Boot `@ConfigurationProperties` class.
 
-The `@javax.annotation.PostConstruct` annotation, as defined in link:https://jcp.org/en/jsr/detail?id=250[JSR-250],  is recognized by Apache Isis as a callback method on domain services to be called just after they have been constructed, in order that they initialize themselves.
+The `@javax.annotation.PostConstruct` annotation, as defined in link:https://jcp.org/en/jsr/detail?id=250[JSR-250], is recognized by Apache Isis as a callback method on domain services to be called just after they have been constructed, in order that they initialize themselves.
 
 It is also recognized for xref:userguide:fun:building-blocks.adoc#view-models[view models] (eg annotated with xref:refguide:applib-ant:ViewModel.adoc[`@ViewModel`]).
 
-For the default application-scoped (singleton) domain services, this means that the method, if present, is called during the bootstrapping of the application.  For xref:refguide:applib-ant:RequestScoped.adoc[`@RequestScoped`] domain services, the method is called at the beginning of the request.
+For the default application-scoped (singleton) domain services, this means that the method, if present, is called during the bootstrapping of the application.
+For xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`] domain services, the method is called at the beginning of the request.
 
 The signature of the method is:
 
@@ -29,6 +30,7 @@ Alternatively - for domain services only, not view models - the method can accep
 @Programmatic
 public void init(Map<String,String> properties) { /* ... */ }
 ----
+
 Apache Isis uses argument to pass in the configuration properties read from all xref:refguide:config:configuration-files.adoc[configuration files]:
 
 [TIP]
@@ -39,8 +41,4 @@ However, be aware when using this latter API that only those configuration prope
 
 Use cases include obtaining connections to external datasources, eg subscribing to an ActiveMQ router, say, or initializing/cleaning up a background scheduler such as Quartz.
 
-
-
-
-
 See also xref:refguide:applib-ant:PreDestroy.adoc[`@PreDestroy`]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc
index dd3f871..7a88496 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PreDestroy.adoc
@@ -6,46 +6,20 @@
 
 The `@javax.annotation.PreDestroy` annotation, as defined in link:https://jcp.org/en/jsr/detail?id=250[JSR-250], recognized by Apache Isis as a callback method on domain services to be called just as they go out of scope.
 
-
-For the default application-scoped (singleton) domain services, this means that the method, if present, is called just prior to the termination of the application.  For xref:refguide:applib-ant:RequestScoped.adoc[`@RequestScoped`] domain services, the method is called at the end of the request.
+For the default application-scoped (singleton) domain services, this means that the method, if present, is called just prior to the termination of the application.
+For xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`] domain services, the method is called at the end of the request.
 
 The signature of the method is:
 
 [source,java]
 ----
-@PreDestroy                         <1>
-public void deinit() { /* ... */ }    <2>
-----
-<1> It is not necessary to annotate the method with xref:refguide:applib-ant:Programmatic.adoc[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
-<2> the method can have any name, but must have `public` visibility, and accept no arguments.
-
-A common use case is for domain services that interact with the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`].  For example:
-
-[source,java]
-----
-@DomainService(nature=NatureOfService.DOMAIN)
-public class MySubscribingService {
-    @PostConstruct
-    public void init() {
-        eventBusService.register(this);
-    }
-    @PreDestroy
-    public void deinit() {
-        eventBusService.unregister(this);
-    }
-    ...
-    @javax.inject.Inject
-    EventBusService eventBusService;
-}
+@PreDestroy                           <.>
+public void deinit() { /* ... */ }    <.>
 ----
+<.> It is not necessary to annotate the method with xref:refguide:applib-ant:Programmatic.adoc[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
+<.> the method can have any name, but must have `public` visibility, and accept no arguments.
 
-[TIP]
-====
-In this particular use case, it is generally simpler to just subclass from xref:refguide:applib-cm:classes/super.adoc#AbstractSubscriber[`AbstractSubscriber`].
-====
 
 Other use cases include obtaining connections to external datasources, eg subscribing to an ActiveMQ router, say, or initializing/cleaning up a background scheduler such as Quartz.
 
-
-
 See also xref:refguide:applib-ant:PostConstruct.adoc[`@PostConstruct`]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
index df1e24d..e105d66 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
@@ -61,8 +61,10 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 
 [source,java]
 ----
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+import org.springframework.stereotype.Service;
+
+@Service
+public class SomeSubscriber {
     @com.google.common.eventbus.Subscribe
     public void on(PropertyDomainEvent ev) {
         ...
@@ -75,9 +77,10 @@ or can be fine-grained (by subscribing to specific event subtypes):
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
     @EventListener(ToDoItem.DueByChangedEvent.class)
     public void on(ToDoItem.DueByChangedEvent ev) {
         ...
@@ -99,9 +102,10 @@ Thus the general form is:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class SomeSubscriber extends AbstractSubscriber {
+@Service
+public class SomeSubscriber {
 
     public void on(PropertyDomainEvent ev) {
         switch(ev.getEventPhase()) {
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc
deleted file mode 100644
index 886305b..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/RequestScoped.adoc
+++ /dev/null
@@ -1,48 +0,0 @@
-= `@RequestScoped` (`javax`)
-
-: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 [...]
-
-
-
-
-The `@javax.enterprise.context.RequestScoped` link:https://jcp.org/en/jsr/detail?id=299[JSR-299] CDI annotation is used to specify that a xref:refguide:applib-ant:DomainService.adoc[domain service] should be request-scoped rather than a singleton.
-
-Although Apache Isis does not (currently) leverage CDI, the semantics are the same as request-scoped service; a new instance is created for each HTTP request, reserved for the exclusive use of all objects interacted with during that request.
-
-One of the built-in domain services that uses this annotation is xref:refguide:applib-svc:Scratchpad.adoc[`Scratchpad`], intended to allow the arbitrary sharing of data between objects.  Here is the full source code of this service is:
-
-
-[source,java]
-----
-@DomainService(
-        nature = NatureOfService.DOMAIN
-)
-@RequestScoped
-public class Scratchpad {
-    private final Map<Object, Object> userData = Maps.newHashMap();   // <1>
-    @Programmatic
-    public Object get(Object key) {
-        return userData.get(key);                                     // <2>
-    }
-    @Programmatic
-    public void put(Object key, Object value) {
-        userData.put(key, value);                                     // <3>
-    }
-    @Programmatic
-    public void clear() {
-        userData.clear();                                             // <4>
-    }
-}
-----
-<1> Provides a mechanism for each object being acted upon to pass data to the next object.
-<2> Obtain user-data, as set by a previous object being acted upon.
-<3> Set user-data, for the use of a subsequent object being acted upon.
-<4> Clear any user data.
-
-
-The vast majority of domain services in Apache Isis tend to be singletons (which requires no special annotation); but as you can see setting up request-scoped services is very straightforward.
-
-[NOTE]
-====
-Behind the covers Apache Isis creates a (singleton) wrapper for the domain service; the individual request-scoped instances are held in a thread-local of this wrapper.  One consequence of this implementation is that request-scoped methods should not be marked as `final`.
-====
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
index adaac5f..7b0947f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jee.adoc
@@ -45,14 +45,14 @@ The table below lists the JEE annotations currently recognized.  Expect to see m
 
 |xref:refguide:applib-ant:PostConstruct.adoc[`@javax.annotation.` +
 `PostConstruct`]
-|Callback for domain services (either singleton or xref:refguide:applib-ant:RequestScoped.adoc[request-scoped]) to initialize themselves once instantiated.
+|Callback for domain services (either singleton or xref:refguide:applib-ant:IsisSessionScope.adoc[request-scoped]) to initialize themselves once instantiated.
 
 |Domain
 |
 
 |xref:refguide:applib-ant:PreDestroy.adoc[`@javax.annotation.` +
 `PreDestroy`]
-|Callback for domain services (either singleton or xref:refguide:applib-ant:RequestScoped.adoc[request-scoped]) to clean up resources prior to destruction.
+|Callback for domain services (either singleton or xref:refguide:applib-ant:IsisSessionScope.adoc[request-scoped]) to clean up resources prior to destruction.
 
 |Domain
 |
diff --git a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
index 688523a..3fe625c 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
@@ -33,7 +33,7 @@
 ** xref:refguide:applib-ant:Programmatic.adoc[Programmatic]
 ** xref:refguide:applib-ant:Property.adoc[Property]
 ** xref:refguide:applib-ant:PropertyLayout.adoc[PropertyLayout]
-** xref:refguide:applib-ant:RequestScoped.adoc[RequestScoped]
+** xref:refguide:applib-ant:IsisSessionScope.adoc[RequestScoped]
 ** xref:refguide:applib-ant:Title.adoc[Title]
 ** xref:refguide:applib-ant:ViewModel.adoc[ViewModel]
 ** xref:refguide:applib-ant:ViewModelLayout.adoc[ViewModelLayout]
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc
index 3de7bf2..0ecb1fc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super.adoc
@@ -27,13 +27,6 @@ Impl'n (g: a:)
 |
 
 
-|xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[`o.a.i.applib.` +
-`AbstractSubscriber`]
-|``o.a.i.core`` +
-``isis-applib``
-|(abstract class)
-|
-
 
 |xref:refguide:applib-cm:classes.adoc#AbstractViewModel[`o.a.i.applib.` +
 `AbstractViewModel`]
@@ -53,6 +46,5 @@ Impl'n (g: a:)
 
 
 include::super/AbstractService.adoc[leveloffset=+1]
-include::super/AbstractSubscriber.adoc[leveloffset=+1]
 include::super/AbstractViewModel.adoc[leveloffset=+1]
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc
deleted file mode 100644
index 3582791..0000000
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/classes/super/AbstractSubscriber.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-[[AbstractSubscriber]]
-= `AbstractSubscriber`
-
-: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 [...]
-:page-partial:
-
-
-This is a convenience superclass for creating subscriber domain services on the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`].
-It uses xref:refguide:applib-ant:PostConstruct.adoc[`@PostConstruct`] and xref:refguide:applib-ant:PreDestroy.adoc[`@PreDestroy`] callbacks to automatically register/unregister itself with the `EventBusService`.
-
-It's important that subscribers register before any domain services that might emit events on the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`].
-For example, the xref:security:ROOT:about.adoc[SecMan extension] provides a domain service that automatically seeds certain domain entities; these will generate xref:refguide:applib-cm:classes/lifecycleevent.adoc[lifecycle events] and so any subscribers must be registered before such seed services.
-The easiest way to do this is to use the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation.
-
-As a convenience, the `AbstractSubscriber` specifies this attribute.
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc
index ea5e12b..b62469a 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/created.adoc
@@ -9,7 +9,7 @@ The `created()` lifecycle callback method is called when an object has just been
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectCreatedEvent[`ObjectCreatedEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectCreatedEvent[`ObjectCreatedEvent`].
 ====
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc
index 2fead74..09c72d3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/jdo-api.adoc
@@ -18,34 +18,32 @@ For example:
 
 [source,java]
 ----
-@RequestScoped                                                   // <1>
-@DomainService(nature=NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@IsisSessionScope                                                // <.>
+@Service
 public class ObjectChangedListenerService
-        implements javax.jdo.listener.StoreLifecycleListener {   // <2>
-    @Programmatic
+        implements javax.jdo.listener.StoreLifecycleListener {   // <.>
     @PostConstruct
     public void init() {
         getPmFactory().addInstanceLifecycleListener(this);
     }
-    @Programmatic
     @PreDestroy
     public void tidyUp() {
         getPmFactory().removeInstanceLifecycleListener(this);
     }
     private PersistenceManager getPersistenceManager() {
-        return jdoSupport.getPersistenceManager();               // <3>
+        return jdoSupport.getPersistenceManager();               // <.>
     }
-    @Programmatic
     public void preStore (InstanceLifecycleEvent event) { /* ... */ }
-    @Programmatic
     public void postStore (InstanceLifecycleEvent event) { /* ... */ }
     @Inject
     IsisJdoSupport jdoSupport;
 }
 ----
-<1> must be `@RequestScoped` because we register on the `PersistenceManager`, which is different for each request.
-<2> implement whichever callback lifecycle listeners are of interest
-<3> use the injected xref:pjdo:ROOT:services/IsisJdoSupport.adoc[`IsisJdoSupport`] service to obtain the `PersistenceManager`.
+<.> must be `@IsisSessionScope` because we register on the `PersistenceManager`, which is different for each request.
+<.> implement whichever callback lifecycle listeners are of interest
+<.> use the injected xref:pjdo:ROOT:services/IsisJdoSupport.adoc[`IsisJdoSupport`] service to obtain the `PersistenceManager`.
 
 Note that it isn't possible to register on the `PersistenceManagerFactory` because listeners cannot be attached once a persistence session has been created (which it will have been when the service's `@PostConstruct` method is called).
 
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc
index 1ba3c48..2053d20 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/loaded.adoc
@@ -10,5 +10,5 @@ The `loaded()` lifecycle callback method is called when a (persistent) object ha
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectLoadedEvent[`ObjectLoadedEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectLoadedEvent[`ObjectLoadedEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc
index 07de659..06cb6d8 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisted.adoc
@@ -11,5 +11,5 @@ See also xref:refguide:applib-cm:methods.adoc#persisting[`persisting()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectPersistedEvent[`ObjectPersistedEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectPersistedEvent[`ObjectPersistedEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc
index afc1413..19deca3 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/persisting.adoc
@@ -11,5 +11,5 @@ See also xref:refguide:applib-cm:methods.adoc#persisted[`persisted()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectPersistingEvent[`ObjectPersistingEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectPersistingEvent[`ObjectPersistingEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc
index 6c0854d..bcac194 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removed.adoc
@@ -11,5 +11,5 @@ See also xref:refguide:applib-cm:methods.adoc#removing[`removing()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectRemovedEvent[`ObjectRemovedEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectRemovedEvent[`ObjectRemovedEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc
index 058dee7..112d1bc 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/removing.adoc
@@ -11,5 +11,5 @@ See also xref:refguide:applib-cm:methods.adoc#removed[`removed()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectRemovingEvent[`ObjectRemovingEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectRemovingEvent[`ObjectRemovingEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc
index b96fab0..ff343d2 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updated.adoc
@@ -13,5 +13,5 @@ See also xref:refguide:applib-cm:methods.adoc#updating[`updating()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectUpdatedEvent[`ObjectUpdatedEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectUpdatedEvent[`ObjectUpdatedEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc
index 09e5392..bce0a4d 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/lifecycle/updating.adoc
@@ -10,5 +10,5 @@ See also xref:refguide:applib-cm:methods.adoc#updated[`updated()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] xref:refguide:applib-cm:classes.adoc#AbstractSubscriber[subscriber] on the xref:refguide:applib-cm:classes.adoc#ObjectUpdatingEvent[`ObjectUpdatingEvent`].
+Alternatively, consider using a xref:refguide:applib-svc:EventBusService.adoc[event bus] subscriber on the xref:refguide:applib-cm:classes.adoc#ObjectUpdatingEvent[`ObjectUpdatingEvent`].
 ====
diff --git a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
index 062efd7..da66b91 100644
--- a/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
+++ b/api/applib/src/main/adoc/modules/applib-cm/pages/methods/reserved/disable.adoc
@@ -84,8 +84,9 @@ A vetoing subscriber can then subscribe to the domain events and veto access, eg
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
+@Service
 public class VetoOutOfOfficeHours {
     @EventListener(ToDoItem.PropertyDomainEvent.class)
     public void on(ToDoItem.PropertyDomainEvent ev) {
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/conmap/ContentMappingService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/conmap/ContentMappingService.java
index 369349e..1e76565 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/conmap/ContentMappingService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/conmap/ContentMappingService.java
@@ -35,7 +35,9 @@ public interface ContentMappingService {
      * Typically for mapping from a domain object to a DTO.
      */
     // tag::refguide[]
-    Object map(Object object, final List<MediaType> acceptableMediaTypes);
+    Object map(
+            Object object,                                  // <.>
+            final List<MediaType> acceptableMediaTypes);    // <.>
 
     // end::refguide[]
     /**
@@ -55,9 +57,9 @@ public interface ContentMappingService {
             throw new IllegalArgumentException(
                     "Could not locate x-ro-domain-type parameter in any of the provided media types; got: " +
                             _NullSafe.stream(acceptableMediaTypes)
-                    .filter(_NullSafe::isPresent)
-                    .map(Object::toString)
-                    .collect(Collectors.joining(", ")) );
+                                    .filter(_NullSafe::isPresent)
+                                    .map(Object::toString)
+                                    .collect(Collectors.joining(", ")) );
         }
 
         public static boolean isSupported(
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/ErrorDetails.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/ErrorDetails.java
index 19145bb..7c0c333 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/ErrorDetails.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/ErrorDetails.java
@@ -31,21 +31,25 @@ import lombok.Getter;
  *     Implementation note: a class has been used here so that additional fields might be added in the future.
  * </p>
  */
+// tag::refguide[]
 @AllArgsConstructor
 public class ErrorDetails {
 
     @Getter
-    private final String mainMessage;
+    private final String mainMessage;                           // <.>
     @Getter
-    private final boolean recognized;
+    private final boolean recognized;                           // <.>
     @Getter
-    private final boolean authorizationCause;
+    private final boolean authorizationCause;                   // <.>
     @Getter
-    private final List<String> stackTraceDetailListCombined;
+    private final List<String> stackTraceDetailListCombined;    // <.>
+    // end::refguide[]
     /**
      * One per exception cause.
      */
+    // tag::refguide[]
     @Getter
     private final List<List<String>> stackTraceDetailPerCause;
 
 }
+// end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/Ticket.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/Ticket.java
index dca850f..b4066eb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/Ticket.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/error/Ticket.java
@@ -51,7 +51,7 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    String getReference();
+    String getReference();                  // <.>
 
     // end::refguide[]
     /**
@@ -62,7 +62,7 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    String getUserMessage();
+    String getUserMessage();                // <.>
 
     // end::refguide[]
     /**
@@ -74,7 +74,7 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    String getDetails();
+    String getDetails();                    // <.>
 
     // end::refguide[]
     /**
@@ -86,14 +86,14 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    StackTracePolicy getStackTracePolicy();
+    StackTracePolicy getStackTracePolicy(); // <.>
 
     // end::refguide[]
     /**
      * Returns a Html representation of this ticket.
      */
     // tag::refguide[]
-    String getMarkup();
+    String getMarkup();                     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/exceprecog/ExceptionRecognizer.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/exceprecog/ExceptionRecognizer.java
index 8c75c23..ca322a6 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/exceprecog/ExceptionRecognizer.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/exceprecog/ExceptionRecognizer.java
@@ -73,54 +73,54 @@ public interface ExceptionRecognizer {
      * and reason that will be included with the user-friendly message.
      */
     // tag::refguide[]
-    Optional<Recognition> recognize(Throwable ex);
+    Optional<Recognition> recognize(Throwable ex);  // <.>
 
     // end::refguide[]
     // tag::refguide-1[]
     @RequiredArgsConstructor
     enum Category {
-
         // end::refguide-1[]
         /**
          * A violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
          */
         // tag::refguide-1[]
-        CONSTRAINT_VIOLATION("violation of some declarative constraint"),
-
+        CONSTRAINT_VIOLATION(                                           // <.>
+                "violation of some declarative constraint"),
         // end::refguide-1[]
         /**
          * The object to be acted upon cannot be found (404)
          */
         // tag::refguide-1[]
-        NOT_FOUND("object not found"),
-
+        NOT_FOUND(                                                      // <.>
+                "object not found"),
         // end::refguide-1[]
         /**
          * A concurrency exception, in other words some other user has changed this object.
          */
         // tag::refguide-1[]
-        CONCURRENCY("concurrent modification"),
-
+        CONCURRENCY(                                                    // <.>
+                "concurrent modification"),
         // end::refguide-1[]
         /**
          * Recognized, but for some other reason... 40x error
          */
         // tag::refguide-1[]
-        CLIENT_ERROR("client side error"),
-
+        CLIENT_ERROR(                                                   // <.>
+                "client side error"),
         // end::refguide-1[]
         /**
          * 50x error
          */
         // tag::refguide-1[]
-        SERVER_ERROR("server side error"),
-
+        SERVER_ERROR(                                                   // <.>
+                "server side error"),
         // end::refguide-1[]
         /**
          * Recognized, but uncategorized (typically: a recognizer of the original ExceptionRecognizer API).
          */
         // tag::refguide-1[]
-        OTHER("other")
+        OTHER(                                                          // <.>
+                "other")
         ;
 
         @Getter
@@ -160,19 +160,18 @@ public interface ExceptionRecognizer {
 
             val categoryLiteral = translationService!=null
                     ? translationService.translate(
-                            ExceptionRecognizer.Category.class.getName(), getCategory().getFriendlyName())
-                            : getCategory().getFriendlyName();
+                    ExceptionRecognizer.Category.class.getName(), getCategory().getFriendlyName())
+                    : getCategory().getFriendlyName();
 
             val reasonLiteral = translationService!=null
                     ? translationService.translate(
-                            ExceptionRecognizer.Recognition.class.getName(), getReason())
-                            : getReason();
+                    ExceptionRecognizer.Recognition.class.getName(), getReason())
+                    : getReason();
 
             return String.format("[%s]: %s", categoryLiteral, reasonLiteral);
             // tag::refguide-2[]
             // ...
         }
-        // end::refguide-2[]
     }
     // end::refguide-2[]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java
index e09fdf6..ee4fa16 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/factory/FactoryService.java
@@ -50,7 +50,7 @@ public interface FactoryService {
      *
      */
     // tag::refguide[]
-    <T> T getOrCreate(Class<T> requiredType);
+    <T> T getOrCreate(Class<T> requiredType);                               // <.>
 
     // end::refguide[]
     /**
@@ -70,7 +70,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T get(Class<T> requiredType);
+    <T> T get(Class<T> requiredType);                                       // <.>
 
     // end::refguide[]
     /**
@@ -85,7 +85,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T detachedEntity(Class<T> domainClass);
+    <T> T detachedEntity(Class<T> domainClass);                             // <.>
 
     // end::refguide[]
     /**
@@ -99,7 +99,7 @@ public interface FactoryService {
      * @apiNote forces the mixinClass to be added to the meta-model if not already
      */
     // tag::refguide[]
-    <T> T mixin(Class<T> mixinClass, Object mixedIn);
+    <T> T mixin(Class<T> mixinClass, Object mixedIn);                       // <.>
 
     // end::refguide[]
     /**
@@ -113,7 +113,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T viewModel(Class<T> viewModelClass, @Nullable String mementoStr);
+    <T> T viewModel(Class<T> viewModelClass, @Nullable String mementoStr);  // <.>
 
     // end::refguide[]
     /**
@@ -126,7 +126,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    default <T> T viewModel(Class<T> viewModelClass) {
+    default <T> T viewModel(Class<T> viewModelClass) {                      // <.>
         return viewModel(viewModelClass, /*mementoStr*/null);
     }
 
@@ -142,7 +142,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T create(Class<T> domainClass);
+    <T> T create(Class<T> domainClass);                                 // <.>
     // end::refguide[]
 
     // -- DEPRECATIONS
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridLoaderService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridLoaderService.java
index 202eb65..1bd467e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridLoaderService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridLoaderService.java
@@ -29,21 +29,21 @@ public interface GridLoaderService {
      * Whether dynamic reloading of layouts is enabled.
      */
     // tag::refguide[]
-    boolean supportsReloading();
+    boolean supportsReloading();                    // <.>
 
     // end::refguide[]
     /**
      * To support metamodel invalidation/rebuilding of spec.
      */
     // tag::refguide[]
-    void remove(Class<?> domainClass);
+    void remove(Class<?> domainClass);              // <.>
 
     // end::refguide[]
     /**
      * Whether any persisted layout metadata (eg a <code>.layout.xml</code> file) exists for this domain class.
      */
     // tag::refguide[]
-    boolean existsFor(Class<?> domainClass);
+    boolean existsFor(Class<?> domainClass);        // <.>
 
     // end::refguide[]
     /**
@@ -51,7 +51,9 @@ public interface GridLoaderService {
      * <code>layout.xml</code> file, else <code>null</code>.
      */
     // tag::refguide[]
-    Grid load(final Class<?> domainClass);
+    default Grid load(final Class<?> domainClass) { // <.>
+        return load(domainClass, null);
+    }
 
     // end::refguide[]
     /**
@@ -59,7 +61,9 @@ public interface GridLoaderService {
      * <code>layout.xml</code> file, else <code>null</code>.
      */
     // tag::refguide[]
-    Grid load(final Class<?> domainClass, String layout);
+    Grid load(                                      // <.>
+            final Class<?> domainClass,
+            String layout);
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridService.java
index f9db3c5..13847cb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridService.java
@@ -34,21 +34,21 @@ public interface GridService {
      * Whether dynamic reloading of layouts is enabled.
      */
     // tag::refguide[]
-    boolean supportsReloading();
+    boolean supportsReloading();                    // <.>
 
     // end::refguide[]
     /**
      * To support metamodel invalidation/rebuilding of spec.
      */
     // tag::refguide[]
-    void remove(Class<?> domainClass);
+    void remove(Class<?> domainClass);              // <.>
 
     // end::refguide[]
     /**
      * Whether any persisted layout metadata (eg a <code>.layout.xml</code> file) exists for this domain class.
      */
     // tag::refguide[]
-    boolean existsFor(Class<?> domainClass);
+    boolean existsFor(Class<?> domainClass);        // <.>
 
     // end::refguide[]
     /**
@@ -56,14 +56,22 @@ public interface GridService {
      * <code>layout.xml</code> file, else <code>null</code>.
      */
     // tag::refguide[]
-    Grid load(final Class<?> domainClass);
+    Grid load(final Class<?> domainClass);          // <.>
+
+    // end::refguide[]
+    /**
+     * Returns a new instance of a {@link Grid} for the specified domain class, eg from a
+     * <code>[domainClass].layout.[layout].xml</code> file, else <code>null</code>.
+     */
+    // tag::refguide[]
+    Grid load(Class<?> domainClass, String layout); // <.>
 
     // end::refguide[]
     /**
      * Returns a default grid; eg where none can be loaded using {@link #load(Class)}.
      */
     // tag::refguide[]
-    Grid defaultGridFor(Class<?> domainClass);
+    Grid defaultGridFor(Class<?> domainClass);      // <.>
 
     // end::refguide[]
     /**
@@ -81,7 +89,7 @@ public interface GridService {
      * </p>
      */
     // tag::refguide[]
-    Grid normalize(final Grid grid);
+    Grid normalize(final Grid grid);                // <.>
 
     // end::refguide[]
     /**
@@ -95,7 +103,7 @@ public interface GridService {
      * </p>
      */
     // tag::refguide[]
-    Grid complete(Grid grid);
+    Grid complete(Grid grid);                       // <.>
 
     // end::refguide[]
     /**
@@ -111,15 +119,7 @@ public interface GridService {
      * @return
      */
     // tag::refguide[]
-    Grid minimal(Grid grid);
-
-    // end::refguide[]
-    /**
-     * Returns a new instance of a {@link Grid} for the specified domain class, eg from a
-     * <code>[domainClass].layout.[layout].xml</code> file, else <code>null</code>.
-     */
-    // tag::refguide[]
-    Grid load(Class<?> domainClass, String layout);
+    Grid minimal(Grid grid);                        // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridSystemService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridSystemService.java
index 5a2c289..1e246f2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridSystemService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/grid/GridSystemService.java
@@ -32,13 +32,13 @@ public interface GridSystemService<G extends Grid> {
      * Which grid (implementation) is defined by this service.
      */
     // tag::refguide[]
-    Class<G> gridImplementation();
+    Class<G> gridImplementation();                  // <.>
 
-    String tns();
+    String tns();                                   // <.>
 
-    String schemaLocation();
+    String schemaLocation();                        // <.>
 
-    G defaultGrid(Class<?> domainClass);
+    G defaultGrid(Class<?> domainClass);            // <.>
 
     // end::refguide[]
     /**
@@ -46,11 +46,11 @@ public interface GridSystemService<G extends Grid> {
      * layout.
      */
     // tag::refguide[]
-    void normalize(G grid, Class<?> domainClass);
+    void normalize(G grid, Class<?> domainClass);   // <.>
 
-    void complete(G grid, Class<?> domainClass);
+    void complete(G grid, Class<?> domainClass);    // <.>
 
-    void minimal(G grid, Class<?> domainClass);
+    void minimal(G grid, Class<?> domainClass);     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java
index 03e7a75..a647228 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/iactn/InteractionContext.java
@@ -28,8 +28,8 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.annotation.IsisSessionScope;
+import org.apache.isis.applib.annotation.OrderPrecedence;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/linking/DeepLinkService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/linking/DeepLinkService.java
index ef3ef9c..76c1ac2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/linking/DeepLinkService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/linking/DeepLinkService.java
@@ -39,7 +39,7 @@ public interface DeepLinkService {
      * Isis viewers.
      */
     // tag::refguide[]
-    URI deepLinkFor(Object domainObject);
+    URI deepLinkFor(Object domainObject);   // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/EmailNotificationService.java b/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/EmailNotificationService.java
index 1e118b1..349baf9 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/EmailNotificationService.java
+++ b/api/applib/src/main/adoc/modules/applib-svc/examples/services/userreg/EmailNotificationService.java
@@ -36,18 +36,18 @@ import org.apache.isis.applib.services.userreg.events.PasswordResetEvent;
  */
 // tag::refguide[]
 public interface EmailNotificationService
-                            extends Serializable {
+        extends Serializable {
 
-    boolean send(EmailRegistrationEvent ev);
+    boolean send(EmailRegistrationEvent ev);    // <.>
 
-    boolean send(PasswordResetEvent ev);
+    boolean send(PasswordResetEvent ev);        // <.>
 
     // end::refguide[]
     /**
      * Whether this service has been configured and thus available for use.
      */
     // tag::refguide[]
-    boolean isConfigured();
+    boolean isConfigured();                     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
index 1e153ce..e1ae8ae 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
@@ -4,7 +4,7 @@
 :page-partial:
 
 
-The `AcceptHeaderService` domain service is a xref:refguide:applib-ant:RequestScoped.adoc[`@RequestScoped`] service that simply exposes the HTTP `Accept` header to the domain.
+The `AcceptHeaderService` domain service is a xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`]'d service that simply exposes the HTTP `Accept` header to the domain.
 Its intended use is to support multiple versions of a REST API, where the responsibility for content negotiation (determining which version of the REST API is to be used) is managed by logic in the domain objects themselves.
 
 [TIP]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc
index e5afff3..a4fbcf1 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandContext.adoc
@@ -5,7 +5,7 @@
 
 
 
-The `CommandContext` service is a xref:refguide:applib-ant:RequestScoped.adoc[request-scoped] service that reifies the invocation of an action on a domain object into an object itself.
+The `CommandContext` service is a xref:refguide:applib-ant:IsisSessionScope.adoc[request-scoped] service that reifies the invocation of an action on a domain object into an object itself.
 This reified information is encapsulated within the xref:CommandContext.adoc#command[`Command`] object.
 
 By default, the command is held in-memory only; once the action invocation has completed, the command object is gone.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
index 42ab813..7dcf5d9 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
@@ -4,11 +4,11 @@
 :page-partial:
 
 
-The `ConfigurationViewService`
-
 WARNING: TODO: v2: to document - backing service for ConfigurationMenu;
 
-returns `ConfigurationProperty` view model.  Only returns `isis.\*` and `resteasy.*`
+The `ConfigurationViewService` is the backing service for xref:ConfigurationMenu.adoc[`ConfigurationMenu`].
+
+It simply returns a `ConfigurationProperty` (view model) instance for all known `isis.\*` and `resteasy.*` configuration properties.
 
 
 == API
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
index afba98a..91e838f 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
@@ -3,7 +3,7 @@
 :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 [...]
 :page-partial:
 
-
+WARNING: TODO - to review for v2.
 
 The `ContentMappingService` supports the (default implementation of the) xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`] enabling the xref:vro:ROOT:about.adoc[RestfulObjects viewer] to represent domain objects in some other format as specified by the HTTP `Accept` header.
 
@@ -20,11 +20,7 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface ContentMappingService {
-    Object map(Object object,                           // <.>
-               List<MediaType> acceptableMediaTypes);   // <.>
-}
-
+include::refguide:applib-svc:example$services/conmap/ContentMappingService.java[tags="refguide"]
 ----
 <.> typically the input is a domain object (whose structure might change over time), and the output is a DTO (whose structure is guaranteed to be preserved over time)
 <.> as per the caller's HTTP `Accept` header
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
index 787e120..0469cbb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `DeepLinkService` provides the ability to obtain a `java.net.URI` that links to a representation of any (persisted) domain entity or view model.
@@ -17,9 +18,7 @@ The API defined by `DeepLinkService` is:
 
 [source,java]
 ----
-public interface DeepLinkService {
-    URI deepLinkFor(Object domainObject); // <1>
-}
+include::refguide:applib-svc:example$services/linking/DeepLinkService.java[tags="refguide"]
 ----
 <1> Creates a URI that can be used to obtain a representation of the provided domain object in one of the Apache Isis viewers.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc
index 7cb2088..f010688 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `EmailNotificationService` supports the xref:vw:ROOT:features.adoc#user-registration[user registration] (self sign-up) features of the xref:vw:ROOT:about.adoc[Wicket viewer] whereby a user can sign-up to access an application by providing a valid email address.
@@ -21,20 +22,13 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface EmailNotificationService extends Serializable {
-    @Programmatic
-    boolean send(EmailRegistrationEvent ev);    // <1>
-    @Programmatic
-    boolean send(PasswordResetEvent ev);        // <2>
-    @Programmatic
-    boolean isConfigured();                     // <3>
-}
+include::refguide:applib-svc:example$services/userreg/EmailNotificationService.java[tags="refguide"]
 ----
-<1> sends an email to verify an email address as part of the initial user registration
-<2> sends an email to reset a password for an already-registered user
-<3> determines whether the implementation was configured and initialized correctly
+<.> sends an email to verify an email address as part of the initial user registration
+<.> sends an email to reset a password for an already-registered user
+<.> determines whether the implementation was configured and initialized correctly
 
-If `isConfigured()` returns false then it is _not_ valid to call `send(...)` (and doing so will result in an `IllegalStateException` being thrown.
+If `isConfigured()` returns false then it is _not_ valid to call `send(...)` (and doing so will result in an `IllegalStateException` being thrown).
 
 == Implementation
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc
index 2180855..6769ce3 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `EmailService` provides the ability to send HTML emails, with attachments, to one or more recipients.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc
index 94c4916..796eb25 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `ErrorReportingService` service is an optional SPI that provides the ability to record any errors/exceptions that might occur in the application into an external incident recording system (such as JIRA or Slack).
 The service also allows a user-friendly (jargon-free) error message to be returned and rendered to the end-user, along with an optional incident reference (eg a JIRA issue `XXX-1234`).
@@ -17,29 +18,22 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface ErrorReportingService {
-    Ticket reportError(ErrorDetails errorDetails);
-}
+include::refguide:applib-svc:example$services/error/ErrorReportingService.java[tags="refguide"]
 ----
 
 where `ErrorDetails` provided to the service is:
 
 [source,java]
 ----
-public class ErrorDetails {
-    public String getMainMessage() { /* ... */ }          // <1>
-    public boolean isRecognized() { /* ... */ }           // <2>
-    public boolean isAuthorizationCause() { /* ... */ }   // <3>
-    public List<String> getStackTraceDetailList() { // <4>
-}
+include::refguide:applib-svc:example$services/error/ErrorDetails.java[tags="refguide"]
 ----
-<1> the main message to be displayed to the end-user.
+<.> the main message to be displayed to the end-user.
 The service is responsible for translating this into the language of the end-user (it can use xref:refguide:applib-svc:LocaleProvider.adoc[`LocaleProvider`] if required).
-<2> whether this message has already been recognized by an xref:refguide:applib-svc:ExceptionRecognizerService.adoc[`ExceptionRecognizer`] service.
+<.> whether this message has already been recognized by an xref:refguide:applib-svc:ExceptionRecognizerService.adoc[`ExceptionRecognizer`] service.
 Generally this converts potentially non-recoverable (fatal) exceptions into recoverable exceptions (warnings) as well providing an alternative mechanism for generating user-friendly error messages.
-<3> whether the cause of the exception was due to a lack of privileges.
+<.> whether the cause of the exception was due to a lack of privileges.
 In such cases the UI restricts the information shown to the end-user, to avoid leaking potentially sensitive information
-<4> the stack trace of the exception, including the trace of any exceptions in the causal chain.
+<.> the stack trace of the exception, including the trace of any exceptions in the causal chain.
 These technical details are hidden from the user and only shown for non-recoverable exceptions.
 
 
@@ -47,26 +41,21 @@ and `Ticket` (returned by the service) is an interface:
 
 [source,java]
 ----
-public interface Ticket extends Serializable {
-
-    enum StackTracePolicy { SHOW, HIDE }
-
-    String getReference();                      // <1>
-    String getUserMessage();                    // <2>
-    String getDetails();                        // <3>
-    StackTracePolicy getStackTracePolicy();     // <4>
-    String getMarkup();                         // <5>
-}
+include::refguide:applib-svc:example$services/error/Ticket.java[tags="refguide"]
 ----
-<1> is a unique identifier that the end-user can use to track any follow-up from this error.
+<.> is a unique identifier that the end-user can use to track any follow-up from this error.
 For example, an implementation might automatically log an issue in a bug tracking system such as JIRA, in which case the reference would
 probably be the JIRA issue number <tt>XXX-1234</tt>.
-<2> a short, jargon-free message to display to the end-user.
-<3> is optional additional details to show.
+
+<.> a short, jargon-free message to display to the end-user.
+
+<.> is optional additional details to show.
 For example, these might include text on how to recover from the error, or workarounds, or just further details on contacting the help desk if the issue is severe and requires immediate attention.
-<4> is optional, specifying whether to show a button to view details of the stack trace.
+
+<.> is optional, specifying whether to show a button to view details of the stack trace.
 By default a stack trace button is not shown if a ticket is returned (but _is_ shown if there is no `ErrorReportingService` configured, or if it returns no ticket).
-<5> returns a Html representation of this ticket.
+
+<.> returns a Html representation of this ticket.
 
 
 
@@ -75,28 +64,11 @@ By default a stack trace button is not shown if a ticket is returned (but _is_ s
 
 There is no default implementation of this service, but there are a couple of concrete examples of `Ticket` in `core-runtime`.
 
-The (non-ASF) a[Isis addons' kitchensink] app provides an example implementation:
+The xref:docs:demo:about.adoc[demo app] provides an example implementation:
 
 [source,java]
 ----
-@DomainService( nature = NatureOfService.DOMAIN )
-public class KitchensinkErrorReportingService implements ErrorReportingService {
-    private int ticketNumber = 1;
-    @Override
-    public Ticket reportError(final ErrorDetails errorDetails) {
-        return new Ticket(
-                nextTicketReference(),
-                errorDetails.getMainMessage(),
-                  "By way of an apology, \n"
-                          + "here's a picture of a \n"
-                          + "kitten for you to look at.",
-                "http://www.randomkittengenerator.com/cats/rotator.php"
-                );
-    }
-    String nextTicketReference() {
-        return "" + ticketNumber++;
-    }
-}
+include::docs:demo:example$error/service/DemoErrorReportingService.java[tags="refguide"]
 ----
 
 which is rendered as:
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc
index f90ca28..a0a559d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService.adoc
@@ -1,10 +1,11 @@
-[[EventBusService]]
 = `EventBusService`
 
 :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 [...]
 :page-partial:
 
 
+WARNING: TODO - to review for v2.
+
 
 The `EventBusService` allows domain objects to emit events to subscribing domain services using an in-memory event bus.
 
@@ -34,67 +35,15 @@ The API defined by `EventBusService` is:
 
 [source,java]
 ----
-public abstract class EventBusService {
-    public void post(Object event) { /*...*/ }                          // <1>
-    public void register(final Object domainService) { /*...*/ }        // <2>
-    public void unregister(final Object domainService) { /*...*/ }      // <3>
-}
+include::refguide:applib-svc:example$services/eventbus/EventBusService.java[tags="refguide"]
 ----
-<1> posts the event onto event bus
-<2> allows domain services to register themselves.
-This should be done in their xref:refguide:applib-ant:PostConstruct.adoc[`@PostConstruct`] initialization method (for both singleton and xref:refguide:applib-ant:RequestScoped.adoc[`@RequestScoped`] domain services.
-<3> exists for symmetry, but need never be called (it is in fact deliberately a no-op).
 
 == Implementation
 
-The framework provides a default implementation of the service, `o.a.i.objectstore.jdo.datanucleus.service.eventbus.EventBusServiceJdo`.
-
-
+The framework provides a default implementation of the service, `o.a.i.core.runtimeservices.eventbus.EventBusServiceSpring`.
 
 
 
-== Registering Subscribers
-
-WARNING: TODO: v2: this is no longer required.
-
-The `register()` method should be called in the xref:refguide:applib-ant:PostConstruct.adoc[`@PostConstruct`] lifecycle method.
-It is valid and probably the least confusing to readers to also "unregister" in the xref:refguide:applib-ant:PreDestroy.adoc[`@PreDestroy`] lifecycle method (though as noted xref:refguide:applib-svc:EventBusService.adoc#api-and-implementation[above], unregistering is actually a no-op).
-
-For example:
-
-[source,java]
-----
-@DomainService(nature=NatureOfService.DOMAIN)   // <1>
-@DomainServiceLayout( menuOrder="1")            // <2>
-public class MySubscribingDomainService {
-
-    @PostConstruct
-    public void postConstruct() {
-        eventBusService.register(this);         // <3>
-    }
-
-    @PreDestroy
-    public void preDestroy() {
-        eventBusService.unregister(this);       // <4>
-    }
-
-    ...
-
-    @javax.inject.Inject
-    EventBusService eventBusService;
-}
-----
-<1> subscribers are typically not visible in the UI, so specify a `DOMAIN` nature
-<2> It's important that subscribers register before any domain services that might emit events on the event bus service.
-For example, the xref:security:ROOT:about.adoc[SecMan extension] provides a domain service that automatically seeds certain domain entities; these will generate xref:refguide:applib-cm:classes/lifecycleevent.adoc[lifecycle events] and so any subscribers must be registered before such seed services.
-The easiest way to do this is to use the link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation.
-<3> register with the event bus service during xref:refguide:applib-ant:PostConstruct.adoc[`@PostConstruct`]
-    initialization
-<4> corresponding deregister when shutting down
-
-This works for both singleton (application-scoped) and also xref:refguide:applib-ant:RequestScoped.adoc[`@RequestScoped`] domain services.
-
-
 
 
 
@@ -120,9 +69,10 @@ will propagate an instance of the default `o.a.i.applib.services.eventbus.Action
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class MySubscribingDomainService extends AbstractSubscriber {
+@Service
+public class MySubscribingDomainService {
     @EventListener(ActionDomainEvent.class)
     public void on(ActionDomainEvent ev) {
         ...
@@ -156,9 +106,10 @@ For example:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature = NatureOfService.DOMAIN)
-public class BookRepository extends AbstractSubscriber {
+@Service
+public class BookRepository {
 
     @EventListener(LbraryMemberLeaveEvent.class)
     public void onLibraryMemberLeaving(LibraryMemberLeaveEvent e) {
@@ -197,14 +148,14 @@ public static class LibMemModule {
     private LibMemModule() {}
     public abstract static class ActionDomainEvent<S>
                 extends org.apache.isis.applib.event.ActionDomainEvent<S> {}
-    ...                                                                             // <1>
+    ...                                                                             // <.>
     public abstract static class PropertyDomainEvent<S,T>
                 extends org.apache.isis.applib.event.PropertyDomainEvent<S,T> {}
     public abstract static class CollectionDomainEvent<S,E>
                 extends org.apache.isis.applib.event.CollectionDomainEvent<S,E> {}
 }
 ----
-<1> similar events for properties and collections should also be defined
+<.> similar events for properties and collections should also be defined
 
 For the class-level we can define:
 
@@ -213,10 +164,10 @@ For the class-level we can define:
 public static class LibraryMember {
     public abstract static class ActionDomainEvent
             extends LibMemModule.ActionDomainEvent<LibraryMember> { }
-    ...                                                                             // <1>
+    ...                                                                             // <.>
 }
 ----
-<1> similar events for properties and collections should also be defined
+<.> similar events for properties and collections should also be defined
 
 and finally at the action level we can define:
 
@@ -254,7 +205,7 @@ and instead parameterize down at the action level:
 ----
 public class LibraryMember {
     public static class LeaveEvent
-            extends LibraryMember.ActionDomainEvent<LibraryMember> { } // <1>
+            extends LibraryMember.ActionDomainEvent<LibraryMember> { }
 
     @Action(domainEvent=LeaveEvent.class)
     public void leave() {
@@ -282,12 +233,12 @@ public class LibraryMember {
     @Action()
     public void leave() {
         ...
-        eventBusService.post(new LibraryMember.LeaveEvent(/*...*/));    // <1>
+        eventBusService.post(new LibraryMember.LeaveEvent(/*...*/));    // <.>
     }
     ...
 }
 ----
-<1> `LibraryMember.LeaveEvent` could be _any_ class, not just a subclass of `o.a.i.applib.event.ActionDomainEvent`.
+<.> `LibraryMember.LeaveEvent` could be _any_ class, not just a subclass of `o.a.i.applib.event.ActionDomainEvent`.
 
 In practice we suspect there will be few cases where the programmatic approach is required rather than the declarative approach afforded by xref:refguide:applib-ant:Action.adoc#domainEvent[`@Action#domainEvent()`] et al.
 
@@ -307,9 +258,10 @@ In the `ReserveStockSubscriber`, we therefore use the `WrapperFactory`:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=NatureOfService.DOMAIN)
-public class ReserveStockSubscriber extends AbstractSubscriber{
+@Service
+public class ReserveStockSubscriber {
 
     @EventListener(Customer.PlaceOrderEvent.class)
     public void on(Customer.PlaceOrderEvent ev) {
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc
index bfc1db4..9c9ae42 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer.adoc
@@ -3,8 +3,10 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
-The `ExceptionRecognizer` service provides the mechanism for both the domain programmer and also for components to be able to recognize and handle certain exceptions that may be thrown by the system.
+
+The `ExceptionRecognizer` SPI provides the mechanism for both the domain programmer and also for components to be able to recognize and handle certain exceptions that may be thrown by the system.
 Rather than display an obscure error to the end-user, the application can instead display a user-friendly message.
 
 For example, the JDO/DataNucleus Objectstore provides a set of recognizers to recognize and handle SQL constraint exceptions such as uniqueness violations.
@@ -22,54 +24,29 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface ExceptionRecognizer ... {
-    public enum Category {                          // <1>
-        ...
-    }
-    public static class Recognition {               // <2>
-        private Category category;
-        private String reason;
-        ...
-    }
-    @Programmatic
-    public Recognition recognize2(Throwable ex);    // <3>
-
-    @Deprecated
-    @Programmatic
-    public String recognize(Throwable ex);          // <4>
-
-}
+include::refguide:applib-svc:example$services/exceprecog/ExceptionRecognizer.java[tags="refguide"]
 ----
-<1> an enumeration of varies categories of exceptions that are recognised
-<2> represents the fact that an exception has been recognized as has been converted into a user-friendy message, and has been categorized
-<3> the main API, to attempt to recognize an exception
-<4> deprecated API which converted exceptions into strings (reasons), ie without any categorization.
-This is no longer called.
-
+<.> the main API, to attempt to recognize an exception
 
-The categories are:
+where `Recognition` translates the recognized exception into a form that can be handled by the framework:
 
 [source,java]
 ----
-public interface ExceptionRecognizer ... {
-    public enum Category {
-        CONSTRAINT_VIOLATION,           // <1>
-        NOT_FOUND,                      // <2>
-        CONCURRENCY,                    // <3>
-        CLIENT_ERROR,                   // <4>
-        SERVER_ERROR,                   // <5>
-        OTHER                           // <6>
-    }
-    ...
-}
+include::refguide:applib-svc:example$services/exceprecog/ExceptionRecognizer.java[tags="refguide-2",indent=0]
+----
 
+and `Category` in turn is an enumeration of the various types of exceptions that are recognised:
+
+[source,java]
+----
+include::refguide:applib-svc:example$services/exceprecog/ExceptionRecognizer.java[tags="refguide-1",indent=0]
 ----
-<1> a violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
-<2> the object to be acted upon cannot be found (404)
-<3> a concurrency exception, in other words some other user has changed this object.
-<4> recognized, but for some other reason... 40x error
-<5> 50x error
-<6> recognized, but uncategorized (typically: a recognizer of the original `ExceptionRecognizer` API).
+<.> a violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
+<.> the object to be acted upon cannot be found (404)
+<.> a concurrency exception, in other words some other user has changed this object.
+<.> recognized, but for some other reason... 40x error
+<.> 50x error
+<.> recognized, but uncategorized.
 
 
 In essence, if an exception is recognized then it is also categorized.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc
index b4d381d..4d880f9 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService.adoc
@@ -3,148 +3,23 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
-The `ExceptionRecognizerService` service provides the mechanism for both the domain programmer and also for components to be able to recognize and handle certain exceptions that may be thrown by the system.
-Rather than display an obscure error to the end-user, the application can instead display a user-friendly message.
+The `ExceptionRecognizerService` domain service is used by the framework to iterate over all registered xref:refguide:applib-svc:ExceptionRecognizer.adoc[`ExceptionRecognizer`]s to attempt to recognise an exception.
 
-For example, the JDO/DataNucleus Objectstore provides a set of recognizers to recognize and handle SQL constraint exceptions such as uniqueness violations.
-These can then be rendered back to the user as expected errors, rather than fatal stacktraces.
 
-It is also possible to provide additional implementations, registered in `isis.properties`.
-Unlike other services, where any service registered in `isis.properties` replaces any default implementations, in the case of this service all implementations registered are "consulted" to see if they recognize an exception (the chain-of-responsibility pattern).
-
-
-
-
-== SPI
+== PI
 
 The SPI defined by this service is:
 
 [source,java]
 ----
-public interface ExceptionRecognizer ... {
-    public enum Category {                          // <1>
-        ...
-    }
-    public static class Recognition {               // <2>
-        private Category category;
-        private String reason;
-        ...
-    }
-    @Programmatic
-    public Recognition recognize2(Throwable ex);    // <3>
-
-    @Deprecated
-    @Programmatic
-    public String recognize(Throwable ex);          // <4>
-
-}
-----
-<1> an enumeration of varies categories of exceptions that are recognised
-<2> represents the fact that an exception has been recognized as has been converted into a user-friendy message, and has been categorized
-<3> the main API, to attempt to recognize an exception
-<4> deprecated API which converted exceptions into strings (reasons), ie without any categorization.
-This is no longer called.
-
-
-The categories are:
-
-[source,java]
-----
-public interface ExceptionRecognizer ... {
-    public enum Category {
-        CONSTRAINT_VIOLATION,           // <1>
-        NOT_FOUND,                      // <2>
-        CONCURRENCY,                    // <3>
-        CLIENT_ERROR,                   // <4>
-        SERVER_ERROR,                   // <5>
-        OTHER                           // <6>
-    }
-    ...
-}
-
+include::refguide:applib-svc:example$services/exceprecog/ExceptionRecognizerService.java[tags="refguide"]
 ----
-<1> a violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
-<2> the object to be acted upon cannot be found (404)
-<3> a concurrency exception, in other words some other user has changed this object.
-<4> recognized, but for some other reason... 40x error
-<5> 50x error
-<6> recognized, but uncategorized (typically: a recognizer of the original `ExceptionRecognizer` API).
-
-
-In essence, if an exception is recognized then it is also categorized.
-This lets the viewer act accordingly.
-For example, if an exception is raised from the loading of an individual object, then this is passed by the registered ``ExceptionRecognizer``s.
-If any of these recognize the exception as representing a not-found exception, then an Apache Isis `ObjectNotFoundException` is raised.
-Both the viewers interprets this correctly (the xref:vw:ROOT:about.adoc[Wicket viewer] as a suitable error page, the xref:vro:ROOT:about.adoc[Restful Objects viewer] as a 404 status return code).
-
-
-If the implementation recognizes the exception then it returns a user-friendly message to be rendered (by the viewer) back to the user; otherwise it returns `null`.
-There is no need for the implementation to check for exception causes; the casual chain is unwrapped by Apache Isis core and each exception in the chain will also be passed through to the recognizer (from most specific to least).
-The recognizer implementation can therefore be as fine-grained or as coarse-grained as it wishes.
-
 
 
 
 == Implementation
 
-The framework provides two default implementations:
-
-* `o.a.i.core.metamodel.services.exceprecog.ExceptionRecognizerDocDefault` provided by Apache Isis core is itself an `ExceptionRecognizer`, and will handle ``ConcurrencyException``s.
-+
-It will also handle any application exceptions raised by the system (subclasses of `o.a.i.applib.RecoverableException`).
-
-* `o.a.i.applib.services.exceprecog.jdo.ExceptionRecognizerCompositeForJdoObjectStore`
-+
-which bundles up a number of more fine-grained implementations:
-+
-** `ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException`
-** `ExceptionRecognizerForJDOObjectNotFoundException`
-** `ExceptionRecognizerForJDODataStoreException`
-
-
-If you want to recognize and handle additional exceptions (for example to capture error messages specific to the JDBC driver you might be using), then create a fine-grained implementation of `ExceptionRecognizer` for the particular error message (there are some convenience implementations of the interface that you can subclass from if required) and annotated with `@DomainService` in the usual way.
-Make sure that the service resides under a module registered in `AppManifest`.
-
-
-
-=== Configuration Properties
-
-The following configuration properties are relevant:
-
-[cols="2a,1,3a", options="header"]
-|===
-|Property
-|Value +
-(default value)
-|Description
-
-| `isis.services.` +
-`exceprecog.` +
-`logRecognized` +
-`Exceptions` +
-|`true`,`false` +
-(`false`)
-|whether recognized exceptions should also be logged. +
-
-Generally a recognized exception is one that is expected (for example a uniqueness constraint violated in the database) and which does not represent an error condition.
-This property logs the exception anyway, useful for debugging.
-
-This is recognised by all implementations that subclass `ExceptionRecognizerAbstract`.
-
-| `isis.services.` +
-`ExceptionRecognizer` +
-`CompositeFor` +
-`JdoObjectStore.` +
-`disable` +
-|`true`,`false` +
-(`false`)
-|whether to disable the default recognizers registered by `ExceptionRecognizerCompositeForJdoObjectStore`. +
-
-This implementation provides a default set of recognizers to convert RDBMS constraints into user-friendly messages.
-In the (probably remote) chance that this functionality isn't required, they can be disabled through this flag.
-
-
-|===
-
+The framework provides a default implementations, `o.a.i.core.runtimeservices.exceprecog.ExceptionRecognizerServiceDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc
index 94e5ce2..1447995 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `FactoryService` collects together methods for instantiating domain objects.
 
@@ -14,24 +15,30 @@ The API of `FactoryService` is:
 
 [source,java]
 ----
-public interface FactoryService {
-    <T> T instantiate(Class<T> domainClass);           // <1>
-    <T> T mixin(Class<T> mixinClass, Object mixedIn);  // <2>
-}
+include::refguide:applib-svc:example$services/factory/FactoryService.java[tags="refguide"]
 ----
-<1> create a new non-persisted domain entity.  Any services will be automatically injected into the service.
-The class must have a no-arg constructor.
-<2> programmatically instantiate a mixin, for example as annotated with xref:refguide:applib-ant:Mixin.adoc[`@Mixin`].
+<.> General purpose factory method, to automatically get or create an instance of the required type.
+Maps onto one of the specialized factory methods `#get(Class)` or `#create(Class)` based on the type's meta-data.
+<.> Gets an instance (possibly shared or independent) of the specified type, with injection points resolved and any life-cycle callback processed.
+<.> Creates a new detached (not yet persisted) entity instance, with injection points resolved and defaults applied.
+The class must have a no-arg constructor (for xref:pjdo:ROOT:about.adoc[JDO/DataNucleus], the enhancer adds this automatically).
+<.> Creates a new Mixin instance, with injection points resolved.
 The class must have a 1-arg constructor of the appropriate type.
+<.> Creates a new ViewModel instance, with injection points resolved, and initialized according to the given memento string.
+<.> Creates a new ViewModel instance, with injection points resolved and defaults applied.
+<.> Creates a new instance of the specified class, with injection points resolved and defaults applied.
 
 
-The object is created in memory, but is not persisted.  The benefits of using this method (instead of simply using the Java `new` keyword) are:
+
+The object is created in memory, but (if an entity) is not persisted.
+The benefits of using this method (instead of simply using the Java `new` keyword) are:
 
 * any services will be injected into the object immediately (otherwise they will not be injected until the frameworkbecomes aware of the object, typically when it is persisted through the xref:refguide:applib-svc:RepositoryService.adoc[`RepositoryService`]
 
-* the default value for any properties (usually as specified by `defaultXxx()` supporting methods) will not be set and the `created()` callback will be called.
+* the default value for any properties (usually as specified by `defaultXxx()` supporting methods) or from the value type itself will be set and the `created()` callback will be called.
 
-The corollary is: if your code never uses `defaultXxx()` or the `created()` callback, then you can just `new` up the object.  The xref:refguide:applib-svc:ServiceRegistry.adoc[`ServiceRegistry`] service can be used to inject services into the domain object.
+An alternative idiom is to just `new` up the object and then use  xref:refguide:applib-svc:ServiceInjector.adoc[`ServiceInjector`] domain service can be used to inject services into the domain object.
+Note though that no default values will be set on the created object.
 
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc
index f2cdeb4..f058c69 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `GridLoaderService` provides the ability to load the XML layout (grid) for a domain class.
@@ -13,19 +14,14 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface GridLoaderService {
-    boolean supportsReloading();                // <1>
-    void remove(Class<?> domainClass);          // <2>
-    boolean existsFor(Class<?> domainClass);    // <3>
-    Grid load(final Class<?> domainClass);      // <4>
-}
+include::refguide:applib-svc:example$services/grid/GridLoaderService.java[tags="refguide"]
 ----
-<1> whether dynamic reloading of layouts is enabled.  The default implementation enables reloading for prototyping, disables in production
-<2> support metamodel invalidation/rebuilding of spec, eg as called by this xref:refguide:applib-cm:rgcms.adoc#__rgcms_classes_mixins_Object_rebuildMetamodel[Object mixin] action.
-<3> whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
-<4> returns a new instance of a xref:refguide:applib-cm:classes/layout.adoc#component[`Grid`] for the specified domain class, eg as loaded from a `layout.xml` file.  If none exists, will return null (and the calling xref:refguide:applib-svc:GridService.adoc[`GridService`] will use xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`] to obtain a default grid for the domain class).
-
-
+<.> whether dynamic reloading of layouts is enabled.  The default implementation enables reloading for prototyping, disables in production
+<.> support metamodel invalidation/rebuilding of spec, eg as called by this xref:refguide:applib-cm:rgcms.adoc#__rgcms_classes_mixins_Object_rebuildMetamodel[Object mixin] action.
+<.> whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
+<.> returns a new instance of a xref:refguide:applib-cm:classes/layout.adoc#component[`Grid`] for the specified domain class, eg as loaded from a `layout.xml` file.
+If none exists, will return null (and the calling xref:refguide:applib-svc:GridService.adoc[`GridService`] will use xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`] to obtain a default grid for the domain class).
+<.> Load a specific layout alternative, eg if specified through a `layout()` supporting method of the domain object itself.
 
 == Implementation
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc
index cf13a74..0978f03 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService.adoc
@@ -1,9 +1,9 @@
-[[GridService]]
 = `GridService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `GridService` provides the ability to load the XML layout (grid) for a domain class.
@@ -26,41 +26,33 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface GridService {
-    boolean supportsReloading();                // <1>
-    void remove(Class<?> domainClass);          // <2>
-    boolean existsFor(Class<?> domainClass);    // <3>
-    Grid load(final Class<?> domainClass);      // <4>
-    Grid defaultGridFor(Class<?> domainClass);  // <5>
-    Grid normalize(final Grid grid);            // <6>
-    Grid complete(Grid grid);                   // <7>
-    Grid minimal(Grid grid);                    // <8>
-}
+include::refguide:applib-svc:example$services/grid/GridService.java[tags="refguide"]
 ----
-<1> whether dynamic reloading of layouts is enabled.
+<.> whether dynamic reloading of layouts is enabled.
 The default implementation enables reloading for prototyping, disables in production
-<2> support metamodel invalidation/rebuilding of spec, eg as called by this xref:refguide:applib-cm:rgcms.adoc#__rgcms_classes_mixins_Object_rebuildMetamodel[Object mixin] action.
-<3> whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
+<.> support metamodel invalidation/rebuilding of spec, eg as called by this xref:refguide:applib-cm:rgcms.adoc#__rgcms_classes_mixins_Object_rebuildMetamodel[Object mixin] action.
+<.> whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 Just delegates to corresponding method in xref:refguide:applib-svc:GridLoaderService.adoc[`GridLoaderService`].
-<4> returns a new instance of a xref:refguide:applib-cm:classes/layout.adoc#component[`Grid`] for the specified domain class, eg as loaded from a `layout.xml` file.
+<.> returns a new instance of a xref:refguide:applib-cm:classes/layout.adoc#component[`Grid`] for the specified domain class, eg as loaded from a `layout.xml` file.
 If none exists, will return null (and the calling xref:refguide:applib-svc:GridService.adoc[`GridService`] will use xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`] to obtain a default grid for the domain class).
-<5> returns a default grid, eg two columns in ratio 4:8.
+<.> returns a layout alternative, eg if specified through a `layout()` supporting method of the domain object itself.
+<.> returns a default grid, eg two columns in ratio 4:8.
 Used when no existing grid layout exists for a domain class.
-<6> validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.
+<.> validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.
 This is done using existing metadata, most notably that of the xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder`] annotation.
 Such a grid, if persisted as the layout XML file for the domain class, allows the `@MemberOrder` annotation to be removed from the source code of the domain class (but other annotations must be retained).
-<7> Takes a normalized grid and enriches it with additional metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
+<.> Takes a normalized grid and enriches it with additional metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
 Such a grid, if persisted as the layout XML file for the domain class, allows all layout annotations (xref:refguide:applib-ant:ActionLayout.adoc[`@ActionLayout`], xref:refguide:applib-ant:PropertyLayout.adoc[`@PropertyLayout`] and xref:refguide:applib-ant:CollectionLayout.adoc[`@CollectionLayout`]) to be removed from the source code of the domain class.
-<8> Takes a normalized grid and strips out removes all members, leaving only the grid structure.
+<.> Takes a normalized grid and strips out removes all members, leaving only the grid structure.
 Such a grid, if persisted as the layout XML file for the domain class, requires that the xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder`] annotation is retained in the source code of said class in order to bind members to the regions of the grid.
 
-The first four methods just delegate to the corresponding methods in xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`], while the last four delegate to the  corresponding method in xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`].
+The first five methods just delegate to the corresponding methods in xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`], while the last four delegate to the  corresponding method in xref:refguide:applib-svc:GridSystemService.adoc[`GridSystemService`].
 The service inspects the ``Grid``'s concrete class to determine which actual `GridSystemService` instance to delegate to.
 
 
 == Implementation
 
-The framework provides a default implementation of this service, namely `GridServiceDefault`.
+The framework provides a default implementation of this service, namely `o.a.i.core.metamodel.services.grid.GridServiceDefault`.
 
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc
index 453d538..bd7109b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `GridSystemService` encapsulates a single layout grid system which can be used to customize the layout
@@ -27,26 +28,27 @@ The SPI defined by this service is:
 
 [source,java]
 ----
-public interface GridSystemService<G extends Grid> {
-    Class<? extends Grid> gridImplementation();                 // <1>
-    String tns();                                               // <2>
-    String schemaLocation();                                    // <3>
-    Grid defaultGrid(Class<?> domainClass);                     // <4>
-    void normalize(G grid, Class<?> domainClass);               // <5>
-    void complete(G grid, Class<?> domainClass);                // <6>
-    void minimal(G grid, Class<?> domainClass);                 // <7>
-}
+include::refguide:applib-svc:example$services/grid/GridSystemService.java[tags="refguide"]
 ----
-<1> The concrete subclass of `Grid` supported by this implementation.
+<.> The concrete subclass of `Grid` supported by this implementation.
 As noted in the introduction, there can be multiple implementations of this service,  but there can only be one implementation per concrete subclass.
 As is normal practice, these are ordered as per the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] or equivalent annotation.
-<2> the target namespace for this grid system.  This is used when generating the XML.  The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3`.
-<3> the schema location for the XSD.  The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd`.
-<4> a default grid, eg two columns in ratio 4:8.  Used when no existing grid layout exists for a domain class.
-<5> Validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.  This is done using existing metadata, most notably that of the xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder`] annotation.  Such a grid, if persisted as the layout XML file for the domain class, allows the
+
+<.> the target namespace for this grid system.  This is used when generating the XML.  The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3`.
+
+<.> the schema location for the XSD.  The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd`.
+
+<.> a default grid, eg two columns in ratio 4:8.  Used when no existing grid layout exists for a domain class.
+
+<.> Validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.  This is done using existing metadata, most notably that of the xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder`] annotation.
+Such a grid, if persisted as the layout XML file for the domain class, allows the
  `@MemberOrder` annotation to be removed from the source code of the domain class (but other annotations must be retained).
-<6> Takes a normalized grid and enriches it with additional metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.  Such a grid, if persisted as the layout XML file for the domain class, allows all layout annotations (xref:refguide:applib-ant:ActionLayout.adoc[`@ActionLayout`], xref:refguide:applib-ant:PropertyLayout.adoc[`@PropertyLayout`] and xref:refguide:applib-ant:CollectionLayout.adoc[`@CollectionLayout`]) to be removed from the source code  [...]
-<7> Takes a normalized grid and strips out removes all members, leaving only the grid structure.  Such a grid, if persisted as the layout XML file for the domain class, requires that the xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder`] annotation is retained in the source code of said class in order to bind members to the regions of the grid.
+
+<.> Takes a normalized grid and enriches it with additional metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
+Such a grid, if persisted as the layout XML file for the domain class, allows all layout annotations (xref:refguide:applib-ant:ActionLayout.adoc[`@ActionLayout`], xref:refguide:applib-ant:PropertyLayout.adoc[`@PropertyLayout`] and xref:refguide:applib-ant:CollectionLayout.adoc[`@CollectionLayout`]) to be removed from the source code of the domain class.
+
+<.> Takes a normalized grid and strips out removes all members, leaving only the grid structure.
+Such a grid, if persisted as the layout XML file for the domain class, requires that the xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder`] annotation is retained in the source code of said class in order to bind members to the regions of the grid.
 
 
 == Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
index ebd8e79..6210a86 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService.adoc
@@ -10,7 +10,6 @@ WARNING: TODO: v2: update - rest of this documentation is out of date.
 
 
 
-
 This service, if implemented, is used to performs a health check to determine if the application is still available.
 The results of this service are made available through a REST resource, typically mounted at `/restful/health`.
 
@@ -26,35 +25,35 @@ The SPI defined by `HealthCheckService` is:
 
 [source,java]
 ----
-public interface HealthCheckService {
-    @Programmatic
-    public Health check();
-}
+include::refguide:applib-svc:example$services/health/HealthCheckService.java[tags="refguide"]
 ----
 
-There is no default implementation.
-Any custom implementations should be annotated using `@DomainService(nature = NatureOfService.DOMAIN)`.
-
-
-== REST API Mapping
-
-The `/restful/health` path must be specified as a "passThru" so that no authentication challenge is issued.
+There is no default implementation, but the xref:docs:starters:simpleapp.adoc[simpleapp] starter app provides a sample implementation:
 
-TODO: v2: this may have changed because we now use `WebModule_Xxx` instead of `web.xml`, ie set this stuff up programmatically.
-
-[source,xml]
-.web.xml
+[source,java]
 ----
-<filter>
-    <filter-name>IsisSessionFilterForRestfulObjects</filter-name>
-    <filter-class>org.apache.isis.core.webapp.IsisSessionFilter</filter-class>
-    ...
-    <init-param>
-        <param-name>passThru</param-name>
-        <param-value>/restful/swagger,/restful/health</param-value>
-    </init-param>
-    ...
-</filter>
+@Service
+@Named("domainapp.HealthCheckServiceImpl")
+@Log4j2
+public class HealthCheckServiceImpl implements HealthCheckService {
+
+    private final SimpleObjects simpleObjects;
+
+    @Inject
+    public HealthCheckServiceImpl(SimpleObjects simpleObjects) {
+        this.simpleObjects = simpleObjects;
+    }
+
+    @Override
+    public Health check() {
+        try {
+            simpleObjects.ping();
+            return Health.ok();
+        } catch (Exception ex) {
+            return Health.error(ex);
+        }
+    }
+}
 ----
 
-This is a comma separated list, so there may be other values also (for example `/restful/swagger`, as shown above).
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
index e5a4fb7..e2b3ddc 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore.adoc
@@ -1,9 +1,9 @@
-[[HintStore]]
 = `HintStore`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `HintStore` service defines an SPI for the xref:vw:ROOT:about.adoc[Wicket viewer] to store UI hints on a per-object basis.
 For example, the viewer remembers which tabs are selected, and for collections which view is selected (eg table or hidden),
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
index 4a19a3c..45dc3dd 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService.adoc
@@ -23,7 +23,7 @@ public interface HomePageResolverService {
 
 The default implementation is provided by `o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault`.
 
-Any custom implementations should be annotated using `@DomainService(nature = NatureOfService.DOMAIN)`.
+Any custom implementations should be annotated using `@org.springframework.stereotype.Service`.
 
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
index 220e626..6dcd1a3 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `InteractionContext` is a request-scoped domain service that is used to obtain the current
@@ -48,7 +49,7 @@ The public API of the `InteractionContext` domain service itself consists of sim
 
 [source,java]
 ----
-@RequestScoped
+@IsisSessionScope
 public class InteractionContext {
     public Interaction getInteraction();            // <1>
 }
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
index b9053d5..e96b9a8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService.adoc
@@ -3,7 +3,7 @@
 :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 [...]
 :page-partial:
 
-
+WARNING: TODO - to review for v2.
 
 The `JaxbService` allows instances of JAXB-annotated classes to be marshalled to XML and unmarshalled from XML back into domain objects.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
index 5dea5cd..068022b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `LayoutService` provides the ability to obtain the XML layout for a single domain object or for all domain objects.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
index 7c2b048..7a616c7 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu.adoc
@@ -4,4 +4,5 @@
 :page-partial:
 
 
-WARNING: TODO: v2 - to document.  Just exposes LayoutServiec in the UI.
+WARNING: TODO: v2 - to document.
+Just exposes xref:LayoutService.adoc[`LayoutService`] in the UI.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
index a03f18a..a852a8c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
@@ -4,6 +4,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `LocaleProvider` service is one of the services that work together to implement Apache Isis' support for i18n, being used by Isis' default implementation of xref:refguide:applib-svc:TranslationService.adoc[`TranslationService`].
@@ -30,7 +31,7 @@ public interface LocaleProvider {
 }
 ----
 
-This is notionally request-scoped, returning the `Locale` of the current user; _not_ that of the server.  (Note that the implementation is not required to actually be xref:refguide:applib-ant:RequestScoped.adoc[`@RequestScoped`], however).
+This is notionally request-scoped, returning the `Locale` of the current user; _not_ that of the server.  (Note that the implementation is not required to actually be xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`], however).
 
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
index 26ecaeb..ea13a9b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `MenuBarsLoaderService` is used by the default implementation of xref:refguide:applib-svc:MenuBarsService.adoc[MenuBarsService] to return a a xref:refguide:applib-cm:classes/menubars.adoc[`MenuBars`] instance deserialized from the `menubars.layout.xml` file read from the classpath.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
index 108d38b..f14248e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `MenuBarsService` is responsible for returning a xref:refguide:applib-cm:classes/menubars.adoc[`MenuBars`] instance, a data structure representing the arrangement of domain service actions across multiple menu bars, menus and sections.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
index fbfbcfe..b5b5ce2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `MetaModelService` service provides access to a number of aspects of Apache Isis' internal metamodel.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
index a4ec027..0e553a8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
@@ -4,6 +4,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `MetricsService` is a request-scoped domain service that hooks into the JDO/DataNucleus ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
@@ -17,7 +18,7 @@ The API of the service is:
 
 [source,java]
 ----
-@RequestScoped
+@IsisSessionScope
 public interface MetricsService {
     int numberObjectsLoaded();              // <1>
     int numberObjectsDirtied();             // <2>
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
index 1552c4d..798b216 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/PublisherService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `PublisherService` API is intended for coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
index ee390a5..feb0a7a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The purpose of the `QueryResultsCache` is to improve response times to the user, by providing a request-scoped cache of the value of some (safe or idempotent) method call.
@@ -22,7 +23,7 @@ The API defined by `QueryResultsCache` is:
 
 [source,java]
 ----
-@RequestScoped
+@IsisSessionScope
 public class QueryResultsCache {
     public static class Key {
         public Key(Class<?> callingClass, String methodName, Object... keys) {...}
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
index 6ee3bd2..1aca3e3 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `RepositoryService` collects together methods for creating, persisting and searching for entities from the underlying persistence store.
 It acts as an abstraction over the JDO/DataNucleus objectstore.
@@ -204,7 +205,9 @@ This JDO query definitions are used in the `ToDoItemRepositoryImplUsingJdoql` se
 
 [source,java]
 ----
-@DomainService(nature = NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class ToDoItemRepositoryImplUsingJdoql implements ToDoItemRepositoryImpl {
     @Programmatic
     public List<ToDoItem> findByAtPathAndCategory(final String atPath, final Category category) {
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
index 5d32a41..c3fbb2a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService.adoc
@@ -1,9 +1,9 @@
-[[RoutingService]]
 = `RoutingService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `RoutingService` provides the ability to return (and therefore render) an alternative object from an action invocation.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
index 40519f8..05c5c0d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
@@ -1,9 +1,9 @@
-[[Scratchpad]]
 = `Scratchpad`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `Scratchpad` (request-scoped) domain service allows objects to exchange information even if they do not directly call each other.
@@ -17,7 +17,7 @@ The API of `Scratchpad` service is:
 
 [source,java]
 ----
-@RequestScoped
+@IsisSessionScope
 public class Scratchpad {
     @Programmatic
     public Object get(Object key) { /* ... */ }
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
index 6f02562..5e6e52b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector.adoc
@@ -2,4 +2,4 @@
 
 :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 [...]
 
-WARNING: TODO
+WARNING: TODO - v2 - to document.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
index 22f4b65..cf8b0b4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `ServiceRegistry2` domain service (and its various supertypes)collects together methods for injecting or looking up domain services (either provided by the framework or application-specific) currently known to the runtime.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
index 63b5292..1652bfa 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService.adoc
@@ -1,9 +1,9 @@
-[[SessionLoggingService]]
 = `SessionLoggingService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `SessionLoggingService` defines an SPI to keep track of (typically: to log) the current sessions that are using the application.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
index 3799fa7..df0591b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService.adoc
@@ -1,9 +1,9 @@
-[[SudoService]]
 = `SudoService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `SudoService` allows the current user reported by the xref:refguide:applib-svc:UserService.adoc[`UserService`]  to be temporarily changed to some other user.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
index 2355b11..4ed9e21 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `SwaggerService` generates link:http://swagger.io/[Swagger] spec files to describe the public and/or private RESTful APIs exposed by the xref:vro:ROOT:about.adoc[RestfulObjects viewer].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
index 33fd72c..dcdf1dd 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService.adoc
@@ -1,9 +1,9 @@
-[[TableColumnOrderService]]
 = `TableColumnOrderService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `TableColumnOrderService` provides the ability to reorder (or suppress) columns in both parented- and standalone tables.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
index cbc8e28..6e715b5 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService.adoc
@@ -1,9 +1,9 @@
-[[TitleService]]
 = `TitleService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `TitleService` provides methods to programmatically obtain the title and icon of a domain object.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
index 5e15687..915db4b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService.adoc
@@ -4,7 +4,8 @@
 :page-partial:
 
 
-WARNING: TODO: v2 - document `Transaction` and `TransactionId` and `TransactionState`.
+WARNING: TODO - to review for v2.
+Document `Transaction` and `TransactionId` and `TransactionState`.
 
 The `TransactionService` (and its various supertypes) allows domain objects to influence user transactions.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
index 853687e..8c108c8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService.adoc
@@ -3,8 +3,8 @@
 :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 [...]
 :page-partial:
 
-
-WARNING: TODO: v2 - document `TranslatableString`.
+WARNING: TODO - to review for v2.
+Document `TranslatableString`.
 
 The `TranslationService` is the cornerstone of Apache Isis' i18n support.
 Its role is to be able to provide translated versions of the various elements within the Apache Isis metamodel (service and object classes, properties, collections, actions, action parameters) and also to translate business rule (disable/valid) messages, and exceptions.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
index 9370930..3a43aa6 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver.adoc
@@ -1,9 +1,9 @@
-[[TranslationsResolver]]
 = `TranslationsResolver`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `TranslationsResolver` service is one of the services that work together to implement Apache Isis' support for i18n, being used by Isis' default implementation of xref:refguide:applib-svc:TranslationService.adoc[`TranslationService`].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
index dc330c4..e3d3504 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService.adoc
@@ -3,6 +3,7 @@
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `UrlEncodingService` defines a consistent way to convert strings to/from a form safe for use within a URL.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
index c1c6592..8bf946e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService.adoc
@@ -1,9 +1,9 @@
-[[UserProfileService]]
 = `UserProfileService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `UserProfileService` provides the ability for the domain application to return supplementary metadata about the current user. This information is used (by the xref:vw:ROOT:about.adoc[Wicket viewer]) to customize the appearance of the tertiary "Me" menu bar (top right). For example, rather than display the username, instead the user's first and last name could be displayed.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
index 44c20cb..c08fefd 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService.adoc
@@ -1,9 +1,9 @@
-[[UserRegistrationService]]
 = `UserRegistrationService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `UserRegistrationService` provides the ability for users to sign-up to access an application by providing a valid email address, and also provides the capability for users to reset their password if forgotten.
 
@@ -62,7 +62,9 @@ For example:
 
 [source,java]
 ----
-@DomainService(nature=NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class AppUserRegistrationService extends SecurityModuleAppUserRegistrationServiceAbstract {
     protected ApplicationRole getInitialRole() {
     return findRole("regular-user");
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
index de21ef7..5b876ab 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService.adoc
@@ -1,9 +1,9 @@
-[[UserService]]
 = `UserService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 The `UserService` allows the domain object to obtain the identity of the user interacting with said object.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
index 01e728c..ac127c2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory.adoc
@@ -3,8 +3,8 @@
 :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 [...]
 :page-partial:
 
-
-WARNING: TODO: v2 - document `WrappingObject`.
+WARNING: TODO - to review for v2.
+Document `WrappingObject`.
 
 
 The `WrapperFactory` provides the ability to enforce business rules for programmatic interactions between domain objects.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
index e83a912..b40d58d 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService.adoc
@@ -1,9 +1,9 @@
-[[XmlSnapshotService]]
 = `XmlSnapshotService`
 
 :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 [...]
 :page-partial:
 
+WARNING: TODO - to review for v2.
 
 
 The `XmlSnapshotService` provides the capability to generate XML snapshots (and if required corresponding XSD schemas) based on graphs of domain objects.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisSessionScope.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisSessionScope.java
index 71726e2..03aeae3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisSessionScope.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/IsisSessionScope.java
@@ -37,8 +37,8 @@ import org.springframework.context.annotation.Scope;
  * composed annotations.
  *
  * @since 2.0
- * @see SessionScope
- * @see ApplicationScope
+ * @see org.springframework.web.context.annotation.SessionScope
+ * @see org.springframework.web.context.annotation.ApplicationScope
  * @see org.springframework.context.annotation.Scope
  * @see org.springframework.stereotype.Component
  * @see org.springframework.context.annotation.Bean
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/ContentMappingService.java b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/ContentMappingService.java
index 369349e..1e76565 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/conmap/ContentMappingService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/conmap/ContentMappingService.java
@@ -35,7 +35,9 @@ public interface ContentMappingService {
      * Typically for mapping from a domain object to a DTO.
      */
     // tag::refguide[]
-    Object map(Object object, final List<MediaType> acceptableMediaTypes);
+    Object map(
+            Object object,                                  // <.>
+            final List<MediaType> acceptableMediaTypes);    // <.>
 
     // end::refguide[]
     /**
@@ -55,9 +57,9 @@ public interface ContentMappingService {
             throw new IllegalArgumentException(
                     "Could not locate x-ro-domain-type parameter in any of the provided media types; got: " +
                             _NullSafe.stream(acceptableMediaTypes)
-                    .filter(_NullSafe::isPresent)
-                    .map(Object::toString)
-                    .collect(Collectors.joining(", ")) );
+                                    .filter(_NullSafe::isPresent)
+                                    .map(Object::toString)
+                                    .collect(Collectors.joining(", ")) );
         }
 
         public static boolean isSupported(
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/error/ErrorDetails.java b/api/applib/src/main/java/org/apache/isis/applib/services/error/ErrorDetails.java
index 19145bb..7c0c333 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/error/ErrorDetails.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/error/ErrorDetails.java
@@ -31,21 +31,25 @@ import lombok.Getter;
  *     Implementation note: a class has been used here so that additional fields might be added in the future.
  * </p>
  */
+// tag::refguide[]
 @AllArgsConstructor
 public class ErrorDetails {
 
     @Getter
-    private final String mainMessage;
+    private final String mainMessage;                           // <.>
     @Getter
-    private final boolean recognized;
+    private final boolean recognized;                           // <.>
     @Getter
-    private final boolean authorizationCause;
+    private final boolean authorizationCause;                   // <.>
     @Getter
-    private final List<String> stackTraceDetailListCombined;
+    private final List<String> stackTraceDetailListCombined;    // <.>
+    // end::refguide[]
     /**
      * One per exception cause.
      */
+    // tag::refguide[]
     @Getter
     private final List<List<String>> stackTraceDetailPerCause;
 
 }
+// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/error/Ticket.java b/api/applib/src/main/java/org/apache/isis/applib/services/error/Ticket.java
index dca850f..b4066eb 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/error/Ticket.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/error/Ticket.java
@@ -51,7 +51,7 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    String getReference();
+    String getReference();                  // <.>
 
     // end::refguide[]
     /**
@@ -62,7 +62,7 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    String getUserMessage();
+    String getUserMessage();                // <.>
 
     // end::refguide[]
     /**
@@ -74,7 +74,7 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    String getDetails();
+    String getDetails();                    // <.>
 
     // end::refguide[]
     /**
@@ -86,14 +86,14 @@ public interface Ticket extends Serializable {
      * </p>
      */
     // tag::refguide[]
-    StackTracePolicy getStackTracePolicy();
+    StackTracePolicy getStackTracePolicy(); // <.>
 
     // end::refguide[]
     /**
      * Returns a Html representation of this ticket.
      */
     // tag::refguide[]
-    String getMarkup();
+    String getMarkup();                     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java b/api/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
index 8c75c23..ca322a6 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizer.java
@@ -73,54 +73,54 @@ public interface ExceptionRecognizer {
      * and reason that will be included with the user-friendly message.
      */
     // tag::refguide[]
-    Optional<Recognition> recognize(Throwable ex);
+    Optional<Recognition> recognize(Throwable ex);  // <.>
 
     // end::refguide[]
     // tag::refguide-1[]
     @RequiredArgsConstructor
     enum Category {
-
         // end::refguide-1[]
         /**
          * A violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
          */
         // tag::refguide-1[]
-        CONSTRAINT_VIOLATION("violation of some declarative constraint"),
-
+        CONSTRAINT_VIOLATION(                                           // <.>
+                "violation of some declarative constraint"),
         // end::refguide-1[]
         /**
          * The object to be acted upon cannot be found (404)
          */
         // tag::refguide-1[]
-        NOT_FOUND("object not found"),
-
+        NOT_FOUND(                                                      // <.>
+                "object not found"),
         // end::refguide-1[]
         /**
          * A concurrency exception, in other words some other user has changed this object.
          */
         // tag::refguide-1[]
-        CONCURRENCY("concurrent modification"),
-
+        CONCURRENCY(                                                    // <.>
+                "concurrent modification"),
         // end::refguide-1[]
         /**
          * Recognized, but for some other reason... 40x error
          */
         // tag::refguide-1[]
-        CLIENT_ERROR("client side error"),
-
+        CLIENT_ERROR(                                                   // <.>
+                "client side error"),
         // end::refguide-1[]
         /**
          * 50x error
          */
         // tag::refguide-1[]
-        SERVER_ERROR("server side error"),
-
+        SERVER_ERROR(                                                   // <.>
+                "server side error"),
         // end::refguide-1[]
         /**
          * Recognized, but uncategorized (typically: a recognizer of the original ExceptionRecognizer API).
          */
         // tag::refguide-1[]
-        OTHER("other")
+        OTHER(                                                          // <.>
+                "other")
         ;
 
         @Getter
@@ -160,19 +160,18 @@ public interface ExceptionRecognizer {
 
             val categoryLiteral = translationService!=null
                     ? translationService.translate(
-                            ExceptionRecognizer.Category.class.getName(), getCategory().getFriendlyName())
-                            : getCategory().getFriendlyName();
+                    ExceptionRecognizer.Category.class.getName(), getCategory().getFriendlyName())
+                    : getCategory().getFriendlyName();
 
             val reasonLiteral = translationService!=null
                     ? translationService.translate(
-                            ExceptionRecognizer.Recognition.class.getName(), getReason())
-                            : getReason();
+                    ExceptionRecognizer.Recognition.class.getName(), getReason())
+                    : getReason();
 
             return String.format("[%s]: %s", categoryLiteral, reasonLiteral);
             // tag::refguide-2[]
             // ...
         }
-        // end::refguide-2[]
     }
     // end::refguide-2[]
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java b/api/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java
index e09fdf6..ee4fa16 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java
@@ -50,7 +50,7 @@ public interface FactoryService {
      *
      */
     // tag::refguide[]
-    <T> T getOrCreate(Class<T> requiredType);
+    <T> T getOrCreate(Class<T> requiredType);                               // <.>
 
     // end::refguide[]
     /**
@@ -70,7 +70,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T get(Class<T> requiredType);
+    <T> T get(Class<T> requiredType);                                       // <.>
 
     // end::refguide[]
     /**
@@ -85,7 +85,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T detachedEntity(Class<T> domainClass);
+    <T> T detachedEntity(Class<T> domainClass);                             // <.>
 
     // end::refguide[]
     /**
@@ -99,7 +99,7 @@ public interface FactoryService {
      * @apiNote forces the mixinClass to be added to the meta-model if not already
      */
     // tag::refguide[]
-    <T> T mixin(Class<T> mixinClass, Object mixedIn);
+    <T> T mixin(Class<T> mixinClass, Object mixedIn);                       // <.>
 
     // end::refguide[]
     /**
@@ -113,7 +113,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T viewModel(Class<T> viewModelClass, @Nullable String mementoStr);
+    <T> T viewModel(Class<T> viewModelClass, @Nullable String mementoStr);  // <.>
 
     // end::refguide[]
     /**
@@ -126,7 +126,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    default <T> T viewModel(Class<T> viewModelClass) {
+    default <T> T viewModel(Class<T> viewModelClass) {                      // <.>
         return viewModel(viewModelClass, /*mementoStr*/null);
     }
 
@@ -142,7 +142,7 @@ public interface FactoryService {
      * @since 2.0
      */
     // tag::refguide[]
-    <T> T create(Class<T> domainClass);
+    <T> T create(Class<T> domainClass);                                 // <.>
     // end::refguide[]
 
     // -- DEPRECATIONS
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
index 202eb65..1bd467e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
@@ -29,21 +29,21 @@ public interface GridLoaderService {
      * Whether dynamic reloading of layouts is enabled.
      */
     // tag::refguide[]
-    boolean supportsReloading();
+    boolean supportsReloading();                    // <.>
 
     // end::refguide[]
     /**
      * To support metamodel invalidation/rebuilding of spec.
      */
     // tag::refguide[]
-    void remove(Class<?> domainClass);
+    void remove(Class<?> domainClass);              // <.>
 
     // end::refguide[]
     /**
      * Whether any persisted layout metadata (eg a <code>.layout.xml</code> file) exists for this domain class.
      */
     // tag::refguide[]
-    boolean existsFor(Class<?> domainClass);
+    boolean existsFor(Class<?> domainClass);        // <.>
 
     // end::refguide[]
     /**
@@ -51,7 +51,9 @@ public interface GridLoaderService {
      * <code>layout.xml</code> file, else <code>null</code>.
      */
     // tag::refguide[]
-    Grid load(final Class<?> domainClass);
+    default Grid load(final Class<?> domainClass) { // <.>
+        return load(domainClass, null);
+    }
 
     // end::refguide[]
     /**
@@ -59,7 +61,9 @@ public interface GridLoaderService {
      * <code>layout.xml</code> file, else <code>null</code>.
      */
     // tag::refguide[]
-    Grid load(final Class<?> domainClass, String layout);
+    Grid load(                                      // <.>
+            final Class<?> domainClass,
+            String layout);
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
index f9db3c5..13847cb 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
@@ -34,21 +34,21 @@ public interface GridService {
      * Whether dynamic reloading of layouts is enabled.
      */
     // tag::refguide[]
-    boolean supportsReloading();
+    boolean supportsReloading();                    // <.>
 
     // end::refguide[]
     /**
      * To support metamodel invalidation/rebuilding of spec.
      */
     // tag::refguide[]
-    void remove(Class<?> domainClass);
+    void remove(Class<?> domainClass);              // <.>
 
     // end::refguide[]
     /**
      * Whether any persisted layout metadata (eg a <code>.layout.xml</code> file) exists for this domain class.
      */
     // tag::refguide[]
-    boolean existsFor(Class<?> domainClass);
+    boolean existsFor(Class<?> domainClass);        // <.>
 
     // end::refguide[]
     /**
@@ -56,14 +56,22 @@ public interface GridService {
      * <code>layout.xml</code> file, else <code>null</code>.
      */
     // tag::refguide[]
-    Grid load(final Class<?> domainClass);
+    Grid load(final Class<?> domainClass);          // <.>
+
+    // end::refguide[]
+    /**
+     * Returns a new instance of a {@link Grid} for the specified domain class, eg from a
+     * <code>[domainClass].layout.[layout].xml</code> file, else <code>null</code>.
+     */
+    // tag::refguide[]
+    Grid load(Class<?> domainClass, String layout); // <.>
 
     // end::refguide[]
     /**
      * Returns a default grid; eg where none can be loaded using {@link #load(Class)}.
      */
     // tag::refguide[]
-    Grid defaultGridFor(Class<?> domainClass);
+    Grid defaultGridFor(Class<?> domainClass);      // <.>
 
     // end::refguide[]
     /**
@@ -81,7 +89,7 @@ public interface GridService {
      * </p>
      */
     // tag::refguide[]
-    Grid normalize(final Grid grid);
+    Grid normalize(final Grid grid);                // <.>
 
     // end::refguide[]
     /**
@@ -95,7 +103,7 @@ public interface GridService {
      * </p>
      */
     // tag::refguide[]
-    Grid complete(Grid grid);
+    Grid complete(Grid grid);                       // <.>
 
     // end::refguide[]
     /**
@@ -111,15 +119,7 @@ public interface GridService {
      * @return
      */
     // tag::refguide[]
-    Grid minimal(Grid grid);
-
-    // end::refguide[]
-    /**
-     * Returns a new instance of a {@link Grid} for the specified domain class, eg from a
-     * <code>[domainClass].layout.[layout].xml</code> file, else <code>null</code>.
-     */
-    // tag::refguide[]
-    Grid load(Class<?> domainClass, String layout);
+    Grid minimal(Grid grid);                        // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java
index 5a2c289..1e246f2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java
@@ -32,13 +32,13 @@ public interface GridSystemService<G extends Grid> {
      * Which grid (implementation) is defined by this service.
      */
     // tag::refguide[]
-    Class<G> gridImplementation();
+    Class<G> gridImplementation();                  // <.>
 
-    String tns();
+    String tns();                                   // <.>
 
-    String schemaLocation();
+    String schemaLocation();                        // <.>
 
-    G defaultGrid(Class<?> domainClass);
+    G defaultGrid(Class<?> domainClass);            // <.>
 
     // end::refguide[]
     /**
@@ -46,11 +46,11 @@ public interface GridSystemService<G extends Grid> {
      * layout.
      */
     // tag::refguide[]
-    void normalize(G grid, Class<?> domainClass);
+    void normalize(G grid, Class<?> domainClass);   // <.>
 
-    void complete(G grid, Class<?> domainClass);
+    void complete(G grid, Class<?> domainClass);    // <.>
 
-    void minimal(G grid, Class<?> domainClass);
+    void minimal(G grid, Class<?> domainClass);     // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java b/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java
index c908630..c6f3e70 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/health/Health.java
@@ -40,6 +40,6 @@ public class Health {
     @Getter
     private final Throwable cause;
 
-    public boolean getResult() { return message == null; }
+    public boolean getResult() { return message == null || cause == null; }
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
index 03e7a75..a647228 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
@@ -28,8 +28,8 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.annotation.IsisSessionScope;
+import org.apache.isis.applib.annotation.OrderPrecedence;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/linking/DeepLinkService.java b/api/applib/src/main/java/org/apache/isis/applib/services/linking/DeepLinkService.java
index ef3ef9c..76c1ac2 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/linking/DeepLinkService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/linking/DeepLinkService.java
@@ -39,7 +39,7 @@ public interface DeepLinkService {
      * Isis viewers.
      */
     // tag::refguide[]
-    URI deepLinkFor(Object domainObject);
+    URI deepLinkFor(Object domainObject);   // <.>
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/userreg/EmailNotificationService.java b/api/applib/src/main/java/org/apache/isis/applib/services/userreg/EmailNotificationService.java
index 1e118b1..349baf9 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/userreg/EmailNotificationService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/userreg/EmailNotificationService.java
@@ -36,18 +36,18 @@ import org.apache.isis.applib.services.userreg.events.PasswordResetEvent;
  */
 // tag::refguide[]
 public interface EmailNotificationService
-                            extends Serializable {
+        extends Serializable {
 
-    boolean send(EmailRegistrationEvent ev);
+    boolean send(EmailRegistrationEvent ev);    // <.>
 
-    boolean send(PasswordResetEvent ev);
+    boolean send(PasswordResetEvent ev);        // <.>
 
     // end::refguide[]
     /**
      * Whether this service has been configured and thus available for use.
      */
     // tag::refguide[]
-    boolean isConfigured();
+    boolean isConfigured();                     // <.>
 
 }
 // end::refguide[]
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
index c324ec6..9e34bf0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
@@ -207,11 +207,6 @@ public class GridLoaderServiceDefault implements GridLoaderService {
 
 
 
-    @Override
-    public Grid load(final Class<?> domainClass) {
-        return load(domainClass, null);
-    }
-
     private String loadXml(final DomainClassAndLayout dcal) {
         final String resourceName = resourceNameFor(dcal);
         if(resourceName == null) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
index 9e14fa3..4ad3f56 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/ChangedObjectsService.java
@@ -47,6 +47,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
+// tag::refguide[]
 @Service
 @Named("isisRuntime.ChangedObjectsService")
 @Order(OrderPrecedence.EARLY)
@@ -54,7 +55,6 @@ import lombok.extern.log4j.Log4j2;
 @Qualifier("Default")
 @IsisSessionScope
 @Log4j2
-// tag::refguide[]
 public class ChangedObjectsService implements TransactionScopeListener {
 
     // end::refguide[]
diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc
index 7ede91e..77f4dc5 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/ChangedObjectsService.adoc
@@ -14,8 +14,8 @@ The SPI of the service is:
 
 [source,java]
 ----
-@RequestScoped
-public class ChangedObjectsServiceInternal {
+@IsisSessionScope
+public class ChangedObjectsService {
     public void enlistCreated(final ObjectAdapter adapter);                                     // <1>
     public void enlistUpdating(final ObjectAdapter adapter);
     public void enlistDeleting(final ObjectAdapter adapter);
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
index 67cede6..e864f0a 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/PublisherDispatchServiceDefault.java
@@ -36,9 +36,9 @@ import org.springframework.context.annotation.Primary;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
+import org.apache.isis.applib.annotation.IsisSessionScope;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.applib.annotation.PublishingChangeKind;
-import org.apache.isis.applib.annotation.IsisSessionScope;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
diff --git a/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java b/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java
index 0f849c7..5baa24e 100644
--- a/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java
+++ b/core/webapp/src/main/java/org/apache/isis/core/webapp/health/HealthIndicatorUsingHealthCheckService.java
@@ -19,15 +19,19 @@
 package org.apache.isis.core.webapp.health;
 
 import java.util.Optional;
+import java.util.concurrent.Callable;
 
 import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.springframework.boot.actuate.health.AbstractHealthIndicator;
+
 import org.springframework.boot.actuate.health.Health;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.services.health.HealthCheckService;
+import org.apache.isis.core.runtime.session.IsisSessionFactory;
+import org.apache.isis.core.security.authentication.health.HealthAuthSession;
 
 import lombok.val;
 
@@ -35,16 +39,21 @@ import lombok.val;
 @Named("isisWebapp.HealthCheckService") // this appears in the endpoint.
 public class HealthIndicatorUsingHealthCheckService extends AbstractHealthIndicator {
 
+    private final IsisSessionFactory isisSessionFactory;
     private final Optional<HealthCheckService> healthCheckServiceIfAny;
 
     @Inject
-    public HealthIndicatorUsingHealthCheckService(final Optional<HealthCheckService> healthCheckServiceIfAny) {
+    public HealthIndicatorUsingHealthCheckService(
+            final IsisSessionFactory isisSessionFactory,
+            final Optional<HealthCheckService> healthCheckServiceIfAny) {
+        this.isisSessionFactory = isisSessionFactory;
         this.healthCheckServiceIfAny = healthCheckServiceIfAny;
     }
 
     @Override
     protected void doHealthCheck(Health.Builder builder) throws Exception {
-        val health = healthCheckServiceIfAny.map(HealthCheckService::check)
+        val health = healthCheckServiceIfAny.map(healthCheckService ->
+                        isisSessionFactory.callAuthenticated(new HealthAuthSession(), healthCheckService::check))
                      .orElse(null);
         if(health != null) {
             final boolean result = health.getResult();
diff --git a/examples/demo/src/main/adoc/modules/demo/examples.sh b/examples/demo/src/main/adoc/modules/demo/examples.sh
new file mode 100644
index 0000000..44f1a6f
--- /dev/null
+++ b/examples/demo/src/main/adoc/modules/demo/examples.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+SRC_MAIN_JAVA=../../../java
+SCRIPT_DIR=$( dirname "$0" )
+cd $SCRIPT_DIR || exit 1
+
+
+
+SRC=$SRC_MAIN_JAVA/demoapp/dom
+
+for dir in error/service
+do
+  rm -rf examples/$dir
+  mkdir -p examples/$dir
+  cp -R $SRC/$dir/* examples/$dir
+done
diff --git a/examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java b/examples/demo/src/main/adoc/modules/demo/examples/error/service/DemoErrorReportingService.java
similarity index 94%
copy from examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java
copy to examples/demo/src/main/adoc/modules/demo/examples/error/service/DemoErrorReportingService.java
index 5dca219..0b965a0 100644
--- a/examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java
+++ b/examples/demo/src/main/adoc/modules/demo/examples/error/service/DemoErrorReportingService.java
@@ -32,6 +32,7 @@ import org.apache.isis.core.runtimeservices.error.EmailTicket.MailTo;
 
 import lombok.val;
 
+// tag::refguide[]
 @Service
 @Named("demoapp.demoErrorReportingService")
 @Qualifier("demo")
@@ -46,17 +47,16 @@ public class DemoErrorReportingService implements ErrorReportingService {
 
         val mailTo = MailTo.builder()
                 .receiver("support@hello.world")
-                .subject("[Simple-Module] Unexpected Error ("+reference+")")
+                .subject("[Demo-App] Unexpected Error (" + reference + ")")
                 .body(MailTo.mailBodyOf(errorDetails))
                 .build();
 
         StackTracePolicy policy = StackTracePolicy.SHOW;
-        val ticket = new EmailTicket(mailTo, reference, userMessage, details, 
+        val ticket = new EmailTicket(mailTo, reference, userMessage, details,
                 policy,
                 "http://www.randomkittengenerator.com/cats/rotator.php");
 
         return ticket;
     }
-
-
 }
+// end::refguide[]
diff --git a/examples/demo/src/main/java/demoapp/dom/error/ErrorDemo.adoc b/examples/demo/src/main/java/demoapp/dom/error/ErrorDemo.adoc
index 73aded4..7e60f43 100644
--- a/examples/demo/src/main/java/demoapp/dom/error/ErrorDemo.adoc
+++ b/examples/demo/src/main/java/demoapp/dom/error/ErrorDemo.adoc
@@ -8,33 +8,35 @@ provide a more user-friendly experience:
 
 [source,java]
 ----
-@DomainService(nature = NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class DemoErrorReportingService implements ErrorReportingService {
-    
+
     @Override
     public Ticket reportError(ErrorDetails errorDetails) {
 
         String reference = "#0";
         String userMessage = errorDetails.getMainMessage();
         String details = "Apologies!";
-        
+
         val mailTo = MailTo.builder()
         .receiver("support@hello.world")
         .subject("[Simple-Module] Unexpected Error ("+reference+")")
         .body(MailTo.mailBodyOf(errorDetails))
         .build();
-        
+
         StackTracePolicy policy = StackTracePolicy.SHOW;
-        val ticket = new EmailTicket(mailTo, reference, userMessage, details, 
+        val ticket = new EmailTicket(mailTo, reference, userMessage, details,
                policy,
                "http://www.randomkittengenerator.com/cats/rotator.php");
-        
+
         return ticket;
     }
-    
-    
+
+
 }
 ----
 
 See the ErrorReportingService implemented for this demo here:
-link:${SOURCES_DEMO}/demoapp/dom/error/service[sources].
\ No newline at end of file
+link:${SOURCES_DEMO}/demoapp/dom/error/service[sources].
diff --git a/examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java b/examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java
index 5dca219..0b965a0 100644
--- a/examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java
+++ b/examples/demo/src/main/java/demoapp/dom/error/service/DemoErrorReportingService.java
@@ -32,6 +32,7 @@ import org.apache.isis.core.runtimeservices.error.EmailTicket.MailTo;
 
 import lombok.val;
 
+// tag::refguide[]
 @Service
 @Named("demoapp.demoErrorReportingService")
 @Qualifier("demo")
@@ -46,17 +47,16 @@ public class DemoErrorReportingService implements ErrorReportingService {
 
         val mailTo = MailTo.builder()
                 .receiver("support@hello.world")
-                .subject("[Simple-Module] Unexpected Error ("+reference+")")
+                .subject("[Demo-App] Unexpected Error (" + reference + ")")
                 .body(MailTo.mailBodyOf(errorDetails))
                 .build();
 
         StackTracePolicy policy = StackTracePolicy.SHOW;
-        val ticket = new EmailTicket(mailTo, reference, userMessage, details, 
+        val ticket = new EmailTicket(mailTo, reference, userMessage, details,
                 policy,
                 "http://www.randomkittengenerator.com/cats/rotator.php");
 
         return ticket;
     }
-
-
 }
+// end::refguide[]
diff --git a/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc b/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc
index ef34245..9a3828b 100644
--- a/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc
+++ b/security/shiro/src/main/adoc/modules/shiro/pages/about/run-as.adoc
@@ -11,7 +11,9 @@ The heavy lifting is done in `ShiroService`:
 
 [source,java]
 ----
-@DomainService(nature = NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class ShiroService {
 
     public void runAs(String userName) {
diff --git a/testing/fixtures/adoc/modules/fixtures/pages/services/FixtureScriptsSpecificationProvider.adoc b/testing/fixtures/adoc/modules/fixtures/pages/services/FixtureScriptsSpecificationProvider.adoc
index 2546fc7..5c1cef1 100644
--- a/testing/fixtures/adoc/modules/fixtures/pages/services/FixtureScriptsSpecificationProvider.adoc
+++ b/testing/fixtures/adoc/modules/fixtures/pages/services/FixtureScriptsSpecificationProvider.adoc
@@ -50,7 +50,9 @@ The xref:docs:starters:simpleapp.adoc[SimpleApp] starter app has a simple implem
 
 [source,java]
 ----
-@DomainService(nature = NatureOfService.DOMAIN)
+import org.springframework.stereotype.Service;
+
+@Service
 public class DomainAppFixturesProvider implements FixtureScriptsSpecificationProvider {
     @Override
     public FixtureScriptsSpecification getSpecification() {
diff --git a/testing/h2console/adoc/modules/h2console/pages/services/H2ManagerMenu.adoc b/testing/h2console/adoc/modules/h2console/pages/services/H2ManagerMenu.adoc
index 913a1da..6c32f50 100644
--- a/testing/h2console/adoc/modules/h2console/pages/services/H2ManagerMenu.adoc
+++ b/testing/h2console/adoc/modules/h2console/pages/services/H2ManagerMenu.adoc
@@ -75,8 +75,9 @@ The menu can be hidden or disabled by subscribing to its domain event, eg:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=DOMAIN)
+@Service
 public class HideH2ManagerMenu {
 
     @EventListener(H2ManagerMenu.ActionDomainEvent.class)
diff --git a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/services/HsqlDbManagerMenu.adoc b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/services/HsqlDbManagerMenu.adoc
index 9736e73..e446289 100644
--- a/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/services/HsqlDbManagerMenu.adoc
+++ b/testing/hsqldbmgr/adoc/modules/hsqldbmgr/pages/services/HsqlDbManagerMenu.adoc
@@ -33,9 +33,10 @@ The menu can be hidden or disabled by subscribing to its domain event, eg:
 [source,java]
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
-@DomainService(nature=DOMAIN)
-public class HideHsqlDbManagerMenu extends AbstractSubscriber {
+@Service
+public class HideHsqlDbManagerMenu {
 
     @EventListener(HsqlDbManagerMenu.ActionDomainEvent.class)
     public void on(HsqlDbManagerMenu.ActionDomainEvent ev) {
diff --git a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisIntegrationTestAbstract.java b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisIntegrationTestAbstract.java
index 73d8b73..d68b5e5 100644
--- a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisIntegrationTestAbstract.java
+++ b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisIntegrationTestAbstract.java
@@ -47,7 +47,7 @@ import lombok.Getter;
  *  
  * @since 2.0
  */
-@ExtendWith({ExceptionRecognizerTranslate.class, IsisSessionScoped.class})
+@ExtendWith({ExceptionRecognizerTranslate.class, IsisSessionHandler.class})
 public abstract class IsisIntegrationTestAbstract {
 
     /**
diff --git a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionHandler.java
similarity index 96%
rename from testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java
rename to testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionHandler.java
index bdaed8f..8c64225 100644
--- a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java
+++ b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionHandler.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.ExtensionContext;
 import org.apache.isis.core.runtime.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.session.init.InitialisationSession;
 
-public class IsisSessionScoped implements BeforeEachCallback, AfterEachCallback {
+public class IsisSessionHandler implements BeforeEachCallback, AfterEachCallback {
 
     @Override
     public void beforeEach(ExtensionContext extensionContext) throws Exception {
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/highlight-current-row.adoc b/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/highlight-current-row.adoc
index 600137d..63d282b 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/highlight-current-row.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/hints-and-tips/highlight-current-row.adoc
@@ -33,11 +33,12 @@ Next, we define the domain service to act as the subscriber:
 .HomePageViewModel.java
 ----
 import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
 
 public class HomePageViewModel {
 
-    @DomainService(nature = NatureOfService.DOMAIN)
-    public static class CssHighlighter extends AbstractSubscriber {
+    @Service
+    public static class CssHighlighter {
         @EventListener(DemoObject.CssClassUiEvent.class)
         public void on(DemoObject.CssClassUiEvent ev) {
             if(getContext() == null) { return; }


[isis] 04/41: ISIS-2094: adds missing license statements

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

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

commit 6b7672cc9300d0f633ab08f7eafb0a0cb36f7170
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 16:35:22 2020 +0000

    ISIS-2094: adds missing license statements
---
 antora/components/_component-template/modules/ROOT/pages/about.adoc   | 2 +-
 antora/components/comguide/modules/ROOT/pages/about.adoc              | 2 +-
 .../comguide/modules/ROOT/pages/antora-publish-procedure.adoc         | 2 +-
 antora/components/comguide/modules/ROOT/pages/applying-patches.adoc   | 2 +-
 antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc  | 2 +-
 antora/components/comguide/modules/ROOT/pages/key-generation.adoc     | 2 +-
 .../comguide/modules/ROOT/pages/merging-a-pull-request.adoc           | 2 +-
 antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc          | 2 +-
 antora/components/comguide/modules/ROOT/pages/policies.adoc           | 2 +-
 .../components/comguide/modules/ROOT/pages/policies/git-policy.adoc   | 2 +-
 .../comguide/modules/ROOT/pages/policies/versioning-policy.adoc       | 2 +-
 .../comguide/modules/ROOT/pages/post-release-successful.adoc          | 2 +-
 .../comguide/modules/ROOT/pages/post-release-unsuccessful.adoc        | 2 +-
 .../modules/ROOT/pages/release-process-for-interim-releases.adoc      | 2 +-
 .../comguide/modules/ROOT/pages/release-process-for-snapshots.adoc    | 2 +-
 .../comguide/modules/ROOT/pages/release-process-prereqs.adoc          | 2 +-
 antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc | 2 +-
 .../components/conguide/modules/ROOT/pages/building-apache-isis.adoc  | 2 +-
 .../conguide/modules/ROOT/pages/building-docs-and-website.adoc        | 2 +-
 antora/components/conguide/modules/ROOT/pages/contributing.adoc       | 2 +-
 .../conguide/modules/documentation/pages/asciidoc-syntax.adoc         | 2 +-
 antora/components/conguide/modules/git/pages/about.adoc               | 2 +-
 antora/components/docs/modules/ROOT/pages/about.adoc                  | 2 +-
 antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc       | 2 +-
 .../modules/ROOT/pages/going-deeper/articles-and-presentations.adoc   | 2 +-
 antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc     | 2 +-
 .../components/docs/modules/ROOT/pages/landing-page/components.adoc   | 2 +-
 antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc    | 2 +-
 antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc  | 2 +-
 antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc | 2 +-
 antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc  | 2 +-
 .../components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc   | 2 +-
 .../docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc | 2 +-
 .../docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc       | 2 +-
 .../modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc    | 2 +-
 .../modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc | 2 +-
 .../docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc  | 2 +-
 .../modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc    | 2 +-
 .../ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc   | 2 +-
 .../ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc  | 2 +-
 .../modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc     | 2 +-
 .../docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc      | 2 +-
 .../modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc | 4 ++--
 antora/components/docs/modules/support/pages/about.adoc               | 2 +-
 antora/components/docs/modules/support/pages/mailing-list.adoc        | 2 +-
 antora/components/docs/modules/support/pages/slack-channel.adoc       | 2 +-
 .../components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc   | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc  | 2 +-
 .../relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc           | 2 +-
 .../components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc  | 2 +-
 .../components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc  | 2 +-
 .../relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc           | 2 +-
 .../components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc  | 2 +-
 .../relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc           | 2 +-
 antora/components/relnotes/modules/ROOT/pages/about.adoc              | 2 +-
 antora/components/setupguide/modules/eclipse/pages/eclipse.adoc       | 2 +-
 .../modules/hints-and-tips/partials/datanucleus-enhancer.adoc         | 2 +-
 .../setupguide/modules/hints-and-tips/partials/enhance-only.adoc      | 2 +-
 .../hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc      | 2 +-
 examples/demo/src/main/adoc/modules/demo/pages/about.adoc             | 2 +-
 .../shiro-realm-ldap/adoc/modules/shiro-realm-ldap/pages/about.adoc   | 2 +-
 testing/adoc/modules/ROOT/pages/about.adoc                            | 2 +-
 viewers/wicket/adoc/modules/ROOT/pages/customisation/about-page.adoc  | 1 -
 87 files changed, 87 insertions(+), 88 deletions(-)

diff --git a/antora/components/_component-template/modules/ROOT/pages/about.adoc b/antora/components/_component-template/modules/ROOT/pages/about.adoc
index 163a7df..5bc1d38 100644
--- a/antora/components/_component-template/modules/ROOT/pages/about.adoc
+++ b/antora/components/_component-template/modules/ROOT/pages/about.adoc
@@ -1,5 +1,5 @@
 = About
-: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 [...]
+: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 [...]
 :page-role: -toc -title
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/about.adoc b/antora/components/comguide/modules/ROOT/pages/about.adoc
index 12e3f75..09cff55 100644
--- a/antora/components/comguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/about.adoc
@@ -1,5 +1,5 @@
 = Committers' Guide
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 This committers' guide is for committers of Apache Isis itself who want guidance on release process, publishing documents and other related procedures.
diff --git a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
index 3bfd6c0..ad3ca35 100644
--- a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
@@ -1,6 +1,6 @@
 [[antora-publish-procedure]]
 = Publishing the Docs
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc b/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
index d3a43af..1ed5485 100644
--- a/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
@@ -1,6 +1,6 @@
 [[applying-patches]]
 = Applying Patches
-: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 [...]
+: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 [...]
 :page-partial:
 
 
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 bbba3b9..c72942f 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -1,5 +1,5 @@
 = Cutting a Release
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
index adf4897..724c255 100644
--- a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
@@ -1,6 +1,6 @@
 [[key-generation]]
 = Key Generation
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc b/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
index 2d57175..4f5de92 100644
--- a/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
@@ -1,6 +1,6 @@
 [[merging-a-pull-request]]
 = Merging a Pull Request
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
index cba4d94..5921caf 100644
--- a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
@@ -1,5 +1,5 @@
 = Appendix: PMC
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/policies.adoc b/antora/components/comguide/modules/ROOT/pages/policies.adoc
index ed7b700..c810fec 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies.adoc
@@ -1,5 +1,5 @@
 = Policies
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc b/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
index 06fcfe6..32172b8 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
@@ -1,6 +1,6 @@
 [[git-policy]]
 = Git Policy
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc b/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
index 71011d9..201a18a 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
@@ -1,5 +1,5 @@
 = Versioning Policy
-: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 [...]
+: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 [...]
 :page-partial:
 
 == Semantic Versioning
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index b631e62..fa97486 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -1,5 +1,5 @@
 = Post Release (Successful)
-: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 [...]
+: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 [...]
 :page-partial:
 
 The release process consists of:
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
index 80325c2..e35e5f5 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
@@ -1,5 +1,5 @@
 = Post Release (Unsuccessful)
-: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 [...]
+: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 [...]
 :page-partial:
 
 The release process consists of:
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
index 0bed29d..3f7b13d 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-for-interim-releases.adoc
@@ -1,6 +1,6 @@
 [[release-process-for-interim-releases]]
 = Interim Releases
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
index c1d3fe7..e6d7c9a 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
@@ -1,6 +1,6 @@
 [[release-process-for-snapshots]]
 = Snapshot Releases
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
index 8e89864..9d143fc 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
@@ -1,6 +1,6 @@
 [[release-process-prereqs]]
 = Appendix: Release Prereqs
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
index ad5d9a0..364662a 100644
--- a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
@@ -1,6 +1,6 @@
 [[verifying-releases]]
 = Verifying a Release
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc b/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc
index 5208232..9504299 100644
--- a/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/building-apache-isis.adoc
@@ -1,6 +1,6 @@
 [[building-apache-isis]]
 = Building Apache Isis
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc b/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc
index fb0f437..1d4555b 100644
--- a/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/building-docs-and-website.adoc
@@ -1,6 +1,6 @@
 [[building-docs-and-website]]
 = Building Docs and Website
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/conguide/modules/ROOT/pages/contributing.adoc b/antora/components/conguide/modules/ROOT/pages/contributing.adoc
index 7061ec2..e1014de 100644
--- a/antora/components/conguide/modules/ROOT/pages/contributing.adoc
+++ b/antora/components/conguide/modules/ROOT/pages/contributing.adoc
@@ -1,6 +1,6 @@
 [[contributing]]
 = Contributing
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc b/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc
index 95e7933..3d43df9 100644
--- a/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc
+++ b/antora/components/conguide/modules/documentation/pages/asciidoc-syntax.adoc
@@ -1,5 +1,5 @@
 = Asciidoc Syntax
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/conguide/modules/git/pages/about.adoc b/antora/components/conguide/modules/git/pages/about.adoc
index 8391f12..40a4c83 100644
--- a/antora/components/conguide/modules/git/pages/about.adoc
+++ b/antora/components/conguide/modules/git/pages/about.adoc
@@ -1,5 +1,5 @@
 = Git Cookbook
-: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 [...]
+: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 [...]
 
 
 This chapter describes the commands often used while working with git.
diff --git a/antora/components/docs/modules/ROOT/pages/about.adoc b/antora/components/docs/modules/ROOT/pages/about.adoc
index 385089d..cc460b9 100644
--- a/antora/components/docs/modules/ROOT/pages/about.adoc
+++ b/antora/components/docs/modules/ROOT/pages/about.adoc
@@ -1,5 +1,5 @@
 = Menu
-: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 [...]
+: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 [...]
 :page-role: -narrow -title
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc b/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
index 175b5e7..c27f7a2 100644
--- a/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
+++ b/antora/components/docs/modules/ROOT/pages/downloads/how-to.adoc
@@ -1,5 +1,5 @@
 = Downloads
-: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 [...]
+: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 [...]
 
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc b/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc
index 00d7034..f6846c6 100644
--- a/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc
+++ b/antora/components/docs/modules/ROOT/pages/going-deeper/articles-and-presentations.adoc
@@ -1,5 +1,5 @@
 = Articles, Conference Sessions, Podcasts
-: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 [...]
+: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 [...]
 
 
 Some articles and recorded material relating to either Apache Isis (or its predecessor, the Naked Objects framework), or its 'sister' open source project on the .NET platform, Naked Objects .NET. We've *highlighted* some of the better ones…
diff --git a/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc b/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc
index 5a8ac1f..bdc4c77 100644
--- a/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc
+++ b/antora/components/docs/modules/ROOT/pages/going-deeper/books.adoc
@@ -1,6 +1,6 @@
 [[books]]
 = Books
-: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 [...]
+: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 [...]
 
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
index 09a3c07..177af7e 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/components.adoc
@@ -1,5 +1,5 @@
 = Components
-: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 [...]
+: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 [...]
 
 
 This page provides user/config guides for each of the main components of the frameworks (viewer, object store and security).
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc
index 42a4e84..a4c9cf2 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/guides.adoc
@@ -1,5 +1,5 @@
 = Guides
-: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 [...]
+: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 [...]
 
 This page lists the user and reference guides available for developers to create applications with the framework:
 
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc
index 203423c..38a8dcc 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/internal.adoc
@@ -1,5 +1,5 @@
 = Framework
-: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 [...]
+: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 [...]
 
 These guides and documents relate to the framework itself, so will be of interest to contributors and committers only.
 They include guides for day-to-day operations, as well as notes on the design/implementation of the software.
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc
index e880ecf..64f7241 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/libraries.adoc
@@ -1,5 +1,5 @@
 = Libraries
-: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 [...]
+: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 [...]
 
 Included with the framework are several catalogues of libraries:
 
diff --git a/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc b/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc
index 05d257f..c5ca749 100644
--- a/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc
+++ b/antora/components/docs/modules/ROOT/pages/landing-page/releases.adoc
@@ -1,5 +1,5 @@
 = Releases
-: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 [...]
+: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 [...]
 
 
 Each new version of the framework comes with xref:relnotes:ROOT:about.adoc[Release Notes], which new features, improvements and bug fixes.
diff --git a/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc b/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc
index 7657842..93a454f 100644
--- a/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc
+++ b/antora/components/docs/modules/ROOT/pages/more-thanks/more-thanks.adoc
@@ -1,5 +1,5 @@
 = With thanks
-: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 [...]
+: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 [...]
 
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc
index 603f9e1..16537a0 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/common-use-cases.adoc
@@ -1,5 +1,5 @@
 = Common Use Cases
-: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 [...]
+: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 [...]
 
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
index bd37f39..ff88fc3 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by.adoc
@@ -1,5 +1,5 @@
 = Powered By
-: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 [...]
+: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 [...]
 
 
 // TODO: V2: need to update these, they are getting stale.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc
index 61c80e1..4c1b175 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/commapp.adoc
@@ -1,5 +1,5 @@
 = CommApp
-: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 [...]
+: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 [...]
 :page-partial:r
 
 // TODO: V2: need to update these, they are getting stale.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc
index 90dbb91..ddc190e 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/contactapp.adoc
@@ -1,5 +1,5 @@
 = Contact App
-: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 [...]
+: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 [...]
 :page-partial:
 
 // TODO: V2: need to update these, they are getting stale.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc
index 7257d94..47118f9 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/cqnz.adoc
@@ -1,5 +1,5 @@
 = CQNZ (Sequence)
-: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 [...]
+: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 [...]
 :page-partial:
 
 // TODO: V2: need to update these, they are getting stale.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc
index e22cd0b..fe5dd2f 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/estatio.adoc
@@ -1,5 +1,5 @@
 = Estatio
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc
index 5f66a95..a56e492 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/gesconsultor-grc.adoc
@@ -1,5 +1,5 @@
 = GESCONSULTOR GRC
-: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 [...]
+: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 [...]
 :page-partial:
 
 // TODO: V2: need to update these, they are getting stale.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc
index 2d1a6d9..e7911d6 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/powered-by/transport-planner.adoc
@@ -1,5 +1,5 @@
 = TransportPlanner
-: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 [...]
+: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 [...]
 :page-partial:
 
 // TODO: V2: need to update these, they are getting stale.
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
index 52ffc3c..16478e5 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts-older.adoc
@@ -1,6 +1,6 @@
 [[screencasts-older]]
 = (Older) Screencasts
-: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 [...]
+: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 [...]
 
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
index 62247ca..aaf0d0f 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
@@ -1,5 +1,5 @@
 = Screencasts
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc
index 520a1b5..dd99d79 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts/playlists.adoc
@@ -1,4 +1,4 @@
-: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 [...]
+: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 [...]
 
 :page-partial:
 
@@ -17,4 +17,4 @@ ons]
 mdl]
 |link:https://www.youtube.com/watch?v=lkZxRSS0Zwg&list=PLbRpnAmQ6xsCHI10N1s25mWAHbAz5diHf[Misc]
 |link:https://www.youtube.com/playlist?list=PLbRpnAmQ6xsA6NZtY0kW9epG9VclXl6e2[Con- +
-trib]
\ No newline at end of file
+trib]
diff --git a/antora/components/docs/modules/support/pages/about.adoc b/antora/components/docs/modules/support/pages/about.adoc
index 3fbae17..2745b72 100644
--- a/antora/components/docs/modules/support/pages/about.adoc
+++ b/antora/components/docs/modules/support/pages/about.adoc
@@ -1,5 +1,5 @@
 = Support & Releases
-: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 [...]
+: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 [...]
 
 
 This page lists additional resources to assist the developer when building applications with the framework.
diff --git a/antora/components/docs/modules/support/pages/mailing-list.adoc b/antora/components/docs/modules/support/pages/mailing-list.adoc
index 378489b..1d03c5b 100644
--- a/antora/components/docs/modules/support/pages/mailing-list.adoc
+++ b/antora/components/docs/modules/support/pages/mailing-list.adoc
@@ -1,5 +1,5 @@
 = Mailing lists
-: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 [...]
+: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 [...]
 :page-aliases: mailing-list/how-to-subscribe.adoc
 
 
diff --git a/antora/components/docs/modules/support/pages/slack-channel.adoc b/antora/components/docs/modules/support/pages/slack-channel.adoc
index efa00b3..cb245dd 100644
--- a/antora/components/docs/modules/support/pages/slack-channel.adoc
+++ b/antora/components/docs/modules/support/pages/slack-channel.adoc
@@ -1,5 +1,5 @@
 = Slack Channel
-: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 [...]
+: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 [...]
 
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc
index c9c8b07..cdd6981 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2012/1.0.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.0.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc
index a4bc846..c23cd8c 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.0.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.0.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc
index ed86df8..2ff891d 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.1.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.1.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc
index 208d7c1..f6562d3 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.2.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.2.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc
index 32c3ea3..b210c79 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.3.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc
index 8681690..60c618f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2013/1.3.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.3.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc
index 3a260d7..f66c8f9 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.4.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc
index 00550fb..aea70b9 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.4.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.4.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc
index 6e8abcc..15ef92b 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.5.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.5.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc
index eb6b2db..8b26ac8 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.6.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.6.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc
index 6a347e5..1f5eeb8 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2014/1.7.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.7.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc
index 20f6115..8b1bb97 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.10.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.10.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc
index e1bf2c9..76967b3 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.8.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.8.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc
index 6285c30..2cba35f 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2015/1.9.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.9.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc
index 6568636..d37d35c 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.11.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc
index a78a669..66c14f0 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.11.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.11.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
index 3cd1537..f5811ad 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.12.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc
index 5a51187..a5df0c9 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.12.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc
index ab0759e..9d6c9d2 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.12.2/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.12.2
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc
index d28f501..0e9811b 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.13.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc
index cb94e09..1b11ea4 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.13.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc
index a24f5d3..a2eedff 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2016/1.13.2/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.13.2
-: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 [...]
+: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 [...]
 :page-partial:
 
 This is a maintenance release with a number of minor improvements and bug fixes.
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc
index ab0fe55..c482af8 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.13.2.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.13.2.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc
index a54a07a..7cb22f3 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.14.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.14.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc
index 61966be..6f3accb 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.15.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc
index a36d880..d594aef 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2017/1.15.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.15.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc
index c9b910e..054eac6 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.16.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc
index 471f5a3..767d267 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.16.1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc
index 98965cf..9c49d68 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/1.16.2/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.16.2
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc
index 9a42c41..b1e8b48 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2018/2.0.0-M1/relnotes.adoc
@@ -1,5 +1,5 @@
 = 2.0.0-M1
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
index daa6bc6..6c1e645 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2019/1.17.0/relnotes.adoc
@@ -1,5 +1,5 @@
 = 1.17.0
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc
index 0792930..53519bb 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2019/2.0.0-M2/relnotes.adoc
@@ -1,5 +1,5 @@
 = 2.0.0-M2
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/relnotes/modules/ROOT/pages/about.adoc b/antora/components/relnotes/modules/ROOT/pages/about.adoc
index 7dd3769..0535447 100644
--- a/antora/components/relnotes/modules/ROOT/pages/about.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/about.adoc
@@ -1,5 +1,5 @@
 = Release Notes
-: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 [...]
+: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 [...]
 :page-role: -toc
 
 
diff --git a/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc b/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc
index a5a9544..46719fa 100644
--- a/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc
+++ b/antora/components/setupguide/modules/eclipse/pages/eclipse.adoc
@@ -1,6 +1,6 @@
 [[eclipse]]
 = Developing using Eclipse
-: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 [...]
+: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 [...]
 :page-partial:
 
 If you are an http://www.eclipse.org[Eclipse] user, then we recommend you download the "Eclipse JEE package" configuration.
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc
index 91c31b0..fc8618b 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/datanucleus-enhancer.adoc
@@ -1,5 +1,5 @@
 = Datanucleus Enhancer
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc
index 1140ecf..92cdbe3 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/enhance-only.adoc
@@ -1,5 +1,5 @@
 = Enhance only (IntelliJ)
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc b/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc
index ffd5209..8f72df6 100644
--- a/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc
+++ b/antora/components/setupguide/modules/hints-and-tips/partials/how-run-fixtures-on-app-startup.adoc
@@ -1,5 +1,5 @@
 = How run fixtures on startup?
-: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 [...]
+: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 [...]
 :page-partial:
 
 
diff --git a/examples/demo/src/main/adoc/modules/demo/pages/about.adoc b/examples/demo/src/main/adoc/modules/demo/pages/about.adoc
index bceee42..cf0ea2c 100644
--- a/examples/demo/src/main/adoc/modules/demo/pages/about.adoc
+++ b/examples/demo/src/main/adoc/modules/demo/pages/about.adoc
@@ -1,5 +1,5 @@
 = Demo App
-: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 [...]
+: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 [...]
 
 The Demo app provides an introduction to some of the features and components available in Apache Isis.
 It is bundled as a Docker image (link:https://hub.docker.com/r/apacheisis/demo-springboot/tags/[apacheisis/demo-springboot]) on Docker Hub.
diff --git a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/pages/about.adoc b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/pages/about.adoc
index 799abd8..2e24f6c 100644
--- a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/pages/about.adoc
+++ b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/pages/about.adoc
@@ -1,5 +1,5 @@
 = LDAP Realm for Shiro
-: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 [...]
+: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 [...]
 
 TODO
 
diff --git a/testing/adoc/modules/ROOT/pages/about.adoc b/testing/adoc/modules/ROOT/pages/about.adoc
index 016fb3d..1ee66f6 100644
--- a/testing/adoc/modules/ROOT/pages/about.adoc
+++ b/testing/adoc/modules/ROOT/pages/about.adoc
@@ -1,5 +1,5 @@
 = Testing
-: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 [...]
+: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 [...]
 
 If you are using Apache Isis to develop complex business-critical applications, then being able to write automated tests for those applications is massively important.
 As such Apache Isis treats the topic of testing very seriously.
diff --git a/viewers/wicket/adoc/modules/ROOT/pages/customisation/about-page.adoc b/viewers/wicket/adoc/modules/ROOT/pages/customisation/about-page.adoc
index ae08492..6d7cf39 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/customisation/about-page.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/customisation/about-page.adoc
@@ -1,4 +1,3 @@
-[[about-page]]
 = About page
 :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 [...]
 


[isis] 39/41: ISIS-2278: renames some classes re: IsisSession, no functional change.

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

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

commit b712be46dccd8d0e049f51d356706b3774603bd4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 12:17:16 2020 +0000

    ISIS-2278: renames some classes re: IsisSession, no functional change.
    
    I've added some REVIEW/TODOs to consider removing the _Context_ThreadLocal and use IsisSession's thread-local instead
---
 ...leEvent.java => IsisSessionLifecycleEvent.java} | 12 +++++-----
 .../context/session/RuntimeEventService.java       |  4 ++--
 .../session/RuntimeEventSupport_Spring.java        |  2 +-
 .../transaction/IsisTransactionAspectSupport.java  |  5 +++++
 .../transaction/IsisTransactionObject.java         |  8 +++----
 .../isis/core/runtime/session/IsisSession.java     | 19 ++++++++++++++++
 .../service/JdoPersistenceLifecycleService.java    | 26 ++++++++++++++--------
 .../IsisPlatformTransactionManagerForJdo.java      |  8 +++----
 8 files changed, 57 insertions(+), 27 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/SessionLifecycleEvent.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/IsisSessionLifecycleEvent.java
similarity index 86%
rename from core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/SessionLifecycleEvent.java
rename to core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/IsisSessionLifecycleEvent.java
index 06435f3..4f1b6bb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/SessionLifecycleEvent.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/IsisSessionLifecycleEvent.java
@@ -25,16 +25,14 @@ import lombok.ToString;
 import lombok.Value;
 
 @Value(staticConstructor="of") @ToString(of = "eventType")
-public class SessionLifecycleEvent {
+public class IsisSessionLifecycleEvent {
 
-    public static enum EventType {
-
-        sessionOpened,
-        sessionClosing,
-        //sessionFlushing,
+    public enum EventType {
+        OPENED,
+        CLOSING,
     }
 
-    @Getter IsisSession session;
+    @Getter IsisSession isisSession;
     @Getter EventType eventType;
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventService.java
index f6c9f21..0120fcc 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventService.java
@@ -58,11 +58,11 @@ public class RuntimeEventService {
     // -- SESSION
 
     public void fireSessionOpened(IsisSession session) {
-        eventBusService.post(SessionLifecycleEvent.of(session, SessionLifecycleEvent.EventType.sessionOpened));
+        eventBusService.post(IsisSessionLifecycleEvent.of(session, IsisSessionLifecycleEvent.EventType.OPENED));
     }
 
     public void fireSessionClosing(IsisSession session) {
-        eventBusService.post(SessionLifecycleEvent.of(session, SessionLifecycleEvent.EventType.sessionClosing));
+        eventBusService.post(IsisSessionLifecycleEvent.of(session, IsisSessionLifecycleEvent.EventType.CLOSING));
     }
 
     //	public void fireSessionFlushing(IsisSession session) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventSupport_Spring.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventSupport_Spring.java
index b72fd7b..a48c990 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventSupport_Spring.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/context/session/RuntimeEventSupport_Spring.java
@@ -37,7 +37,7 @@ public class RuntimeEventSupport_Spring {
     }
 
     @Bean
-    public Event<SessionLifecycleEvent> sessionLifecycleEvents(ApplicationEventPublisher publisher) {
+    public Event<IsisSessionLifecycleEvent> sessionLifecycleEvents(ApplicationEventPublisher publisher) {
         return _Spring.event(publisher);
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionAspectSupport.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionAspectSupport.java
index cbdb9a4..45b86bf 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionAspectSupport.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionAspectSupport.java
@@ -30,6 +30,11 @@ public final class IsisTransactionAspectSupport {
     }
 
     public static void putTransactionObject(IsisTransactionObject txStatus) {
+        // TODO: review - rather than using a thread-local, and alternative might be to have
+        //  IsisSession provide a "userData" map to allow arbitrary session-scoped objects to be stored there...
+        //  ... of which IsisTransactionObject is one (the other is PersistenceSession).
+        //  Then, only IsisSessionFactory needs to maintain a thread-local (and if we change to some other way of
+        //  finding the current IsisSession, eg from HttpRequest, then there's no impact elsewhere).
         _Context.threadLocalPut(IsisTransactionObject.class, txStatus);
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionObject.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionObject.java
index bf0e481..e1c4a97 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionObject.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/transaction/IsisTransactionObject.java
@@ -33,7 +33,7 @@ import lombok.val;
 @ToString
 public class IsisTransactionObject implements SmartTransactionObject {
     
-    public static enum IsisSessionLifeCycle {
+    public static enum IsisSessionScopeType {
         /** an IsisSession was already present when creating this txObj */  
         REQUEST_SCOPED,
         /** an IsisSession was auto-created when creating this txObj, 
@@ -41,15 +41,15 @@ public class IsisTransactionObject implements SmartTransactionObject {
         TEST_SCOPED
     }
 
-    public static IsisTransactionObject of(Transaction currentTransaction, IsisSessionLifeCycle isisSessionLifeCycle) {
+    public static IsisTransactionObject of(Transaction currentTransaction, IsisSessionScopeType isisSessionScopeType) {
         val txObject = new IsisTransactionObject();
         txObject.setCurrentTransaction(currentTransaction);
-        txObject.setIsisSessionLifeCycle(isisSessionLifeCycle);
+        txObject.setIsisSessionScopeType(isisSessionScopeType);
         return txObject;
     }
 
     @Getter @Setter Transaction currentTransaction;
-    @Getter @Setter IsisSessionLifeCycle isisSessionLifeCycle;
+    @Getter @Setter IsisSessionScopeType isisSessionScopeType;
 
 
     @Override
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/session/IsisSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/session/IsisSession.java
index 7ef2989..b7ac992 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/session/IsisSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/session/IsisSession.java
@@ -19,8 +19,13 @@
 
 package org.apache.isis.core.runtime.session;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.isis.applib.services.xactn.TransactionId;
 import org.apache.isis.applib.services.xactn.TransactionState;
+import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.metamodel.commons.ToString;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.runtime.context.session.RuntimeContextBase;
@@ -97,4 +102,18 @@ public class IsisSession extends RuntimeContextBase {
     }
 
 
+    private final Map<Class, Can> map = new HashMap<>();
+
+    public <T> Runnable put(Class<? super T> type, T variant) {
+        map
+                .compute(type, (k, v) -> v == null
+                        ? Can.<T>ofSingleton(variant)
+                        : Can.<T>concat(_Casts.uncheckedCast(v), variant));
+
+        return () -> map.remove(type);
+    }
+
+    public <T> Can<T> get(Class<? super T> type) {
+        return map.get(type);
+    }
 }
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
index 883c70f..27e61a3 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
@@ -34,9 +34,10 @@ import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.config.beans.IsisBeanTypeRegistryHolder;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.runtime.context.session.AppLifecycleEvent;
-import org.apache.isis.core.runtime.context.session.SessionLifecycleEvent;
+import org.apache.isis.core.runtime.context.session.IsisSessionLifecycleEvent;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSession;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSessionFactory;
+import org.apache.isis.core.runtime.session.IsisSession;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -82,8 +83,8 @@ public class JdoPersistenceLifecycleService {
 
     }
 
-    @EventListener(SessionLifecycleEvent.class)
-    public void onSessionLifecycleEvent(SessionLifecycleEvent event) {
+    @EventListener(IsisSessionLifecycleEvent.class)
+    public void onSessionLifecycleEvent(IsisSessionLifecycleEvent event) {
 
         val eventType = event.getEventType();
 
@@ -92,11 +93,11 @@ public class JdoPersistenceLifecycleService {
         }
 
         switch (eventType) {
-        case sessionOpened:
-            openSession();
+        case OPENED:
+            openSession(event.getIsisSession());
             break;
-        case sessionClosing:
-            closeSession();
+        case CLOSING:
+            closeSession(event.getIsisSession());
             break;
             //		case sessionFlushing:
             //			flushSession();
@@ -110,18 +111,25 @@ public class JdoPersistenceLifecycleService {
 
     // -- HELPER
 
-    private void openSession() {
+    private void openSession(IsisSession isisSession) {
 
         val persistenceSession =
                 persistenceSessionFactory.createPersistenceSession();
 
         // to support static call of PersistenceSession.current(PersistenceSession.class)
+
+        // TODO: review - rather than using a thread-local, and alternative might be to have
+        //  IsisSession provide a "userData" map to allow arbitrary session-scoped objects to be stored there...
+        //  ... of which PersistenceSession is one (the other is IsisTransactionObject).
+        //  Then, only IsisSessionFactory needs to maintain a thread-local (and if we change to some other way of
+        //  finding the current IsisSession, eg from HttpRequest, then there's no impact elsewhere).
+
         _Context.threadLocalPut(PersistenceSession.class, persistenceSession);
 
         persistenceSession.open();
     }
 
-    private void closeSession() {
+    private void closeSession(IsisSession isisSession) {
         PersistenceSession.current(PersistenceSession.class)
         .getSingleton()
         .ifPresent(PersistenceSession::close);
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java
index 76f6820..900ef78 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java
@@ -36,7 +36,7 @@ import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.runtime.persistence.session.PersistenceSession;
 import org.apache.isis.core.runtime.persistence.transaction.IsisTransactionAspectSupport;
 import org.apache.isis.core.runtime.persistence.transaction.IsisTransactionObject;
-import org.apache.isis.core.runtime.persistence.transaction.IsisTransactionObject.IsisSessionLifeCycle;
+import org.apache.isis.core.runtime.persistence.transaction.IsisTransactionObject.IsisSessionScopeType;
 import org.apache.isis.core.runtime.persistence.transaction.events.TransactionAfterBeginEvent;
 import org.apache.isis.core.runtime.persistence.transaction.events.TransactionAfterCommitEvent;
 import org.apache.isis.core.runtime.persistence.transaction.events.TransactionAfterRollbackEvent;
@@ -97,7 +97,7 @@ public class IsisPlatformTransactionManagerForJdo extends AbstractPlatformTransa
                 log.debug("open new session authenticationSession={}", authenticationSession);
                 isisSessionFactory.openSession(authenticationSession);
                 
-                return IsisTransactionObject.of(transactionBeforeBegin, IsisSessionLifeCycle.TEST_SCOPED);
+                return IsisTransactionObject.of(transactionBeforeBegin, IsisSessionScopeType.TEST_SCOPED);
                 
                 
             } else {
@@ -109,7 +109,7 @@ public class IsisPlatformTransactionManagerForJdo extends AbstractPlatformTransa
             
         }
 
-        return IsisTransactionObject.of(transactionBeforeBegin, IsisSessionLifeCycle.REQUEST_SCOPED);
+        return IsisTransactionObject.of(transactionBeforeBegin, IsisSessionScopeType.REQUEST_SCOPED);
 
     }
 
@@ -160,7 +160,7 @@ public class IsisPlatformTransactionManagerForJdo extends AbstractPlatformTransa
     private void cleanUp(IsisTransactionObject txObject) {
         txObject.getCountDownLatch().countDown();
         txObject.setCurrentTransaction(null);
-        if(txObject.getIsisSessionLifeCycle() == IsisSessionLifeCycle.TEST_SCOPED) {
+        if(txObject.getIsisSessionScopeType() == IsisSessionScopeType.TEST_SCOPED) {
             isisSessionFactory.closeSessionStack();
         }
         IsisTransactionAspectSupport.clearTransactionObject();


[isis] 15/41: ISIS-2062: trivial fixes to TODOs, capitliazation

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

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

commit 3db4ab43de66c1b1cfce692def74a9decca07d02
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 8 14:07:09 2020 +0000

    ISIS-2062: trivial fixes to TODOs, capitliazation
---
 core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc         | 2 +-
 .../core/applib/src/main/adoc/modules/applib/pages/about.adoc           | 2 +-
 .../core/commons/src/main/adoc/modules/commons/pages/about.adoc         | 2 +-
 .../core/runtime/src/main/adoc/modules/runtime/pages/about.adoc         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc b/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
index 88ac07b..5723c02 100644
--- a/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
+++ b/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
@@ -1,4 +1,4 @@
-= Metamodel
+= MetaModel
 :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 [...]
 
 WARNING: TODO
diff --git a/legacy/extensions/core/applib/src/main/adoc/modules/applib/pages/about.adoc b/legacy/extensions/core/applib/src/main/adoc/modules/applib/pages/about.adoc
index 7e294d6..d5ed2f2 100644
--- a/legacy/extensions/core/applib/src/main/adoc/modules/applib/pages/about.adoc
+++ b/legacy/extensions/core/applib/src/main/adoc/modules/applib/pages/about.adoc
@@ -1,5 +1,5 @@
 = Applib (Legacy)
 :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 [...]
 
-TODO: v2: placeholder for documentation about legacy/applib
+WARNING: TODO: v2: placeholder for documentation about legacy/applib
 
diff --git a/legacy/extensions/core/commons/src/main/adoc/modules/commons/pages/about.adoc b/legacy/extensions/core/commons/src/main/adoc/modules/commons/pages/about.adoc
index b8f334f..160ccec 100644
--- a/legacy/extensions/core/commons/src/main/adoc/modules/commons/pages/about.adoc
+++ b/legacy/extensions/core/commons/src/main/adoc/modules/commons/pages/about.adoc
@@ -1,5 +1,5 @@
 = Commons
 :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 [...]
 
-TODO: v2: placeholder for documentation about legacy/commons
+WARNING: TODO: v2: placeholder for documentation about legacy/commons
 
diff --git a/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc b/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
index 2cb423d..4e09ad1 100644
--- a/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
+++ b/legacy/extensions/core/runtime/src/main/adoc/modules/runtime/pages/about.adoc
@@ -1,5 +1,5 @@
 = Runtime
 :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 [...]
 
-TODO: v2: placeholder for documentation about legacy/commons
+WARNING: TODO: v2: placeholder for documentation about legacy/runtime
 


[isis] 21/41: ISIS-2062: fixes location of license for generated config .adoc's

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

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

commit 661e4bd4e1892bab6fba4fa7c7cdd768d2d77cad
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 9 23:44:39 2020 +0000

    ISIS-2062: fixes location of license for generated config .adoc's
---
 core/config/generateConfigDocs.groovy | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/core/config/generateConfigDocs.groovy b/core/config/generateConfigDocs.groovy
index 8edbe39..db261ec 100644
--- a/core/config/generateConfigDocs.groovy
+++ b/core/config/generateConfigDocs.groovy
@@ -208,13 +208,11 @@ for (property in data.properties) {
     }
 }
 
-def license = ":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 app [...]
+def license = "
+: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  [...]
 new File(outputDir).mkdirs()
 
 def bufNav = StringBuilder.newInstance()
-bufNav << """${license}"
-
-"""
 
 for (PropertyGroup group in groups) {
     def buf = StringBuilder.newInstance()
@@ -223,9 +221,9 @@ for (PropertyGroup group in groups) {
         bufNav << "** xref:refguide:config:sections/${group.fileName()}.adoc[${group.name}]\n"
 
         buf << """= ${group.name}
-${license}
 :page-role: -toc
 
+${license}
 
 include::../section-hooks/${group.fileName()}~pre.adoc[]
 


[isis] 38/41: ISIS-2278: fixing AuditerServiceTest.

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

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

commit e16739bf09f0601f37cad5c5a0ee7c581317d782
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 12:02:19 2020 +0000

    ISIS-2278: fixing AuditerServiceTest.
    
    In the end, just need to wait for the future...
---
 .../wrapper/control/ExceptionHandlerAbstract.java  |  34 +++++++
 .../command/CommandExecutorServiceDefault.java     |  36 ++++++--
 .../wrapper/WrapperFactoryDefault.java             | 102 +++++++++++++++------
 .../testdomain/auditing/AuditerServiceTest.java    |  33 +++++--
 .../testdomain/ldap/LdapEmbeddedServerTest.java    |   1 -
 .../isis/testdomain/shiro/ShiroLdapTest.java       |   6 ++
 6 files changed, 165 insertions(+), 47 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExceptionHandlerAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExceptionHandlerAbstract.java
new file mode 100644
index 0000000..c6ae2bd
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExceptionHandlerAbstract.java
@@ -0,0 +1,34 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.services.wrapper.control;
+
+import org.apache.logging.log4j.Logger;
+
+import lombok.extern.log4j.Log4j2;
+
+/**
+ */
+// tag::refguide[]
+@Log4j2
+public abstract class ExceptionHandlerAbstract implements ExceptionHandler {
+    public static Logger getLog() {
+        return log;
+    }
+}
+// end::refguide[]
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index 7103ccb..d997fd8 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.runtimeservices.command;
 import java.sql.Timestamp;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -255,30 +256,47 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
 
     private static ObjectAction findObjectAction(
             final ManagedObject targetAdapter,
-            final String actionId) throws RuntimeException {
+            final String fullyQualifiedActionId) throws RuntimeException {
 
         final ObjectSpecification specification = targetAdapter.getSpecification();
 
-        final ObjectAction objectAction = findActionElseNull(specification, actionId);
+        // we use the local identifier because the fullyQualified version includes the class name.
+        // that is a problem for us if the property is inherited, because it will be the class name of the declaring
+        // superclass, rather than the concrete class of the target that we are inspecting here.
+        val localActionId = localPartOf(fullyQualifiedActionId);
+
+        final ObjectAction objectAction = findActionElseNull(specification, localActionId);
         if(objectAction == null) {
-            throw new RuntimeException(String.format("Unknown action '%s'", actionId));
+            throw new RuntimeException(String.format("Unknown action '%s'", localActionId));
         }
         return objectAction;
     }
 
     private static OneToOneAssociation findOneToOneAssociation(
             final ManagedObject targetAdapter,
-            final String propertyId) throws RuntimeException {
+            final String fullyQualifiedPropertyId) throws RuntimeException {
+
+        // we use the local identifier because the fullyQualified version includes the class name.
+        // that is a problem for us if the property is inherited, because it will be the class name of the declaring
+        // superclass, rather than the concrete class of the target that we are inspecting here.
+        val localPropertyId = localPartOf(fullyQualifiedPropertyId);
 
         final ObjectSpecification specification = targetAdapter.getSpecification();
 
-        final OneToOneAssociation property = findOneToOneAssociationElseNull(specification, propertyId);
+        final OneToOneAssociation property = findOneToOneAssociationElseNull(specification, localPropertyId);
         if(property == null) {
-            throw new RuntimeException(String.format("Unknown property '%s'", propertyId));
+            throw new RuntimeException(String.format("Unknown property '%s'", localPropertyId));
         }
         return property;
     }
 
+    private static String localPartOf(String memberId) {
+        val separatorIndex = memberId.lastIndexOf("#");
+        return separatorIndex != -1
+                ? memberId.substring(separatorIndex + 1)
+                : memberId;
+    }
+
     private ManagedObject newValueAdapterFor(final PropertyDto propertyDto) {
         final ValueWithTypeDto newValue = propertyDto.getNewValue();
         final Object arg = CommonDtoUtils.getValue(newValue);
@@ -298,14 +316,14 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
 
     private static OneToOneAssociation findOneToOneAssociationElseNull(
             final ObjectSpecification specification,
-            final String propertyId) {
+            final String localPropertyId) {
 
         final Stream<ObjectAssociation> associations = specification.streamAssociations(Contributed.INCLUDED);
 
         return associations
                 .filter(association->
-                association.getIdentifier().toClassAndNameIdentityString().equals(propertyId) &&
-                association instanceof OneToOneAssociation
+                            Objects.equals(association.getId(), localPropertyId) &&
+                            association instanceof OneToOneAssociation
                         )
                 .findAny()
                 .map(association->(OneToOneAssociation) association)
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 567bda6..cdbf541 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -67,6 +67,7 @@ import org.apache.isis.applib.services.wrapper.events.PropertyModifyEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyVisibilityEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
+import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
@@ -79,6 +80,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionMixedIn;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
@@ -92,6 +94,7 @@ import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.core.security.authentication.standard.SimpleSession;
+import org.apache.isis.schema.cmd.v2.CommandDto;
 
 import static org.apache.isis.applib.services.wrapper.control.SyncControl.control;
 
@@ -117,6 +120,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     @Inject private SpecificationLoader specificationLoader;
     @Inject private IsisSessionTracker isisSessionTracker;
     @Inject private IsisSessionFactory isisSessionFactory;
+    @Inject private TransactionService transactionService;
     @Inject private CommandExecutorService commandExecutorService;
     @Inject protected ProxyFactoryService proxyFactoryService; // protected to allow JUnit test
     @Inject private CommandDtoServiceInternal commandDtoServiceInternal;
@@ -229,12 +233,12 @@ public class WrapperFactoryDefault implements WrapperFactory {
                     doih.invoke(null, method, args);
                 }
 
-                val actionAndTarget = forRegular(method, domainObject);
-                if( ! actionAndTarget.isMemberFound()) {
+                val memberAndTarget = forRegular(method, domainObject);
+                if( ! memberAndTarget.isMemberFound()) {
                     return method.invoke(domainObject, args);
                 }
 
-                return submitAsync(actionAndTarget, args, asyncControl);
+                return submitAsync(memberAndTarget, args, asyncControl);
             }
         }, false);
     }
@@ -275,7 +279,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
     private <R> Object submitAsync(
-            final ActionAndTarget actionAndTarget,
+            final MemberAndTarget memberAndTarget,
             final Object[] args,
             final AsyncControl<R> asyncControl) {
 
@@ -283,56 +287,78 @@ public class WrapperFactoryDefault implements WrapperFactory {
         val isisSession = currentIsisSession();
         val asyncAuthSession = authSessionFrom(asyncControl, isisSession.getAuthenticationSession());
 
-        val action = actionAndTarget.getAction();
-        val targetAdapter = actionAndTarget.getTarget();
-        val method = actionAndTarget.getMethod();
+        val targetAdapter = memberAndTarget.getTarget();
+        val method = memberAndTarget.getMethod();
 
         val argAdapters = Arrays.asList(WrapperFactoryDefault.this.adaptersFor(args));
         val targetList = Collections.singletonList(targetAdapter);
-        val commandDto = commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+
+        CommandDto commandDto;
+        switch (memberAndTarget.getType()) {
+            case ACTION:
+                val action = memberAndTarget.getAction();
+                commandDto = commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+                break;
+            case PROPERTY:
+                val property = memberAndTarget.getProperty();
+                commandDto = commandDtoServiceInternal.asCommandDto(targetList, property, argAdapters.get(0));
+                break;
+            default:
+                // shouldn't happen, already catered for this case previously
+                return null;
+        }
         val oidDto = commandDto.getTargets().getOid().get(0);
 
         asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
 
-        Future future = executorService.submit(() ->
-                isisSessionFactory.runAuthenticated(asyncAuthSession,
-                        () -> commandExecutorService.executeCommand(commandDto)));
+        Future future = executorService.submit(() -> {
+            isisSessionFactory.runAuthenticated(asyncAuthSession, () -> {
+                transactionService.executeWithinTransaction(() -> {
+                    commandExecutorService.executeCommand(commandDto);
+                });
+            });
+        });
 
         asyncControlService.update(asyncControl, future);
 
         return null;
     }
 
-    private <T> ActionAndTarget forRegular(Method method, T domainObject) {
+    private <T> MemberAndTarget forRegular(Method method, T domainObject) {
 
         val targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
         val objectMember = targetObjSpec.getMember(method);
         if(objectMember == null) {
-            return new ActionAndTarget(false, null, null, null);
+            return MemberAndTarget.notFound();
         }
 
-        if (!(objectMember instanceof ObjectAction)) {
-            throw new UnsupportedOperationException(
-                    "Only actions can be executed in the background "
-                            + "(method " + method.getName() + " represents a " + objectMember.getFeatureType().name() + "')");
+        val targetAdapter = currentObjectManager().adapt(domainObject);
+        if (objectMember instanceof OneToOneAssociation) {
+            return MemberAndTarget.foundProperty((OneToOneAssociation) objectMember, targetAdapter, method);
+        }
+        if (objectMember instanceof ObjectAction) {
+            return MemberAndTarget.foundAction((ObjectAction) objectMember, targetAdapter, method);
         }
 
-        return ActionAndTarget.found((ObjectAction) objectMember, currentObjectManager().adapt(domainObject), method);
+        throw new UnsupportedOperationException(
+                "Only properties and actions can be executed in the background "
+                        + "(method " + method.getName() + " represents a " + objectMember.getFeatureType().name() + "')");
     }
 
-    private <T> ActionAndTarget forMixin(Method method, T mixedIn) {
+    private <T> MemberAndTarget forMixin(Method method, T mixedIn) {
 
         final ObjectSpecificationDefault mixinSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
         final ObjectMember mixinMember = mixinSpec.getMember(method);
         if (mixinMember == null) {
-            return ActionAndTarget.notFound();
+            return MemberAndTarget.notFound();
         }
 
         // find corresponding action of the mixedIn (this is the 'real' target).
         val mixedInClass = mixedIn.getClass();
         val mixedInSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(mixedInClass);
 
-        // don't care about anything other than actions.
+        // don't care about anything other than actions
+        // (contributed properties and collections are read-only).
         Optional<ObjectActionMixedIn> targetActionIfAny = mixedInSpec.streamObjectActions(Contributed.INCLUDED)
                 .filter(ObjectActionMixedIn.class::isInstance)
                 .map(ObjectActionMixedIn.class::cast)
@@ -345,7 +371,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
                     mixinMember.getId(), mixedInClass.getName()));
         }
 
-        return ActionAndTarget.found(targetActionIfAny.get(), currentObjectManager().adapt(mixedIn), method);
+        return MemberAndTarget.foundAction(targetActionIfAny.get(), currentObjectManager().adapt(mixedIn), method);
     }
 
     private static <R> SimpleSession authSessionFrom(AsyncControl<R> asyncControl, AuthenticationSession authSession) {
@@ -355,15 +381,35 @@ public class WrapperFactoryDefault implements WrapperFactory {
     }
 
     @Data
-    static class ActionAndTarget {
-        static ActionAndTarget notFound() {
-            return new ActionAndTarget(false, null, null, null);
+    static class MemberAndTarget {
+        static MemberAndTarget notFound() {
+            return new MemberAndTarget(Type.NONE, null, null, null, null);
+        }
+        static MemberAndTarget foundAction(ObjectAction action, ManagedObject target, final Method method) {
+            return new MemberAndTarget(Type.ACTION, action, null, target, method);
         }
-        static ActionAndTarget found(ObjectAction action, ManagedObject target, final Method method) {
-            return new ActionAndTarget(true, action, target, method);
+        static MemberAndTarget foundProperty(OneToOneAssociation property, ManagedObject target, final Method method) {
+            return new MemberAndTarget(Type.PROPERTY, null, property, target, method);
+        }
+
+        public boolean isMemberFound() {
+            return type != Type.NONE;
+        }
+
+        enum Type {
+            ACTION,
+            PROPERTY,
+            NONE
         }
-        private final boolean memberFound;
+        private final Type type;
+        /**
+         * Populated if and only if {@link #type} is {@link Type#ACTION}.
+         */
         private final ObjectAction action;
+        /**
+         * Populated if and only if {@link #type} is {@link Type#PROPERTY}.
+         */
+        private final OneToOneAssociation property;
         private final ManagedObject target;
         private final Method method;
     }
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index 2eb40c7..d84fd45 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -42,6 +42,10 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
+import org.apache.isis.applib.services.wrapper.control.ExceptionHandler;
+import org.apache.isis.applib.services.wrapper.control.ExceptionHandlerAbstract;
+import org.apache.isis.applib.services.xactn.Transaction;
+import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
@@ -76,7 +80,7 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
     @Inject private RepositoryService repository;
     @Inject private FixtureScripts fixtureScripts;
     @Inject private WrapperFactory wrapper;
-    @Inject private PlatformTransactionManager txMan; 
+//    @Inject private PlatformTransactionManager txMan;
     @Inject private KVStoreForTesting kvStore;
     
     @Configuration
@@ -106,8 +110,8 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         kvStore.clear(AuditerServiceForTesting.class);
 
         // when - running within its own transactional boundary
-        val transactionTemplate = new TransactionTemplate(txMan);
-        transactionTemplate.execute(status -> {
+//        val transactionTemplate = new TransactionTemplate(txMan);
+//        transactionTemplate.execute(status -> {
 
             book.setName("Book #2");
             repository.persist(book);
@@ -115,16 +119,20 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
             // then - before the commit
             assertFalse(kvStore.get(AuditerServiceForTesting.class, "audit").isPresent());
 
-            return null;
-        });
+//            return null;
+//        });
+        transactionService.nextTransaction();
 
         // then - after the commit
         assertEquals("targetClassName=Jdo Book,propertyName=name,preValue=Sample Book,postValue=Book #2;",
                 kvStore.get(AuditerServiceForTesting.class, "audit").orElse(null));
     }
 
+    @Inject
+    TransactionService transactionService;
+
     @Test @Tag("Incubating")
-    void auditerService_shouldBeAwareOfInventoryChanges_whenUsingAsyncExecution() {
+    void auditerService_shouldBeAwareOfInventoryChanges_whenUsingAsyncExecution() throws ExecutionException, InterruptedException {
 
         // given
         val books = repository.allInstances(JdoBook.class);
@@ -133,9 +141,16 @@ class AuditerServiceTest extends IsisIntegrationTestAbstract {
         kvStore.clear(AuditerServiceForTesting.class);
 
         // when - running within its own background task
-        val control = control().withSkipRules();
-        // don't enforce rules for this test
-        wrapper.async(book, control).setName("Book #2");
+        AsyncControl<Void> control = control().withSkipRules();
+        wrapper.async(book, control.with(new ExceptionHandlerAbstract() {
+            @Override
+            public Object handle(Exception ex) throws Exception {
+                getLog().error(ex);
+                return null;
+            }
+        })).setName("Book #2");
+
+        Void await = control.getFuture().get();
 
         // then - after the commit
         assertEquals("targetClassName=Jdo Book,propertyName=name,preValue=Sample Book,postValue=Book #2;",
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
index 80846d9..8919f1f 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
@@ -74,7 +74,6 @@ class LdapEmbeddedServerTest {
         } catch (NamingException e) {
             fail(e.getMessage());
         } 
-
     }
 
     @Test
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
index 3da2329..d5afc53 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
@@ -25,6 +25,7 @@ import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.AuthenticationToken;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -71,6 +72,11 @@ class ShiroLdapTest extends AbstractShiroTest {
         setSecurityManager(serviceInjector, "classpath:shiro-ldap.ini");
     }
 
+    @AfterEach
+    void afterEach() {
+        SecurityUtils.setSecurityManager(null);
+    }
+
     @AfterAll
     static void afterClass() {
         tearDownShiro();


[isis] 12/41: ISIS-2062: updates release procedure, adds in delombok (for javadoc) and config to release starter pom.xml

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

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

commit ab3d71390e8899fa52bdb8799875f78f84011bf4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 8 13:37:51 2020 +0000

    ISIS-2062: updates release procedure, adds in delombok (for javadoc) and config to release starter pom.xml
---
 .../modules/ROOT/pages/cutting-a-release.adoc      | 37 +++++++----
 core-parent/pom.xml                                | 71 ++++++++++++++++++----
 starters/pom.xml                                   | 64 +++++++++++++++++++
 3 files changed, 149 insertions(+), 23 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 eab7528..9e896ea 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -212,6 +212,11 @@ So, bump to the release version:
 [source,bash,subs="attributes+"]
 ----
 mvn versions:set -DnewVersion=$ISISREL
+
+pushd ../starters
+mvn versions:set -DnewVersion=$ISISREL
+popd
+
 git commit -am "$ISISJIRA: bumps version to $ISISREL"
 ----
 
@@ -248,21 +253,25 @@ To build and deploy and tag, we use:
 
 [source,bash,subs="attributes+"]
 ----
-mvn -P apache-release \
-    clean deploy      \
-    -Dgit \
-    -Dgpg.passphrase="this is not really my passphrase"
+mvn deploy \
+    -Dapache-release \
+    -Dgit
+----
+
+When prompted, enter your GPG passphrase.
+(Or, it might be sufficient to add just `-Dgpg.passphrase="..."`)
 
+IMPORTANT: This requires `gpg` v2.1 or later.
+
+
+Finally, tag the release:
+
+[source,bash,subs="attributes+"]
+----
 git tag $ISISART-$ISISREL
 git tag $ISISART-$ISISREL-$ISISRC
 ----
 
-using your own GPG passphrase, of course.
-
-[IMPORTANT]
-====
-This requires `gpg` v2.1 or later.
-====
 
 == Check/Close Staging Repo
 
@@ -321,12 +330,16 @@ Previously we bumped to the next development snapshot.
 However, this approach doesn't play well with CI/CD when Apache Isis is mounted as a git submodule, so instead we always use `2.0.0-SNAPSHOT` for all development work.
 ====
 
-Therefore:
+Therefore (still in the `core-parent` directory):
 
 [source,bash,subs="attributes+"]
 ----
-cd core-parent
 mvn versions:set -DnewVersion=2.0.0-SNAPSHOT
+
+pushd ../starters
+mvn versions:set -DnewVersion=2.0.0-SNAPSHOT
+popd
+
 git commit -am "$ISISJIRA: resetting version"
 ----
 
diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index 5085d60..02affbe 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -40,7 +40,7 @@ under the License.
 
 	ORG.APACHE:APACHE : commented out : end -->
 
-	<!-- APACHE ISIS customisation 1/5: start -->
+	<!-- APACHE ISIS customisation 1/7: start -->
 
 	<parent>
 		<groupId>org.springframework.boot</groupId>
@@ -54,7 +54,7 @@ under the License.
 	<version>2.0.0-M3-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
-	<!-- APACHE ISIS customisation 1/5: end -->
+	<!-- APACHE ISIS customisation 1/7: end -->
 
 
 	<!-- ORG.APACHE:APACHE : commented out : start
@@ -71,13 +71,13 @@ under the License.
 
 	ORG.APACHE:APACHE : commented out : end -->
 
-	<!-- APACHE ISIS customisation 2/5: start -->
+	<!-- APACHE ISIS customisation 2/7: start -->
 	<name>Apache Isis</name>
 	<description>Parent for the core framework + extensions, starter parent pom for starter apps.</description>
 
     <url>https://isis.apache.org</url>
 	<inceptionYear>2010</inceptionYear>
-	<!-- APACHE ISIS customisation 2/5: end -->
+	<!-- APACHE ISIS customisation 2/7: end -->
 
 	<organization>
 		<name>The Apache Software Foundation</name>
@@ -110,7 +110,7 @@ under the License.
     </scm>
 	ORG.APACHE:APACHE : commented out : end -->
 
-	<!-- APACHE ISIS customisation 3/5: start -->
+	<!-- APACHE ISIS customisation 3/7: start -->
 	<mailingLists>
 		<mailingList>
 			<name>developers</name>
@@ -288,7 +288,7 @@ under the License.
 			<timezone>+3</timezone>
 		</developer>
 	</developers>
-	<!-- APACHE ISIS customisation 3/5: end -->
+	<!-- APACHE ISIS customisation 3/7: end -->
 
 	<distributionManagement>
 		<repository>
@@ -316,6 +316,8 @@ under the License.
 		<maven.compiler.target>1.7</maven.compiler.target>
 		<surefire.version>2.22.0</surefire.version>
 		<assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
+
+		<delombok.output>${project.build.directory}/delombok</delombok.output>
 	</properties>
 
 	<repositories>
@@ -504,7 +506,7 @@ under the License.
 					<artifactId>apache-rat-plugin</artifactId>
 					<version>0.13</version>
 
-					<!-- APACHE ISIS customisation 4/5: start -->
+					<!-- APACHE ISIS customisation 4/7: start -->
 					<configuration>
 						<addDefaultLicenseMatchers>true</addDefaultLicenseMatchers>
 						<excludeSubProjects>true</excludeSubProjects>
@@ -629,7 +631,7 @@ under the License.
 							</licenseFamily>
 						</licenseFamilies>
 					</configuration>
-					<!-- APACHE ISIS customisation 4/5: end -->
+					<!-- APACHE ISIS customisation 4/7: end -->
 
 				</plugin>
 
@@ -719,6 +721,14 @@ under the License.
 		<!-- START SNIPPET: release-profile -->
 		<profile>
 			<id>apache-release</id>
+			<activation>
+				<property>
+					<name>apache-release</name>
+				</property>
+			</activation>
+			<properties>
+				<skipTests>true</skipTests>
+			</properties>
 			<build>
 				<plugins>
 					<!-- Create a source-release artifact that contains the fully buildable
@@ -772,6 +782,26 @@ under the License.
 							</execution>
 						</executions>
 					</plugin>
+					<!-- APACHE ISIS customisation 5/7: end -->
+					<plugin>
+						<groupId>org.projectlombok</groupId>
+						<artifactId>lombok-maven-plugin</artifactId>
+						<version>1.18.0.0</version>
+						<configuration>
+							<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
+							<outputDirectory>${delombok.output}</outputDirectory>
+							<addOutputDirectory>false</addOutputDirectory>
+						</configuration>
+						<executions>
+							<execution>
+								<phase>generate-sources</phase>
+								<goals>
+									<goal>delombok</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<!-- APACHE ISIS customisation 5/7: end -->
 					<plugin>
 						<groupId>org.apache.maven.plugins</groupId>
 						<artifactId>maven-javadoc-plugin</artifactId>
@@ -781,6 +811,12 @@ under the License.
 								<goals>
 									<goal>jar</goal>
 								</goals>
+								<!-- APACHE ISIS customisation 6/7: start -->
+								<configuration>
+									<sourcepath>${delombok.output}</sourcepath>
+									<doclint>none</doclint>
+								</configuration>
+								<!-- APACHE ISIS customisation 6/7: end -->
 							</execution>
 						</executions>
 					</plugin>
@@ -829,15 +865,28 @@ under the License.
 					</plugin>
 				</plugins>
 			</build>
+			<modules>
+				<module>../core</module>
+				<module>../mavendeps</module>
+				<module>../starters</module>
+				<module>../testing</module>
+				<module>../extensions</module>
+<!--
+				<module>../legacy</module>
+				<module>../mappings</module>
+				<module>../subdomains</module>
+				<module>../valuetypes</module>
+-->
+			</modules>
 		</profile>
 		<!-- END SNIPPET: release-profile -->
 
-		<!-- APACHE ISIS customisation 5/5: start -->
+		<!-- APACHE ISIS customisation 7/7: start -->
 		<profile>
 			<id>core-modules</id>
 			<activation>
 				<property>
-					<name>!skip.core-modules</name>
+					<name>!apache-release</name>
 				</property>
 			</activation>
 			<modules>
@@ -878,7 +927,7 @@ under the License.
 			</modules>
 		</profile>
 
-		<!-- APACHE ISIS customisation 5/5: end -->
+		<!-- APACHE ISIS customisation 7/7: end -->
 
 	</profiles>
 </project>
diff --git a/starters/pom.xml b/starters/pom.xml
index 46c14c3..7234e36 100644
--- a/starters/pom.xml
+++ b/starters/pom.xml
@@ -382,6 +382,70 @@ under the License.
 			</build>
 		</profile>
 
+		<profile>
+			<id>apache-release</id>
+			<activation>
+				<property>
+					<name>apache-release</name>
+				</property>
+			</activation>
+			<properties>
+				<skipTests>true</skipTests>
+				<altDeploymentRepository>apache.releases.https::default::https://repository.apache.org/service/local/staging/deploy/maven2</altDeploymentRepository>
+			</properties>
+			<build>
+				<plugins>
+					<!-- We want to sign the artifact, the POM, and all attached artifacts -->
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-gpg-plugin</artifactId>
+						<version>1.6</version>
+						<executions>
+							<execution>
+								<id>sign-release-artifacts</id>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<gpgArguments>
+								<arg>--digest-algo=SHA512</arg>
+							</gpgArguments>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>net.nicoulaj.maven.plugins</groupId>
+						<artifactId>checksum-maven-plugin</artifactId>
+						<version>1.7</version>
+						<executions>
+							<execution>
+								<id>source-release-checksum</id>
+								<goals>
+									<goal>files</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<algorithms>
+								<algorithm>SHA-512</algorithm>
+							</algorithms>
+							<csvSummary>false</csvSummary>
+							<fileSets>
+								<fileSet>
+									<directory>${project.build.directory}</directory>
+									<includes>
+										<include>${project.artifactId}-${project.version}-source-release.zip</include>
+										<include>${project.artifactId}-${project.version}-source-release.tar*</include>
+									</includes>
+								</fileSet>
+							</fileSets>
+							<failIfNoFiles>false</failIfNoFiles><!-- usually, no file to do checksum: don't consider error -->
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
 
 	</profiles>
 </project>


[isis] 08/41: ISIS-2094: license headers

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

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

commit 2a037496c55a26343c120e76d415bb6c31f4da08
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 18:49:11 2020 +0000

    ISIS-2094: license headers
---
 .gitignore                                         |  1 -
 .../modules/ROOT/pages/cutting-a-release.adoc      |  2 +-
 core-parent/pom.xml                                | 21 +++++---
 .../main/resources/ValidationMessages.properties   | 17 +++++++
 core/metamodel/log4j2-test.xml                     | 18 +++++++
 examples/demo/src/main/resources/log4j2-spring.xml | 18 +++++++
 examples/smoketests/log4j2-debug-persistence.xml   | 18 +++++++
 examples/smoketests/log4j2-test.xml                | 18 +++++++
 .../model/app/feature/ApplicationClass.layout.xml  | 18 +++++++
 .../app/feature/ApplicationClassAction.layout.xml  | 18 +++++++
 .../feature/ApplicationClassCollection.layout.xml  | 18 +++++++
 .../feature/ApplicationClassProperty.layout.xml    | 18 +++++++
 .../app/feature/ApplicationPackage.layout.xml      | 18 +++++++
 .../app/user/UserPermissionViewModel.layout.xml    | 18 +++++++
 .../isis/extensions/secman/jdo/dom/package.jdo     | 18 +++++++
 .../permission/ApplicationPermission.layout.xml    | 18 +++++++
 .../secman/jdo/dom/role/ApplicationRole.layout.xml | 18 +++++++
 .../jdo/dom/tenancy/ApplicationTenancy.layout.xml  | 18 +++++++
 .../secman/jdo/dom/user/ApplicationUser.layout.xml | 18 +++++++
 .../modules/shiro-realm-ldap/examples/shiro.ini    | 17 +++++++
 .../CalendarableCollectionAsFullCalendar.css       |  8 ++--
 .../CalendarableCollectionAsFullCalendar.html      | 18 +++++++
 .../CalendarEventableCollectionAsFullCalendar.css  |  8 ++--
 .../CalendarEventableCollectionAsFullCalendar.html | 18 +++++++
 .../pdfjs/fixtures/logging-dn-enhance.properties   | 17 +++++++
 extensions/vw/pdfjs/fixtures/pom.xml               | 18 +++++++
 .../src/main/java/META-INF/persistence.xml         | 18 +++++++
 .../pdfjs/ui/components/PdfJsViewerPanel.css       | 19 ++++++++
 .../wicket/pdfjs/ui/components/PdfJsViewerPanel.js | 19 ++++++++
 .../PdfJsViewerPanelCallbacks.template.js          | 19 ++++++++
 .../org/wicketstuff/pdfjs/res/wicketstuff-pdf.js   | 19 ++++++++
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  2 +
 incubator/viewers/vaadin/ui/webpack.config.js      | 56 ++++++++++++++++++++++
 .../src/main/doc/modules/mvn/partials/nav.adoc     |  2 +
 .../adoc/modules/ROOT/partials/module-nav.adoc     |  2 +
 subdomains/base/applib/pom.xml                     | 18 +++++++
 .../TitledEnumContractTestAbstract_title.java      | 18 +++++++
 .../base/applib/TitledEnumContractTester.java      | 18 +++++++
 .../base/applib/matchers/IsisMatchers.java         | 18 +++++++
 .../CalendarServiceTest_beginningOfMonth.java      | 18 +++++++
 .../CalendarServiceTest_beginningOfQuarter.java    | 18 +++++++
 .../applib/testing/PrivateConstructorTester.java   | 18 +++++++
 .../TitledEnumContractTestAbstract_title.java      | 18 +++++++
 .../applib/titled/TitledEnumContractTester.java    | 18 +++++++
 .../base/applib/utils/ClassUtilsTest.java          | 18 +++++++
 .../base/applib/utils/JodaPeriodUtilsTest.java     | 18 +++++++
 .../base/applib/utils/MathUtilsTest.java           | 18 +++++++
 .../base/applib/utils/MessageUtils_Test.java       | 18 +++++++
 .../base/applib/utils/StringUtilsTest.java         | 18 +++++++
 .../base/applib/utils/TitleBuilderTest.java        | 18 +++++++
 .../applib/valuetypes/LocalDateIntervalTest.java   | 18 +++++++
 ...arableByCodeContractTestAbstract_compareTo.java | 18 +++++++
 .../with/ComparableByCodeContractTester.java       | 18 +++++++
 ...yDescriptionContractTestAbstract_compareTo.java | 18 +++++++
 .../ComparableByDescriptionContractTester.java     | 18 +++++++
 ...arableByNameContractTestAbstract_compareTo.java | 18 +++++++
 .../with/ComparableByNameContractTester.java       | 18 +++++++
 ...eByReferenceContractTestAbstract_compareTo.java | 18 +++++++
 .../with/ComparableByReferenceContractTester.java  | 18 +++++++
 ...rableByTitleContractTestAbstract_compareTo.java | 18 +++++++
 .../with/ComparableByTitleContractTester.java      | 18 +++++++
 .../with/InstantiatorForComparableByCode.java      | 19 +++++++-
 .../InstantiatorForComparableByDescription.java    | 19 +++++++-
 .../with/InstantiatorForComparableByName.java      | 19 +++++++-
 .../with/InstantiatorForComparableByReference.java | 19 +++++++-
 .../applib/with/InstantiatorForWithStartDate.java  | 18 +++++++
 ...lperClassesContractTest_privateConstructor.java | 18 +++++++
 .../WithFieldUniqueContractTestAllAbstract.java    | 18 +++++++
 ...valMutableContractTestAbstract_changeDates.java | 18 +++++++
 subdomains/base/pom.xml                            | 18 +++++++
 .../excel/fixture/logging-dn-enhance.properties    | 17 +++++++
 subdomains/excel/fixture/pom.xml                   | 18 +++++++
 .../fixture/src/main/java/META-INF/persistence.xml | 18 +++++++
 .../BulkUpdateLineItemForDemoToDoItem.layout.xml   | 18 +++++++
 .../BulkUpdateManagerForDemoToDoItem.layout.xml    | 18 +++++++
 .../todomodule/dom/ExcelDemoToDoItem.layout.xml    | 18 +++++++
 subdomains/excel/integtests/log4j2-test.xml        | 18 +++++++
 subdomains/excel/integtests/pom.xml                | 18 +++++++
 .../spring/applib/service/BeanDescriptor.java      | 18 +++++++
 .../spring/applib/service/ContextBeans.java        | 18 +++++++
 .../service/example/template/project.fields.xml    | 18 +++++++
 .../partials/surefire-configuration-caution.adoc   |  2 +
 testing/fakedata/applib/pom.xml                    | 18 +++++++
 .../fixtures/logging-dn-enhance.properties         | 17 +++++++
 testing/fakedata/fixtures/pom.xml                  | 18 +++++++
 .../src/main/java/META-INF/persistence.xml         | 18 +++++++
 .../fixtures/demoapp/demomodule/dom/EnumOf3.java   | 18 +++++++
 .../demomodule/dom/FakeDataDemoObjectWithAll.java  | 18 +++++++
 .../dom/FakeDataDemoObjectWithAllMenu.java         | 18 +++++++
 .../FakeDataDemoObjectWithAll_create3.java         | 18 +++++++
 .../FakeDataDemoObjectWithAll_tearDown.java        | 18 +++++++
 ...eDataDemoObjectWithAll_create_withFakeData.java | 18 +++++++
 ...eDataDemoObjectWithAll_update_withFakeData.java | 18 +++++++
 testing/fakedata/integtests/log4j2-test.xml        | 18 +++++++
 testing/fakedata/integtests/pom.xml                | 18 +++++++
 .../FakeDataModuleIntegTestAbstract.java           | 19 +++++++-
 .../fakedata/integtests/tests/Smoke_IntegTest.java | 18 +++++++
 testing/fakedata/pom.xml                           | 18 +++++++
 .../applib/modules/ModuleWithFixtures.java         | 18 +++++++
 .../integtestsupport/applib/IsisSessionScoped.java | 18 +++++++
 .../applib/bean/PojoTesterTest_interference.java   | 18 +++++++
 .../sse/applib/value/ListeningMarkup.java          | 18 +++++++
 .../sse/ui/markup/js/ObservingComponent.js         | 19 ++++++++
 .../service/swagger/internal/ClassExcluder.java    | 18 +++++++
 .../reference-layout/isis-layout-show-facets.css   | 21 +++++++-
 .../ROOT/images/reference-layout/isis-layout.css   | 21 +++++++-
 .../images/reference-layout/layout-4-0-8-0.html    | 18 +++++++
 .../images/reference-layout/layout-4-4-4-12.html   | 18 +++++++
 .../images/reference-layout/layout-6-6-0-12.html   | 18 +++++++
 109 files changed, 1875 insertions(+), 22 deletions(-)

diff --git a/.gitignore b/.gitignore
index 501822f..2ec55d5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,5 +70,4 @@ error-screenshots/
 node/
 package-lock.json
 package.json
-webpack.config.js
 webpack.generated.js
\ No newline at end of file
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 c72942f..7081d03 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -125,7 +125,7 @@ To run the RAT tool, use:
 
 [source,bash,subs="attributes+"]
 ----
-mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=100000
+mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=100
 
 pushd ..
 for a in `/bin/find . -name rat.txt -print`; do grep '!???' $a; done
diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index f66a0f8..fb2ed3c 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
@@ -18,7 +17,6 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
@@ -521,11 +519,19 @@ under the License.
 							<exclude>**/*.launch</exclude>
 
 							<exclude>**/*.iml</exclude>
+							<exclude>**/webpack.generated.js</exclude>
+							<exclude>**/*.gitkeep</exclude>
 
 							<exclude>**/*.pdn</exclude>
 							<exclude>**/*.svg</exclude>
+							<exclude>**/*.rtf</exclude>
 							<exclude>**/*.json</exclude>
 							<exclude>**/*.min.js</exclude>
+							<exclude>**/fakedata/applib/services/clobs/*.dtd</exclude>
+							<exclude>**/fakedata/applib/services/clobs/*.dcl</exclude>
+							<exclude>**/fakedata/applib/services/clobs/*.soc</exclude>
+							<exclude>**/fakedata/applib/services/clobs/vs</exclude>
+							<exclude>**/fakedata/applib/services/clobs/vx</exclude>
 
 							<exclude>**/MANIFEST.MF</exclude>
 							<exclude>**/*.ucd</exclude>
@@ -541,6 +547,8 @@ under the License.
 							<exclude>**/simple-sidebar.css</exclude>
 							<exclude>**/bootstrap-growl.js</exclude>
 							<exclude>**/moment.js</exclude>
+							<exclude>**/prism*.js</exclude>
+							<exclude>**/prism.css</exclude>
 
 							<exclude>**/bootstrap-datetimepicker.min.css</exclude>
 							<exclude>**/bootstrap-datetimepicker.css</exclude>
@@ -555,14 +563,12 @@ under the License.
 							<exclude>**/gradlew.bat</exclude>
 							<exclude>**/rebel.xml</exclude>
 							<exclude>**/translations**.po</exclude>
-							<exclude>**/integtests/translations.pot</exclude>
+							<exclude>**/translations.pot</exclude>
 							<exclude>**/intellij/launch/*.xml</exclude>
 
 							<exclude>**/swagger-ui/**</exclude>
 
 							<exclude>**/META-INF/services/**</exclude>
-
-							<exclude>**/.gitkeep</exclude>
 						</excludes>
 						<licenses>
 							<license
@@ -577,12 +583,13 @@ under the License.
 							</license>
 							<license
 									implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-								<licenseFamilyCategory>JQRY</licenseFamilyCategory>
-								<licenseFamilyName>MIT  </licenseFamilyName>
+								<licenseFamilyCategory>MIT</licenseFamilyCategory>
+								<licenseFamilyName>MIT Licensed</licenseFamilyName>
 								<notes />
 								<patterns>
 									<pattern>The MIT License (MIT)</pattern>
 									<pattern>Dual licensed under the MIT</pattern>
+									<pattern>http://prismjs.com/download.html</pattern>
 								</patterns>
 							</license>
 							<license
diff --git a/core/config/src/main/resources/ValidationMessages.properties b/core/config/src/main/resources/ValidationMessages.properties
index e541c51..4b1a808 100644
--- a/core/config/src/main/resources/ValidationMessages.properties
+++ b/core/config/src/main/resources/ValidationMessages.properties
@@ -1 +1,18 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 org.apache.isis.core.config.IsisConfiguration.AssignableFrom.message=Must be a subtype of '{value}'
\ No newline at end of file
diff --git a/core/metamodel/log4j2-test.xml b/core/metamodel/log4j2-test.xml
index 26dc93b..c3ab20e 100644
--- a/core/metamodel/log4j2-test.xml
+++ b/core/metamodel/log4j2-test.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <Configuration status="WARN">
 	<Properties>
 		<Property name="PID">????</Property>
diff --git a/examples/demo/src/main/resources/log4j2-spring.xml b/examples/demo/src/main/resources/log4j2-spring.xml
index 08a5edb..0c0e64c 100644
--- a/examples/demo/src/main/resources/log4j2-spring.xml
+++ b/examples/demo/src/main/resources/log4j2-spring.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <Configuration status="WARN">
 	<Properties>
 		<Property name="PID">????</Property>
diff --git a/examples/smoketests/log4j2-debug-persistence.xml b/examples/smoketests/log4j2-debug-persistence.xml
index 6095740..1aec9b2 100644
--- a/examples/smoketests/log4j2-debug-persistence.xml
+++ b/examples/smoketests/log4j2-debug-persistence.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <Configuration status="WARN">
 	<Properties>
 		<Property name="PID">????</Property>
diff --git a/examples/smoketests/log4j2-test.xml b/examples/smoketests/log4j2-test.xml
index 56e8ad6..0ed7986 100644
--- a/examples/smoketests/log4j2-test.xml
+++ b/examples/smoketests/log4j2-test.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <Configuration status="WARN">
 	<Properties>
 		<Property name="PID">????</Property>
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClass.layout.xml b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClass.layout.xml
index ccb73e7..e176d74 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClass.layout.xml
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClass.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassAction.layout.xml b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassAction.layout.xml
index d9468dc..11c4dee 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassAction.layout.xml
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassAction.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassCollection.layout.xml b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassCollection.layout.xml
index c792296..e2db565 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassCollection.layout.xml
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassCollection.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassProperty.layout.xml b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassProperty.layout.xml
index 2f81cc7..d6c0892 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassProperty.layout.xml
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationClassProperty.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPackage.layout.xml b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPackage.layout.xml
index 3a1fd24..399b86c 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPackage.layout.xml
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPackage.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.layout.xml b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.layout.xml
index a75d572..45fdf60 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.layout.xml
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/package.jdo b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/package.jdo
index 01dfc02..b082ccc 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/package.jdo
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/package.jdo
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo http://xmlns.jcp.org/xml/ns/jdo/jdo_3_1.xsd"
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.layout.xml b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.layout.xml
index a5b51af..edf5db3 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.layout.xml
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.layout.xml b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.layout.xml
index 0dfdae6..f01c08e 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.layout.xml
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.layout.xml b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.layout.xml
index 0ea9f0e..7e8470e 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.layout.xml
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancy.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.layout.xml b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.layout.xml
index a85d84c..da3798b 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.layout.xml
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid
         xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd   http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd"
         xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3"
diff --git a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/examples/shiro.ini b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/examples/shiro.ini
index 9b443cb..12bf7ae 100644
--- a/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/examples/shiro.ini
+++ b/extensions/security/shiro-realm-ldap/adoc/modules/shiro-realm-ldap/examples/shiro.ini
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 [main]
 contextFactory = org.apache.isis.extensions.shirorealmldap.realm.impl.IsisLdapContextFactory
 contextFactory.url = ldap://localhost:10389
diff --git a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.css b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.css
index 92e5913..6854bd1 100644
--- a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.css
+++ b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.css
@@ -1,7 +1,9 @@
 /*
- *  Copyright 2013 Dan Haywood
- *
- *  Licensed under the Apache License, Version 2.0 (the
+ *  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
  *
diff --git a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.html b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.html
index 7187b17..570f207 100644
--- a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.html
+++ b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendarable/CalendarableCollectionAsFullCalendar.html
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
 <html xmlns:wicket="http://wicket.apache.org">
     <body>
         <wicket:panel>
diff --git a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.css b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.css
index 7e14ec6..3f71c03 100644
--- a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.css
+++ b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.css
@@ -1,7 +1,9 @@
 /*
- *  Copyright 2013 Dan Haywood
- *
- *  Licensed under the Apache License, Version 2.0 (the
+ *  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
  *
diff --git a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.html b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.html
index 101468b..517339c 100644
--- a/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.html
+++ b/extensions/vw/fullcalendar/ui/src/main/java/org/apache/isis/extensions/fullcalendar/ui/component/calendareventable/CalendarEventableCollectionAsFullCalendar.html
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
 <html xmlns:wicket="http://wicket.apache.org">
     <body>
         <wicket:panel>
diff --git a/extensions/vw/pdfjs/fixtures/logging-dn-enhance.properties b/extensions/vw/pdfjs/fixtures/logging-dn-enhance.properties
index 281bfb6..dc4d31c 100644
--- a/extensions/vw/pdfjs/fixtures/logging-dn-enhance.properties
+++ b/extensions/vw/pdfjs/fixtures/logging-dn-enhance.properties
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # LOG4J Configuration
 # ===================
 
diff --git a/extensions/vw/pdfjs/fixtures/pom.xml b/extensions/vw/pdfjs/fixtures/pom.xml
index 63bbad6..bfa1396 100644
--- a/extensions/vw/pdfjs/fixtures/pom.xml
+++ b/extensions/vw/pdfjs/fixtures/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/extensions/vw/pdfjs/fixtures/src/main/java/META-INF/persistence.xml b/extensions/vw/pdfjs/fixtures/src/main/java/META-INF/persistence.xml
index 67f721c..da6c76c 100644
--- a/extensions/vw/pdfjs/fixtures/src/main/java/META-INF/persistence.xml
+++ b/extensions/vw/pdfjs/fixtures/src/main/java/META-INF/persistence.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.css b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.css
index f5b4583..aaf4f47 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.css
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.css
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
 .pdfPanel {
     width : 100%;
     height : 100%;
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.js b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.js
index 4b1ffe6..c763905 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.js
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanel.js
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
 $(function () {
 
     function raiseEvent(elem, event, moreArgs) {
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelCallbacks.template.js b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelCallbacks.template.js
index a57a6b3..0850a27 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelCallbacks.template.js
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/apache/isis/extensions/viewer/wicket/pdfjs/ui/components/PdfJsViewerPanelCallbacks.template.js
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
 if (typeof(PdfJsViewerPanel) !== 'object') {
     window.PdfJsViewerPanel = {};
 
diff --git a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/res/wicketstuff-pdf.js b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/res/wicketstuff-pdf.js
index 33b5769..3a8d7a6 100644
--- a/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/res/wicketstuff-pdf.js
+++ b/extensions/vw/pdfjs/ui/src/main/java/org/wicketstuff/pdfjs/res/wicketstuff-pdf.js
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
 ;(function ($, undefined) {
 
     'use strict';
diff --git a/incubator/adoc/modules/ROOT/partials/module-nav.adoc b/incubator/adoc/modules/ROOT/partials/module-nav.adoc
index e69de29..ca04c21 100644
--- a/incubator/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/incubator/adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/incubator/viewers/vaadin/ui/webpack.config.js b/incubator/viewers/vaadin/ui/webpack.config.js
new file mode 100644
index 0000000..05ad3dc
--- /dev/null
+++ b/incubator/viewers/vaadin/ui/webpack.config.js
@@ -0,0 +1,56 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+/**
+ * This file has been autogenerated as it didn't exist or was made for an older incompatible version.
+ * This file can be used for manual configuration will not be modified if the flowDefaults constant exists.
+ */
+const merge = require('webpack-merge');
+const flowDefaults = require('./webpack.generated.js');
+
+module.exports = merge(flowDefaults, {
+
+});
+
+/**
+ * This file can be used to configure the flow plugin defaults.
+ * <code>
+ *   // Add a custom plugin
+ *   flowDefaults.plugins.push(new MyPlugin());
+ *
+ *   // Update the rules to also transpile `.mjs` files
+ *   if (!flowDefaults.module.rules[0].test) {
+ *     throw "Unexpected structure in generated webpack config";
+ *   }
+ *   flowDefaults.module.rules[0].test = /\.m?js$/
+ *
+ *   // Include a custom JS in the entry point in addition to generated-flow-imports.js
+ *   if (typeof flowDefaults.entry.index != "string") {
+ *     throw "Unexpected structure in generated webpack config";
+ *   }
+ *   flowDefaults.entry.index = [flowDefaults.entry.index, "myCustomFile.js"];
+ * </code>
+ * or add new configuration in the merge block.
+ * <code>
+ *   module.exports = merge(flowDefaults, {
+ *     mode: 'development',
+ *     devtool: 'inline-source-map'
+ *   });
+ * </code>
+ */
diff --git a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/partials/nav.adoc b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/partials/nav.adoc
index b7bc06b..89b3329 100644
--- a/legacy/testing/mavenplugin/src/main/doc/modules/mvn/partials/nav.adoc
+++ b/legacy/testing/mavenplugin/src/main/doc/modules/mvn/partials/nav.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 * xref:about.adoc[Maven plugin]
 
 ** xref:intro.adoc[Introduction]
diff --git a/subdomains/adoc/modules/ROOT/partials/module-nav.adoc b/subdomains/adoc/modules/ROOT/partials/module-nav.adoc
index e69de29..ca04c21 100644
--- a/subdomains/adoc/modules/ROOT/partials/module-nav.adoc
+++ b/subdomains/adoc/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1,2 @@
+: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 [...]
+
diff --git a/subdomains/base/applib/pom.xml b/subdomains/base/applib/pom.xml
index 138c056..6ff8b12 100644
--- a/subdomains/base/applib/pom.xml
+++ b/subdomains/base/applib/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTestAbstract_title.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTestAbstract_title.java
index a2cb165..ddcd840 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTestAbstract_title.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTestAbstract_title.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 /**
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTester.java
index cae21f7..a563077 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/TitledEnumContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib;
 
 /**
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/matchers/IsisMatchers.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/matchers/IsisMatchers.java
index d42d51b..91ab369 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/matchers/IsisMatchers.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/matchers/IsisMatchers.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.matchers;
 
 import java.io.File;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfMonth.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfMonth.java
index 4b78a1e..7971305 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfMonth.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfMonth.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.services.calendar;
 
 import java.time.LocalDate;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfQuarter.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfQuarter.java
index 91c65d6..3c02973 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfQuarter.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/services/calendar/CalendarServiceTest_beginningOfQuarter.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.services.calendar;
 
 import java.time.LocalDate;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/testing/PrivateConstructorTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/testing/PrivateConstructorTester.java
index 8e47b00..673a746 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/testing/PrivateConstructorTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/testing/PrivateConstructorTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.testing;
 
 import java.lang.reflect.Constructor;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTestAbstract_title.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTestAbstract_title.java
index d72bfe4..b526fe8 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTestAbstract_title.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTestAbstract_title.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.titled;
 
 import java.util.Set;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTester.java
index 0fda2c8..0839598 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/titled/TitledEnumContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.titled;
 
 import org.hamcrest.CoreMatchers;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/ClassUtilsTest.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/ClassUtilsTest.java
index 4bfd09a..ab544f3 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/ClassUtilsTest.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/ClassUtilsTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import org.junit.Rule;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtilsTest.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtilsTest.java
index 5d32e93..581f14e 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtilsTest.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/JodaPeriodUtilsTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import org.hamcrest.core.Is;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MathUtilsTest.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MathUtilsTest.java
index ed92ca8..53719a9 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MathUtilsTest.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MathUtilsTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import java.math.BigDecimal;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils_Test.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils_Test.java
index 200e0e5..6289962 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils_Test.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/MessageUtils_Test.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import org.assertj.core.api.Assertions;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/StringUtilsTest.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/StringUtilsTest.java
index 4245057..76be15d 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/StringUtilsTest.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/StringUtilsTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import java.util.Arrays;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilderTest.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilderTest.java
index 44a85b2..1a60444 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilderTest.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/utils/TitleBuilderTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.utils;
 
 import org.junit.Test;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateIntervalTest.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateIntervalTest.java
index d1a29e7..590fe12 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateIntervalTest.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/valuetypes/LocalDateIntervalTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.valuetypes;
 
 import org.joda.time.Interval;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTestAbstract_compareTo.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTestAbstract_compareTo.java
index aa9864f..5f7cf52 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTestAbstract_compareTo.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTestAbstract_compareTo.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.Map;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTester.java
index 98e312d..82c8e2d 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByCodeContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.List;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTestAbstract_compareTo.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTestAbstract_compareTo.java
index 3a6f16e..920e804 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTestAbstract_compareTo.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTestAbstract_compareTo.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.Map;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTester.java
index e49a9fb..5ab2758 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByDescriptionContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.List;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTestAbstract_compareTo.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTestAbstract_compareTo.java
index 63a3010..24744f4 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTestAbstract_compareTo.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTestAbstract_compareTo.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.Map;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTester.java
index 9d2fe19..17677a8 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByNameContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.List;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTestAbstract_compareTo.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTestAbstract_compareTo.java
index 3f4f21a..d3c2e9e 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTestAbstract_compareTo.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTestAbstract_compareTo.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.Map;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTester.java
index 0c34f04..cd90af3 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByReferenceContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.List;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTestAbstract_compareTo.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTestAbstract_compareTo.java
index 68bbc42..9a813fe 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTestAbstract_compareTo.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTestAbstract_compareTo.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.Map;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTester.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTester.java
index 858ed7f..ee16778 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTester.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/ComparableByTitleContractTester.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.util.List;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByCode.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByCode.java
index da9ce86..805b0ec 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByCode.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByCode.java
@@ -1,6 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
 import org.apache.isis.testing.unittestsupport.applib.core.bidir.Instantiator;
 
 public class InstantiatorForComparableByCode implements Instantiator {
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByDescription.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByDescription.java
index d230248..eb1bd09 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByDescription.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByDescription.java
@@ -1,6 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
 import org.apache.isis.testing.unittestsupport.applib.core.bidir.Instantiator;
 
 public class InstantiatorForComparableByDescription implements Instantiator {
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByName.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByName.java
index f775eab..fdbeae7 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByName.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByName.java
@@ -1,6 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
 import org.apache.isis.testing.unittestsupport.applib.core.bidir.Instantiator;
 
 public class InstantiatorForComparableByName implements Instantiator {
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByReference.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByReference.java
index f881f3b..6e3d65d 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByReference.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForComparableByReference.java
@@ -1,6 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
-
 import org.apache.isis.testing.unittestsupport.applib.core.bidir.Instantiator;
 
 public class InstantiatorForComparableByReference implements Instantiator {
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForWithStartDate.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForWithStartDate.java
index 93fd12d..5372461 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForWithStartDate.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/InstantiatorForWithStartDate.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.joda.time.LocalDate;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/StaticHelperClassesContractTest_privateConstructor.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/StaticHelperClassesContractTest_privateConstructor.java
index e1a2730..940a5a7 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/StaticHelperClassesContractTest_privateConstructor.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/StaticHelperClassesContractTest_privateConstructor.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.junit.Test;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithFieldUniqueContractTestAllAbstract.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithFieldUniqueContractTestAllAbstract.java
index 6ea8816..7026601 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithFieldUniqueContractTestAllAbstract.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithFieldUniqueContractTestAllAbstract.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import java.lang.annotation.Annotation;
diff --git a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutableContractTestAbstract_changeDates.java b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutableContractTestAbstract_changeDates.java
index 6a06c33..4d72032 100644
--- a/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutableContractTestAbstract_changeDates.java
+++ b/subdomains/base/applib/src/test/java/org/apache/isis/subdomains/base/applib/with/WithIntervalMutableContractTestAbstract_changeDates.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.base.applib.with;
 
 import org.jmock.Expectations;
diff --git a/subdomains/base/pom.xml b/subdomains/base/pom.xml
index a2ec1d8..0648b3b 100644
--- a/subdomains/base/pom.xml
+++ b/subdomains/base/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/subdomains/excel/fixture/logging-dn-enhance.properties b/subdomains/excel/fixture/logging-dn-enhance.properties
index 281bfb6..dc4d31c 100644
--- a/subdomains/excel/fixture/logging-dn-enhance.properties
+++ b/subdomains/excel/fixture/logging-dn-enhance.properties
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # LOG4J Configuration
 # ===================
 
diff --git a/subdomains/excel/fixture/pom.xml b/subdomains/excel/fixture/pom.xml
index a41d63b..9c9ed4b 100644
--- a/subdomains/excel/fixture/pom.xml
+++ b/subdomains/excel/fixture/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/subdomains/excel/fixture/src/main/java/META-INF/persistence.xml b/subdomains/excel/fixture/src/main/java/META-INF/persistence.xml
index 322833e..70456d3 100644
--- a/subdomains/excel/fixture/src/main/java/META-INF/persistence.xml
+++ b/subdomains/excel/fixture/src/main/java/META-INF/persistence.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml
index 3f0684f..774d607 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:cpt="http://isis.apache.org/applib/layout/component" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <bs3:row>
         <bs3:col span="12" unreferencedActions="true">
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml
index 6049fa0..c336b40 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateManagerForDemoToDoItem.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:cpt="http://isis.apache.org/applib/layout/component" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <bs3:row>
         <bs3:col span="12" unreferencedActions="true">
diff --git a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml
index ca5fa1f..3619994 100644
--- a/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml
+++ b/subdomains/excel/fixture/src/main/java/org/apache/isis/subdomains/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.layout.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:cpt="http://isis.apache.org/applib/layout/component" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <bs3:row>
         <bs3:col span="12" unreferencedActions="true">
diff --git a/subdomains/excel/integtests/log4j2-test.xml b/subdomains/excel/integtests/log4j2-test.xml
index 56e8ad6..0ed7986 100644
--- a/subdomains/excel/integtests/log4j2-test.xml
+++ b/subdomains/excel/integtests/log4j2-test.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <Configuration status="WARN">
 	<Properties>
 		<Property name="PID">????</Property>
diff --git a/subdomains/excel/integtests/pom.xml b/subdomains/excel/integtests/pom.xml
index 08a2461..e7dcced 100644
--- a/subdomains/excel/integtests/pom.xml
+++ b/subdomains/excel/integtests/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
diff --git a/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/BeanDescriptor.java b/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/BeanDescriptor.java
index f3ed3ef..3b6a93a 100644
--- a/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/BeanDescriptor.java
+++ b/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/BeanDescriptor.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.spring.applib.service;
 
 import java.util.Arrays;
diff --git a/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/ContextBeans.java b/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/ContextBeans.java
index cb810e2..c8c8a65 100644
--- a/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/ContextBeans.java
+++ b/subdomains/spring/applib/src/main/java/org/apache/isis/subdomains/spring/applib/service/ContextBeans.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.subdomains.spring.applib.service;
 
 import java.util.Arrays;
diff --git a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/template/project.fields.xml b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/template/project.fields.xml
index 004a3ac..bfa64f5 100644
--- a/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/template/project.fields.xml
+++ b/subdomains/xdocreport/applib/src/test/java/org/apache/isis/subdomains/xdocreport/applib/service/example/template/project.fields.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <fields templateEngineKind="Freemarker" >
 	<description><![CDATA[]]></description>
 	<field name="project.name" list="false" imageName="" syntaxKind="">
diff --git a/testing/adoc/modules/ROOT/partials/surefire-configuration-caution.adoc b/testing/adoc/modules/ROOT/partials/surefire-configuration-caution.adoc
index d677edf..2d19a8f 100644
--- a/testing/adoc/modules/ROOT/partials/surefire-configuration-caution.adoc
+++ b/testing/adoc/modules/ROOT/partials/surefire-configuration-caution.adoc
@@ -1,3 +1,5 @@
+: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 [...]
+
 
 [CAUTION]
 ====
diff --git a/testing/fakedata/applib/pom.xml b/testing/fakedata/applib/pom.xml
index fe6fecc..5004f3c 100644
--- a/testing/fakedata/applib/pom.xml
+++ b/testing/fakedata/applib/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/testing/fakedata/fixtures/logging-dn-enhance.properties b/testing/fakedata/fixtures/logging-dn-enhance.properties
index 44a7a24..0511a8f 100644
--- a/testing/fakedata/fixtures/logging-dn-enhance.properties
+++ b/testing/fakedata/fixtures/logging-dn-enhance.properties
@@ -1,3 +1,20 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
 # LOG4J Configuration
 # ===================
 
diff --git a/testing/fakedata/fixtures/pom.xml b/testing/fakedata/fixtures/pom.xml
index 708c4fa..dd85e2c 100644
--- a/testing/fakedata/fixtures/pom.xml
+++ b/testing/fakedata/fixtures/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/testing/fakedata/fixtures/src/main/java/META-INF/persistence.xml b/testing/fakedata/fixtures/src/main/java/META-INF/persistence.xml
index 59df79b..feb466f 100644
--- a/testing/fakedata/fixtures/src/main/java/META-INF/persistence.xml
+++ b/testing/fakedata/fixtures/src/main/java/META-INF/persistence.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/EnumOf3.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/EnumOf3.java
index 91d85bd..544ae1f 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/EnumOf3.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/EnumOf3.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.dom;
 
 public enum EnumOf3 {
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAll.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAll.java
index 5fdd714..7f5929b 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAll.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAll.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.dom;
 
 import java.math.BigDecimal;
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAllMenu.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAllMenu.java
index 8b875ac..f2409ce 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAllMenu.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/dom/FakeDataDemoObjectWithAllMenu.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.dom;
 
 import java.util.List;
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_create3.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_create3.java
index ddf0939..93fb5b5 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_create3.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_create3.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.fixturescripts;
 
 import java.util.List;
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_tearDown.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_tearDown.java
index 68c3e88..a6d7289 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_tearDown.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/FakeDataDemoObjectWithAll_tearDown.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.fixturescripts;
 
 import org.apache.isis.testing.fixtures.applib.teardown.TeardownFixtureAbstract;
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_create_withFakeData.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_create_withFakeData.java
index 71e837e..5c41b5e 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_create_withFakeData.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_create_withFakeData.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.fixturescripts.data;
 
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
index 41e47bf..71102fb 100644
--- a/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
+++ b/testing/fakedata/fixtures/src/main/java/org/apache/isis/testing/fakedata/fixtures/demoapp/demomodule/fixturescripts/data/FakeDataDemoObjectWithAll_update_withFakeData.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.fixtures.demoapp.demomodule.fixturescripts.data;
 
 import java.math.BigDecimal;
diff --git a/testing/fakedata/integtests/log4j2-test.xml b/testing/fakedata/integtests/log4j2-test.xml
index 56e8ad6..0ed7986 100644
--- a/testing/fakedata/integtests/log4j2-test.xml
+++ b/testing/fakedata/integtests/log4j2-test.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <Configuration status="WARN">
 	<Properties>
 		<Property name="PID">????</Property>
diff --git a/testing/fakedata/integtests/pom.xml b/testing/fakedata/integtests/pom.xml
index d32698b..973d5d7 100644
--- a/testing/fakedata/integtests/pom.xml
+++ b/testing/fakedata/integtests/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
diff --git a/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/FakeDataModuleIntegTestAbstract.java b/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/FakeDataModuleIntegTestAbstract.java
index 7fb794e..5282067 100644
--- a/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/FakeDataModuleIntegTestAbstract.java
+++ b/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/FakeDataModuleIntegTestAbstract.java
@@ -1,6 +1,23 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.integtests;
 
-
 import javax.transaction.Transactional;
 
 import org.springframework.boot.test.context.SpringBootTest;
diff --git a/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/tests/Smoke_IntegTest.java b/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/tests/Smoke_IntegTest.java
index 4b4648b..397416e 100644
--- a/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/tests/Smoke_IntegTest.java
+++ b/testing/fakedata/integtests/src/test/java/org/apache/isis/testing/fakedata/integtests/tests/Smoke_IntegTest.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fakedata.integtests.tests;
 
 import java.math.BigDecimal;
diff --git a/testing/fakedata/pom.xml b/testing/fakedata/pom.xml
index c7e7275..3f7cef4 100644
--- a/testing/fakedata/pom.xml
+++ b/testing/fakedata/pom.xml
@@ -1,4 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/modules/ModuleWithFixtures.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/modules/ModuleWithFixtures.java
index 805685f..fbd68ff 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/modules/ModuleWithFixtures.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/modules/ModuleWithFixtures.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.fixtures.applib.modules;
 
 import org.springframework.context.annotation.Configuration;
diff --git a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java
index 64fa706..bdaed8f 100644
--- a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java
+++ b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/IsisSessionScoped.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.integtestsupport.applib;
 
 import java.util.Optional;
diff --git a/testing/unittestsupport/applib/src/test/java/org/apache/isis/testing/unittestsupport/applib/bean/PojoTesterTest_interference.java b/testing/unittestsupport/applib/src/test/java/org/apache/isis/testing/unittestsupport/applib/bean/PojoTesterTest_interference.java
index 1e12fd2..3d92f26 100644
--- a/testing/unittestsupport/applib/src/test/java/org/apache/isis/testing/unittestsupport/applib/bean/PojoTesterTest_interference.java
+++ b/testing/unittestsupport/applib/src/test/java/org/apache/isis/testing/unittestsupport/applib/bean/PojoTesterTest_interference.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.testing.unittestsupport.applib.bean;
 
 import org.junit.Rule;
diff --git a/valuetypes/sse/applib/src/main/java/org/apache/isis/valuetypes/sse/applib/value/ListeningMarkup.java b/valuetypes/sse/applib/src/main/java/org/apache/isis/valuetypes/sse/applib/value/ListeningMarkup.java
index b9910ed..b24be24 100644
--- a/valuetypes/sse/applib/src/main/java/org/apache/isis/valuetypes/sse/applib/value/ListeningMarkup.java
+++ b/valuetypes/sse/applib/src/main/java/org/apache/isis/valuetypes/sse/applib/value/ListeningMarkup.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.valuetypes.sse.applib.value;
 
 import org.apache.isis.applib.annotation.Value;
diff --git a/valuetypes/sse/ui/src/main/java/org/apache/isis/valuetypes/sse/ui/markup/js/ObservingComponent.js b/valuetypes/sse/ui/src/main/java/org/apache/isis/valuetypes/sse/ui/markup/js/ObservingComponent.js
index 6fbedfa..d1ac315 100644
--- a/valuetypes/sse/ui/src/main/java/org/apache/isis/valuetypes/sse/ui/markup/js/ObservingComponent.js
+++ b/valuetypes/sse/ui/src/main/java/org/apache/isis/valuetypes/sse/ui/markup/js/ObservingComponent.js
@@ -1,3 +1,22 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
 window.addEventListener('DOMContentLoaded', function() {
         (function($) {
             
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ClassExcluder.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ClassExcluder.java
index 9028845..3fbcd0d 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ClassExcluder.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/swagger/internal/ClassExcluder.java
@@ -1,3 +1,21 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
 package org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal;
 
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout-show-facets.css b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout-show-facets.css
index c6b6334..06708d0 100644
--- a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout-show-facets.css
+++ b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout-show-facets.css
@@ -1,3 +1,22 @@
-ul.isis-facets {
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+ul.isis-facets {
     display: initial;
 }
diff --git a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout.css b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout.css
index acd445d..91f85ae 100644
--- a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout.css
+++ b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/isis-layout.css
@@ -1,4 +1,23 @@
-.primary-1 {
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+.primary-1 {
     background-color: #669900;
 }
 
diff --git a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-0-8-0.html b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-0-8-0.html
index 4d77ad0..0a5acdf 100644
--- a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-0-8-0.html
+++ b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-0-8-0.html
@@ -1,4 +1,22 @@
 <!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <html lang="en">
 <head>
     <meta charset="utf-8">
diff --git a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-4-4-12.html b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-4-4-12.html
index d95a916..9275b82 100644
--- a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-4-4-12.html
+++ b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-4-4-4-12.html
@@ -1,4 +1,22 @@
 <!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <html lang="en">
 <head>
     <meta charset="utf-8">
diff --git a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-6-6-0-12.html b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-6-6-0-12.html
index c6c4482..7fcf785 100644
--- a/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-6-6-0-12.html
+++ b/viewers/wicket/adoc/modules/ROOT/images/reference-layout/layout-6-6-0-12.html
@@ -1,4 +1,22 @@
 <!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
 <html lang="en">
 <head>
     <meta charset="utf-8">


[isis] 31/41: ISIS-2278: adds some more AsyncControl flesh

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

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

commit 98444f07b0f8bc073d5e05c023416c24e9c9275d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 15 17:26:11 2020 +0000

    ISIS-2278: adds some more AsyncControl flesh
---
 .../applib/services/wrapper/WrapperFactory.java    | 145 ++++++----------
 .../applib/services/wrapper/WrappingObject.java    |   8 +-
 .../services/wrapper/control/AsyncControl.java     | 105 +++++++-----
 .../wrapper/control/AsyncControlService.java       |   7 +-
 .../services/wrapper/control/ControlAbstract.java  | 102 +++++++++++
 .../services/wrapper/control/ExecutionMode.java    |  15 +-
 .../services/wrapper/control/ExecutionModes.java   |  53 ------
 .../wrapper/control/RuleCheckingPolicy.java        |   8 -
 .../{AsyncControlService.java => SyncControl.java} |  29 ++--
 .../command/CommandExecutorServiceDefault.java     |   3 +
 .../wrapper/WrapperFactoryDefault.java             | 187 +++++++++------------
 .../AbstractCollectionInvocationHandler.java       |   2 +-
 .../DelegatingInvocationHandlerDefault.java        |   9 +-
 .../handlers/DomainObjectInvocationHandler.java    |  90 ++++------
 .../wrapper/handlers/ProxyContextHandler.java      |   7 +-
 .../wrapper/WrapperFactoryDefaultTest.java         |  30 ++--
 .../testdomain/auditing/AuditerServiceTest.java    |   1 -
 .../commandexecution/WrapperAsyncTest.java         |   6 +-
 .../publishing/PublisherServiceTest.java           |   1 -
 .../applib/fixturescripts/FixtureScript.java       |   7 +-
 20 files changed, 387 insertions(+), 428 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 15a1179..db42c48 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -20,14 +20,10 @@
 package org.apache.isis.applib.services.wrapper;
 
 import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ForkJoinPool;
 
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
-import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
-import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
-import org.apache.isis.applib.services.wrapper.control.RuleCheckingPolicy;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
@@ -35,7 +31,14 @@ import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 /**
  * Provides the ability to &quot;wrap&quot; of a domain object such that it can
  * be interacted with while enforcing the hide/disable/validate rules implied by
- * the Isis programming model.
+ * the Apache Isis programming model.
+ *
+ * <p>
+ *     The wrapper can alternatively also be used to execute the action
+ *     asynchronously, through an {@link java.util.concurrent.ExecutorService}.
+ *     Any business rules will be invoked synchronously beforehand, however.
+ *     hand
+ * </p>
  *
  * <p>
  * The 'wrap' is a runtime-code-generated proxy that wraps the underlying domain
@@ -43,14 +46,13 @@ import org.apache.isis.core.commons.collections.ImmutableEnumSet;
  * <ul>
  * <li>a <tt>get</tt> method for properties or collections</li>
  * <li>a <tt>set</tt> method for properties</li>
- * <li>an <tt>addTo</tt> or <tt>removeFrom</tt> method for collections</li>
  * <li>any action</li>
  * </ul>
  *
  * <p>
  * Calling any of the above methods may result in a (subclass of)
  * {@link InteractionException} if the object disallows it. For example, if a
- * property is annotated with {@link Hidden} then a {@link HiddenException} will
+ * property is annotated as hidden then a {@link HiddenException} will
  * be thrown. Similarly if an action has a <tt>validate</tt> method and the
  * supplied arguments are invalid then a {@link InvalidException} will be
  * thrown.
@@ -63,12 +65,8 @@ import org.apache.isis.core.commons.collections.ImmutableEnumSet;
  * </ul>
  *
  * <p>
- * An exception will be thrown if any other methods are thrown.
- *
- * <p>
- * An implementation of this service (<tt>WrapperFactoryDefault</tt>) can be registered by including
- * <tt>o.a.i.core:isis-core-wrapper</tt> on the classpath; no further configuration is required.
- * </p>
+ * If the object has (see {@link #isWrapper(Object)} already been wrapped),
+ * then should just return the object back unchanged.
  */
 // tag::refguide[]
 // tag::refguide-async[]
@@ -80,8 +78,20 @@ public interface WrapperFactory {
     // end::refguide[]
 
     /**
-     * Same as {@link #wrap(Object)}, except the actual execution occurs only if
-     * the <tt>execute</tt> parameter indicates.
+     * Provides the &quot;wrapper&quot; of a domain object against which to invoke the action.
+     *
+     * <p>
+     *     The provided {@link SyncControl} determines whether business rules are checked first, and conversely
+     *     whether the action is executed.  There are therefore three typical cases:
+     *     <ul>
+     *         <li>check rules, execute action</li>
+     *         <li>skip rules, execute action</li>
+     *         <li>check rules, skip action</li>
+     *     </ul>
+     *     <p>
+     *         The last logical option (skip rules, skip action) is valid but doesn't make sense, as it's basically a no-op.
+     *     </p>
+     * </p>
      *
      * <p>
      * Otherwise, will do all the validations (raise exceptions as required
@@ -89,46 +99,35 @@ public interface WrapperFactory {
      */
     // tag::refguide[]
     <T> T wrap(T domainObject,                                      // <.>
-               ImmutableEnumSet<ExecutionMode> modes);
+               SyncControl syncControl);
 
     // end::refguide[]
     /**
-     * Provides the &quot;wrapper&quot; of the underlying domain object.
-     *
-     * <p>
-     * If the object has (see {@link #isWrapper(Object)} already been wrapped),
-     * then should just return the object back unchanged.
+     * A convenience overload for {@link #wrap(Object, SyncControl)},
+     * returning a wrapper to invoke the action synchronously, enforcing business rules.
+     * Any exceptions will be propagated, not swallowed.
      */
     // tag::refguide[]
     <T> T wrap(T domainObject);                                     // <.>
 
     // end::refguide[]
     /**
-     * Convenience method for {@link #wrap(Object, ImmutableEnumSet)} with {@link ExecutionModes#TRY},
-     * to make this feature more discoverable.
-     */
-    // tag::refguide[]
-    <T> T wrapTry(T domainObject);                                  // <.>
-
-    // end::refguide[]
-    /**
-     * Convenience method for {@link #wrap(Object, ImmutableEnumSet)} with {@link ExecutionModes#NO_EXECUTE},
-     * to make this feature more discoverable.
-     */
-    // tag::refguide[]
-    <T> T wrapNoExecute(T domainObject);                            // <.>
-
-    // end::refguide[]
-    /**
-     * Convenience method for {@link #wrap(Object, ImmutableEnumSet)} with {@link ExecutionModes#SKIP_RULES},
-     * to make this feature more discoverable.
+     * Provides the wrapper for a {@link FactoryService#mixin(Class, Object) mixin}, against which to invoke the action.
+     *
+     * <p>
+     *     The provided {@link SyncControl} determines whether business rules are checked first, and conversely
+     *     whether the action is executed.  See {@link #wrap(Object, SyncControl)} for more details on this.
+     * </p>
      */
     // tag::refguide[]
-    <T> T wrapSkipRules(T domainObject);                            // <.>
+    <T> T wrapMixin(Class<T> mixinClass, Object mixedIn,           // <.>
+                    SyncControl syncControl);
 
     // end::refguide[]
     /**
-     * {@link #wrap(Object) wraps} a {@link FactoryService#mixin(Class, Object) mixin}.
+     * A convenience overload for {@link #wrapMixin(Class, Object, SyncControl)},
+     * returning a wrapper to invoke the action synchronously, enforcing business rules.
+     * Any exceptions will be propagated, not swallowed.
      */
     // tag::refguide[]
     <T> T wrapMixin(Class<T> mixinClass, Object mixedIn);           // <.>
@@ -168,11 +167,11 @@ public interface WrapperFactory {
      * Returns a proxy object for the provided {@code domainObject},
      * through which can execute the action asynchronously.
      *
-     * @param <T>
+     * @param <T> - the type of the domain object
+     * @param <R> - the type of the return of the action
      * @param domainObject
-     * @param mode
+     * @param asyncControl
      *
-     * @param executorService
      * @since 2.0
      */
     // tag::refguide-async[]
@@ -187,63 +186,15 @@ public interface WrapperFactory {
      * @param <T>
      * @param mixinClass
      * @param mixedIn
-     * @param modes
+     * @param asyncControl
      *
      * @since 2.0
      */
     // tag::refguide-async[]
-    <T> T asyncMixin(                                    // <.>
-                Class<T> mixinClass, Object mixedIn,
-                ImmutableEnumSet<ExecutionMode> modes,
-                RuleCheckingPolicy ruleCheckingPolicy,
-                ExecutorService executorService);
-
-    // end::refguide-async[]
-    /**
-     * Returns a {@link AsyncControl} bound to the provided {@code mixinClass},
-     * to prepare for type-safe asynchronous action execution.
-     *
-     * @param <T>
-     * @param mixinClass
-     * @param mixedIn
-     * @param modes
-     *
-     * @since 2.0
-     */
-    // tag::refguide-async[]
-    default <T> T asyncMixin(                                    // <.>
-                Class<T> mixinClass, Object mixedIn,
-                ImmutableEnumSet<ExecutionMode> modes) {
-        // end::refguide-async[]
-
-        return asyncMixin(
-                mixinClass, mixedIn, modes,
-                RuleCheckingPolicy.ASYNC, ForkJoinPool.commonPool());
-
-        // tag::refguide-async[]
-        // ...
-    }
-
-    // end::refguide-async[]
-    /**
-     * Shortcut for {@link #asyncMixin(Class, Object, ImmutableEnumSet)} using execution mode
-     * {@link ExecutionModes#EXECUTE}.
-     * @param <T>
-     * @param mixinClass
-     * @param mixedIn
-     *
-     * @since 2.0
-     */
-    // tag::refguide-async[]
-    default <T> T asyncMixin(                            // <.>
-                        Class<T> mixinClass, Object mixedIn) {
-        // end::refguide-async[]
-
-        return asyncMixin(mixinClass, mixedIn, ExecutionModes.EXECUTE);
+    <T,R> T asyncMixin(                                    // <.>
+             Class<T> mixinClass, Object mixedIn,
+             AsyncControl<R> asyncControl);
 
-        // tag::refguide-async[]
-        // ...
-    }
     // end::refguide-async[]
 
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
index efcec9b..62369ab 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrappingObject.java
@@ -66,9 +66,9 @@ public interface WrappingObject {
 
     // end::refguide[]
     /**
-     * The {@link EnumSet< ExecutionMode > execution mode}
-     * with which this wrapper was
-     * {@link WrapperFactory#wrap(Object, ImmutableEnumSet) created}.
+     * The {@link EnumSet<ExecutionMode > execution modes} inferred from the
+     * {@link org.apache.isis.applib.services.wrapper.control.SyncControl} with which this wrapper was
+     * {@link WrapperFactory#wrap(Object, org.apache.isis.applib.services.wrapper.control.SyncControl) created}.
      *
      * <p>
      * NOTE: domain classes may not have a method with this name.  The <tt>__isis_</tt> prefix is
@@ -76,7 +76,7 @@ public interface WrappingObject {
      * </p>
      */
     // tag::refguide[]
-    ImmutableEnumSet<ExecutionMode> __isis_executionMode();
+    ImmutableEnumSet<ExecutionMode> __isis_executionModes();
 
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
index 4f5d893..8059930 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControl.java
@@ -19,11 +19,21 @@
 package org.apache.isis.applib.services.wrapper.control;
 
 import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.Future;
 import java.util.function.Consumer;
 
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.user.RoleMemento;
+import org.apache.isis.applib.services.user.UserMemento;
+import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.schema.common.v2.OidDto;
 
@@ -38,43 +48,44 @@ import lombok.extern.log4j.Log4j2;
  * @param <R> - return value.
  */
 @Log4j2
-public class AsyncControl<R> {
-
-    public static <X> AsyncControl<X> toReturn(final Class<X> clazz) {
-        return new AsyncControl<>();
-    }
+public class AsyncControl<R> extends ControlAbstract<AsyncControl<R>> {
 
-    public static AsyncControl<Void> ignoreReturn() {
+    public static AsyncControl<Void> create() {
         return new AsyncControl<>();
     }
 
-    public static AsyncControl<Void> voidReturn() {
+    public static <X> AsyncControl<X> create(final Class<X> clazz) {
         return new AsyncControl<>();
     }
 
-    private AsyncControl() {
+    /**
+     * Alias for {@link #create(Class)}
+     */
+    public static <X> AsyncControl<X> toReturn(final Class<X> clazz) {
+        return create(clazz);
     }
 
     /**
-     * Set by framework.
+     * Alias for {@link #create()}
      */
-    @Setter(AccessLevel.PACKAGE)
-    private Method method;
+    public static AsyncControl<Void> ignoreReturn() {
+        return create();
+    }
 
     /**
-     * Set by framework.
+     * Alias for {@link #create()}
      */
-    @Setter(AccessLevel.PACKAGE)
-    private OidDto oidDto;
-
+    public static AsyncControl<Void> voidReturn() {
+        return create();
+    }
 
-    @Getter @NonNull
-    private ImmutableEnumSet<ExecutionMode> executionModes = ExecutionModes.EXECUTE;
-    public AsyncControl<R> with(ImmutableEnumSet<ExecutionMode> executionModes) {
-        this.executionModes = executionModes;
-        return this;
+    private AsyncControl() {
+        with((exception) -> {
+            log.error(logMessage(), exception);
+        });
     }
 
+
     @Getter @NonNull
     private ExecutorService executorService = ForkJoinPool.commonPool();
     public AsyncControl<R> with(ExecutorService executorService) {
@@ -82,41 +93,49 @@ public class AsyncControl<R> {
         return this;
     }
 
-    @Getter @NonNull
-    private RuleCheckingPolicy ruleCheckingPolicy = RuleCheckingPolicy.ASYNC;
-    public AsyncControl<R> with(RuleCheckingPolicy ruleCheckingPolicy) {
-        this.ruleCheckingPolicy = ruleCheckingPolicy;
+
+    /**
+     * Defaults to user initiating the action, if not overridden
+     */
+    @Getter
+    private String user;
+    public AsyncControl<R> withUser(final String user) {
+        this.user = user;
         return this;
     }
 
-    @Getter @NonNull
-    private Consumer<Exception> exceptionHandler = (exception) -> {
-        log.error(logMessage(), exception);
-    };
-    public AsyncControl<R> with(Consumer<Exception> exceptionHandler) {
-        this.exceptionHandler = exceptionHandler;
+    /**
+     * Defaults to roles of user initiating the action, if not overridden
+     */
+    @Getter
+    private List<String> roles;
+    public AsyncControl<R> withRoles(final List<String> roles) {
+        this.roles = Collections.unmodifiableList(roles);
         return this;
     }
+    public AsyncControl<R> withRoles(String... roles) {
+        return withRoles(Arrays.asList(roles));
+    }
+
+    /**
+     * Set by framework
+     */
+    @Getter @Setter(AccessLevel.PACKAGE)
+    private Future<R> future;
 
     private String logMessage() {
         StringBuilder buf = new StringBuilder("Failed to execute ");
-        if(method != null) {
-            buf.append(" ").append(method.getName()).append(" ");
-            if(oidDto != null) {
+        if(getMethod() != null) {
+            buf.append(" ").append(getMethod().getName()).append(" ");
+            if(getBookmark() != null) {
                 buf.append(" on '")
-                    .append(oidDto.getType())
-                    .append(":")
-                    .append(oidDto.getId())
-                    .append("'");
+                        .append(getBookmark().getObjectType())
+                        .append(":")
+                        .append(getBookmark().getIdentifier())
+                        .append("'");
             }
         }
         return buf.toString();
     }
 
-    /**
-     * Set by framework
-     */
-    @Getter @Setter(AccessLevel.PACKAGE)
-    private Future<R> future;
-
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
index 44621c5..853c94c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
@@ -26,6 +26,7 @@ import java.util.function.Consumer;
 
 import org.springframework.stereotype.Component;
 
+import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.schema.common.v2.OidDto;
 
@@ -39,11 +40,11 @@ import lombok.extern.log4j.Log4j2;
  * For framework internal use.
  */
 @Component
-public class AsyncControlService<R> {
+public class AsyncControlService {
 
-    public <R> AsyncControl<R> init(AsyncControl<R> asyncControl, Method method, OidDto oidDto) {
+    public <R> AsyncControl<R> init(AsyncControl<R> asyncControl, Method method, Bookmark bookmark) {
         asyncControl.setMethod(method);
-        asyncControl.setOidDto(oidDto);
+        asyncControl.setBookmark(bookmark);
         return asyncControl;
     }
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
new file mode 100644
index 0000000..0ed6a1e
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ControlAbstract.java
@@ -0,0 +1,102 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib.services.wrapper.control;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.services.iactn.Interaction;
+import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+
+@Log4j2
+public class ControlAbstract<T extends ControlAbstract<T>> {
+
+    protected ControlAbstract() {
+    }
+
+    /**
+     * Set by framework.
+     */
+    @Getter(AccessLevel.PACKAGE)
+    @Setter(AccessLevel.PACKAGE)
+    private Method method;
+
+    /**
+     * Set by framework.
+     */
+    @Getter(AccessLevel.PACKAGE)
+    @Setter(AccessLevel.PACKAGE)
+    private Bookmark bookmark;
+
+    private boolean checkRules = true;
+    public T withCheckRules() {
+        checkRules = true;
+        return (T)this;
+    }
+    public T withSkipRules() {
+        checkRules = false;
+        return (T)this;
+    }
+
+    private boolean execute = true;
+    public T withExecute() {
+        execute = true;
+        return (T)this;
+    }
+    public T withNoExecute() {
+        execute = false;
+        return (T)this;
+    }
+
+    public ImmutableEnumSet<ExecutionMode> getExecutionModes() {
+        EnumSet<ExecutionMode> modes = EnumSet.noneOf(ExecutionMode.class);
+        if(!checkRules) {
+            modes.add(ExecutionMode.SKIP_RULE_VALIDATION);
+        }
+        if(!execute) {
+            modes.add(ExecutionMode.SKIP_EXECUTION);
+        }
+        return ImmutableEnumSet.from(modes);
+    }
+
+    /**
+     * Initialized in constructor.
+     */
+    @Getter @NonNull
+    private Consumer<Exception> exceptionHandler;
+    public T with(Consumer<Exception> exceptionHandler) {
+        this.exceptionHandler = exceptionHandler;
+        return (T)this;
+    }
+
+
+
+}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java
index 3226e41..694a1c3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionMode.java
@@ -1,6 +1,9 @@
 package org.apache.isis.applib.services.wrapper.control;
 
+import java.util.function.Consumer;
+
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.AsyncControl;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 
 import lombok.AccessLevel;
@@ -10,7 +13,7 @@ import lombok.RequiredArgsConstructor;
  * Whether interactions with the wrapper are actually passed onto the
  * underlying domain object.
  *
- * @see WrapperFactory#wrap(Object, ImmutableEnumSet)
+ * @see WrapperFactory#wrap(Object, org.apache.isis.applib.services.wrapper.control.SyncControl)
  */
 @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
 // tag::refguide[]
@@ -23,15 +26,13 @@ public enum ExecutionMode {
     SKIP_RULE_VALIDATION,
     // end::refguide[]
     /**
-     * Skip execution.
+     * Skip actual execution.
+     *
+     * <p>
+     * This is not supported for {@link WrapperFactory#async(Object, AsyncControl)}; instead just invoke {@link WrapperFactory#wrap(Object, ImmutableEnumSet)}.
      */
     // tag::refguide[]
     SKIP_EXECUTION,
     // end::refguide[]
-    /**
-     * Don't fail fast, swallow any exception during validation or execution.
-     */
-    // tag::refguide[]
-    SWALLOW_EXCEPTIONS,
 }
 // end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionModes.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionModes.java
deleted file mode 100644
index d910eed..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/ExecutionModes.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.apache.isis.applib.services.wrapper.control;
-
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
-
-import static org.apache.isis.core.commons.collections.ImmutableEnumSet.noneOf;
-import static org.apache.isis.core.commons.collections.ImmutableEnumSet.of;
-
-import lombok.experimental.UtilityClass;
-
-// tag::refguide[]
-@UtilityClass
-public class ExecutionModes {
-    // end::refguide[]
-    /**
-     * Validate all business rules and then execute. May throw exceptions in order to fail fast.
-     */
-    // tag::refguide[]
-    public static final ImmutableEnumSet<ExecutionMode> EXECUTE =
-                            noneOf(ExecutionMode.class);
-    // end::refguide[]
-    /**
-     * Skip all business rules and then execute, does throw an exception if execution fails.
-     */
-    // tag::refguide[]
-    public static final ImmutableEnumSet<ExecutionMode> SKIP_RULES =
-                            of(ExecutionMode.SKIP_RULE_VALIDATION);
-    // end::refguide[]
-    /**
-     * Validate all business rules but do not execute, throw an exception if validation
-     * fails.
-     */
-    // tag::refguide[]
-    public static final ImmutableEnumSet<ExecutionMode> NO_EXECUTE =
-                            of(ExecutionMode.SKIP_EXECUTION);
-    // end::refguide[]
-    /**
-     * Validate all business rules and then execute, but don't throw an exception if validation
-     * or execution fails.
-     */
-    // tag::refguide[]
-    public static final ImmutableEnumSet<ExecutionMode> TRY =
-                            of(ExecutionMode.SWALLOW_EXCEPTIONS);
-    // end::refguide[]
-    /**
-     * Skips all steps.
-     * @since 2.0
-     */
-    // tag::refguide[]
-    public static final ImmutableEnumSet<ExecutionMode> NOOP =
-                            of(ExecutionMode.SKIP_RULE_VALIDATION,
-                               ExecutionMode.SKIP_EXECUTION);
-}
-// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/RuleCheckingPolicy.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/RuleCheckingPolicy.java
deleted file mode 100644
index bc3dc06..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/RuleCheckingPolicy.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.apache.isis.applib.services.wrapper.control;
-
-// tag::refguide[]
-public enum RuleCheckingPolicy {
-    IMMEDIATE,   // <.>
-    ASYNC   // <.>
-}
-// end::refguide[]
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
similarity index 73%
copy from api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
copy to api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
index 44621c5..3bc403b 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/AsyncControlService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/control/SyncControl.java
@@ -19,13 +19,14 @@
 package org.apache.isis.applib.services.wrapper.control;
 
 import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.Future;
 import java.util.function.Consumer;
 
-import org.springframework.stereotype.Component;
-
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.schema.common.v2.OidDto;
 
@@ -33,23 +34,27 @@ import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.Setter;
+import lombok.SneakyThrows;
 import lombok.extern.log4j.Log4j2;
 
 /**
- * For framework internal use.
  */
-@Component
-public class AsyncControlService<R> {
+@Log4j2
+public class SyncControl extends ControlAbstract<SyncControl> {
 
-    public <R> AsyncControl<R> init(AsyncControl<R> asyncControl, Method method, OidDto oidDto) {
-        asyncControl.setMethod(method);
-        asyncControl.setOidDto(oidDto);
-        return asyncControl;
+    public static SyncControl create() {
+        return new SyncControl();
     }
 
-    public <R> AsyncControl<R> update(AsyncControl<R> asyncControl, Future<R> future) {
-        asyncControl.setFuture(future);
-        return asyncControl;
+    private SyncControl() {
+
+        with(new Consumer<Exception>() {
+            @SneakyThrows
+            @Override
+            public void accept(Exception e) {
+                throw e;
+            }
+        });
     }
 
 }
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index d729583..7103ccb 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -53,6 +53,8 @@ import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
@@ -175,6 +177,7 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
                 // we pass 'null' for the mixedInAdapter; if this action _is_ a mixin then
                 // it will switch the targetAdapter to be the mixedInAdapter transparently
                 val argAdapters = argAdaptersFor(actionDto);
+
                 val resultAdapter = objectAction.execute(
                         targetAdapter, null, argAdapters, InteractionInitiatedBy.FRAMEWORK);
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 074686e..1d45c36 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.core.runtimeservices.wrapper;
 
+import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -40,18 +41,17 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
 import org.apache.isis.applib.services.wrapper.control.AsyncControlService;
-import org.apache.isis.applib.services.wrapper.control.RuleCheckingPolicy;
 import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
-import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.applib.services.wrapper.events.ActionArgumentEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionInvocationEvent;
 import org.apache.isis.applib.services.wrapper.events.ActionUsabilityEvent;
@@ -92,6 +92,7 @@ import org.apache.isis.core.runtimeservices.wrapper.dispatchers.InteractionEvent
 import org.apache.isis.core.runtimeservices.wrapper.handlers.ProxyContextHandler;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
 import org.apache.isis.schema.cmd.v2.CommandDto;
+import org.apache.isis.schema.common.v2.OidDto;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -154,48 +155,40 @@ public class WrapperFactoryDefault implements WrapperFactory {
     // -- WRAPPING
     
     @Override
-    public <T> T wrapMixin(Class<T> mixinClass, Object mixedIn) {
-        return wrap(factoryService.mixin(mixinClass, mixedIn));
-    }
-
-    @Override
     public <T> T wrap(T domainObject) {
-        return wrap(domainObject, ExecutionModes.EXECUTE);
-    }
-
-    @Override
-    public <T> T wrapTry(T domainObject) {
-        return wrap(domainObject, ExecutionModes.TRY);
-    }
-
-    @Override
-    public <T> T wrapNoExecute(T domainObject) {
-        return wrap(domainObject, ExecutionModes.NO_EXECUTE);
-    }
-
-    @Override
-    public <T> T wrapSkipRules(T domainObject) {
-        return wrap(domainObject, ExecutionModes.SKIP_RULES);
+        return wrap(domainObject, SyncControl.create());
     }
 
     @Override
     public <T> T wrap(
             final T domainObject,
-            final ImmutableEnumSet<ExecutionMode> modes) {
+            final SyncControl syncControl) {
+        final ImmutableEnumSet<ExecutionMode> modes = syncControl.getExecutionModes();
         if (domainObject instanceof WrappingObject) {
             val wrapperObject = (WrappingObject) domainObject;
-            val executionMode = wrapperObject.__isis_executionMode();
+            val executionMode = wrapperObject.__isis_executionModes();
             if(executionMode != modes) {
                 val underlyingDomainObject = wrapperObject.__isis_wrapped();
-                return _Casts.uncheckedCast(createProxy(underlyingDomainObject, modes));
+                return _Casts.uncheckedCast(createProxy(underlyingDomainObject, syncControl));
             }
             return domainObject;
         }
-        return createProxy(domainObject, modes);
+        return createProxy(domainObject, syncControl);
     }
 
-    protected <T> T createProxy(T domainObject, ImmutableEnumSet<ExecutionMode> modes) {
-        return proxyContextHandler.proxy(metaModelContext, domainObject, modes);
+    @Override
+    public <T> T wrapMixin(Class<T> mixinClass, Object mixedIn) {
+        return wrapMixin(mixinClass, mixedIn, SyncControl.create());
+    }
+
+    @Override
+    public <T> T wrapMixin(Class<T> mixinClass, Object mixedIn, SyncControl syncControl) {
+        T mixin = factoryService.mixin(mixinClass, mixedIn);
+        return wrap(mixin, syncControl);
+    }
+
+    protected <T> T createProxy(T domainObject, SyncControl syncControl) {
+        return proxyContextHandler.proxy(metaModelContext, domainObject, syncControl);
     }
 
     @Override
@@ -216,7 +209,7 @@ public class WrapperFactoryDefault implements WrapperFactory {
     // -- ASYNC WRAPPING
 
     @Inject
-    AsyncControlService asyncControlService;
+    private AsyncControlService asyncControlService;
 
     @Override
     public <T,R> T async(
@@ -224,92 +217,82 @@ public class WrapperFactoryDefault implements WrapperFactory {
             final AsyncControl<R> asyncControl) {
 
         final ImmutableEnumSet<ExecutionMode> executionModes = asyncControl.getExecutionModes();
-        final RuleCheckingPolicy ruleCheckingPolicy = asyncControl.getRuleCheckingPolicy();
         final ExecutorService executorService = asyncControl.getExecutorService();
 
         Class<T> domainClass = (Class<T>) domainObject.getClass();
         ProxyFactory<T> factory = proxyFactoryService.factory(domainClass, WrappingObject.class);
 
-        return factory.createInstance((Object proxy, Method method, Object[] args) -> {
-
-            val executionModesAsync = determineExecutionModesAsync(executionModes, ruleCheckingPolicy);
-            if (!shouldValidateAsync(executionModesAsync) && !shouldExecuteAsync(executionModesAsync)) {
-                // nothing to be done.
-                return null;
-            }
+        return factory.createInstance(new InvocationHandler() {
+            @Override
+            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+
+                //
+                // executed in the same thread as caller..
+                //
+                final boolean inheritedFromObject = method.getDeclaringClass().equals(Object.class);
+                if (inheritedFromObject) {
+                    return method.invoke(domainObject, args);
+                }
 
-            //
-            // executed in the same thread as caller..
-            //
-            final boolean inheritedFromObject = method.getDeclaringClass().equals(Object.class);
-            if(inheritedFromObject) {
-                return method.invoke(domainObject, args);
-            }
+                val skipRules = executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION);
+                if(!skipRules) {
+                    // normal wrapped object...
+                    SyncControl syncControl = SyncControl.create().withNoExecute();
+                    T syncProxy = WrapperFactoryDefault.this.createProxy(domainObject, syncControl);
+                    method.invoke(syncProxy, args);
+                }
 
-            val executionModesSync = determineExecutionModesSync(executionModes, ruleCheckingPolicy);
-            if(shouldValidateSync(executionModesSync)) {
-                // normal wrapped object...
-                T syncProxy = createProxy(domainObject, executionModesSync);
-                method.invoke(syncProxy, args);
-            }
 
-            //
-            // submit async stuff
-            //
-            final ObjectSpecificationDefault targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
-            final ObjectMember member = targetObjSpec.getMember(method);
+                //
+                // submit async stuff
+                //
+                final ObjectSpecificationDefault targetObjSpec = (ObjectSpecificationDefault) specificationLoader.loadSpecification(method.getDeclaringClass());
+                final ObjectMember member = targetObjSpec.getMember(method);
 
-            if(member == null) {
-                return method.invoke(domainObject, args);
-            }
+                if (member == null) {
+                    return method.invoke(domainObject, args);
+                }
 
-            if(!(member instanceof ObjectAction)) {
-                throw new UnsupportedOperationException(
-                        "Only actions can be executed in the background "
-                                + "(method " + method.getName() + " represents a " + member.getFeatureType().name() + "')");
-            }
+                if (!(member instanceof ObjectAction)) {
+                    throw new UnsupportedOperationException(
+                            "Only actions can be executed in the background "
+                                    + "(method " + method.getName() + " represents a " + member.getFeatureType().name() + "')");
+                }
 
-            ObjectAction action = (ObjectAction) member;
+                ObjectAction action = (ObjectAction) member;
 
-            val isisSession = isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
-            val authSession = isisSession.getAuthenticationSession();
+                val isisSession = isisSessionTracker.currentSession().orElseThrow(() -> new RuntimeException("No IsisSession is open"));
+                val authSession = isisSession.getAuthenticationSession();
 
-            final ManagedObject domainObjectAdapter = isisSession.getObjectManager().adapt(domainObject);
-            final List<ManagedObject> argAdapters = Arrays.asList(adaptersFor(args));
+                final ManagedObject domainObjectAdapter = isisSession.getObjectManager().adapt(domainObject);
+                final List<ManagedObject> argAdapters = Arrays.asList(WrapperFactoryDefault.this.adaptersFor(args));
 
-            final List<ManagedObject> targetList = Collections.singletonList(domainObjectAdapter);
-            final CommandDto dto =
-                    commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
-            asyncControlService.init(asyncControl, method, dto.getTargets().getOid().get(0));
+                final List<ManagedObject> targetList = Collections.singletonList(domainObjectAdapter);
+                final CommandDto dto =
+                        commandDtoServiceInternal.asCommandDto(targetList, action, argAdapters);
+                final OidDto oidDto = dto.getTargets().getOid().get(0);
 
-            Future<?> submit = executorService.submit(() -> {
+                asyncControlService.init(asyncControl, method, Bookmark.from(oidDto));
 
-                isisSessionFactory.runAuthenticated(authSession, () -> {
+                Future future = executorService.submit(new Runnable() {
+                    @Override
+                    public void run() {
 
-                    if (shouldValidateAsync(executionModesAsync)) {
-                        // TODO...
-                    }
-                    if (shouldExecuteAsync(executionModesAsync)) {
-                        commandExecutorService.executeCommand(dto);
+                        isisSessionFactory.runAuthenticated(authSession, () -> {
+                            commandExecutorService.executeCommand(dto);
+                        });
                     }
-
                 });
-            });
-            asyncControlService.update(asyncControl, submit);
-            return null;
-
+                asyncControlService.update(asyncControl, future);
+                return null;
 
+            }
         }, false);
     }
 
     @Override
-    public <T> T asyncMixin(
-            Class<T> mixinClass, Object mixedIn,
-            ImmutableEnumSet<ExecutionMode> modes,
-            RuleCheckingPolicy ruleCheckingPolicy,
-            ExecutorService executorService) {
-
-        throw new RuntimeException("TODO");
+    public <T, R> T asyncMixin(Class<T> mixinClass, Object mixedIn, AsyncControl<R> asyncControl) {
+        throw new RuntimeException("TODO!!!");
     }
 
     private ManagedObject[] adaptersFor(final Object[] args) {
@@ -318,24 +301,6 @@ public class WrapperFactoryDefault implements WrapperFactory {
         return CommandUtil.adaptersFor(args, objectManager);
     }
 
-    private static ImmutableEnumSet<ExecutionMode> determineExecutionModesSync(
-            ImmutableEnumSet<ExecutionMode> executionModes,
-            RuleCheckingPolicy ruleCheckingPolicy) {
-        return executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION) ||
-                ruleCheckingPolicy != RuleCheckingPolicy.IMMEDIATE
-                ? ExecutionModes.NOOP
-                : ExecutionModes.NO_EXECUTE;
-    }
-
-    private static ImmutableEnumSet<ExecutionMode> determineExecutionModesAsync(
-            ImmutableEnumSet<ExecutionMode> executionModes,
-            RuleCheckingPolicy ruleCheckingPolicy) {
-        return executionModes.contains(ExecutionMode.SKIP_RULE_VALIDATION) ||
-                RuleCheckingPolicy.IMMEDIATE == ruleCheckingPolicy
-                ? join(executionModes, ExecutionMode.SKIP_RULE_VALIDATION)
-                : executionModes;
-    }
-
     private static ImmutableEnumSet<ExecutionMode> join(
             ImmutableEnumSet<ExecutionMode> executionModes,
             ExecutionMode skipRuleValidation) {
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/AbstractCollectionInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/AbstractCollectionInvocationHandler.java
index 1f5ebbb..1eda159 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/AbstractCollectionInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/AbstractCollectionInvocationHandler.java
@@ -44,7 +44,7 @@ abstract class AbstractCollectionInvocationHandler<T, C> extends DelegatingInvoc
         
         super(otma.getMetaModelContext().getServiceRegistry(), 
                 collectionOrMapToProxy, 
-                handler.getExecutionMode());
+                handler.getSyncControl());
         
         this.collectionName = collectionName;
         this.oneToManyAssociation = otma;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java
index 272c10c..7ad4e7d 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DelegatingInvocationHandlerDefault.java
@@ -24,9 +24,8 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal._Constants;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
@@ -43,7 +42,7 @@ public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocati
     // getter is API
     @Getter(onMethod = @__(@Override)) private final T delegate;
     @Getter protected final WrapperFactory wrapperFactory;
-    @Getter private final ImmutableEnumSet<ExecutionMode> executionMode;
+    @Getter private final SyncControl syncControl;
 
     protected final Method equalsMethod;
     protected final Method hashCodeMethod;
@@ -56,7 +55,7 @@ public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocati
     public DelegatingInvocationHandlerDefault(
             final ServiceRegistry serviceRegistry,
             final T delegate,
-            final ImmutableEnumSet<ExecutionMode> executionMode) {
+            final SyncControl syncControl) {
 
         if (delegate == null) {
             throw new IllegalArgumentException("delegate must not be null");
@@ -64,7 +63,7 @@ public class DelegatingInvocationHandlerDefault<T> implements DelegatingInvocati
         this.delegate = delegate;
         this.wrapperFactory = serviceRegistry.lookupServiceElseFail(WrapperFactory.class);
         this.objectManager = serviceRegistry.lookupServiceElseFail(ObjectManager.class);
-        this.executionMode = executionMode;
+        this.syncControl = syncControl;
 
         try {
             equalsMethod = delegate.getClass().getMethod("equals", new Class[] { Object.class });
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index 9eb21b0..9523fe7 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -35,13 +35,13 @@ import org.apache.isis.applib.services.wrapper.InteractionException;
 import org.apache.isis.applib.services.wrapper.InvalidException;
 import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.applib.services.wrapper.events.CollectionAccessEvent;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyAccessEvent;
 import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.commons.internal.collections._Arrays;
 import org.apache.isis.core.commons.internal.collections._Lists;
@@ -73,7 +73,6 @@ import lombok.val;
 public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandlerDefault<T> {
 
     private final ProxyContextHandler proxy;
-    private final ImmutableEnumSet<ExecutionMode> executionMode;
     private final MetaModelContext mmContext;
 
     /**
@@ -92,23 +91,20 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     protected Method __isis_wrappedMethod;
 
     /**
-     * The <tt>__isis_executionMode()</tt> method from {@link WrappingObject#__isis_executionMode()}.
+     * The <tt>__isis_executionModes()</tt> method from {@link WrappingObject#__isis_executionModes()}.
      */
-    protected Method __isis_executionMode;
+    protected Method __isis_executionModes;
 
     private EntityFacet entityFacet; 
 
     public DomainObjectInvocationHandler(
             final MetaModelContext metaModelContext,
             final T domainObject,
-            final ImmutableEnumSet<ExecutionMode> mode,
-            final ProxyContextHandler proxy) {
-        
-        super(metaModelContext.getServiceRegistry(), domainObject, mode);
+            final SyncControl syncControl, final ProxyContextHandler proxy) {
+        super(metaModelContext.getServiceRegistry(), domainObject, syncControl);
 
         this.mmContext = metaModelContext;
         this.proxy = proxy;
-        this.executionMode = mode;
 
         try {
             titleMethod = domainObject.getClass().getMethod("title", new Class[]{});
@@ -118,16 +114,17 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         try {
             __isis_saveMethod = WrappingObject.class.getMethod("__isis_save", new Class[]{});
             __isis_wrappedMethod = WrappingObject.class.getMethod("__isis_wrapped", new Class[]{});
-            __isis_executionMode = WrappingObject.class.getMethod("__isis_executionMode", new Class[]{});
+            __isis_executionModes = WrappingObject.class.getMethod("__isis_executionModes", new Class[]{});
             
-            entityFacet = metaModelContext.getSpecification(domainObject.getClass())
-                    .getFacet(EntityFacet.class);
 
         } catch (final NoSuchMethodException nsme) {
             throw new IllegalStateException(
-                    "Could not locate reserved declared methods in the WrappingObject and WrappedObject interfaces",
+                    "Could not locate reserved declared methods in the WrappingObject interfaces",
                     nsme);
         }
+
+        entityFacet = metaModelContext.getSpecification(domainObject.getClass())
+                .getFacet(EntityFacet.class);
     }
 
     @Override
@@ -147,25 +144,24 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
         final ManagedObject targetAdapter = getObjectManager().adapt(getDelegate());
 
-        if (isTitleMethod(method)) {
+        if (method.equals(titleMethod)) {
             return handleTitleMethod(targetAdapter);
         }
 
 
         final ObjectSpecification targetSpec = targetAdapter.getSpecification();
-        final ObjectSpecification targetNoSpec = targetSpec;
 
         // save method, through the proxy
-        if (isSaveMethod(method)) {
-            return handleSaveMethod(targetAdapter, targetNoSpec);
+        if (method.equals(__isis_saveMethod)) {
+            return handleSaveMethod(targetAdapter, targetSpec);
         }
 
-        if (isWrappedMethod(method)) {
+        if (method.equals(__isis_wrappedMethod)) {
             return getDelegate();
         }
 
-        if (isExecutionModeMethod(method)) {
-            return executionMode;
+        if (method.equals(__isis_executionModes)) {
+            return getSyncControl().getExecutionModes();
         }
 
         final ObjectMember objectMember = locateAndCheckMember(method);
@@ -772,22 +768,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         return member;
     }
 
-    protected boolean isTitleMethod(final Method method) {
-        return method.equals(titleMethod);
-    }
-
-    protected boolean isSaveMethod(final Method method) {
-        return method.equals(__isis_saveMethod);
-    }
-
-    protected boolean isWrappedMethod(final Method method) {
-        return method.equals(__isis_wrappedMethod);
-    }
-
-    protected boolean isExecutionModeMethod(final Method method) {
-        return method.equals(__isis_executionMode);
-    }
-
     // -- SPECIFICATION LOOKUP
 
     private ObjectSpecificationDefault getJavaSpecificationOfOwningClass(final Method method) {
@@ -809,45 +789,39 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     // -- HELPER
     
     private boolean shouldEnforceRules() {
-        return !getExecutionMode().contains(ExecutionMode.SKIP_RULE_VALIDATION);
+        return !getSyncControl().getExecutionModes().contains(ExecutionMode.SKIP_RULE_VALIDATION);
     }
     
     private boolean shouldExecute() {
-        return !getExecutionMode().contains(ExecutionMode.SKIP_EXECUTION);
-    }
-    
-    private boolean shouldFailFast() {
-        return !getExecutionMode().contains(ExecutionMode.SWALLOW_EXCEPTIONS);
+        return !getSyncControl().getExecutionModes().contains(ExecutionMode.SKIP_EXECUTION);
     }
     
+
     private void runValidationTask(Runnable task) {
         if(!shouldEnforceRules()) {
             return;
         }
-        if(shouldFailFast()) {
+        try {
             task.run();
-        } else {
-            try {
-                task.run();
-            } catch(Exception ex) {
-                // swallow
-            }
+        } catch(Exception ex) {
+            handleException(ex);
         }
     }
-    
+
+    private void handleException(Exception ex) {
+        getSyncControl().getExceptionHandler().accept(ex);
+    }
+
     private <X> X runExecutionTask(Supplier<X> task) {
         if(!shouldExecute()) {
             return null;
         }
-        if(shouldFailFast()) {
+        try {
             return task.get();
-        } else {
-            try {
-                return task.get();
-            } catch(Exception ex) {
-                // swallow
-                return null;
-            }
+        } catch(Exception ex) {
+            handleException(ex);
+            // in case the exception handler doesn't throw
+            return null;
         }
     }
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java
index fb24725..f11ab15 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/ProxyContextHandler.java
@@ -22,8 +22,7 @@ package org.apache.isis.core.runtimeservices.wrapper.handlers;
 import java.util.Collection;
 import java.util.Map;
 
-import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
-import org.apache.isis.core.commons.collections.ImmutableEnumSet;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.runtimeservices.wrapper.proxy.ProxyCreator;
@@ -37,12 +36,12 @@ public class ProxyContextHandler {
 
     @NonNull private final ProxyCreator proxyCreator;
 
-    public <T> T proxy(MetaModelContext metaModelContext, T domainObject, ImmutableEnumSet<ExecutionMode> mode) {
+    public <T> T proxy(MetaModelContext metaModelContext, T domainObject, SyncControl syncControl) {
 
         val invocationHandler = new DomainObjectInvocationHandler<T>(
                 metaModelContext, 
                 domainObject,
-                mode,
+                syncControl,
                 this);
 
         return proxyCreator.instantiateProxy(invocationHandler);
diff --git a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
index bd5dd15..408f6c3 100644
--- a/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
+++ b/core/runtimeservices/src/test/java/org/apache/isis/core/runtimeservices/wrapper/WrapperFactoryDefaultTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.core.runtimeservices.wrapper;
 
+import org.assertj.core.api.Assertions;
+import org.hamcrest.CoreMatchers;
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
@@ -30,7 +32,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
-import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.plugins.codegen.ProxyFactoryService;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
@@ -43,10 +45,10 @@ public class WrapperFactoryDefaultTest {
     }
 
     @RequiredArgsConstructor
-    private static class WrappedDomainObject extends DomainObject implements WrappingObject {
+    private static class WrappingDomainObject extends DomainObject implements WrappingObject {
 
         private final DomainObject wrappedObject;
-        private final ImmutableEnumSet<ExecutionMode> mode;
+        private final ImmutableEnumSet<ExecutionMode> modes;
 
         @Override
         public void __isis_save() {
@@ -58,8 +60,8 @@ public class WrapperFactoryDefaultTest {
         }
 
         @Override
-        public ImmutableEnumSet<ExecutionMode> __isis_executionMode() {
-            return mode;
+        public ImmutableEnumSet<ExecutionMode> __isis_executionModes() {
+            return modes;
         }
     }
 
@@ -70,7 +72,7 @@ public class WrapperFactoryDefaultTest {
     private WrapperFactoryDefault wrapperFactory;
 
     private DomainObject createProxyCalledWithDomainObject;
-    private ImmutableEnumSet<ExecutionMode> createProxyCalledWithMode;
+    private SyncControl createProxyCalledWithSyncControl;
 
     @Before
     public void setUp() throws Exception {
@@ -83,8 +85,8 @@ public class WrapperFactoryDefaultTest {
             }
             
             @Override
-            protected <T> T createProxy(T domainObject, ImmutableEnumSet<ExecutionMode> modes) {
-                WrapperFactoryDefaultTest.this.createProxyCalledWithMode = modes;
+            protected <T> T createProxy(T domainObject, SyncControl syncControl) {
+                WrapperFactoryDefaultTest.this.createProxyCalledWithSyncControl = syncControl;
                 WrapperFactoryDefaultTest.this.createProxyCalledWithDomainObject = (DomainObject) domainObject;
                 return domainObject;
             }
@@ -99,7 +101,7 @@ public class WrapperFactoryDefaultTest {
         wrapperFactory.wrap(domainObject);
 
         assertThat(createProxyCalledWithDomainObject, is(domainObject));
-        assertThat(createProxyCalledWithMode, is(ExecutionModes.EXECUTE));
+        assertThat(createProxyCalledWithSyncControl, is(not(nullValue())));
     }
 
 
@@ -107,10 +109,10 @@ public class WrapperFactoryDefaultTest {
     public void wrap_ofWrapped_sameMode_returnsUnchanged() throws Exception {
         // given
         final DomainObject wrappedObject = new DomainObject();
-        final DomainObject domainObject = new WrappedDomainObject(wrappedObject, ExecutionModes.EXECUTE);
+        final DomainObject domainObject = new WrappingDomainObject(wrappedObject, ImmutableEnumSet.noneOf(ExecutionMode.class));
 
         // when
-        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, ExecutionModes.EXECUTE);
+        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject);
 
         // then
         assertThat(wrappingObject, is(domainObject));
@@ -121,15 +123,15 @@ public class WrapperFactoryDefaultTest {
     public void wrap_ofWrapped_differentMode_delegates_to_createProxy() throws Exception {
         // given
         final DomainObject wrappedObject = new DomainObject();
-        final DomainObject domainObject = new WrappedDomainObject(wrappedObject, ExecutionModes.EXECUTE);
+        final DomainObject domainObject = new WrappingDomainObject(wrappedObject, ImmutableEnumSet.noneOf(ExecutionMode.class));
 
         // when
-        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, ExecutionModes.SKIP_RULES);
+        final DomainObject wrappingObject = wrapperFactory.wrap(domainObject, SyncControl.create().withSkipRules());
 
         // then
         assertThat(wrappingObject, is(not(domainObject)));
         assertThat(createProxyCalledWithDomainObject, is(wrappedObject));
-        assertThat(createProxyCalledWithMode, is(ExecutionModes.SKIP_RULES));
+        Assertions.assertThat(createProxyCalledWithSyncControl.getExecutionModes()).contains(ExecutionMode.SKIP_RULE_VALIDATION);
     }
 
 }
\ No newline at end of file
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index 57505b3..4feadca 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -42,7 +42,6 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
-import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
index 1fd01a8..29e32b5 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperAsyncTest.java
@@ -44,9 +44,7 @@ import org.apache.isis.applib.events.domain.AbstractDomainEvent.Phase;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
-import org.apache.isis.applib.services.wrapper.control.RuleCheckingPolicy;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
-import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
@@ -122,7 +120,9 @@ class WrapperAsyncTest {
         actionDomainEventListener.prepareLatch();
 
         // use of custom executor (optional)
-        val control = AsyncControl.toReturn(JdoProduct.class).with(ExecutionModes.EXECUTE).with(RuleCheckingPolicy.ASYNC).with(Executors.newCachedThreadPool());
+        val control = AsyncControl.toReturn(JdoProduct.class)
+                .with(ExecutionModes.EXECUTE)
+                .with(Executors.newCachedThreadPool());
         wrapper.async(inventoryManager, control)
                 .updateProductPrice(product, 123d);
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
index 7a62d58..20e72dc 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
@@ -44,7 +44,6 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
-import org.apache.isis.applib.services.wrapper.control.ExecutionModes;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
index 7c5a69f..d499471 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/fixturescripts/FixtureScript.java
@@ -44,6 +44,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.applib.services.wrapper.control.ExecutionMode;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
+import org.apache.isis.applib.services.wrapper.control.SyncControl;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.collections.ImmutableEnumSet;
 import org.apache.isis.core.commons.internal.base._Casts;
@@ -779,10 +780,10 @@ public abstract class FixtureScript {
     }
 
     /**
-     * Convenience method, simply delegates to {@link WrapperFactory#wrap(Object, EnumSet)}.
+     * Convenience method, simply delegates to {@link WrapperFactory#wrap(Object, SyncControl)}.
      */
-    protected <T> T wrap(final T domainObject, final ImmutableEnumSet<ExecutionMode> executionMode) {
-        return wrapperFactory.wrap(domainObject, executionMode);
+    protected <T> T wrap(final T domainObject, final SyncControl syncControl) {
+        return wrapperFactory.wrap(domainObject, syncControl);
     }
 
     /**


[isis] 14/41: ISIS-2062: fixes directory for legacy/metamodel's adoc

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

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

commit 775b672f6f7f659570889196263fb9b20b0bc834
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 8 14:06:27 2020 +0000

    ISIS-2062: fixes directory for legacy/metamodel's adoc
---
 .../metamodel/src/main/adoc/modules/{runtime => metamodel}/nav.adoc     | 0
 .../src/main/adoc/modules/{runtime => metamodel}/pages/about.adoc       | 2 +-
 .../main/adoc/modules/{runtime => metamodel}/partials/module-nav.adoc   | 0
 3 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/nav.adoc b/legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
similarity index 100%
rename from legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/nav.adoc
rename to legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/nav.adoc
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/pages/about.adoc b/legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
similarity index 91%
rename from legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/pages/about.adoc
rename to legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
index 72804ac..f7c1f33 100644
--- a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/pages/about.adoc
+++ b/legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/pages/about.adoc
@@ -1,5 +1,5 @@
 = MetaModel
 :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 [...]
 
-TODO: v2: placeholder for documentation about legacy/commons
+WARNING: TODO: v2: placeholder for documentation about legacy/metamodel
 
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/partials/module-nav.adoc b/legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc
similarity index 100%
rename from legacy/extensions/core/metamodel/src/main/adoc/modules/runtime/partials/module-nav.adoc
rename to legacy/extensions/core/metamodel/src/main/adoc/modules/metamodel/partials/module-nav.adoc


[isis] 01/41: ISIS-2062: improves comguide docs

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

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

commit 39dcc586e9f4534c2c0216c17f976214710c6397
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Mar 6 15:34:02 2020 +0000

    ISIS-2062: improves comguide docs
---
 antora/components/comguide/modules/ROOT/nav.adoc   |  2 +-
 .../comguide/modules/ROOT/pages/about.adoc         |  2 +-
 .../ROOT/pages/antora-publish-procedure.adoc       |  6 +-
 .../modules/ROOT/pages/applying-patches.adoc       | 56 ++++++++-----------
 .../modules/ROOT/pages/cutting-a-release.adoc      |  7 ++-
 .../modules/ROOT/pages/key-generation.adoc         | 64 ++++++++++++----------
 .../modules/ROOT/pages/merging-a-pull-request.adoc | 35 ++++--------
 .../comguide/modules/ROOT/pages/pmc-notes.adoc     | 23 +-------
 .../comguide/modules/ROOT/pages/policies.adoc      |  1 -
 .../modules/ROOT/pages/policies/git-policy.adoc    | 18 ++----
 .../ROOT/pages/policies/versioning-policy.adoc     | 29 +++-------
 .../ROOT/pages/post-release-successful.adoc        |  7 ---
 .../ROOT/pages/post-release-unsuccessful.adoc      |  6 --
 .../ROOT/pages/release-process-for-snapshots.adoc  | 14 ++---
 .../ROOT/pages/release-process-prereqs.adoc        | 12 +---
 .../modules/ROOT/pages/verifying-releases.adoc     | 17 ------
 preview.sh                                         | 12 +++-
 17 files changed, 111 insertions(+), 200 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/nav.adoc b/antora/components/comguide/modules/ROOT/nav.adoc
index 1cb1278..ebd9206 100644
--- a/antora/components/comguide/modules/ROOT/nav.adoc
+++ b/antora/components/comguide/modules/ROOT/nav.adoc
@@ -1,5 +1,5 @@
-* xref:applying-patches.adoc[Applying Patches]
 * xref:merging-a-pull-request.adoc[Merging a Pull Request]
+* xref:applying-patches.adoc[Applying Patches]
 * xref:cutting-a-release.adoc[Cutting a Release]
 * xref:verifying-releases.adoc[Verifying Releases]
 * xref:post-release-successful.adoc[Post Release (Successful)]
diff --git a/antora/components/comguide/modules/ROOT/pages/about.adoc b/antora/components/comguide/modules/ROOT/pages/about.adoc
index 756d259..12e3f75 100644
--- a/antora/components/comguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/about.adoc
@@ -1,6 +1,6 @@
 = Committers' Guide
 :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 [...]
-
+:page-role: -toc
 
 This committers' guide is for committers of Apache Isis itself who want guidance on release process, publishing documents and other related procedures.
 
diff --git a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
index 565de32..3bfd6c0 100644
--- a/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/antora-publish-procedure.adoc
@@ -18,8 +18,6 @@ Publishing is performed by copying the generated HTML to a different git reposit
 This is synced by ASF infrastructure over to link:http://isis.apache.org[isis.apache.org].
 This can only be done by Apache Isis committers, and is discussed below.
 
-
-
 == One-time setup
 
 The generated site is published by copying into the `content/` directory of the https://github.com/apache/isis-site.git[isis-site] git repo.
@@ -51,7 +49,6 @@ Therefore, in the `isis.git` repo site:
 git checkout asf-site
 ----
 
-
 == Preview
 
 To preview changes (ignoring PDFs), run:
@@ -72,7 +69,6 @@ sh preview-pdf.sh
 
 There's generally little point in doing this, however.
 
-
 == Publishing (full build)
 
 The `content` directory for the published website contains not only the "current version" of the docs, but also has an archive of older versions of the document from earlier releases:
@@ -135,7 +131,7 @@ When a new release is published, we therefore need to do a little extra work:
 
 * run `publish.sh` a first time
 +
-This will  update `content/versions/SNAPSHOT`
+This will update `content/versions/SNAPSHOT`
 * delete `content/versions/current`
 * rename `content/versions/SNAPSHOT` to `content/versions/current`
 * run `publish.sh` a second time.
diff --git a/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc b/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
index 26689df..d3a43af 100644
--- a/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/applying-patches.adoc
@@ -4,50 +4,33 @@
 :page-partial:
 
 
+If a patch is received on a JIRA ticket, then it should be reviewed and applied using command line tools.
 
+== Inspect the patch
 
-
-
-If a patch is received on a JIRA ticket, then it should be reviewed and applied. The commands are slightly different for diff files vs patch files.
-
-
-
-
-== Diff files
-
-If a diff file has been provided, then it can easily be applied using eGit's wizards (Eclipse's Git integration)…
-
-NOTE: FIXME - this stuff needs fleshing out ...
-
-
-
-
-== Patch files
-
-If a patch file has been provided, then it can be applied using command line tools.
-
-=== Inspect the patch
-
-First, take a look at what changes are in the patch. You can do this easily with `git apply`
+First, take a look at what changes are in the patch.
+You can do this easily with `git apply`
 
 [source,bash]
 ----
 git apply --stat ISIS-xxx.patch
 ----
 
-Note that this command does not apply the patch, but only shows you the stats about what it’ll do. After peeking into the patch file with your favorite editor, you can see what the actual changes are.
+Note that this command does not apply the patch, but only shows you the stats about what it’ll do.
+After peeking into the patch file with your favorite editor, you can see what the actual changes are.
 
-Next, you're interested in how troublesome the patch is going to be. Git allows you to test the patch before you actually apply it.
+Next, you're interested in how troublesome the patch is going to be.
+Git allows you to test the patch before you actually apply it.
 
 [source,bash]
 ----
 git apply --check ISIS-xxx.patch
 ----
 
-If you don't get any errors, the patch has no conflicts. Otherwise you may see what trouble you’ll run into.
-
+If you don't get any errors, the patch has no conflicts.
+Otherwise you may see what trouble you’ll run into.
 
-=== Apply a (clean) patch
+== Apply a (clean) patch
 
 To apply a clean patch (adding the items and commit/signoff in a single step), use `git am`:
 
@@ -58,7 +41,8 @@ git am --signoff < ISIS-xxx.patch
 
 This preserves the original author's commit message.
 
-However, this can fail if the patch file does not contain the original committers email address. In this case you will need to abort the `am` session:
+However, this can fail if the patch file does not contain the original committers email address.
+In this case you will need to abort the `am` session:
 
 [source,bash]
 ----
@@ -67,18 +51,18 @@ git am abort
 
 and continue on by applying a non-clean patch, as described next.
 
+== Apply a (non-clean) patch
 
-
-=== Apply a (non-clean) patch
-
-If the patch does not apply cleanly, then the original authors commit message cannot be preserved. This sequence in this case is:
+If the patch does not apply cleanly, then the original authors commit message cannot be preserved.
+This sequence in this case is:
 
 [source,bash]
 ----
 git apply ISIS-xxx.patch
 ----
 
-Fix up any issues. The add and commit as usual
+Fix up any issues.
+The add and commit as usual
 
 [source,bash]
 ----
@@ -89,3 +73,7 @@ git commit -am "<original authors' commit message>" --signoff
 The `--signoff` simply adds a line to the commit message indicating you have signed off the commit.
 
 Information adapted from https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/[this blog post] and http://wiki.eclipse.org/Jetty/Contributor/Contributing_Patches[this wiki page].
+
+== Diff files
+
+If a diff file has been provided instead of a patch, then use for example the eGit's wizards (Eclipse's Git integration).
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 cfe69d58..a92f24f 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -22,11 +22,14 @@ They should work on Linux and MacOS; for Windows, use mSysGit.
 
 == Obtain Consensus
 
-Before releasing the framework, ensure there is consensus on the xref:docs:ROOT:support.adoc#[dev mailing list] that this is the right time for a release.
+
+Before releasing the framework, ensure there is consensus on the xref:docs:support:mailing-list.adoc[dev mailing list] that this is the right time for a release.
 The discussion should include confirming the version number to be used, and to confirm content.
 
 These discussions should also confirm the version number of the module being released.
-This should be in line with our xref:comguide:ROOT:versioning-policy.adoc[semantic versioning policy].
+This should be in line with our xref:comguide:ROOT:policies/versioning-policy.adoc#semantic-versioning[semantic versioning policy].
+
+
 
 Make sure you have a JIRA ticket open against which to perform all commits.
 In most cases a JIRA ticket will have been created at the beginning of the previous release cycle.
diff --git a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
index aa019a2..adf4897 100644
--- a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
@@ -12,8 +12,6 @@ In order that a contributor can make a release it is necessary for them to have
 
 For further background information on this topic, see the http://www.apache.org/dev/release-signing.html[release signing page] and the http://www.apache.org/dev/openpgp.html#generate-key[openpgp page] on the Apache wiki.
 
-
-
 == Install and Configure gpg
 
 Download and install GnuPG (gpg), version 1.4.10 or higher.
@@ -27,12 +25,10 @@ cert-digest-algo SHA512
 default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
 ----
 
-
-
-
 == Key Generation
 
-The Apache Software Foundation requires that keys are signed with a key (or subkey) based on RSA 4096 bits. To do this:
+The Apache Software Foundation requires that keys are signed with a key (or subkey) based on RSA 4096 bits.
+To do this:
 
 [source]
 ----
@@ -153,9 +149,11 @@ To confirm the key has been generated, use:
 $ gpg --list-keys --fingerprint
 ----
 
-The key Id is the one true way to identify the key, and is also the last 8 digits of the fingerprint. The corresponding secret key for id `nnnnnnnn` is stored in `~/.gnupg/secring.pgp` (on Windows 7, this is in `c:/Users/xxx/AppData/Roaming/gnupg/secring.pgp`).
+The key Id is the one true way to identify the key, and is also the last 8 digits of the fingerprint.
+The corresponding secret key for id `nnnnnnnn` is stored in `~/.gnupg/secring.pgp` (on Windows 7, this is in `c:/Users/xxx/AppData/Roaming/gnupg/secring.pgp`).
 
-It's also worth confirming the key has the correct preference of algorithms (reflecting the initial configuration we did earlier). For this, enter the gpg shell for your new key:
+It's also worth confirming the key has the correct preference of algorithms (reflecting the initial configuration we did earlier).
+For this, enter the gpg shell for your new key:
 
 [source]
 ----
@@ -163,7 +161,8 @@ $ gpg --edit-key nnnnnnnnn
 >gpg
 ----
 
-where `nnnnnnnn` is your key id. Now, use the 'showpref' subcommand to list details:
+where `nnnnnnnn` is your key id.
+Now, use the 'showpref' subcommand to list details:
 
 [source]
 ----
@@ -177,7 +176,8 @@ gpg> showpref
 gpg>
 ----
 
-The Digest line should list SHA-512 first and SHA-1 last. If it doesn't, use the "setpref" command:
+The Digest line should list SHA-512 first and SHA-1 last.
+If it doesn't, use the "setpref" command:
 
 [source]
 ----
@@ -188,15 +188,16 @@ Finally, remember to take a backup of your key and the keyring (ie, backup the `
 
 == Subkey Generation
 
-It's recommended to use a subkey with an expiry date to sign releases, rather than your main, non-expiring key. If a subkey is present, then gpg will use it for signing in preference to the main key.
+It's recommended to use a subkey with an expiry date to sign releases, rather than your main, non-expiring key.
+If a subkey is present, then gpg will use it for signing in preference to the main key.
 
 [NOTE]
 ====
-After (binary) release artifacts are created, they are deployed to the ASF's Nexus staging repository. However, Nexus seems unable to retrieve a subkey from the public key server. Until we find a fix/workaround for this, all releases should be signed just with a regular non-expiring main key.
+After (binary) release artifacts are created, they are deployed to the ASF's Nexus staging repository.
+However, Nexus seems unable to retrieve a subkey from the public key server.
+Until we find a fix/workaround for this, all releases should be signed just with a regular non-expiring main key.
 ====
 
-
-
 To create a subkey Enter the gpg shell using (the identifier of) your main key:
 
 [source]
@@ -232,7 +233,6 @@ Select (6) to choose an RSA key for encryption:
 It would seem that Nexus repository manager does not recognize RSA subkeys with an 'S'ign usage; see this discussion on a mailing list and this issue on Sonatype's JIRA
 ====
 
-
 [source]
 ----
 Your selection? 6
@@ -279,7 +279,8 @@ Quit the gpg shell; you now have a subkey.
 
 == Generate a Revocation Certificate
 
-It's good practice to generate a number of revocation certificates so that the key can be revoked if it happens to be compromised. See the http://www.apache.org/dev/openpgp.html#revocation-certs[gpg page] on the Apache wiki for more background on this topic.
+It's good practice to generate a number of revocation certificates so that the key can be revoked if it happens to be compromised.
+See the http://www.apache.org/dev/openpgp.html#revocation-certs[gpg page] on the Apache wiki for more background on this topic.
 
 First, generate a "no reason specified" key:
 
@@ -368,13 +369,12 @@ Specify reason as "3 = Key is no longer used"
 
 Backup these files also.
 
-
-
-
-
 == Publish Key
 
-It is also necessary to publish your key. There are several places where this should be done. In most cases, you'll need the "`armored`" (ie ASCII) representation of your key. This can be generated using:
+It is also necessary to publish your key.
+There are several places where this should be done.
+In most cases, you'll need the "`armored`" (ie ASCII) representation of your key.
+This can be generated using:
 
 [source]
 ----
@@ -383,18 +383,22 @@ $ gpg --armor --export nnnnnnnn > nnnnnnnn.asc
 
 where `nnnnnnnn` is the id of your public key.
 
-You'll also need the fingerprint of your key. This can be generated using:
+You'll also need the fingerprint of your key.
+This can be generated using:
 
 [source]
 ----
 $ gpg --fingerprint nnnnnnnn
 ----
 
-The output from this command includes a line beginning "Key fingerprint", followed by a (space delimited) 40 character hexadecimal fingerprint. The last 8 characters should be the same as the key id (`nnnnnnnn`).
+The output from this command includes a line beginning "Key fingerprint", followed by a (space delimited) 40 character hexadecimal fingerprint.
+The last 8 characters should be the same as the key id (`nnnnnnnn`).
 
 === Publish to a public key server
 
-To a publish your key to a public key server (eg the MIT key server hosted at http://pgp.mit.edu[http://pgp.mit.edu]), use the procedure below. Public key servers synchronize with each other, so publishing to one key server should be sufficient. For background reading on this, see the http://www.apache.org/dev/release-signing.html#keyserver-upload[release signing page] on the Apache wiki, and the http://maven.apache.org/developers/release/pmc-gpg-keys.html[gpg key page] on the Maven wiki.
+To a publish your key to a public key server (eg the MIT key server hosted at http://pgp.mit.edu[http://pgp.mit.edu]), use the procedure below.
+Public key servers synchronize with each other, so publishing to one key server should be sufficient.
+For background reading on this, see the http://www.apache.org/dev/release-signing.html#keyserver-upload[release signing page] on the Apache wiki, and the http://maven.apache.org/developers/release/pmc-gpg-keys.html[gpg key page] on the Maven wiki.
 
 To send the key up to the key server:
 
@@ -415,11 +419,13 @@ again, where `nnnnnnnn` is the key Id.
 
 === Publish to your Apache home directory
 
-The armored representation of your public key should be uploaded to your home directory on `people.apache.org`, and renamed as `.pgpkey`. Make sure this is readable by all.
+The armored representation of your public key should be uploaded to your home directory on `people.apache.org`, and renamed as `.pgpkey`.
+Make sure this is readable by all.
 
 === Publish to your Apache HTML home directory
 
-The armored representation of your public key should be uploaded to your `public_html` home directory on `people.apache.org`, named `nnnnnnnn.asc`. Make sure this is readable by all.
+The armored representation of your public key should be uploaded to your `public_html` home directory on `people.apache.org`, named `nnnnnnnn.asc`.
+Make sure this is readable by all.
 
 Check the file is accessible by browsing to:
 
@@ -533,11 +539,13 @@ Log onto `id.apache.org` and ensure that the finger print of your public key is
 
 == Attend Key Signing Party (Apache web of trust)
 
-It is strongly advised that the contributor attend a key signing party at an Apache event, in order that other Apache committers/members can in person verify their identity against the key. The process for this is described http://www.apache.org/dev/release-signing.html#key-signing-party[here] and http://wiki.apache.org/apachecon/PgpKeySigning[here].
+It is strongly advised that the contributor attend a key signing party at an Apache event, in order that other Apache committers/members can in person verify their identity against the key.
+The process for this is described http://www.apache.org/dev/release-signing.html#key-signing-party[here] and http://wiki.apache.org/apachecon/PgpKeySigning[here].
 
 == Update Maven Settings file (`~/.m2/settings.xml`)
 
-The Maven release plugin will automatically sign the release, however it is necessary to update the `~/.m2/settings.xml` file with your GPG acronym passphrase in order that it can use your secret key. This is defined under a profile so that it is activated only when we perform a release (as defined by `[org,apache:apache]` parent POM.
+The Maven release plugin will automatically sign the release, however it is necessary to update the `~/.m2/settings.xml` file with your GPG acronym passphrase in order that it can use your secret key.
+This is defined under a profile so that it is activated only when we perform a release (as defined by `[org,apache:apache]` parent POM.
 
 Therefore, make the following edits:
 
diff --git a/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc b/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
index 2dcb043..2d57175 100644
--- a/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/merging-a-pull-request.adoc
@@ -9,11 +9,8 @@
 
 The process for merging in github pull requests (so that they can be tested locally before committing) has been scripted in the `github-pr.sh` script.
 
-The script will merge the fork into a temporary branch, and then run a build.  Once you are happy, you can commit.
-
-
-
-
+The script will merge the fork into a temporary branch, and then run a build.
+Once you are happy, you can commit.
 
 == Process and Usage
 
@@ -28,10 +25,9 @@ The overall process is as follows:
 
 This link:https://youtu.be/CKSLZBBHjME[screencast] also shows the process.
 
-
 == Prerequisites
 
-The script uses 'jq' to parse JSON.  To install:
+The script uses 'jq' to parse JSON. To install:
 
 * on Linux: +
 +
@@ -48,10 +44,7 @@ brew install jq
 ----
 
 * on Windows: +
-+
-Download exe from http://stedolan.github.io/jq/download/[website]
-
-
++ Download exe from http://stedolan.github.io/jq/download/[website]
 
 == Syntax
 
@@ -65,22 +58,16 @@ github-pr.sh -j 1162 -g 31 [-s] [-p ISIS]
 where:
 
 * `-j 1162` +
-+
-is the JIRA ticket number
++ is the JIRA ticket number
 
 * `-g 31`   +
-+
-is the github PR issue number
++ is the github PR issue number
 
 * `-s` +
-+
-will optionally skip the build and auto-merge
++ will optionally skip the build and auto-merge
 
 * `-p ISIS` +
-+
-optionally overrids the JIRA project (defaults to 'ISIS')
-
-
++ optionally overrids the JIRA project (defaults to 'ISIS')
 
 == Example transcript
 
@@ -116,7 +103,8 @@ Merge made by the 'recursive' strategy.
 Merged the PR; hit enter to build
 ----
 
-The build now commences.  Once done, the script continues:
+The build now commences.
+Once done, the script continues:
 
 [source,bash]
 ----
@@ -131,7 +119,8 @@ image::committers/github-pr-history.png[link="{imagesdir}/committers/github-pr-h
 
 This shows the fork being merged into the temporary branch ("ISIS-1162_pr-31"), then some further tidy-up, and finally the merging of the temporary branch into mainline.
 
-Note that there is no rebasing in this model.  This is intentional: when the merged branch is pushed, github will automatically close the original pull request.
+Note that there is no rebasing in this model.
+This is intentional: when the merged branch is pushed, github will automatically close the original pull request.
 
 
 
diff --git a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
index 3c6d69a..cba4d94 100644
--- a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
@@ -1,4 +1,3 @@
-[[pmc-notes]]
 = Appendix: PMC
 :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 [...]
 :page-partial:
@@ -15,8 +14,6 @@ In Apache Isis, every committer is a member of the PMC.
 
 This page contains some general notes on maintenance activities required by PMC members.
 
-
-
 == Prereqs
 
 To complete the procedures documented here, you'll need `ssh` access to `minotaur.apache.org`.
@@ -34,8 +31,6 @@ When prompted, provide passphrase for private key.
 To set up ssh in the first place, take a look at https://www.apache.org/dev/new-committers-guide.html#ssh-setup[this section in the ASF new committers' guide] looks relevant.
 ====
 
-
-
 == New Committer/PMC member
 
 Currently we don't distinguish between committers and PMC members: every committer is automatically invited to also be a member of the PMC.
@@ -73,8 +68,6 @@ http://www.timeanddate.com/countdown/to?year=YYYY&month=MM&day=DD
 
 By convention, we run these votes for 7 days (a minimum of 3 days is required by ASF).
 
-
-
 === Close the vote, announce results
 
 After the 7 days has expired, close the vote thread.
@@ -114,17 +107,13 @@ I'll announce to users@ and dev@ by separate thread.
 ----
 <1> update as required
 
-
-
 === ICLA, obtain new account
 
-If required (that is, if the committer is not already a committer for a different ASF project),
-then ask them to complete an ICLA.
+If required (that is, if the committer is not already a committer for a different ASF project), then ask them to complete an ICLA.
 As a result of this, they should also get an @apache.org user name.
 
 More info can be found in the https://www.apache.org/dev/new-committers-guide.html#icla-required-before-account-creation[ASF new committers guide].
 
-
 === Update the `isis` unix group
 
 All committers must be added to the `isis` UNIX group.
@@ -166,12 +155,10 @@ modify_committee.pl isis --add joebloggs
 <1> update as required
 
 * second, update `committee-info.txt` +
-+
-This is held in SVN, under https://svn.apache.org/repos/private[https://svn.apache.org/repos/private]; the file resides at `committers/board/committee-info.txt`
++ This is held in SVN, under https://svn.apache.org/repos/private[https://svn.apache.org/repos/private]; the file resides at `committers/board/committee-info.txt`
 
 The new committer does not officially become a member of the PMC until the ASF records have been updated.
 
-
 === Notify the ASF board and private mailing list
 
 Send a `[NOTICE]` email to `board@apache.org` and also to `private@isis.apache.org`
@@ -205,13 +192,10 @@ The committee-info.txt file has been updated, as have the LDAP groups (modify_un
 update the private threads above
 ====
 
-
 === Update project metadata
 
 Update the `STATUS` file (in the root directory of the Apache Isis git repo) with the new committer details.
 
-
-
 === Announce to the world
 
 Send an `[ANNOUNCE]` email TO `users@isis.apache.org` and to `dev@isis.apache.org`.
@@ -244,9 +228,6 @@ Apache Isis PMC Chair
 
 Also, write a similar blog post at https://blogs.apache.org/isis[blogs.apache.org/isis]
 
-
-
-
 == Removing a committer
 
 [WARNING]
diff --git a/antora/components/comguide/modules/ROOT/pages/policies.adoc b/antora/components/comguide/modules/ROOT/pages/policies.adoc
index 9744cc9..ed7b700 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies.adoc
@@ -1,4 +1,3 @@
-[[policies]]
 = Policies
 :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 [...]
 :page-partial:
diff --git a/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc b/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
index ea19041..06fcfe6 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies/git-policy.adoc
@@ -5,10 +5,8 @@
 
 
 
-
-
-
-These notes recommend how contributors should work with git. To understand these notes, the only real concepts that you need to grok are:
+These notes recommend how contributors should work with git.
+To understand these notes, the only real concepts that you need to grok are:
 
 * git commits form an acyclic graph, with each commit pointing to its parent commit (or commit**s**, if a merge)
 
@@ -24,8 +22,6 @@ For more background reading, see:
 
 And, of course, there is loads of good advice on http://stackoverflow.com/questions/tagged/git[stackoverflow.com]
 
-
-
 == Workflow
 
 There are many ways of using Git, but the Apache Isis committers have adopted the following workflow:
@@ -44,10 +40,9 @@ git checkout -b ISIS-999
 git push origin ISIS-999
 ----
 
-
 * `rebase` the topic branch periodically on master. +
-+
-How often you do this will depend on whether you are collaborating with others on the feature.  You need to ensure that your co-worker has no outstanding work before you do this; otherwise it'll create merge conflict hell for them:
++ How often you do this will depend on whether you are collaborating with others on the feature.
+You need to ensure that your co-worker has no outstanding work before you do this; otherwise it'll create merge conflict hell for them:
 +
 [source,bash]
 ----
@@ -76,10 +71,6 @@ git push origin --delete ISIS-999
 
 This way of working gives us the full history on the branch as to what the thought processes were for the feature, but only a single commit on to `master` to see the ultimate impact of the changes (acting a bit like a summary).
 
-
-
-
-
 == Commit message
 
 The minimum we expect in a commit messages is:
@@ -93,7 +84,6 @@ ISIS-nnn: brief summary here
 - in bullet points
 ----
 
-
 where `ISIS-nnn` is a ticket raised in our https://issues.apache.org/jira/browse/ISIS[JIRA issue tracker].
 
 For non-committers we typically expect more detail again; see the xref:conguide:ROOT:contributing.adoc[contributing] page for the longer format recommended for contributors to use.
diff --git a/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc b/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
index ac2d89c..71011d9 100644
--- a/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/policies/versioning-policy.adoc
@@ -1,36 +1,25 @@
-[[versioning-policy]]
 = Versioning Policy
 :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 [...]
 :page-partial:
 
-
-
-
-
-
-
-
-## Semantic Versioning
+== Semantic Versioning
 
 Starting from v1.0.0, Apache Isis has adopted link:http://semver.org[semantic versioning] for its versioning policy.
 
 Version numbers are in the form `x.y.z`:
 
-- x is bumped up whenever there a breaking API change
-- y is bumped up whenever there is a new feature that does not break API
-- z is bumped up for minor bug fixes.
+* x is bumped up whenever there a breaking API change
+* y is bumped up whenever there is a new feature that does not break API
+* z is bumped up for minor bug fixes.
 
 This scheme would be adopted for both core and components.
 
+== Version ranges
 
+Version ranges may not be used.
+If necessary, end-users can use `<dependencyManagement>` elements to have combine components built against different versions of core.
 
-
-
-
-## Version ranges
-
-Version ranges may not be used.  If necessary, end-users can use `<dependencyManagement` elements to have combine components built against different versions of core.
-
-That said, this can introduce instability and so generally we recommend that end-users configure the `maven-enforcer-plugin` and its link:http://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html[DependencyConvergence] rule.  This will help avoid "jar hell" (components having conflicting dependencies of core).
+That said, this can introduce instability and so generally we recommend that end-users configure the `maven-enforcer-plugin` and its link:http://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html[DependencyConvergence] rule.
+This will help avoid "jar hell" (components having conflicting dependencies of core).
 
 If there is a conflict, we would ask that end-users engage with Apache Isis committers to have an updated version of the component(s) pushed out.
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index abbf63f..b631e62 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -1,13 +1,7 @@
-[[post-release-successful]]
 = Post Release (Successful)
 :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 [...]
 :page-partial:
 
-
-
-
-
-
 The release process consists of:
 
 * the release manager xref:comguide:ROOT:cutting-a-release.adoc[cutting the release]
@@ -72,7 +66,6 @@ image::release-process/nexus-release-1.png[width="600px",link="{imagesdir}/relea
 
 This moves the release artifacts into an Apache releases repository; from there they will be automatically moved to the Maven repository.
 
-
 == Release Source Zip
 
 As described in the link:http://www.apache.org/dev/release-publishing.html#distribution_dist[Apache documentation], each Apache TLP has a `release/TLP-name` directory in the distribution Subversion repository at link:https://dist.apache.org/repos/dist[https://dist.apache.org/repos/dist].
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
index 6ee5256..80325c2 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
@@ -1,13 +1,7 @@
-[[post-release-unsuccessful]]
 = Post Release (Unsuccessful)
 :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 [...]
 :page-partial:
 
-
-
-
-
-
 The release process consists of:
 
 * the release manager xref:comguide:ROOT:cutting-a-release.adoc[cutting the release]
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
index 4b3b9c2..c1d3fe7 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-for-snapshots.adoc
@@ -8,14 +8,13 @@
 
 
 
-Snapshot releases allows the current `-SNAPSHOT` version of the `core` modules  of the framework to be released to the Maven snapshot repository maintained by Apache Software Foundation.
+Snapshot releases allows the current `-SNAPSHOT` version of the `core` modules of the framework to be released to the Maven snapshot repository maintained by Apache Software Foundation.
 
 [NOTE]
 ====
 Unless otherwise stated, you should assume that the steps described here are performed in the base directory of the module being released.
 ====
 
-
 == Prerequisites
 
 Before you start, make sure you've defined the snapshots repo in your local `~/.m2/settings.xml` file:
@@ -36,14 +35,13 @@ Before you start, make sure you've defined the snapshots repo in your local `~/.
 </settings>
 ----
 
-where `xxxxxxx` and `yyyyyyy` are your Apache LDAP username and password. For more information, see these http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env[ASF docs].
+where `xxxxxxx` and `yyyyyyy` are your Apache LDAP username and password.
+For more information, see these http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env[ASF docs].
 
-{note
-It is also possible to configure to use `.ssh` secure keys, and thereby avoid hardcoding your Apache LDAP password into your `.m2/settings.xml` file. A description of how to do this can be found, for example, http://bval.apache.org/release-setup.html[here].
+{note It is also possible to configure to use `.ssh` secure keys, and thereby avoid hardcoding your Apache LDAP password into your `.m2/settings.xml` file.
+A description of how to do this can be found, for example, http://bval.apache.org/release-setup.html[here].
 }
 
-
-
 == Sanity Check
 
 Before deploying the snapshot, perform a quick sanity check.
@@ -65,8 +63,6 @@ mvn clean install -o
 
 Confirm that the versions of the Isis artifacts now cached in your local repository are correct (both those pulled down from Maven central repo, as well as those of the component built locally).
 
-
-
 == Deploy
 
 Deploy the framework using:
diff --git a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
index b8d520d..8e89864 100644
--- a/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/release-process-prereqs.adoc
@@ -11,15 +11,11 @@
 
 This section (appendix) describes the prerequisites for the xref:comguide:ROOT:release-process.adoc[release process].
 
-
-
 == Configure toolchains plugin
 
 Apache Isis releases are built using Java 7, enforced using the maven toolchains plugin.
 Ensure that Java 7 is installed and the toolchains plugin is configured, as described in the xref:conguide:ROOT:building-apache-isis.adoc#configure-maven-toolchains-plugin[contributors' guide].
 
-
-
 == Public/private key
 
 The most important configuration you require is to set up public/private key pair.
@@ -28,7 +24,6 @@ See the page on xref:comguide:ROOT:key-generation.adoc[key generation] for more
 
 In order to prepare the release, you'll (need to) have a `~/.gnupg` directory with the relevant files (`gpg.conf`, `pubring.gpg`, `secring.gpg` etc), and have `gpg` on your operating system PATH.
 
-
 [NOTE]
 ====
 If on Windows, the equivalent directory is `c:\users\xxx\appdata\roaming\gnupg`.
@@ -39,11 +34,10 @@ Note also that the mSysGit version of `gpg.exe` (as provided by GitHub's bash cl
 If you use Atlassian's SourceTree, this also bundles a version of `gpg.exe` that is not compatible (in `C:\Users\xxx\AppData\Local\Atlassian\SourceTree\git_local\usr\bin`); again, move it to one side and instead use the one provided by gpg4win.
 ====
 
-
-
 == Maven `settings.xml`
 
-During the release process the `maven-deploy-plugin` uploads the generated artifacts to a staging repo on the http://repository.apache.org[Apache repository manager]. This requires your Apache LDAP credentials to be specified in your `~/.m2/settings.xml` file:
+During the release process the `maven-deploy-plugin` uploads the generated artifacts to a staging repo on the http://repository.apache.org[Apache repository manager].
+This requires your Apache LDAP credentials to be specified in your `~/.m2/settings.xml` file:
 
 [source,xml]
 ----
@@ -63,14 +57,12 @@ During the release process the `maven-deploy-plugin` uploads the generated artif
 where `xxxxxxx` and `yyyyyyy` are your Apache LDAP username and password.
 For more information, see these http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env[ASF docs].
 
-
 [NOTE]
 ====
 It is also possible to configure to use `.ssh` secure keys, and thereby avoid hardcoding your Apache LDAP password into your `.m2/settings.xml` file.
 A description of how to do this can be found, for example, http://bval.apache.org/release-setup.html[here].
 ====
 
-
 Also, set up keyphrase for `gpg`; this avoids being prompted during release:
 
 [source,xml]
diff --git a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
index 3442136..ad5d9a0 100644
--- a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
@@ -16,8 +16,6 @@ The release process consists of:
 
 This section describes some guidance on what a voter (members of the Apache Isis PMC and anyone else who wishes) is expected to do before casting their vote in order to verify a release.
 
-
-
 == Background
 
 Whenever a release manager announces a vote on a release (as per the xref:comguide:ROOT:release-process.adoc[release process]) on the xref:docs:ROOT:support.adoc#[dev mailing list], it is the responsibility of the project's PMC to cast their vote on the release.
@@ -33,8 +31,6 @@ Note that the binaries are _not_ an ASF release, they merely exist on the Maven
 That said, you might also want to verify the release by pulling the binaries from the Maven staging repository.
 Details of how to do this are also documented below.
 
-
-
 == Prerequisites
 
 You will also require the following commands/tools:
@@ -61,14 +57,11 @@ to unzip the ZIP files
 +
 to build the code
 
-
-
 == Verifying source artifacts
 
 The easiest way to verify the source artifacts is to use a script that automates the steps.
 Run these commands (they should also be listed in the VOTE email):
 
-
 [source,bash,subs="attributes+"]
 ----
 NEXUSREPONUM=10xx                   # <1>
@@ -102,12 +95,9 @@ in other words, to confirm that the release was created by an Apache Isis commit
 
 Assuming this completes successfully, you can then test the two starter applications; adjust the version if required.
 
-
 You can if you wish perform some additional optional checks, listed in the sections below.
 Alternatively, you can xref:comguide:ROOT:verifying-releases.adoc#casting-a-vote[cast your vote].
 
-
-
 == (Optional) Verifying binary artifacts
 
 You can verify the binary releases by configuring your local Maven install to point to the Maven staging repository (or repositories) and then using them, eg to run the xref:docs:starters:helloworld.adoc[HelloWorld starter app] or the xref:docs:starters:simpleapp.adoc[SimpleApp starter app] (adjust the parent version if required).
@@ -148,11 +138,6 @@ If there is more than one repository (as is sometimes the case if multiple compo
 Once the vote has completed, the staging repositories will be removed and so you should deactive the profile (comment out the `&lt;activeProfile&gt;` element).
 If you forget to deactive the profile, there should be no adverse effects; Maven will just spend unnecessary cycles attempting to hit a non-existent repo.
 
-
-
-
-
-
 == (Optional) Creadur Tools
 
 The http://creadur.apache.org[Apache Creadur] project exists to provide a set of tools to ensure compliance with Apache's licensing standards.
@@ -172,8 +157,6 @@ Things to check include:
 
 In this report, each binary will have three links listed after its name '(licenses, notices, contents)'
 
-
-
 == Casting a Vote
 
 When you have made the above checks (and any other checks you think may be relevant), cast your vote by replying to the email thread on the mailing list.
diff --git a/preview.sh b/preview.sh
index ce91c72..db93942 100644
--- a/preview.sh
+++ b/preview.sh
@@ -1,7 +1,9 @@
 #!/usr/bin/env bash
 
+export ANTORA_CACHE_DIR=.antora-cache-dir
+
 PLAYBOOK_FILE=antora/playbooks/site.yml
-while getopts 'ecf:aksh' opt
+while getopts 'ecf:aksxh' opt
 do
   case $opt in
     e) export SKIP_EXAMPLES=true ;;
@@ -10,6 +12,7 @@ do
     a) export SKIP_GENERATION=true ;;
     k) export SKIP_STALE_EXAMPLE_CHECK=true ;;
     s) export SKIP_SERVE=true ;;
+    x) export SKIP_CLEAR_CACHE=true ;;
     h) echo ""
        echo "preview.sh options:"
        echo "  -e skip examples"
@@ -17,6 +20,7 @@ do
        echo "  -c skip config doc generation"
        echo "  -a skip Antora generation"
        echo "  -s skip serving generated site"
+       echo "  -x skip clear Antora cache"
        echo "  -f antora/playbooks/site-xxx.yml"
        exit 1
        ;;
@@ -26,6 +30,12 @@ do
   esac
 done
 
+if [[ "$SKIP_CLEAR_CACHE" == "true" ]]; then
+  echo "skipping clearing the Antora cache"
+else
+  rm -rf $ANTORA_CACHE_DIR
+fi
+
 if [ ! -f $PLAYBOOK_FILE ]; then
   echo "no such file $PLAYBOOK_FILE" >&2
   exit 1


[isis] 24/41: Revert "ISIS-2094: bumps pom.xml to next version"

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

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

commit b2dd530115013439ccc143e3d55a18cf8f43f4d3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Mar 11 07:22:51 2020 +0000

    Revert "ISIS-2094: bumps pom.xml to next version"
    
    This reverts commit a4efb7cd83ae81c894206f6524a30533e4a0496f.
---
 api/applib/pom.xml                                 |  2 +-
 api/schema/pom.xml                                 |  2 +-
 core-parent/pom.xml                                |  6 +-
 core/codegen-bytebuddy/pom.xml                     |  2 +-
 core/commons/pom.xml                               |  2 +-
 core/config/pom.xml                                |  2 +-
 core/internaltestsupport/pom.xml                   |  2 +-
 core/metamodel/pom.xml                             |  2 +-
 core/pom.xml                                       | 88 +++++++++++-----------
 core/runtime/pom.xml                               |  2 +-
 core/runtimeservices/pom.xml                       |  2 +-
 core/security/pom.xml                              |  2 +-
 core/webapp/pom.xml                                |  2 +-
 extensions/core/flyway/impl/pom.xml                |  2 +-
 extensions/core/flyway/pom.xml                     |  2 +-
 extensions/pom.xml                                 | 32 ++++----
 extensions/security/secman/api/pom.xml             |  2 +-
 .../security/secman/encryption-jbcrypt/pom.xml     |  2 +-
 extensions/security/secman/model/pom.xml           |  4 +-
 extensions/security/secman/persistence-jdo/pom.xml |  8 +-
 extensions/security/secman/pom.xml                 | 10 +--
 extensions/security/secman/shiro-realm/pom.xml     |  4 +-
 extensions/security/shiro-realm-ldap/impl/pom.xml  |  2 +-
 extensions/security/shiro-realm-ldap/pom.xml       |  2 +-
 extensions/vro/cors/impl/pom.xml                   |  2 +-
 extensions/vro/cors/pom.xml                        |  2 +-
 extensions/vw/exceldownload/pom.xml                |  2 +-
 extensions/vw/exceldownload/ui/pom.xml             |  2 +-
 extensions/vw/fullcalendar/applib/pom.xml          |  2 +-
 extensions/vw/fullcalendar/pom.xml                 |  2 +-
 extensions/vw/fullcalendar/ui/pom.xml              |  2 +-
 extensions/vw/pdfjs/applib/pom.xml                 |  2 +-
 extensions/vw/pdfjs/metamodel/pom.xml              |  2 +-
 extensions/vw/pdfjs/pom.xml                        |  2 +-
 extensions/vw/pdfjs/ui/pom.xml                     |  2 +-
 incubator/core/model/pom.xml                       |  2 +-
 incubator/mappings/microprofile/pom.xml            |  2 +-
 incubator/pom.xml                                  | 16 ++--
 incubator/viewers/vaadin/model/pom.xml             |  2 +-
 incubator/viewers/vaadin/pom.xml                   |  8 +-
 incubator/viewers/vaadin/ui/pom.xml                |  2 +-
 incubator/viewers/vaadin/viewer/pom.xml            |  2 +-
 legacy/extensions/core/applib/pom.xml              |  2 +-
 legacy/extensions/core/commons/pom.xml             |  2 +-
 legacy/extensions/core/metamodel/pom.xml           |  2 +-
 legacy/extensions/core/runtime/pom.xml             |  2 +-
 legacy/mappings/restclient/pom.xml                 |  2 +-
 legacy/pom.xml                                     | 12 +--
 mappings/jaxrsclient/api/pom.xml                   |  2 +-
 mappings/jaxrsclient/pom.xml                       |  2 +-
 mappings/pom.xml                                   |  8 +-
 mappings/restclient/api/pom.xml                    |  2 +-
 mappings/restclient/pom.xml                        |  2 +-
 mavendeps/integspecs/pom.xml                       |  2 +-
 mavendeps/integtests/pom.xml                       |  2 +-
 mavendeps/jdk11/pom.xml                            |  2 +-
 mavendeps/pom.xml                                  | 16 ++--
 mavendeps/unittests/pom.xml                        |  2 +-
 mavendeps/webapp/pom.xml                           |  2 +-
 persistence/jdo/applib/pom.xml                     |  2 +-
 persistence/jdo/datanucleus-5/pom.xml              |  2 +-
 persistence/jdo/pom.xml                            |  2 +-
 security/bypass/pom.xml                            |  2 +-
 security/keycloak/pom.xml                          |  4 +-
 security/shiro/pom.xml                             |  4 +-
 starters/pom.xml                                   | 20 ++---
 subdomains/base/applib/pom.xml                     |  2 +-
 subdomains/base/pom.xml                            |  2 +-
 subdomains/docx/applib/pom.xml                     |  2 +-
 subdomains/docx/pom.xml                            |  2 +-
 subdomains/excel/applib/pom.xml                    |  2 +-
 subdomains/excel/fixture/pom.xml                   |  2 +-
 subdomains/excel/integtests/pom.xml                |  2 +-
 subdomains/excel/pom.xml                           |  2 +-
 subdomains/excel/testing/pom.xml                   |  2 +-
 subdomains/freemarker/applib/pom.xml               |  2 +-
 subdomains/freemarker/pom.xml                      |  2 +-
 subdomains/ognl/applib/pom.xml                     |  2 +-
 subdomains/ognl/pom.xml                            |  2 +-
 subdomains/pdfbox/applib/pom.xml                   |  2 +-
 subdomains/pdfbox/pom.xml                          |  2 +-
 subdomains/pom.xml                                 | 28 +++----
 subdomains/spring/applib/pom.xml                   |  2 +-
 subdomains/spring/pom.xml                          |  2 +-
 subdomains/xdocreport/applib/pom.xml               |  2 +-
 subdomains/xdocreport/pom.xml                      |  2 +-
 subdomains/zip/applib/pom.xml                      |  2 +-
 subdomains/zip/pom.xml                             |  2 +-
 testing/fakedata/applib/pom.xml                    |  2 +-
 testing/fakedata/fixtures/pom.xml                  |  2 +-
 testing/fakedata/integtests/pom.xml                |  2 +-
 testing/fakedata/pom.xml                           |  2 +-
 testing/fixtures/applib/pom.xml                    |  2 +-
 testing/fixtures/pom.xml                           |  2 +-
 testing/h2console/pom.xml                          |  2 +-
 testing/h2console/ui/pom.xml                       |  2 +-
 testing/hsqldbmgr/pom.xml                          |  2 +-
 testing/hsqldbmgr/ui/pom.xml                       |  2 +-
 testing/integtestsupport/applib/pom.xml            |  2 +-
 testing/integtestsupport/pom.xml                   |  2 +-
 testing/pom.xml                                    | 22 +++---
 testing/specsupport/applib/pom.xml                 |  2 +-
 testing/specsupport/pom.xml                        |  2 +-
 testing/unittestsupport/applib/pom.xml             |  2 +-
 testing/unittestsupport/pom.xml                    |  2 +-
 valuetypes/asciidoc/applib/pom.xml                 |  2 +-
 valuetypes/asciidoc/pom.xml                        |  2 +-
 valuetypes/asciidoc/ui/pom.xml                     |  2 +-
 valuetypes/markdown/applib/pom.xml                 |  2 +-
 valuetypes/markdown/pom.xml                        |  2 +-
 valuetypes/markdown/ui/pom.xml                     |  2 +-
 valuetypes/pom.xml                                 | 18 ++---
 valuetypes/sse/applib/pom.xml                      |  2 +-
 valuetypes/sse/metamodel/pom.xml                   |  2 +-
 valuetypes/sse/pom.xml                             |  2 +-
 valuetypes/sse/ui/pom.xml                          |  2 +-
 viewers/restfulobjects/applib/pom.xml              |  2 +-
 viewers/restfulobjects/jaxrs-resteasy-4/pom.xml    |  2 +-
 viewers/restfulobjects/pom.xml                     |  2 +-
 viewers/restfulobjects/rendering/pom.xml           |  2 +-
 viewers/restfulobjects/viewer/pom.xml              |  2 +-
 viewers/wicket/model/pom.xml                       |  2 +-
 viewers/wicket/pom.xml                             |  2 +-
 viewers/wicket/ui/pom.xml                          |  2 +-
 viewers/wicket/viewer/pom.xml                      |  2 +-
 125 files changed, 259 insertions(+), 263 deletions(-)

diff --git a/api/applib/pom.xml b/api/applib/pom.xml
index 510ecd2..2b1f3e8 100644
--- a/api/applib/pom.xml
+++ b/api/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/api/schema/pom.xml b/api/schema/pom.xml
index 48d7985..6a6bf7b 100644
--- a/api/schema/pom.xml
+++ b/api/schema/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../core/pom.xml</relativePath>
 	</parent>
 
diff --git a/core-parent/pom.xml b/core-parent/pom.xml
index a5c5ab9..02affbe 100644
--- a/core-parent/pom.xml
+++ b/core-parent/pom.xml
@@ -51,7 +51,7 @@ under the License.
 
 	<groupId>org.apache.isis.core</groupId>
 	<artifactId>isis-parent</artifactId>
-	<version>2.0.0-M3</version>
+	<version>2.0.0-M3-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<!-- APACHE ISIS customisation 1/7: end -->
@@ -519,10 +519,6 @@ under the License.
 							<exclude>**/.classpath</exclude>
 							<exclude>**/.settings/**</exclude>
 							<exclude>**/*.launch</exclude>
-							<exclude>**/component-nav.adoc</exclude>
-							<exclude>**/module-nav.adoc</exclude>
-							<exclude>**/module-nav-*.adoc</exclude>
-							<exclude>**/_nav.adoc</exclude>
 
 							<exclude>**/*.iml</exclude>
 							<exclude>**/webpack.generated.js</exclude>
diff --git a/core/codegen-bytebuddy/pom.xml b/core/codegen-bytebuddy/pom.xml
index 8e44bbb..0ad22a8 100644
--- a/core/codegen-bytebuddy/pom.xml
+++ b/core/codegen-bytebuddy/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-codegen-bytebuddy</artifactId>
diff --git a/core/commons/pom.xml b/core/commons/pom.xml
index 08e47ce..6db6ed6 100644
--- a/core/commons/pom.xml
+++ b/core/commons/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-commons</artifactId>
diff --git a/core/config/pom.xml b/core/config/pom.xml
index fedd80d..7c016d5 100644
--- a/core/config/pom.xml
+++ b/core/config/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-config</artifactId>
diff --git a/core/internaltestsupport/pom.xml b/core/internaltestsupport/pom.xml
index d1c6878..48a5f8f 100644
--- a/core/internaltestsupport/pom.xml
+++ b/core/internaltestsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-internaltestsupport</artifactId>
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index dd10b53..9473acc 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-metamodel</artifactId>
diff --git a/core/pom.xml b/core/pom.xml
index c1a235b..e28df66 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -17,13 +17,13 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis-parent</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core-parent/pom.xml</relativePath>
 	</parent>
 
 	<groupId>org.apache.isis.core</groupId>
 	<artifactId>isis</artifactId>
-	<version>2.0.0-M3</version>
+	<version>2.0.0-M3-SNAPSHOT</version>
 
 	<packaging>pom</packaging>
 
@@ -695,252 +695,252 @@
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-commons</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-internaltestsupport</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-internaltestsupport</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-config</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-config</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-schema</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-schema</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-metamodel</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>jar</type>
 				<scope>compile</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-metamodel</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtime</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtime</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtimeservices</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-runtimeservices</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-webapp</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-webapp</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-rendering</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-rendering</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-viewer</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-viewer</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>test-jar</type>
 				<scope>test</scope>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-security</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.security</groupId>
 				<artifactId>isis-security-bypass</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.security</groupId>
 				<artifactId>isis-security-shiro</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.security</groupId>
 				<artifactId>isis-security-keycloak</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis-core-codegen-bytebuddy</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.persistence</groupId>
 				<artifactId>isis-persistence-jdo-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.persistence</groupId>
 				<artifactId>isis-persistence-jdo-datanucleus5</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-restfulobjects-jaxrsresteasy4</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-model</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-model</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-viewer</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.viewer</groupId>
 				<artifactId>isis-viewer-wicket-viewer</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-unittests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integtests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integspecs</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-webapp</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-jdk11</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 			</dependency>
 
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index 5742220..be35979 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-runtime</artifactId>
diff --git a/core/runtimeservices/pom.xml b/core/runtimeservices/pom.xml
index d25f7f7..8922dba 100644
--- a/core/runtimeservices/pom.xml
+++ b/core/runtimeservices/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-runtimeservices</artifactId>
diff --git a/core/security/pom.xml b/core/security/pom.xml
index 3b99e7d..0072bdb 100644
--- a/core/security/pom.xml
+++ b/core/security/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-security</artifactId>
diff --git a/core/webapp/pom.xml b/core/webapp/pom.xml
index dc188eb..af15c49 100644
--- a/core/webapp/pom.xml
+++ b/core/webapp/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-webapp</artifactId>
diff --git a/extensions/core/flyway/impl/pom.xml b/extensions/core/flyway/impl/pom.xml
index 490b883..57ef1c6 100644
--- a/extensions/core/flyway/impl/pom.xml
+++ b/extensions/core/flyway/impl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions-flyway</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-extensions-flyway-impl</artifactId>
diff --git a/extensions/core/flyway/pom.xml b/extensions/core/flyway/pom.xml
index 2c2f0d9..2f6bf9c 100644
--- a/extensions/core/flyway/pom.xml
+++ b/extensions/core/flyway/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 9c864e8..e2b6362 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -65,19 +65,19 @@
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-exceldownload-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-flyway-impl</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-pdfjs-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
@@ -87,67 +87,67 @@
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-pdfjs-metamodel</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-pdfjs-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-fullcalendar-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-fullcalendar-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-model</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-encryption-jbcrypt</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-persistence-jdo</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-secman-shiro-realm</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-shiro-realm-ldap-impl</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions-cors-impl</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 
diff --git a/extensions/security/secman/api/pom.xml b/extensions/security/secman/api/pom.xml
index c890caf..27ed775 100644
--- a/extensions/security/secman/api/pom.xml
+++ b/extensions/security/secman/api/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/encryption-jbcrypt/pom.xml b/extensions/security/secman/encryption-jbcrypt/pom.xml
index 3a1b7b4..4c6cca4 100644
--- a/extensions/security/secman/encryption-jbcrypt/pom.xml
+++ b/extensions/security/secman/encryption-jbcrypt/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/model/pom.xml b/extensions/security/secman/model/pom.xml
index 6f8ea46..a49b163 100644
--- a/extensions/security/secman/model/pom.xml
+++ b/extensions/security/secman/model/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -47,7 +47,7 @@
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-api</artifactId>
-			<version>2.0.0-M3</version>
+			<version>2.0.0-M3-SNAPSHOT</version>
 		</dependency>
 
     </dependencies>
diff --git a/extensions/security/secman/persistence-jdo/pom.xml b/extensions/security/secman/persistence-jdo/pom.xml
index 9ce1164..24de172 100644
--- a/extensions/security/secman/persistence-jdo/pom.xml
+++ b/extensions/security/secman/persistence-jdo/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -55,21 +55,21 @@
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-api</artifactId>
-			<version>2.0.0-M3</version>
+			<version>2.0.0-M3-SNAPSHOT</version>
 			<scope>provided</scope>
 		</dependency>
 		
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-model</artifactId>
-			<version>2.0.0-M3</version>
+			<version>2.0.0-M3-SNAPSHOT</version>
 			<scope>provided</scope>
 		</dependency>
 		
 		<dependency>
 			<groupId>org.apache.isis.testing</groupId>
 			<artifactId>isis-testing-fixtures-applib</artifactId>
-			<version>2.0.0-M3</version>
+			<version>2.0.0-M3-SNAPSHOT</version>
 		</dependency>
 
     </dependencies>
diff --git a/extensions/security/secman/pom.xml b/extensions/security/secman/pom.xml
index 22e3de4..86ce7e8 100644
--- a/extensions/security/secman/pom.xml
+++ b/extensions/security/secman/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -43,22 +43,22 @@
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-api</artifactId>
-                <version>2.0.0-M3</version>
+                <version>2.0.0-M3-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-encryption-jbcrypt</artifactId>
-                <version>2.0.0-M3</version>
+                <version>2.0.0-M3-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-persistence-jdo</artifactId>
-                <version>2.0.0-M3</version>
+                <version>2.0.0-M3-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.extensions</groupId>
                 <artifactId>isis-extensions-secman-shiro-realm</artifactId>
-                <version>2.0.0-M3</version>
+                <version>2.0.0-M3-SNAPSHOT</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
diff --git a/extensions/security/secman/shiro-realm/pom.xml b/extensions/security/secman/shiro-realm/pom.xml
index a8e35ad..13f55de 100644
--- a/extensions/security/secman/shiro-realm/pom.xml
+++ b/extensions/security/secman/shiro-realm/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-secman</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -54,7 +54,7 @@
 		<dependency>
 			<groupId>org.apache.isis.extensions</groupId>
 			<artifactId>isis-extensions-secman-api</artifactId>
-			<version>2.0.0-M3</version>
+			<version>2.0.0-M3-SNAPSHOT</version>
 			<scope>provided</scope>
 		</dependency>
 
diff --git a/extensions/security/shiro-realm-ldap/impl/pom.xml b/extensions/security/shiro-realm-ldap/impl/pom.xml
index 6dc197a..fdc51c3 100644
--- a/extensions/security/shiro-realm-ldap/impl/pom.xml
+++ b/extensions/security/shiro-realm-ldap/impl/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-shiro-realm-ldap</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-shiro-realm-ldap-impl</artifactId>
diff --git a/extensions/security/shiro-realm-ldap/pom.xml b/extensions/security/shiro-realm-ldap/pom.xml
index 17d9a57..b251ed9 100644
--- a/extensions/security/shiro-realm-ldap/pom.xml
+++ b/extensions/security/shiro-realm-ldap/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vro/cors/impl/pom.xml b/extensions/vro/cors/impl/pom.xml
index a080f3d..d40d937 100644
--- a/extensions/vro/cors/impl/pom.xml
+++ b/extensions/vro/cors/impl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions-cors</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-extensions-cors-impl</artifactId>
diff --git a/extensions/vro/cors/pom.xml b/extensions/vro/cors/pom.xml
index e8db877..d7e968f 100644
--- a/extensions/vro/cors/pom.xml
+++ b/extensions/vro/cors/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.extensions</groupId>
 		<artifactId>isis-extensions</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/vw/exceldownload/pom.xml b/extensions/vw/exceldownload/pom.xml
index a9ef7c5..7add7ff 100644
--- a/extensions/vw/exceldownload/pom.xml
+++ b/extensions/vw/exceldownload/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vw/exceldownload/ui/pom.xml b/extensions/vw/exceldownload/ui/pom.xml
index cfcd4e1..cf58939 100644
--- a/extensions/vw/exceldownload/ui/pom.xml
+++ b/extensions/vw/exceldownload/ui/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-exceldownload</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-exceldownload-ui</artifactId>
diff --git a/extensions/vw/fullcalendar/applib/pom.xml b/extensions/vw/fullcalendar/applib/pom.xml
index 6d31485..fc2ca2a 100644
--- a/extensions/vw/fullcalendar/applib/pom.xml
+++ b/extensions/vw/fullcalendar/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-fullcalendar</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-fullcalendar-applib</artifactId>
diff --git a/extensions/vw/fullcalendar/pom.xml b/extensions/vw/fullcalendar/pom.xml
index 8697035..777891d 100644
--- a/extensions/vw/fullcalendar/pom.xml
+++ b/extensions/vw/fullcalendar/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vw/fullcalendar/ui/pom.xml b/extensions/vw/fullcalendar/ui/pom.xml
index da3cb5a..f5cfb50 100644
--- a/extensions/vw/fullcalendar/ui/pom.xml
+++ b/extensions/vw/fullcalendar/ui/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-fullcalendar</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-fullcalendar-ui</artifactId>
diff --git a/extensions/vw/pdfjs/applib/pom.xml b/extensions/vw/pdfjs/applib/pom.xml
index 8e6b946..ff14ea4 100644
--- a/extensions/vw/pdfjs/applib/pom.xml
+++ b/extensions/vw/pdfjs/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-pdfjs</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-pdfjs-applib</artifactId>
diff --git a/extensions/vw/pdfjs/metamodel/pom.xml b/extensions/vw/pdfjs/metamodel/pom.xml
index fe15e77..3b63f8b 100644
--- a/extensions/vw/pdfjs/metamodel/pom.xml
+++ b/extensions/vw/pdfjs/metamodel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-pdfjs</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-pdfjs-metamodel</artifactId>
diff --git a/extensions/vw/pdfjs/pom.xml b/extensions/vw/pdfjs/pom.xml
index afc57a4..eb91d20 100644
--- a/extensions/vw/pdfjs/pom.xml
+++ b/extensions/vw/pdfjs/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/vw/pdfjs/ui/pom.xml b/extensions/vw/pdfjs/ui/pom.xml
index 901367a..a169405 100644
--- a/extensions/vw/pdfjs/ui/pom.xml
+++ b/extensions/vw/pdfjs/ui/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.extensions</groupId>
         <artifactId>isis-extensions-pdfjs</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-extensions-pdfjs-ui</artifactId>
diff --git a/incubator/core/model/pom.xml b/incubator/core/model/pom.xml
index f1c9288..c9220d2 100644
--- a/incubator/core/model/pom.xml
+++ b/incubator/core/model/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator</groupId>
 		<artifactId>isis-incubator</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/incubator/mappings/microprofile/pom.xml b/incubator/mappings/microprofile/pom.xml
index 848bfe5..575bb95 100644
--- a/incubator/mappings/microprofile/pom.xml
+++ b/incubator/mappings/microprofile/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator</groupId>
 		<artifactId>isis-incubator</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/incubator/pom.xml b/incubator/pom.xml
index 1a74d43..c37fe87 100644
--- a/incubator/pom.xml
+++ b/incubator/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -64,37 +64,37 @@
 			<dependency>
 				<groupId>org.apache.isis.incubator</groupId>
 				<artifactId>isis-incubator-model</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			
 			<dependency>
 				<groupId>org.apache.isis.incubator</groupId>
 				<artifactId>isis-incubator-microprofile</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-model</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 		
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 		
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-viewer</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- TESTING -->
@@ -102,7 +102,7 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 		</dependencies>
diff --git a/incubator/viewers/vaadin/model/pom.xml b/incubator/viewers/vaadin/model/pom.xml
index 0a1c2bf..32a7f61 100644
--- a/incubator/viewers/vaadin/model/pom.xml
+++ b/incubator/viewers/vaadin/model/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator.viewer</groupId>
 		<artifactId>isis-viewer-vaadin</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-viewer-vaadin-model</artifactId>
diff --git a/incubator/viewers/vaadin/pom.xml b/incubator/viewers/vaadin/pom.xml
index c2bdffa..6211de3 100644
--- a/incubator/viewers/vaadin/pom.xml
+++ b/incubator/viewers/vaadin/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator</groupId>
 		<artifactId>isis-incubator</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -62,19 +62,19 @@
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-model</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.incubator.viewer</groupId>
 				<artifactId>isis-viewer-vaadin-viewer</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 		</dependencies>
diff --git a/incubator/viewers/vaadin/ui/pom.xml b/incubator/viewers/vaadin/ui/pom.xml
index cbffcec..bc24f84 100644
--- a/incubator/viewers/vaadin/ui/pom.xml
+++ b/incubator/viewers/vaadin/ui/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator.viewer</groupId>
 		<artifactId>isis-viewer-vaadin</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-viewer-vaadin-ui</artifactId>
diff --git a/incubator/viewers/vaadin/viewer/pom.xml b/incubator/viewers/vaadin/viewer/pom.xml
index 756e047..159e64d 100644
--- a/incubator/viewers/vaadin/viewer/pom.xml
+++ b/incubator/viewers/vaadin/viewer/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.incubator.viewer</groupId>
 		<artifactId>isis-viewer-vaadin</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-viewer-vaadin-viewer</artifactId>
diff --git a/legacy/extensions/core/applib/pom.xml b/legacy/extensions/core/applib/pom.xml
index b66b498..6703fc6 100644
--- a/legacy/extensions/core/applib/pom.xml
+++ b/legacy/extensions/core/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/extensions/core/commons/pom.xml b/legacy/extensions/core/commons/pom.xml
index ad7ee6c..73b194c 100644
--- a/legacy/extensions/core/commons/pom.xml
+++ b/legacy/extensions/core/commons/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/extensions/core/metamodel/pom.xml b/legacy/extensions/core/metamodel/pom.xml
index 6fb85ce..263db1e 100644
--- a/legacy/extensions/core/metamodel/pom.xml
+++ b/legacy/extensions/core/metamodel/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/extensions/core/runtime/pom.xml b/legacy/extensions/core/runtime/pom.xml
index 6ad7e2e..7ed31a4 100644
--- a/legacy/extensions/core/runtime/pom.xml
+++ b/legacy/extensions/core/runtime/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/mappings/restclient/pom.xml b/legacy/mappings/restclient/pom.xml
index c9a0ac9..980be16 100644
--- a/legacy/mappings/restclient/pom.xml
+++ b/legacy/mappings/restclient/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
         <groupId>org.apache.isis.legacy</groupId>
         <artifactId>isis-legacy</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/legacy/pom.xml b/legacy/pom.xml
index b6fd359..7fd2850 100644
--- a/legacy/pom.xml
+++ b/legacy/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -63,29 +63,29 @@
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-commons</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-runtime</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy-restclient</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 		</dependencies>
diff --git a/mappings/jaxrsclient/api/pom.xml b/mappings/jaxrsclient/api/pom.xml
index 6ccc983..7d658d6 100644
--- a/mappings/jaxrsclient/api/pom.xml
+++ b/mappings/jaxrsclient/api/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings-jaxrsclient</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mappings-jaxrsclient-api</artifactId>
diff --git a/mappings/jaxrsclient/pom.xml b/mappings/jaxrsclient/pom.xml
index 1e2ece0..22a32b9 100644
--- a/mappings/jaxrsclient/pom.xml
+++ b/mappings/jaxrsclient/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mappings-jaxrsclient</artifactId>
diff --git a/mappings/pom.xml b/mappings/pom.xml
index c0dfa29..21bbaef 100644
--- a/mappings/pom.xml
+++ b/mappings/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -65,20 +65,20 @@
 			<dependency>
 				<groupId>org.apache.isis.mappings</groupId>
 				<artifactId>isis-mappings-restclient-api</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mappings</groupId>
 				<artifactId>isis-mappings-jaxrsclient-api</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 
diff --git a/mappings/restclient/api/pom.xml b/mappings/restclient/api/pom.xml
index 8bd0975..f65b001 100644
--- a/mappings/restclient/api/pom.xml
+++ b/mappings/restclient/api/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/mappings/restclient/pom.xml b/mappings/restclient/pom.xml
index bb40c53..e5f69fc 100644
--- a/mappings/restclient/pom.xml
+++ b/mappings/restclient/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.mappings</groupId>
 		<artifactId>isis-mappings</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mappings-restclient</artifactId>
diff --git a/mavendeps/integspecs/pom.xml b/mavendeps/integspecs/pom.xml
index c4c09b7..5fa2c17 100644
--- a/mavendeps/integspecs/pom.xml
+++ b/mavendeps/integspecs/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-integspecs</artifactId>
diff --git a/mavendeps/integtests/pom.xml b/mavendeps/integtests/pom.xml
index f8c7b9c..6fd564b 100644
--- a/mavendeps/integtests/pom.xml
+++ b/mavendeps/integtests/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-integtests</artifactId>
diff --git a/mavendeps/jdk11/pom.xml b/mavendeps/jdk11/pom.xml
index ba4f4a2..4878df3 100644
--- a/mavendeps/jdk11/pom.xml
+++ b/mavendeps/jdk11/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-jdk11</artifactId>
diff --git a/mavendeps/pom.xml b/mavendeps/pom.xml
index a41213b..125bda9 100644
--- a/mavendeps/pom.xml
+++ b/mavendeps/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -73,7 +73,7 @@
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
@@ -81,7 +81,7 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
@@ -89,31 +89,31 @@
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-unittests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integtests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integspecs</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-webapp</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-jdk11</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
diff --git a/mavendeps/unittests/pom.xml b/mavendeps/unittests/pom.xml
index 4ef6e6f..cfe9872 100644
--- a/mavendeps/unittests/pom.xml
+++ b/mavendeps/unittests/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-unittests</artifactId>
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index 4341ae4..7fc51a8 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -18,7 +18,7 @@
 	<parent>
 		<groupId>org.apache.isis.mavendeps</groupId>
 		<artifactId>isis-mavendeps</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-mavendeps-webapp</artifactId>
diff --git a/persistence/jdo/applib/pom.xml b/persistence/jdo/applib/pom.xml
index 480ada3..27c2f87 100644
--- a/persistence/jdo/applib/pom.xml
+++ b/persistence/jdo/applib/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.isis.persistence</groupId>
 		<artifactId>isis-persistence-jdo</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-persistence-jdo-applib</artifactId>
diff --git a/persistence/jdo/datanucleus-5/pom.xml b/persistence/jdo/datanucleus-5/pom.xml
index 3e7202d..f482c18 100644
--- a/persistence/jdo/datanucleus-5/pom.xml
+++ b/persistence/jdo/datanucleus-5/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.isis.persistence</groupId>
 		<artifactId>isis-persistence-jdo</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-persistence-jdo-datanucleus5</artifactId>
diff --git a/persistence/jdo/pom.xml b/persistence/jdo/pom.xml
index 0702707..c1c5656 100644
--- a/persistence/jdo/pom.xml
+++ b/persistence/jdo/pom.xml
@@ -16,7 +16,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../core/pom.xml</relativePath>
 	</parent>
 
diff --git a/security/bypass/pom.xml b/security/bypass/pom.xml
index e4ec21b..c317d60 100644
--- a/security/bypass/pom.xml
+++ b/security/bypass/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/security/keycloak/pom.xml b/security/keycloak/pom.xml
index ccfe346..220f106 100644
--- a/security/keycloak/pom.xml
+++ b/security/keycloak/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-    	<version>2.0.0-M3</version>
+    	<version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
@@ -47,7 +47,7 @@
             <dependency>
                 <groupId>org.apache.isis.security</groupId>
                 <artifactId>isis-security-keycloak</artifactId>
-                <version>2.0.0-M3</version>
+                <version>2.0.0-M3-SNAPSHOT</version>
             </dependency>
     	</dependencies>
     </dependencyManagement>
diff --git a/security/shiro/pom.xml b/security/shiro/pom.xml
index 1567602..47c406a 100644
--- a/security/shiro/pom.xml
+++ b/security/shiro/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-    	<version>2.0.0-M3</version>
+    	<version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
@@ -47,7 +47,7 @@
             <dependency>
                 <groupId>org.apache.isis.security</groupId>
                 <artifactId>isis-security-shiro</artifactId>
-                <version>2.0.0-M3</version>
+                <version>2.0.0-M3-SNAPSHOT</version>
             </dependency>
     	</dependencies>
     </dependencyManagement>
diff --git a/starters/pom.xml b/starters/pom.xml
index 7e11c3f..7234e36 100644
--- a/starters/pom.xml
+++ b/starters/pom.xml
@@ -25,7 +25,7 @@ under the License.
 	<!-- this must come before <parent> because the version is manually updated in build-core.sh -->
 	<groupId>org.apache.isis.app</groupId>
 	<artifactId>isis-app-starter-parent</artifactId>
-	<version>2.0.0-M3</version>
+	<version>2.0.0-M3-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<parent>
@@ -81,7 +81,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
 				<artifactId>isis</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -89,7 +89,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.extensions</groupId>
 				<artifactId>isis-extensions</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -97,7 +97,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.incubator</groupId>
 				<artifactId>isis-incubator</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -105,7 +105,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.legacy</groupId>
 				<artifactId>isis-legacy</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -113,7 +113,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.mappings</groupId>
 				<artifactId>isis-mappings</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -121,7 +121,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -129,7 +129,7 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -137,14 +137,14 @@ under the License.
 			<dependency>
 				<groupId>org.apache.isis.mavendeps</groupId>
 				<artifactId>isis-mavendeps-integtests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
diff --git a/subdomains/base/applib/pom.xml b/subdomains/base/applib/pom.xml
index 89abcb7..6ff8b12 100644
--- a/subdomains/base/applib/pom.xml
+++ b/subdomains/base/applib/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains-base</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 	
     <artifactId>isis-subdomains-base-applib</artifactId>
diff --git a/subdomains/base/pom.xml b/subdomains/base/pom.xml
index 5de2d11..0648b3b 100644
--- a/subdomains/base/pom.xml
+++ b/subdomains/base/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 	
     <artifactId>isis-subdomains-base</artifactId>
diff --git a/subdomains/docx/applib/pom.xml b/subdomains/docx/applib/pom.xml
index 7c373c7..842f7b8 100644
--- a/subdomains/docx/applib/pom.xml
+++ b/subdomains/docx/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-docx</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-docx-applib</artifactId>
diff --git a/subdomains/docx/pom.xml b/subdomains/docx/pom.xml
index c0d8de7..4c15f42 100644
--- a/subdomains/docx/pom.xml
+++ b/subdomains/docx/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-docx</artifactId>
diff --git a/subdomains/excel/applib/pom.xml b/subdomains/excel/applib/pom.xml
index af137f6..4e834d2 100644
--- a/subdomains/excel/applib/pom.xml
+++ b/subdomains/excel/applib/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains-excel</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-subdomains-excel-applib</artifactId>
diff --git a/subdomains/excel/fixture/pom.xml b/subdomains/excel/fixture/pom.xml
index d291b62..9c9ed4b 100644
--- a/subdomains/excel/fixture/pom.xml
+++ b/subdomains/excel/fixture/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/subdomains/excel/integtests/pom.xml b/subdomains/excel/integtests/pom.xml
index f1cecc1..e7dcced 100644
--- a/subdomains/excel/integtests/pom.xml
+++ b/subdomains/excel/integtests/pom.xml
@@ -24,7 +24,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/subdomains/excel/pom.xml b/subdomains/excel/pom.xml
index fcb4ed8..78ab857 100644
--- a/subdomains/excel/pom.xml
+++ b/subdomains/excel/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-subdomains-excel</artifactId>
diff --git a/subdomains/excel/testing/pom.xml b/subdomains/excel/testing/pom.xml
index 7d21afb..27f03ac 100644
--- a/subdomains/excel/testing/pom.xml
+++ b/subdomains/excel/testing/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.subdomains</groupId>
         <artifactId>isis-subdomains-excel</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-subdomains-excel-testing</artifactId>
diff --git a/subdomains/freemarker/applib/pom.xml b/subdomains/freemarker/applib/pom.xml
index 74cf279..13e506a 100644
--- a/subdomains/freemarker/applib/pom.xml
+++ b/subdomains/freemarker/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-freemarker</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-freemarker-applib</artifactId>
diff --git a/subdomains/freemarker/pom.xml b/subdomains/freemarker/pom.xml
index 347aac4..6181054 100644
--- a/subdomains/freemarker/pom.xml
+++ b/subdomains/freemarker/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-freemarker</artifactId>
diff --git a/subdomains/ognl/applib/pom.xml b/subdomains/ognl/applib/pom.xml
index f036321..c78194d 100644
--- a/subdomains/ognl/applib/pom.xml
+++ b/subdomains/ognl/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/subdomains/ognl/pom.xml b/subdomains/ognl/pom.xml
index ca1e524..cd1081e 100644
--- a/subdomains/ognl/pom.xml
+++ b/subdomains/ognl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-ognl</artifactId>
diff --git a/subdomains/pdfbox/applib/pom.xml b/subdomains/pdfbox/applib/pom.xml
index 6da53a8..6b984b7 100644
--- a/subdomains/pdfbox/applib/pom.xml
+++ b/subdomains/pdfbox/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-pdfbox</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-pdfbox-applib</artifactId>
diff --git a/subdomains/pdfbox/pom.xml b/subdomains/pdfbox/pom.xml
index 1c59a64..fe098b3 100644
--- a/subdomains/pdfbox/pom.xml
+++ b/subdomains/pdfbox/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-pdfbox</artifactId>
diff --git a/subdomains/pom.xml b/subdomains/pom.xml
index 726b2f6..13f1139 100644
--- a/subdomains/pom.xml
+++ b/subdomains/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -65,77 +65,77 @@
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-base-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-docx-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-testing</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-fixtures</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-excel-integtests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-freemarker-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-ognl-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-pdfbox-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-spring-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-xdocreport-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-zip-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- testing -->
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
diff --git a/subdomains/spring/applib/pom.xml b/subdomains/spring/applib/pom.xml
index 1fbbe01..24f35de 100644
--- a/subdomains/spring/applib/pom.xml
+++ b/subdomains/spring/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-spring</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-spring-applib</artifactId>
diff --git a/subdomains/spring/pom.xml b/subdomains/spring/pom.xml
index 7e58f6e..7e28707 100644
--- a/subdomains/spring/pom.xml
+++ b/subdomains/spring/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-spring</artifactId>
diff --git a/subdomains/xdocreport/applib/pom.xml b/subdomains/xdocreport/applib/pom.xml
index 115603f..a1d3137 100644
--- a/subdomains/xdocreport/applib/pom.xml
+++ b/subdomains/xdocreport/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-xdocreport</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-xdocreport-applib</artifactId>
diff --git a/subdomains/xdocreport/pom.xml b/subdomains/xdocreport/pom.xml
index f231abf..03f34b0 100644
--- a/subdomains/xdocreport/pom.xml
+++ b/subdomains/xdocreport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-xdocreport</artifactId>
diff --git a/subdomains/zip/applib/pom.xml b/subdomains/zip/applib/pom.xml
index dfc436c..f7e2753 100644
--- a/subdomains/zip/applib/pom.xml
+++ b/subdomains/zip/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains-zip</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-zip-applib</artifactId>
diff --git a/subdomains/zip/pom.xml b/subdomains/zip/pom.xml
index a6ba4c2..9696cb9 100644
--- a/subdomains/zip/pom.xml
+++ b/subdomains/zip/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.subdomains</groupId>
 		<artifactId>isis-subdomains</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-subdomains-zip</artifactId>
diff --git a/testing/fakedata/applib/pom.xml b/testing/fakedata/applib/pom.xml
index 884395b..5004f3c 100644
--- a/testing/fakedata/applib/pom.xml
+++ b/testing/fakedata/applib/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-fakedata</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-testing-fakedata-applib</artifactId>
diff --git a/testing/fakedata/fixtures/pom.xml b/testing/fakedata/fixtures/pom.xml
index ea00673..dd85e2c 100644
--- a/testing/fakedata/fixtures/pom.xml
+++ b/testing/fakedata/fixtures/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-fakedata</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-testing-fakedata-fixtures</artifactId>
diff --git a/testing/fakedata/integtests/pom.xml b/testing/fakedata/integtests/pom.xml
index ac3a527..973d5d7 100644
--- a/testing/fakedata/integtests/pom.xml
+++ b/testing/fakedata/integtests/pom.xml
@@ -24,7 +24,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-fakedata</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-testing-fakedata-integtests</artifactId>
diff --git a/testing/fakedata/pom.xml b/testing/fakedata/pom.xml
index 7e4db20..3f7cef4 100644
--- a/testing/fakedata/pom.xml
+++ b/testing/fakedata/pom.xml
@@ -23,7 +23,7 @@ under the License.
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-testing-fakedata</artifactId>
diff --git a/testing/fixtures/applib/pom.xml b/testing/fixtures/applib/pom.xml
index 178f3b6..c136aca 100644
--- a/testing/fixtures/applib/pom.xml
+++ b/testing/fixtures/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-fixtures</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-fixtures-applib</artifactId>
diff --git a/testing/fixtures/pom.xml b/testing/fixtures/pom.xml
index 2e755a6..11785d7 100644
--- a/testing/fixtures/pom.xml
+++ b/testing/fixtures/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-fixtures</artifactId>
diff --git a/testing/h2console/pom.xml b/testing/h2console/pom.xml
index 76737ea..324c84d 100644
--- a/testing/h2console/pom.xml
+++ b/testing/h2console/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-h2console</artifactId>
diff --git a/testing/h2console/ui/pom.xml b/testing/h2console/ui/pom.xml
index f359cab..34fe560 100644
--- a/testing/h2console/ui/pom.xml
+++ b/testing/h2console/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-h2console</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-h2console-ui</artifactId>
diff --git a/testing/hsqldbmgr/pom.xml b/testing/hsqldbmgr/pom.xml
index 226a8f9..4d45c3d 100644
--- a/testing/hsqldbmgr/pom.xml
+++ b/testing/hsqldbmgr/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-hsqldbmgr</artifactId>
diff --git a/testing/hsqldbmgr/ui/pom.xml b/testing/hsqldbmgr/ui/pom.xml
index d2841bd..2912469 100644
--- a/testing/hsqldbmgr/ui/pom.xml
+++ b/testing/hsqldbmgr/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-hsqldbmgr</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-hsqldbmgr-ui</artifactId>
diff --git a/testing/integtestsupport/applib/pom.xml b/testing/integtestsupport/applib/pom.xml
index 74a9b0f..f2ca83b 100644
--- a/testing/integtestsupport/applib/pom.xml
+++ b/testing/integtestsupport/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-integtestsupport</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-integtestsupport-applib</artifactId>
diff --git a/testing/integtestsupport/pom.xml b/testing/integtestsupport/pom.xml
index eb4ce2b..7f5c8dd 100644
--- a/testing/integtestsupport/pom.xml
+++ b/testing/integtestsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-integtestsupport</artifactId>
diff --git a/testing/pom.xml b/testing/pom.xml
index 859936c..2030f64 100644
--- a/testing/pom.xml
+++ b/testing/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -66,60 +66,60 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-integtestsupport-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-h2console-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-hsqldbmgr-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-specsupport-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fakedata-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fakedata-fixtures</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fakedata-integtests</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-unittestsupport-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- dependencies -->
 			<dependency>
 				<groupId>org.apache.isis.subdomains</groupId>
 				<artifactId>isis-subdomains-spring-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 		</dependencies>
diff --git a/testing/specsupport/applib/pom.xml b/testing/specsupport/applib/pom.xml
index 6be2729..c9b7c89 100644
--- a/testing/specsupport/applib/pom.xml
+++ b/testing/specsupport/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing-specsupport</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-specsupport-applib</artifactId>
diff --git a/testing/specsupport/pom.xml b/testing/specsupport/pom.xml
index fb5d4a7..c71e737 100644
--- a/testing/specsupport/pom.xml
+++ b/testing/specsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.testing</groupId>
 		<artifactId>isis-testing</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-testing-specsupport</artifactId>
diff --git a/testing/unittestsupport/applib/pom.xml b/testing/unittestsupport/applib/pom.xml
index 51f972a..61fd607 100644
--- a/testing/unittestsupport/applib/pom.xml
+++ b/testing/unittestsupport/applib/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing-unittestsupport</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-testing-unittestsupport-applib</artifactId>
diff --git a/testing/unittestsupport/pom.xml b/testing/unittestsupport/pom.xml
index 8cdbad6..20a3eb8 100644
--- a/testing/unittestsupport/pom.xml
+++ b/testing/unittestsupport/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.testing</groupId>
         <artifactId>isis-testing</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-testing-unittestsupport</artifactId>
diff --git a/valuetypes/asciidoc/applib/pom.xml b/valuetypes/asciidoc/applib/pom.xml
index d6ca77d..6610333 100644
--- a/valuetypes/asciidoc/applib/pom.xml
+++ b/valuetypes/asciidoc/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-asciidoc</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-asciidoc-applib</artifactId>
diff --git a/valuetypes/asciidoc/pom.xml b/valuetypes/asciidoc/pom.xml
index 5f4fd1f..389838c 100644
--- a/valuetypes/asciidoc/pom.xml
+++ b/valuetypes/asciidoc/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-asciidoc</artifactId>
diff --git a/valuetypes/asciidoc/ui/pom.xml b/valuetypes/asciidoc/ui/pom.xml
index e9e75dd..5599a87 100644
--- a/valuetypes/asciidoc/ui/pom.xml
+++ b/valuetypes/asciidoc/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-asciidoc</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-asciidoc-ui</artifactId>
diff --git a/valuetypes/markdown/applib/pom.xml b/valuetypes/markdown/applib/pom.xml
index 5e6d89f..1332a1f 100644
--- a/valuetypes/markdown/applib/pom.xml
+++ b/valuetypes/markdown/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-markdown</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-markdown-applib</artifactId>
diff --git a/valuetypes/markdown/pom.xml b/valuetypes/markdown/pom.xml
index 5faf6a5..3d3e8b0 100644
--- a/valuetypes/markdown/pom.xml
+++ b/valuetypes/markdown/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-markdown</artifactId>
diff --git a/valuetypes/markdown/ui/pom.xml b/valuetypes/markdown/ui/pom.xml
index 4169b53..8dd8c68 100644
--- a/valuetypes/markdown/ui/pom.xml
+++ b/valuetypes/markdown/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-markdown</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-markdown-ui</artifactId>
diff --git a/valuetypes/pom.xml b/valuetypes/pom.xml
index ad8effa..4a5a9d6 100644
--- a/valuetypes/pom.xml
+++ b/valuetypes/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
@@ -64,39 +64,39 @@
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-asciidoc-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-asciidoc-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-markdown-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-markdown-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-sse-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-sse-metamodel</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
 				<artifactId>isis-valuetypes-sse-ui</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 			<!-- testing -->
@@ -104,7 +104,7 @@
 			<dependency>
 				<groupId>org.apache.isis.testing</groupId>
 				<artifactId>isis-testing-fixtures-applib</artifactId>
-				<version>2.0.0-M3</version>
+				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 
 		</dependencies>
diff --git a/valuetypes/sse/applib/pom.xml b/valuetypes/sse/applib/pom.xml
index a4d2254..ef0093a 100644
--- a/valuetypes/sse/applib/pom.xml
+++ b/valuetypes/sse/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/valuetypes/sse/metamodel/pom.xml b/valuetypes/sse/metamodel/pom.xml
index 03fb654..a210a21 100644
--- a/valuetypes/sse/metamodel/pom.xml
+++ b/valuetypes/sse/metamodel/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-sse</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-sse-metamodel</artifactId>
diff --git a/valuetypes/sse/pom.xml b/valuetypes/sse/pom.xml
index cd2e6eb..4f2d0a3 100644
--- a/valuetypes/sse/pom.xml
+++ b/valuetypes/sse/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-sse</artifactId>
diff --git a/valuetypes/sse/ui/pom.xml b/valuetypes/sse/ui/pom.xml
index a70c504..704b1fd 100644
--- a/valuetypes/sse/ui/pom.xml
+++ b/valuetypes/sse/ui/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.valuetypes</groupId>
 		<artifactId>isis-valuetypes-sse</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-valuetypes-sse-ui</artifactId>
diff --git a/viewers/restfulobjects/applib/pom.xml b/viewers/restfulobjects/applib/pom.xml
index f6f23c6..69e7ded 100644
--- a/viewers/restfulobjects/applib/pom.xml
+++ b/viewers/restfulobjects/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-restfulobjects</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
 	<artifactId>isis-viewer-restfulobjects-applib</artifactId>
diff --git a/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml b/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml
index 86428e7..b856ab8 100644
--- a/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml
+++ b/viewers/restfulobjects/jaxrs-resteasy-4/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.isis.viewer</groupId>
 		<artifactId>isis-viewer-restfulobjects</artifactId>
-		<version>2.0.0-M3</version>
+		<version>2.0.0-M3-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-viewer-restfulobjects-jaxrsresteasy4</artifactId>
diff --git a/viewers/restfulobjects/pom.xml b/viewers/restfulobjects/pom.xml
index c480bf2..6364f83 100644
--- a/viewers/restfulobjects/pom.xml
+++ b/viewers/restfulobjects/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/viewers/restfulobjects/rendering/pom.xml b/viewers/restfulobjects/rendering/pom.xml
index c00d1ad..83ea189 100644
--- a/viewers/restfulobjects/rendering/pom.xml
+++ b/viewers/restfulobjects/rendering/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-restfulobjects</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-viewer-restfulobjects-rendering</artifactId>
diff --git a/viewers/restfulobjects/viewer/pom.xml b/viewers/restfulobjects/viewer/pom.xml
index d24e1a0..1173f0b 100644
--- a/viewers/restfulobjects/viewer/pom.xml
+++ b/viewers/restfulobjects/viewer/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-restfulobjects</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-viewer-restfulobjects-viewer</artifactId>
diff --git a/viewers/wicket/model/pom.xml b/viewers/wicket/model/pom.xml
index d6d0273..5239e7d 100644
--- a/viewers/wicket/model/pom.xml
+++ b/viewers/wicket/model/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-wicket</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-viewer-wicket-model</artifactId>
diff --git a/viewers/wicket/pom.xml b/viewers/wicket/pom.xml
index bd67682..714b59a 100644
--- a/viewers/wicket/pom.xml
+++ b/viewers/wicket/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/viewers/wicket/ui/pom.xml b/viewers/wicket/ui/pom.xml
index ef8b6d5..27b9278 100644
--- a/viewers/wicket/ui/pom.xml
+++ b/viewers/wicket/ui/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-wicket</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-viewer-wicket-ui</artifactId>
diff --git a/viewers/wicket/viewer/pom.xml b/viewers/wicket/viewer/pom.xml
index 5dab213..1c053c9 100644
--- a/viewers/wicket/viewer/pom.xml
+++ b/viewers/wicket/viewer/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.viewer</groupId>
         <artifactId>isis-viewer-wicket</artifactId>
-        <version>2.0.0-M3</version>
+        <version>2.0.0-M3-SNAPSHOT</version>
     </parent>
 
     <name>Apache Isis Viewer - Wicket (Viewer)</name>


[isis] 13/41: ISIS-2062: add license to generated _nav.adoc for config docs

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

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

commit ab87187ed85f03866f6d66dd19bcbf7877d258f9
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Mar 8 14:06:01 2020 +0000

    ISIS-2062: add license to generated _nav.adoc for config docs
---
 core/config/generateConfigDocs.groovy | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/core/config/generateConfigDocs.groovy b/core/config/generateConfigDocs.groovy
index 73f1cd9..8edbe39 100644
--- a/core/config/generateConfigDocs.groovy
+++ b/core/config/generateConfigDocs.groovy
@@ -208,9 +208,13 @@ for (property in data.properties) {
     }
 }
 
+def license = ":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 app [...]
 new File(outputDir).mkdirs()
 
 def bufNav = StringBuilder.newInstance()
+bufNav << """${license}"
+
+"""
 
 for (PropertyGroup group in groups) {
     def buf = StringBuilder.newInstance()
@@ -219,7 +223,7 @@ for (PropertyGroup group in groups) {
         bufNav << "** xref:refguide:config:sections/${group.fileName()}.adoc[${group.name}]\n"
 
         buf << """= ${group.name}
-: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 [...]
+${license}
 :page-role: -toc
 
 
@@ -346,7 +350,7 @@ static String anchor(String str) {
     return str;
 }
 
-static String format(String str, int len = 30) {
+static String format(String str, int len = 35) {
 
     String lineFeed = " +\n";
 


[isis] 35/41: ISIS-2278: fixes default for translation.po.mode (removed an enum earlier)

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

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

commit a90ead54a0069701071f6ac04a9c3b752d3eabf7
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 16 09:48:47 2020 +0000

    ISIS-2278: fixes default for translation.po.mode (removed an enum earlier)
---
 .../java/org/apache/isis/core/config/presets/NoTranslations.properties  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/config/src/main/java/org/apache/isis/core/config/presets/NoTranslations.properties b/core/config/src/main/java/org/apache/isis/core/config/presets/NoTranslations.properties
index 8efdb7a..b9711f5 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/presets/NoTranslations.properties
+++ b/core/config/src/main/java/org/apache/isis/core/config/presets/NoTranslations.properties
@@ -15,4 +15,4 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-isis.core.runtime-services.translation.po.mode = disable
\ No newline at end of file
+isis.core.runtime-services.translation.po.mode = disabled
\ No newline at end of file


[isis] 19/41: ISIS-2062: converts antora.yml to 'latest' rather than 'master'

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

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

commit 80bb00bb25dd5bfe3ebd63b99e67e4f59ea6307b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 9 23:43:26 2020 +0000

    ISIS-2062: converts antora.yml to 'latest' rather than 'master'
---
 antora/components/_component-template/antora.yml          | 2 +-
 antora/components/comguide/antora.yml                     | 2 +-
 antora/components/conguide/antora.yml                     | 2 +-
 antora/components/docs/antora.yml                         | 2 +-
 antora/components/relnotes/antora.yml                     | 2 +-
 antora/components/setupguide/antora.yml                   | 2 +-
 api/adoc/refguide/antora.yml                              | 2 +-
 api/adoc/userguide/antora.yml                             | 2 +-
 api/applib/src/main/adoc/antora.yml                       | 2 +-
 api/schema/src/main/adoc/antora.yml                       | 2 +-
 core/adoc/antora.yml                                      | 2 +-
 core/codegen-bytebuddy/src/main/adoc/antora.yml           | 2 +-
 core/commons/src/main/adoc/antora.yml                     | 2 +-
 core/config/src/main/adoc/antora.yml                      | 2 +-
 core/internaltestsupport/src/main/adoc/antora.yml         | 2 +-
 core/metamodel/src/main/adoc/antora.yml                   | 2 +-
 core/runtime/src/main/adoc/antora.yml                     | 2 +-
 core/runtimeservices/src/main/adoc/antora.yml             | 2 +-
 core/security/src/main/adoc/antora.yml                    | 2 +-
 core/webapp/src/main/adoc/antora.yml                      | 2 +-
 examples/demo/src/main/adoc/antora.yml                    | 2 +-
 examples/smoketests/src/main/adoc/antora.yml              | 2 +-
 extensions/adoc/antora.yml                                | 2 +-
 extensions/core/command-log/adoc/antora.yml               | 2 +-
 extensions/core/flyway/adoc/antora.yml                    | 2 +-
 extensions/security/audit-trail/adoc/antora.yml           | 2 +-
 extensions/security/secman/adoc/antora.yml                | 2 +-
 extensions/security/session-log/adoc/antora.yml           | 2 +-
 extensions/security/shiro-realm-ldap/adoc/antora.yml      | 2 +-
 extensions/vro/cors/adoc/antora.yml                       | 2 +-
 extensions/vw/exceldownload/adoc/antora.yml               | 2 +-
 extensions/vw/fullcalendar/adoc/antora.yml                | 2 +-
 extensions/vw/pdfjs/adoc/antora.yml                       | 2 +-
 incubator/adoc/antora.yml                                 | 2 +-
 incubator/core/model/src/main/adoc/antora.yml             | 2 +-
 incubator/mappings/microprofile/src/main/adoc/antora.yml  | 2 +-
 legacy/adoc/antora.yml                                    | 2 +-
 legacy/extensions/core/applib/src/main/adoc/antora.yml    | 2 +-
 legacy/extensions/core/commons/src/main/adoc/antora.yml   | 2 +-
 legacy/extensions/core/metamodel/src/main/adoc/antora.yml | 2 +-
 legacy/extensions/core/runtime/src/main/adoc/antora.yml   | 2 +-
 legacy/mappings/restclient/src/main/adoc/antora.yml       | 2 +-
 legacy/subdomains/servletapi/src/main/adoc/antora.yml     | 2 +-
 legacy/testing/mavenplugin/src/main/doc/antora.yml        | 2 +-
 mappings/adoc/antora.yml                                  | 2 +-
 mappings/jaxrsclient/adoc/antora.yml                      | 2 +-
 mappings/minio/adoc/antora.yml                            | 2 +-
 mappings/publisher/adoc/antora.yml                        | 2 +-
 mappings/restclient/adoc/antora.yml                       | 2 +-
 mappings/slack/adoc/antora.yml                            | 2 +-
 mavendeps/adoc/antora.yml                                 | 2 +-
 persistence/jdo/adoc/antora.yml                           | 2 +-
 security/adoc/antora.yml                                  | 2 +-
 security/bypass/src/main/adoc/antora.yml                  | 2 +-
 security/keycloak/src/main/adoc/antora.yml                | 2 +-
 security/shiro/src/main/adoc/antora.yml                   | 2 +-
 starters/adoc/antora.yml                                  | 2 +-
 subdomains/adoc/antora.yml                                | 2 +-
 subdomains/base/adoc/antora.yml                           | 2 +-
 subdomains/docx/adoc/antora.yml                           | 2 +-
 subdomains/excel/adoc/antora.yml                          | 2 +-
 subdomains/freemarker/adoc/antora.yml                     | 2 +-
 subdomains/ognl/adoc/antora.yml                           | 2 +-
 subdomains/pdfbox/adoc/antora.yml                         | 2 +-
 subdomains/spring/adoc/antora.yml                         | 2 +-
 subdomains/xdocreport/adoc/antora.yml                     | 2 +-
 subdomains/zip/adoc/antora.yml                            | 2 +-
 testing/adoc/antora.yml                                   | 2 +-
 testing/fakedata/adoc/antora.yml                          | 2 +-
 testing/fixtures/adoc/antora.yml                          | 2 +-
 testing/h2console/adoc/antora.yml                         | 2 +-
 testing/hsqldbmgr/adoc/antora.yml                         | 2 +-
 testing/integtestsupport/adoc/antora.yml                  | 2 +-
 testing/specsupport/adoc/antora.yml                       | 2 +-
 testing/unittestsupport/adoc/antora.yml                   | 2 +-
 valuetypes/adoc/antora.yml                                | 2 +-
 valuetypes/asciidoc/adoc/antora.yml                       | 2 +-
 valuetypes/markdown/adoc/antora.yml                       | 2 +-
 valuetypes/sse/adoc/antora.yml                            | 2 +-
 viewers/restfulobjects/adoc/antora.yml                    | 2 +-
 viewers/wicket/adoc/antora.yml                            | 2 +-
 81 files changed, 81 insertions(+), 81 deletions(-)

diff --git a/antora/components/_component-template/antora.yml b/antora/components/_component-template/antora.yml
index 2a5356d..85eeab2 100644
--- a/antora/components/_component-template/antora.yml
+++ b/antora/components/_component-template/antora.yml
@@ -17,7 +17,7 @@
 
 name: _component-template
 title: "Component Template"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/antora/components/comguide/antora.yml b/antora/components/comguide/antora.yml
index e21dcfe..9551f2a 100644
--- a/antora/components/comguide/antora.yml
+++ b/antora/components/comguide/antora.yml
@@ -17,7 +17,7 @@
 
 name: comguide
 title: "Committers' Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/antora/components/conguide/antora.yml b/antora/components/conguide/antora.yml
index ff2e151..19139bf 100644
--- a/antora/components/conguide/antora.yml
+++ b/antora/components/conguide/antora.yml
@@ -17,7 +17,7 @@
 
 name: conguide
 title: "Contributors' Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/antora/components/docs/antora.yml b/antora/components/docs/antora.yml
index 2b2d23c..b8b03a3 100644
--- a/antora/components/docs/antora.yml
+++ b/antora/components/docs/antora.yml
@@ -17,7 +17,7 @@
 
 name: docs
 title: " "
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/antora/components/relnotes/antora.yml b/antora/components/relnotes/antora.yml
index a5d53e0..eb0cb20 100644
--- a/antora/components/relnotes/antora.yml
+++ b/antora/components/relnotes/antora.yml
@@ -17,7 +17,7 @@
 
 name: relnotes
 title: "Release Notes"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/antora/components/setupguide/antora.yml b/antora/components/setupguide/antora.yml
index d619208..7350f7c 100644
--- a/antora/components/setupguide/antora.yml
+++ b/antora/components/setupguide/antora.yml
@@ -17,7 +17,7 @@
 
 name: setupguide
 title: "Setup Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/api/adoc/refguide/antora.yml b/api/adoc/refguide/antora.yml
index 68691ac..86ade94 100644
--- a/api/adoc/refguide/antora.yml
+++ b/api/adoc/refguide/antora.yml
@@ -17,7 +17,7 @@
 
 name: refguide
 title: "Reference Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/api/adoc/userguide/antora.yml b/api/adoc/userguide/antora.yml
index 80d412b..70880f4 100644
--- a/api/adoc/userguide/antora.yml
+++ b/api/adoc/userguide/antora.yml
@@ -17,7 +17,7 @@
 
 name: userguide
 title: "User Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/api/applib/src/main/adoc/antora.yml b/api/applib/src/main/adoc/antora.yml
index 5a9e0d4..847bc30 100644
--- a/api/applib/src/main/adoc/antora.yml
+++ b/api/applib/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: refguide
-version: master
+version: latest
diff --git a/api/schema/src/main/adoc/antora.yml b/api/schema/src/main/adoc/antora.yml
index 5a9e0d4..847bc30 100644
--- a/api/schema/src/main/adoc/antora.yml
+++ b/api/schema/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: refguide
-version: master
+version: latest
diff --git a/core/adoc/antora.yml b/core/adoc/antora.yml
index fcf1dbb..c900da2 100644
--- a/core/adoc/antora.yml
+++ b/core/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: core
 title: "Core Framework"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/core/codegen-bytebuddy/src/main/adoc/antora.yml b/core/codegen-bytebuddy/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/codegen-bytebuddy/src/main/adoc/antora.yml
+++ b/core/codegen-bytebuddy/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/core/commons/src/main/adoc/antora.yml b/core/commons/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/commons/src/main/adoc/antora.yml
+++ b/core/commons/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/core/config/src/main/adoc/antora.yml b/core/config/src/main/adoc/antora.yml
index 5a9e0d4..847bc30 100644
--- a/core/config/src/main/adoc/antora.yml
+++ b/core/config/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: refguide
-version: master
+version: latest
diff --git a/core/internaltestsupport/src/main/adoc/antora.yml b/core/internaltestsupport/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/internaltestsupport/src/main/adoc/antora.yml
+++ b/core/internaltestsupport/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/core/metamodel/src/main/adoc/antora.yml b/core/metamodel/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/metamodel/src/main/adoc/antora.yml
+++ b/core/metamodel/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/core/runtime/src/main/adoc/antora.yml b/core/runtime/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/runtime/src/main/adoc/antora.yml
+++ b/core/runtime/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/core/runtimeservices/src/main/adoc/antora.yml b/core/runtimeservices/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/runtimeservices/src/main/adoc/antora.yml
+++ b/core/runtimeservices/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/core/security/src/main/adoc/antora.yml b/core/security/src/main/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/core/security/src/main/adoc/antora.yml
+++ b/core/security/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/core/webapp/src/main/adoc/antora.yml b/core/webapp/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/core/webapp/src/main/adoc/antora.yml
+++ b/core/webapp/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/examples/demo/src/main/adoc/antora.yml b/examples/demo/src/main/adoc/antora.yml
index 737b35a..072c382 100644
--- a/examples/demo/src/main/adoc/antora.yml
+++ b/examples/demo/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: docs
-version: master
+version: latest
diff --git a/examples/smoketests/src/main/adoc/antora.yml b/examples/smoketests/src/main/adoc/antora.yml
index df03a54..1a59920 100644
--- a/examples/smoketests/src/main/adoc/antora.yml
+++ b/examples/smoketests/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: core
-version: master
+version: latest
diff --git a/extensions/adoc/antora.yml b/extensions/adoc/antora.yml
index 4dae1f4..2dde8c1 100644
--- a/extensions/adoc/antora.yml
+++ b/extensions/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: extensions
 title: "Extensions Catalog"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/extensions/core/command-log/adoc/antora.yml b/extensions/core/command-log/adoc/antora.yml
index 8f79622..f59b33f 100644
--- a/extensions/core/command-log/adoc/antora.yml
+++ b/extensions/core/command-log/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: extensions
-version: master
+version: latest
diff --git a/extensions/core/flyway/adoc/antora.yml b/extensions/core/flyway/adoc/antora.yml
index 37fdc2f..448d819 100644
--- a/extensions/core/flyway/adoc/antora.yml
+++ b/extensions/core/flyway/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: userguide
-version: master
+version: latest
diff --git a/extensions/security/audit-trail/adoc/antora.yml b/extensions/security/audit-trail/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/extensions/security/audit-trail/adoc/antora.yml
+++ b/extensions/security/audit-trail/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/extensions/security/secman/adoc/antora.yml b/extensions/security/secman/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/extensions/security/secman/adoc/antora.yml
+++ b/extensions/security/secman/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/extensions/security/session-log/adoc/antora.yml b/extensions/security/session-log/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/extensions/security/session-log/adoc/antora.yml
+++ b/extensions/security/session-log/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/extensions/security/shiro-realm-ldap/adoc/antora.yml b/extensions/security/shiro-realm-ldap/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/extensions/security/shiro-realm-ldap/adoc/antora.yml
+++ b/extensions/security/shiro-realm-ldap/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/extensions/vro/cors/adoc/antora.yml b/extensions/vro/cors/adoc/antora.yml
index f81c19f..c83b9c2 100644
--- a/extensions/vro/cors/adoc/antora.yml
+++ b/extensions/vro/cors/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: vro
-version: master
+version: latest
diff --git a/extensions/vw/exceldownload/adoc/antora.yml b/extensions/vw/exceldownload/adoc/antora.yml
index 7c10473..c1675fe 100644
--- a/extensions/vw/exceldownload/adoc/antora.yml
+++ b/extensions/vw/exceldownload/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: vw
-version: master
+version: latest
diff --git a/extensions/vw/fullcalendar/adoc/antora.yml b/extensions/vw/fullcalendar/adoc/antora.yml
index 7c10473..c1675fe 100644
--- a/extensions/vw/fullcalendar/adoc/antora.yml
+++ b/extensions/vw/fullcalendar/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: vw
-version: master
+version: latest
diff --git a/extensions/vw/pdfjs/adoc/antora.yml b/extensions/vw/pdfjs/adoc/antora.yml
index 7c10473..c1675fe 100644
--- a/extensions/vw/pdfjs/adoc/antora.yml
+++ b/extensions/vw/pdfjs/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: vw
-version: master
+version: latest
diff --git a/incubator/adoc/antora.yml b/incubator/adoc/antora.yml
index 47d4439..7df66bf 100644
--- a/incubator/adoc/antora.yml
+++ b/incubator/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: incubator
 title: "Incubator Catalog"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/incubator/core/model/src/main/adoc/antora.yml b/incubator/core/model/src/main/adoc/antora.yml
index c12ebb4..bc87cdc 100644
--- a/incubator/core/model/src/main/adoc/antora.yml
+++ b/incubator/core/model/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: incubator
-version: master
+version: latest
diff --git a/incubator/mappings/microprofile/src/main/adoc/antora.yml b/incubator/mappings/microprofile/src/main/adoc/antora.yml
index c12ebb4..bc87cdc 100644
--- a/incubator/mappings/microprofile/src/main/adoc/antora.yml
+++ b/incubator/mappings/microprofile/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: incubator
-version: master
+version: latest
diff --git a/legacy/adoc/antora.yml b/legacy/adoc/antora.yml
index 8fd6ab3..61f1510 100644
--- a/legacy/adoc/antora.yml
+++ b/legacy/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: legacy
 title: "Legacy Catalog"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/legacy/extensions/core/applib/src/main/adoc/antora.yml b/legacy/extensions/core/applib/src/main/adoc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/extensions/core/applib/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/applib/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/legacy/extensions/core/commons/src/main/adoc/antora.yml b/legacy/extensions/core/commons/src/main/adoc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/extensions/core/commons/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/commons/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/legacy/extensions/core/metamodel/src/main/adoc/antora.yml b/legacy/extensions/core/metamodel/src/main/adoc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/extensions/core/metamodel/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/metamodel/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/legacy/extensions/core/runtime/src/main/adoc/antora.yml b/legacy/extensions/core/runtime/src/main/adoc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/extensions/core/runtime/src/main/adoc/antora.yml
+++ b/legacy/extensions/core/runtime/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/legacy/mappings/restclient/src/main/adoc/antora.yml b/legacy/mappings/restclient/src/main/adoc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/mappings/restclient/src/main/adoc/antora.yml
+++ b/legacy/mappings/restclient/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/legacy/subdomains/servletapi/src/main/adoc/antora.yml b/legacy/subdomains/servletapi/src/main/adoc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/subdomains/servletapi/src/main/adoc/antora.yml
+++ b/legacy/subdomains/servletapi/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/legacy/testing/mavenplugin/src/main/doc/antora.yml b/legacy/testing/mavenplugin/src/main/doc/antora.yml
index 2c98dd6..3938f85 100644
--- a/legacy/testing/mavenplugin/src/main/doc/antora.yml
+++ b/legacy/testing/mavenplugin/src/main/doc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: legacy
-version: master
+version: latest
diff --git a/mappings/adoc/antora.yml b/mappings/adoc/antora.yml
index 7883d84..7a27b7f 100644
--- a/mappings/adoc/antora.yml
+++ b/mappings/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: mappings
 title: "BC Mappings Catalog"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/mappings/jaxrsclient/adoc/antora.yml b/mappings/jaxrsclient/adoc/antora.yml
index 4937263..ed780ec 100644
--- a/mappings/jaxrsclient/adoc/antora.yml
+++ b/mappings/jaxrsclient/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: mappings
-version: master
+version: latest
diff --git a/mappings/minio/adoc/antora.yml b/mappings/minio/adoc/antora.yml
index 4937263..ed780ec 100644
--- a/mappings/minio/adoc/antora.yml
+++ b/mappings/minio/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: mappings
-version: master
+version: latest
diff --git a/mappings/publisher/adoc/antora.yml b/mappings/publisher/adoc/antora.yml
index 4937263..ed780ec 100644
--- a/mappings/publisher/adoc/antora.yml
+++ b/mappings/publisher/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: mappings
-version: master
+version: latest
diff --git a/mappings/restclient/adoc/antora.yml b/mappings/restclient/adoc/antora.yml
index 4937263..ed780ec 100644
--- a/mappings/restclient/adoc/antora.yml
+++ b/mappings/restclient/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: mappings
-version: master
+version: latest
diff --git a/mappings/slack/adoc/antora.yml b/mappings/slack/adoc/antora.yml
index 4937263..ed780ec 100644
--- a/mappings/slack/adoc/antora.yml
+++ b/mappings/slack/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: mappings
-version: master
+version: latest
diff --git a/mavendeps/adoc/antora.yml b/mavendeps/adoc/antora.yml
index 737b35a..072c382 100644
--- a/mavendeps/adoc/antora.yml
+++ b/mavendeps/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: docs
-version: master
+version: latest
diff --git a/persistence/jdo/adoc/antora.yml b/persistence/jdo/adoc/antora.yml
index 01f1ac2..f58f7ff 100644
--- a/persistence/jdo/adoc/antora.yml
+++ b/persistence/jdo/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: pjdo
 title: "JDO/DataNucleus"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
   - modules/ROOT/nav.adoc
diff --git a/security/adoc/antora.yml b/security/adoc/antora.yml
index 708a07c..c6687a5 100644
--- a/security/adoc/antora.yml
+++ b/security/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: security
 title: "Security Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/security/bypass/src/main/adoc/antora.yml b/security/bypass/src/main/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/security/bypass/src/main/adoc/antora.yml
+++ b/security/bypass/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/security/keycloak/src/main/adoc/antora.yml b/security/keycloak/src/main/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/security/keycloak/src/main/adoc/antora.yml
+++ b/security/keycloak/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/security/shiro/src/main/adoc/antora.yml b/security/shiro/src/main/adoc/antora.yml
index 27fdf15..2be1151 100644
--- a/security/shiro/src/main/adoc/antora.yml
+++ b/security/shiro/src/main/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: security
-version: master
+version: latest
diff --git a/starters/adoc/antora.yml b/starters/adoc/antora.yml
index 737b35a..072c382 100644
--- a/starters/adoc/antora.yml
+++ b/starters/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: docs
-version: master
+version: latest
diff --git a/subdomains/adoc/antora.yml b/subdomains/adoc/antora.yml
index b1f1ed7..972e1f9 100644
--- a/subdomains/adoc/antora.yml
+++ b/subdomains/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: subdomains
 title: "Subdomains Catalog"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/subdomains/base/adoc/antora.yml b/subdomains/base/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/base/adoc/antora.yml
+++ b/subdomains/base/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/docx/adoc/antora.yml b/subdomains/docx/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/docx/adoc/antora.yml
+++ b/subdomains/docx/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/excel/adoc/antora.yml b/subdomains/excel/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/excel/adoc/antora.yml
+++ b/subdomains/excel/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/freemarker/adoc/antora.yml b/subdomains/freemarker/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/freemarker/adoc/antora.yml
+++ b/subdomains/freemarker/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/ognl/adoc/antora.yml b/subdomains/ognl/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/ognl/adoc/antora.yml
+++ b/subdomains/ognl/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/pdfbox/adoc/antora.yml b/subdomains/pdfbox/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/pdfbox/adoc/antora.yml
+++ b/subdomains/pdfbox/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/spring/adoc/antora.yml b/subdomains/spring/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/spring/adoc/antora.yml
+++ b/subdomains/spring/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/xdocreport/adoc/antora.yml b/subdomains/xdocreport/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/xdocreport/adoc/antora.yml
+++ b/subdomains/xdocreport/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/subdomains/zip/adoc/antora.yml b/subdomains/zip/adoc/antora.yml
index 2428799..1044dbb 100644
--- a/subdomains/zip/adoc/antora.yml
+++ b/subdomains/zip/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: subdomains
-version: master
+version: latest
diff --git a/testing/adoc/antora.yml b/testing/adoc/antora.yml
index 15ed0a7..e8921cb 100644
--- a/testing/adoc/antora.yml
+++ b/testing/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: testing
 title: "Testing Guide"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/testing/fakedata/adoc/antora.yml b/testing/fakedata/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/fakedata/adoc/antora.yml
+++ b/testing/fakedata/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/testing/fixtures/adoc/antora.yml b/testing/fixtures/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/fixtures/adoc/antora.yml
+++ b/testing/fixtures/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/testing/h2console/adoc/antora.yml b/testing/h2console/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/h2console/adoc/antora.yml
+++ b/testing/h2console/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/testing/hsqldbmgr/adoc/antora.yml b/testing/hsqldbmgr/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/hsqldbmgr/adoc/antora.yml
+++ b/testing/hsqldbmgr/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/testing/integtestsupport/adoc/antora.yml b/testing/integtestsupport/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/integtestsupport/adoc/antora.yml
+++ b/testing/integtestsupport/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/testing/specsupport/adoc/antora.yml b/testing/specsupport/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/specsupport/adoc/antora.yml
+++ b/testing/specsupport/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/testing/unittestsupport/adoc/antora.yml b/testing/unittestsupport/adoc/antora.yml
index 3b42927..3c95843 100644
--- a/testing/unittestsupport/adoc/antora.yml
+++ b/testing/unittestsupport/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: testing
-version: master
+version: latest
diff --git a/valuetypes/adoc/antora.yml b/valuetypes/adoc/antora.yml
index bb6bf02..46395c9 100644
--- a/valuetypes/adoc/antora.yml
+++ b/valuetypes/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: valuetypes
 title: "Value Types Catalog"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/valuetypes/asciidoc/adoc/antora.yml b/valuetypes/asciidoc/adoc/antora.yml
index f4a330b..0f50856 100644
--- a/valuetypes/asciidoc/adoc/antora.yml
+++ b/valuetypes/asciidoc/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: valuetypes
-version: master
+version: latest
diff --git a/valuetypes/markdown/adoc/antora.yml b/valuetypes/markdown/adoc/antora.yml
index f4a330b..0f50856 100644
--- a/valuetypes/markdown/adoc/antora.yml
+++ b/valuetypes/markdown/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: valuetypes
-version: master
+version: latest
diff --git a/valuetypes/sse/adoc/antora.yml b/valuetypes/sse/adoc/antora.yml
index f4a330b..0f50856 100644
--- a/valuetypes/sse/adoc/antora.yml
+++ b/valuetypes/sse/adoc/antora.yml
@@ -16,4 +16,4 @@
 #  under the License.
 
 name: valuetypes
-version: master
+version: latest
diff --git a/viewers/restfulobjects/adoc/antora.yml b/viewers/restfulobjects/adoc/antora.yml
index 55c2df7..13c5fde 100644
--- a/viewers/restfulobjects/adoc/antora.yml
+++ b/viewers/restfulobjects/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: vro
 title: "Restful Objects Viewer"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc
diff --git a/viewers/wicket/adoc/antora.yml b/viewers/wicket/adoc/antora.yml
index 217fe7e..25d4699 100644
--- a/viewers/wicket/adoc/antora.yml
+++ b/viewers/wicket/adoc/antora.yml
@@ -17,7 +17,7 @@
 
 name: vw
 title: "Wicket Viewer"
-version: master
+version: latest
 start_page: ROOT:about.adoc
 nav:
 - modules/ROOT/nav.adoc