You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/03/14 10:27:25 UTC

[causeway] branch master updated: CAUSEWAY-3374: [Programming Model] Mark ActionLayout#redirectPolicy deprecated

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new 8bbc0e31a8 CAUSEWAY-3374: [Programming Model] Mark ActionLayout#redirectPolicy deprecated
8bbc0e31a8 is described below

commit 8bbc0e31a823d661fc08a8f0fac6cc94e9b83ac4
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Mar 14 11:27:19 2023 +0100

    CAUSEWAY-3374: [Programming Model] Mark ActionLayout#redirectPolicy
    deprecated
    
    - also update ActionLayout#bookmarking java-doc
---
 .../pages/index/annotation/ActionLayout.adoc       |  25 +-
 .../services/publishing/log/PageRenderLogger.adoc  |  18 +
 .../publishing/spi/PageRenderSubscriber.adoc       |  70 +++
 .../causeway/applib/annotation/ActionLayout.java   |  16 +-
 core/adoc/modules/_overview/pages/about.adoc       | 472 ++++++++++++++++-----
 5 files changed, 477 insertions(+), 124 deletions(-)

diff --git a/antora/components/refguide-index/modules/applib/pages/index/annotation/ActionLayout.adoc b/antora/components/refguide-index/modules/applib/pages/index/annotation/ActionLayout.adoc
index d7024e4ecd..99196dd222 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/annotation/ActionLayout.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/annotation/ActionLayout.adoc
@@ -21,7 +21,8 @@ Layout hints for actions.
   String named() default "";     // <.>
   Position position() default Position.NOT_SPECIFIED;     // <.>
   PromptStyle promptStyle() default PromptStyle.AS_CONFIGURED;     // <.>
-  Redirect redirectPolicy() default Redirect.AS_CONFIGURED;     // <.>
+  @Deprecated(forRemoval = false, since = "2.0.0-RC1")
+Redirect redirectPolicy() default Redirect.AS_CONFIGURED;     // <.>
   String sequence() default "";     // <.>
 }
 ----
@@ -34,7 +35,7 @@ Associates this action with a property or collection, specifying its id.
 <.> xref:#bookmarking[bookmarking]
 +
 --
-Whether (and how) this action can be bookmarked in the UI.
+Whether (and how) this action's result can be bookmarked in the UI, overriding any _DomainObjectLayout#bookmarking()_ on the return type if present.
 --
 <.> xref:#cssClass[cssClass]
 +
@@ -89,6 +90,13 @@ How the parameters for this action are prompted, either _PromptStyle#DIALOG dial
 <.> xref:#redirectPolicy[redirectPolicy]
 +
 --
+[WARNING]
+====
+[red]#_deprecated:_#
+
+currently NOT supported by the Wicket viewer, but could be re-implemented with a future release
+====
+
 If the action returns its target, then determines whether to update the page or instead to redirect (forcing a re-rendering of a new page).
 --
 <.> xref:#sequence[sequence]
@@ -113,9 +121,7 @@ Note that it is also possible to associate an action with a collection using _Ac
 [#bookmarking]
 === bookmarking
 
-Whether (and how) this action can be bookmarked in the UI.
-
-For bookmarkable actions, either _org.apache.causeway.applib.annotation.BookmarkPolicy#AS_ROOT_ and _org.apache.causeway.applib.annotation.BookmarkPolicy#AS_CHILD_ can be used (they are treated identically).
+Whether (and how) this action's result can be bookmarked in the UI, overriding any _DomainObjectLayout#bookmarking()_ on the return type if present.
 
 [#cssClass]
 === cssClass
@@ -182,12 +188,17 @@ How the parameters for this action are prompted, either _PromptStyle#DIALOG dial
 [#redirectPolicy]
 === redirectPolicy
 
+[WARNING]
+====
+[red]#_deprecated:_#
+
+currently NOT supported by the Wicket viewer, but could be re-implemented with a future release
+====
+
 If the action returns its target, then determines whether to update the page or instead to redirect (forcing a re-rendering of a new page).
 
 Not re-rendering can provide a smoother UI experience.
 
-Supported by the Wicket viewer.
-
 [#sequence]
 === sequence
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/publishing/log/PageRenderLogger.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/publishing/log/PageRenderLogger.adoc
new file mode 100644
index 0000000000..ad8f310dab
--- /dev/null
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/publishing/log/PageRenderLogger.adoc
@@ -0,0 +1,18 @@
+= PageRenderLogger
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+Simple implementation of xref:refguide:applib:index/services/publishing/spi/PageRenderSubscriber.adoc[PageRenderSubscriber] that just logs to a debug log.
+
+== API
+
+[source,java]
+.PageRenderLogger.java
+----
+class PageRenderLogger {
+  boolean isEnabled()
+  void onRenderedDomainObject(Bookmark bookmark)
+  void onRenderedCollection(Supplier<List<Bookmark>> bookmarkSupplier)
+  void onRenderedValue(Object value)
+}
+----
+
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/publishing/spi/PageRenderSubscriber.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/publishing/spi/PageRenderSubscriber.adoc
new file mode 100644
index 0000000000..8950c31dfd
--- /dev/null
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/publishing/spi/PageRenderSubscriber.adoc
@@ -0,0 +1,70 @@
+= PageRenderSubscriber
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+Part of the _Publishing SPI_ . A component to receive notifaction that a domain object or a standalone list of domain objects has been rendered.
+
+== API
+
+[source,java]
+.PageRenderSubscriber.java
+----
+interface PageRenderSubscriber {
+  void onRendering(PageType pageType)     // <.>
+  void onRenderedDomainObject(Bookmark bookmark)     // <.>
+  void onRenderedCollection(Supplier<List<Bookmark>> bookmarkSupplier)     // <.>
+  void onRenderedValue(Object value)     // <.>
+}
+----
+
+<.> xref:#onRendering_PageType[onRendering(PageType)]
++
+--
+Called just before the rendering process starts.However, if _PageType#OTHER_ , then *NO*  `onRenderedXxx` method will be called.
+--
+<.> xref:#onRenderedDomainObject_Bookmark[onRenderedDomainObject(Bookmark)]
++
+--
+Indicates that the domain object represented by the xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark] has been rendered.
+--
+<.> xref:#onRenderedCollection_Supplier[onRenderedCollection(Supplier)]
++
+--
+Indicates that a standalone list of domain objects (each represented by a xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark] has been rendered.
+--
+<.> xref:#onRenderedValue_Object[onRenderedValue(Object)]
++
+--
+Indicates that a value has been rendered.
+--
+
+== Members
+
+[#onRendering_PageType]
+=== onRendering(PageType)
+
+Called just before the rendering process starts.However, if _PageType#OTHER_ , then *NO*  `onRenderedXxx` method will be called.
+
+Determines which of the `onRenderedXxx` callbacks (if any) will next be called:
+
+* if _PageType#DOMAIN_OBJECT_ , then will call _#onRenderedDomainObject(Bookmark)_ next
+* if _PageType#COLLECTION_ , then will call _#onRenderedCollection(Supplier)_ next
+* if _PageType#VALUE_ , then will call _#onRenderedValue(Object)_ next
+
+Also, if any of the pages fail to render (eg due to an authorization exception), then - again - *NO*  `onRenderedXxx` method will be called
+
+Implementations could use this to start a stopwatch, for example, or to reset caches.
+
+[#onRenderedDomainObject_Bookmark]
+=== onRenderedDomainObject(Bookmark)
+
+Indicates that the domain object represented by the xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark] has been rendered.
+
+[#onRenderedCollection_Supplier]
+=== onRenderedCollection(Supplier)
+
+Indicates that a standalone list of domain objects (each represented by a xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark] has been rendered.
+
+[#onRenderedValue_Object]
+=== onRenderedValue(Object)
+
+Indicates that a value has been rendered.
diff --git a/api/applib/src/main/java/org/apache/causeway/applib/annotation/ActionLayout.java b/api/applib/src/main/java/org/apache/causeway/applib/annotation/ActionLayout.java
index 8593b4cf2d..5ec66e7ce3 100644
--- a/api/applib/src/main/java/org/apache/causeway/applib/annotation/ActionLayout.java
+++ b/api/applib/src/main/java/org/apache/causeway/applib/annotation/ActionLayout.java
@@ -75,13 +75,10 @@ public @interface ActionLayout {
             default "";
 
     /**
-     * Whether (and how) this action can be bookmarked in the UI.
+     * Whether (and how) this action's result can be bookmarked in the UI,
+     * overriding any {@link DomainObjectLayout#bookmarking()} on the return type if present.
      *
-     * <p>
-     *     For bookmarkable actions, either {@link org.apache.causeway.applib.annotation.BookmarkPolicy#AS_ROOT}
-     *     and {@link org.apache.causeway.applib.annotation.BookmarkPolicy#AS_CHILD} can be used (they are treated
-     *     identically).
-     * </p>
+     * @see DomainObjectLayout#bookmarking()
      */
     BookmarkPolicy bookmarking()
             default BookmarkPolicy.NOT_SPECIFIED;
@@ -240,11 +237,10 @@ public @interface ActionLayout {
      * <p>
      *     Not re-rendering can provide a smoother UI experience.
      * </p>
-     *
-     * <p>
-     *     Supported by the Wicket viewer.
-     * </p>
+     * @deprecated currently NOT supported by the Wicket viewer, but could be re-implemented with
+     *      a future release
      */
+    @Deprecated(forRemoval = false, since = "2.0.0-RC1")
     Redirect redirectPolicy()
             default Redirect.AS_CONFIGURED;
 
diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index 1d9d78f666..849337c679 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -29,9 +29,9 @@ skinparam rectangle<<App.ApacheCausewayStarterParent>> {
   BorderColor #2e6295
 }
 
-package "App\n[Software System]" <<App>> {
-  skinparam PackageBorderColor<<App>> #9a9a9a
-  skinparam PackageFontColor<<App>> #9a9a9a
+rectangle "App\n<size:10>[Software System]</size>" <<App>> {
+  skinparam RectangleBorderColor<<App>> #9a9a9a
+  skinparam RectangleFontColor<<App>> #9a9a9a
 
   rectangle "==Apache Causeway Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<App.ApacheCausewayStarterParent>> as App.ApacheCausewayStarterParent
 }
@@ -86,9 +86,9 @@ skinparam rectangle<<Mavendeps.ApacheCausewayMavenDepsWebapp>> {
   BorderColor #2e6295
 }
 
-package "Mavendeps\n[Software System]" <<Mavendeps>> {
-  skinparam PackageBorderColor<<Mavendeps>> #9a9a9a
-  skinparam PackageFontColor<<Mavendeps>> #9a9a9a
+rectangle "Mavendeps\n<size:10>[Software System]</size>" <<Mavendeps>> {
+  skinparam RectangleBorderColor<<Mavendeps>> #9a9a9a
+  skinparam RectangleFontColor<<Mavendeps>> #9a9a9a
 
   rectangle "==Apache Causeway Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<Mavendeps.ApacheCausewayMavenDeps>> as Mavendeps.ApacheCausewayMavenDeps
   rectangle "==Apache Causeway Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<Mavendeps.ApacheCausewayMavenDepsWebapp>> as Mavendeps.ApacheCausewayMavenDepsWebapp
@@ -255,9 +255,9 @@ skinparam rectangle<<Testing.ApacheCausewayTstUnitTestSupportparent>> {
   BorderColor #2e6295
 }
 
-package "Testing\n[Software System]" <<Testing>> {
-  skinparam PackageBorderColor<<Testing>> #9a9a9a
-  skinparam PackageFontColor<<Testing>> #9a9a9a
+rectangle "Testing\n<size:10>[Software System]</size>" <<Testing>> {
+  skinparam RectangleBorderColor<<Testing>> #9a9a9a
+  skinparam RectangleFontColor<<Testing>> #9a9a9a
 
   rectangle "==Apache Causeway Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFixturesapplib>> as Testing.ApacheCausewayTstFixturesapplib
   rectangle "==Apache Causeway Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstH2Consoleparent>> as Testing.ApacheCausewayTstH2Consoleparent
@@ -711,9 +711,9 @@ skinparam rectangle<<Examples.DemoWicketJPAwithGraphQL>> {
   BorderColor #2e6295
 }
 
-package "Examples\n[Software System]" <<Examples>> {
-  skinparam PackageBorderColor<<Examples>> #9a9a9a
-  skinparam PackageFontColor<<Examples>> #9a9a9a
+rectangle "Examples\n<size:10>[Software System]</size>" <<Examples>> {
+  skinparam RectangleBorderColor<<Examples>> #9a9a9a
+  skinparam RectangleFontColor<<Examples>> #9a9a9a
 
   rectangle "==Demo - Wicket/JPA (with GraphQL)\n<size:10>[Container: packaging: jar]</size>" <<Examples.DemoWicketJPAwithGraphQL>> as Examples.DemoWicketJPAwithGraphQL
   rectangle "==Demo - Parent\n<size:10>[Container: packaging: pom]</size>" <<Examples.DemoParent>> as Examples.DemoParent
@@ -762,7 +762,248 @@ Artifact: demo-domain
 Type: jar
 Directory: /examples/demo/domain
 ----
-|.Dependencies
+|.Components
+****
+demoapp.dom.AppConfiguration +
+demoapp.dom._infra.resources.AsciiDocConverterService +
+demoapp.dom._infra.resources.AsciiDocReaderService +
+demoapp.dom._infra.resources.AsciiDocValueSemanticsWithPreprocessing +
+demoapp.dom._infra.resources.MarkdownReaderService +
+demoapp.dom._infra.resources.MarkupReaderService +
+demoapp.dom._infra.resources.MarkupVariableResolverService +
+demoapp.dom._infra.resources.ResourceReaderService +
+demoapp.dom._infra.samples.EnumSamples +
+demoapp.dom._infra.samples.NameSamples +
+demoapp.dom._infra.samples.asciidoc.CausewayAsciiDocSamples +
+demoapp.dom._infra.samples.markdown.CausewayMarkdownSamples +
+demoapp.dom._infra.urlencoding.UrlEncodingServiceNaiveInMemory +
+demoapp.dom.domain._changes.EntityChangesSubscriberToCaptureChangesInMemory +
+demoapp.dom.domain._commands.ExposePersistedCommands$TableColumnOrderDefault +
+demoapp.dom.domain._interactions.ExecutionListenerToCaptureInteractionsInMemory +
+demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingSeeding +
+demoapp.dom.domain.actions.Action.commandPublishing.jdo.ActionCommandPublishingJdoEntities +
+demoapp.dom.domain.actions.Action.commandPublishing.jpa.ActionCommandPublishingJpaEntities +
+demoapp.dom.domain.actions.Action.domainEvent.subscribers.ActionDomainEventControlService +
+demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingSeeding +
+demoapp.dom.domain.actions.Action.executionPublishing.jdo.ActionExecutionPublishingJdoEntities +
+demoapp.dom.domain.actions.Action.executionPublishing.jpa.ActionExecutionPublishingJpaEntities +
+demoapp.dom.domain.collections.Collection.domainEvent.subscribers.CollectionDomainEventControlService +
+demoapp.dom.domain.objects.DomainObject.autoComplete.DomainObjectAutoCompleteRepository +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledSeeding +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.jdo.DomainObjectEntityChangePublishingDisabledJdoEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.jpa.DomainObjectEntityChangePublishingDisabledJpaEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectEntityChangePublishingEnabledSeeding +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.jdo.DomainObjectEntityChangePublishingEnabledJdoEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.jpa.DomainObjectEntityChangePublishingEnabledJpaEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedSeeding +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.jdo.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.jpa.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJpaEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenSeeding +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.jdo.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoEntities +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.jpa.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJpaEntities +
+demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.JaxbRefSeeding +
+demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.jdo.JaxbRefJdoEntities +
+demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.jpa.JaxbRefJpaEntities +
+demoapp.dom.domain.objects.DomainObjectLayout.xxxUiEvent.DomainObjectLayoutXxxUiEventService +
+demoapp.dom.domain.objects.other.embedded.jdo.ComplexNumberJdoValueSemantics +
+demoapp.dom.domain.objects.other.embedded.jdo.NumberConstantJdoRepository +
+demoapp.dom.domain.objects.other.embedded.jpa.ComplexNumberJpaValueSemantics +
+demoapp.dom.domain.objects.other.embedded.jpa.NumberConstantJpaRepository +
+demoapp.dom.domain.objects.other.embedded.persistence.NumberConstantSeeding +
+demoapp.dom.domain.objects.other.embedded.samples.ComplexNumberSamples +
+demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingSeeding +
+demoapp.dom.domain.properties.Property.commandPublishing.jdo.PropertyCommandPublishingJdoEntities +
+demoapp.dom.domain.properties.Property.commandPublishing.jpa.PropertyCommandPublishingJpaEntities +
+demoapp.dom.domain.properties.Property.domainEvent.subscribers.PropertyDomainEventControlService +
+demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingSeeding +
+demoapp.dom.domain.properties.Property.executionPublishing.jdo.PropertyExecutionPublishingJdoEntities +
+demoapp.dom.domain.properties.Property.executionPublishing.jpa.PropertyExecutionPublishingJpaEntities +
+demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoEntities +
+demoapp.dom.domain.properties.Property.projecting.jpa.PropertyProjectingChildJpaEntities +
+demoapp.dom.domain.properties.Property.projecting.persistence.PropertyProjectingChildSeeding +
+demoapp.dom.domain.properties.PropertyLayout.navigable.FileTreeNodeService +
+demoapp.dom.domain.properties.PropertyLayout.repainting.PdfJsViewerAdvisorFallback +
+demoapp.dom.featured.customui.geocoding.GeoapifyClient +
+demoapp.dom.services.core.errorreportingservice.ErrorReportingServiceDemoImplementation +
+demoapp.dom.services.core.eventbusservice.EventLogEntryJdoRepository +
+demoapp.dom.services.core.eventbusservice.EventLogEntryJpaRepository +
+demoapp.dom.services.core.eventbusservice.EventSubscriberDemoImplementation +
+demoapp.dom.services.core.wrapperFactory.WrapperFactorySeeding +
+demoapp.dom.services.core.wrapperFactory.jdo.WrapperFactoryJdoEntities +
+demoapp.dom.services.core.wrapperFactory.jpa.WrapperFactoryJpaEntities +
+demoapp.dom.services.extensions.secman.apptenancy.ApplicationTenancyEvaluatorForDemo +
+demoapp.dom.services.extensions.secman.apptenancy.jdo.TenantedJdoEntities +
+demoapp.dom.services.extensions.secman.apptenancy.jpa.TenantedJpaEntities +
+demoapp.dom.services.extensions.secman.apptenancy.persistence.TenantedSeeding +
+demoapp.dom.services.extensions.secman.appuser.seed.AppUserSeeding +
+demoapp.dom.types.causeway.blobs.jdo.CausewayBlobJdoEntities +
+demoapp.dom.types.causeway.blobs.jpa.CausewayBlobJpaEntities +
+demoapp.dom.types.causeway.blobs.persistence.CausewayBlobSeeding +
+demoapp.dom.types.causeway.blobs.samples.CausewayBlobsSamples +
+demoapp.dom.types.causeway.clobs.jdo.CausewayClobJdoEntities +
+demoapp.dom.types.causeway.clobs.jpa.CausewayClobJpaEntities +
+demoapp.dom.types.causeway.clobs.persistence.CausewayClobSeeding +
+demoapp.dom.types.causeway.clobs.samples.CausewayClobsSamples +
+demoapp.dom.types.causeway.localresourcepaths.jdo.CausewayLocalResourcePathJdoEntities +
+demoapp.dom.types.causeway.localresourcepaths.jpa.CausewayLocalResourcePathJpaEntities +
+demoapp.dom.types.causeway.localresourcepaths.persistence.CausewayLocalResourcePathSeeding +
+demoapp.dom.types.causeway.localresourcepaths.samples.CausewayLocalResourcePathsSamples +
+demoapp.dom.types.causeway.markups.jdo.CausewayMarkupJdoEntities +
+demoapp.dom.types.causeway.markups.jpa.CausewayMarkupJpaEntities +
+demoapp.dom.types.causeway.markups.persistence.CausewayMarkupSeeding +
+demoapp.dom.types.causeway.markups.samples.CausewayMarkupSamples +
+demoapp.dom.types.causeway.passwords.jdo.CausewayPasswordJdoEntities +
+demoapp.dom.types.causeway.passwords.jpa.CausewayPasswordJpaEntities +
+demoapp.dom.types.causeway.passwords.persistence.CausewayPasswordSeeding +
+demoapp.dom.types.causeway.passwords.samples.CausewayPasswordsSamples +
+demoapp.dom.types.causewayext.cal.jdo.CausewayCalendarEventEntities +
+demoapp.dom.types.causewayext.cal.jpa.CausewayCalendarEventEntities +
+demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventSeeding +
+demoapp.dom.types.causewayext.cal.samples.CausewayCalendarEventSamples +
+demoapp.dom.types.causewayval.asciidocs.jdo.CausewayAsciiDocJdoEntities +
+demoapp.dom.types.causewayval.asciidocs.jpa.CausewayAsciiDocJpaEntities +
+demoapp.dom.types.causewayval.asciidocs.persistence.CausewayAsciiDocSeeding +
+demoapp.dom.types.causewayval.markdowns.jdo.CausewayMarkdownJdoEntities +
+demoapp.dom.types.causewayval.markdowns.jpa.CausewayMarkdownJpaEntities +
+demoapp.dom.types.causewayval.markdowns.persistence.CausewayMarkdownSeeding +
+demoapp.dom.types.causewayval.vegas.jdo.CausewayVegaJdoEntities +
+demoapp.dom.types.causewayval.vegas.jpa.CausewayVegaJpaEntities +
+demoapp.dom.types.causewayval.vegas.persistence.CausewayVegaSeeding +
+demoapp.dom.types.causewayval.vegas.samples.CausewayVegaSamples +
+demoapp.dom.types.javaawt.images.jdo.JavaAwtBufferedImageJdoEntities +
+demoapp.dom.types.javaawt.images.jpa.JavaAwtBufferedImageJpaEntities +
+demoapp.dom.types.javaawt.images.persistence.JavaAwtBufferedImageSeeding +
+demoapp.dom.types.javaawt.images.samples.JavaAwtBufferedImageService +
+demoapp.dom.types.javaawt.images.samples.JavaAwtBufferedImagesSamples +
+demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoEntities +
+demoapp.dom.types.javalang.booleans.jpa.WrapperBooleanJpaEntities +
+demoapp.dom.types.javalang.booleans.persistence.WrapperBooleanSeeding +
+demoapp.dom.types.javalang.booleans.samples.WrapperBooleanSamples +
+demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoEntities +
+demoapp.dom.types.javalang.bytes.jpa.WrapperByteJpaEntities +
+demoapp.dom.types.javalang.bytes.persistence.WrapperByteSeeding +
+demoapp.dom.types.javalang.bytes.samples.WrapperByteSamples +
+demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoEntities +
+demoapp.dom.types.javalang.characters.jpa.WrapperCharacterJpaEntities +
+demoapp.dom.types.javalang.characters.persistence.WrapperCharacterSeeding +
+demoapp.dom.types.javalang.characters.samples.WrapperCharacterSamples +
+demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoEntities +
+demoapp.dom.types.javalang.doubles.jpa.WrapperDoubleJpaEntities +
+demoapp.dom.types.javalang.doubles.persistence.WrapperDoubleSeeding +
+demoapp.dom.types.javalang.doubles.samples.WrapperDoubleSamples +
+demoapp.dom.types.javalang.enums.jdo.JavaLangEnumJdoEntities +
+demoapp.dom.types.javalang.enums.jpa.JavaLangEnumJpaEntities +
+demoapp.dom.types.javalang.enums.persistence.JavaLangEnumSeeding +
+demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoEntities +
+demoapp.dom.types.javalang.floats.jpa.WrapperFloatJpaEntities +
+demoapp.dom.types.javalang.floats.persistence.WrapperFloatSeeding +
+demoapp.dom.types.javalang.floats.samples.WrapperFloatSamples +
+demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoEntities +
+demoapp.dom.types.javalang.integers.jpa.WrapperIntegerJpaEntities +
+demoapp.dom.types.javalang.integers.persistence.WrapperIntegerSeeding +
+demoapp.dom.types.javalang.integers.samples.WrapperIntegerSamples +
+demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoEntities +
+demoapp.dom.types.javalang.longs.jpa.WrapperLongJpaEntities +
+demoapp.dom.types.javalang.longs.persistence.WrapperLongSeeding +
+demoapp.dom.types.javalang.longs.samples.WrapperLongSamples +
+demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoEntities +
+demoapp.dom.types.javalang.shorts.jpa.WrapperShortJpaEntities +
+demoapp.dom.types.javalang.shorts.persistence.WrapperShortSeeding +
+demoapp.dom.types.javalang.shorts.samples.WrapperShortSamples +
+demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoEntities +
+demoapp.dom.types.javalang.strings.jpa.JavaLangStringJpaEntities +
+demoapp.dom.types.javalang.strings.persistence.JavaLangStringSeeding +
+demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoEntities +
+demoapp.dom.types.javamath.bigdecimals.jpa.JavaMathBigDecimalJpaEntities +
+demoapp.dom.types.javamath.bigdecimals.persistence.JavaMathBigDecimalSeeding +
+demoapp.dom.types.javamath.bigdecimals.samples.JavaMathBigDecimalSamples +
+demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoEntities +
+demoapp.dom.types.javamath.bigintegers.jpa.JavaMathBigIntegerJpaEntities +
+demoapp.dom.types.javamath.bigintegers.persistence.JavaMathBigIntegerSeeding +
+demoapp.dom.types.javamath.bigintegers.samples.JavaMathBigIntegerSamples +
+demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoEntities +
+demoapp.dom.types.javanet.urls.jpa.JavaNetUrlJpaEntities +
+demoapp.dom.types.javanet.urls.persistence.JavaNetUrlSeeding +
+demoapp.dom.types.javanet.urls.samples.JavaNetUrlSamples +
+demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoEntities +
+demoapp.dom.types.javasql.javasqldate.jpa.JavaSqlDateJpaEntities +
+demoapp.dom.types.javasql.javasqldate.persistence.JavaSqlDateSeeding +
+demoapp.dom.types.javasql.javasqldate.samples.JavaSqlDateSamples +
+demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoEntities +
+demoapp.dom.types.javasql.javasqltimestamp.jpa.JavaSqlTimestampJpaEntities +
+demoapp.dom.types.javasql.javasqltimestamp.persistence.JavaSqlTimestampSeeding +
+demoapp.dom.types.javasql.javasqltimestamp.samples.JavaSqlTimestampSamples +
+demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoEntities +
+demoapp.dom.types.javatime.javatimelocaldate.jpa.JavaTimeLocalDateJpaEntities +
+demoapp.dom.types.javatime.javatimelocaldate.persistence.JavaTimeLocalDateSeeding +
+demoapp.dom.types.javatime.javatimelocaldate.samples.JavaTimeLocalDateSamples +
+demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoEntities +
+demoapp.dom.types.javatime.javatimelocaldatetime.jpa.JavaTimeLocalDateTimeJpaEntities +
+demoapp.dom.types.javatime.javatimelocaldatetime.persistence.JavaTimeLocalDateTimeSeeding +
+demoapp.dom.types.javatime.javatimelocaldatetime.samples.JavaTimeLocalDateTimeSamples +
+demoapp.dom.types.javatime.javatimelocaltime.jdo.JavaTimeLocalTimeJdoEntities +
+demoapp.dom.types.javatime.javatimelocaltime.jpa.JavaTimeLocalTimeJpaEntities +
+demoapp.dom.types.javatime.javatimelocaltime.persistence.JavaTimeLocalTimeSeeding +
+demoapp.dom.types.javatime.javatimelocaltime.samples.JavaTimeLocalTimeSamples +
+demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoEntities +
+demoapp.dom.types.javatime.javatimeoffsetdatetime.jpa.JavaTimeOffsetDateTimeJpaEntities +
+demoapp.dom.types.javatime.javatimeoffsetdatetime.persistence.JavaTimeOffsetDateTimeSeeding +
+demoapp.dom.types.javatime.javatimeoffsetdatetime.samples.JavaTimeOffsetDateTimeSamples +
+demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoEntities +
+demoapp.dom.types.javatime.javatimeoffsettime.jpa.JavaTimeOffsetTimeJpaEntities +
+demoapp.dom.types.javatime.javatimeoffsettime.persistence.JavaTimeOffsetTimeSeeding +
+demoapp.dom.types.javatime.javatimeoffsettime.samples.JavaTimeOffsetTimeSamples +
+demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoEntities +
+demoapp.dom.types.javatime.javatimezoneddatetime.jpa.JavaTimeZonedDateTimeJpaEntities +
+demoapp.dom.types.javatime.javatimezoneddatetime.persistence.JavaTimeZonedDateTimeSeeding +
+demoapp.dom.types.javatime.javatimezoneddatetime.samples.JavaTimeZonedDateTimeSamples +
+demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoEntities +
+demoapp.dom.types.javautil.javautildate.jpa.JavaUtilDateJpaEntities +
+demoapp.dom.types.javautil.javautildate.persistence.JavaUtilDateSeeding +
+demoapp.dom.types.javautil.javautildate.samples.JavaUtilDateSamples +
+demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoEntities +
+demoapp.dom.types.javautil.uuids.jpa.JavaUtilUuidJpaEntities +
+demoapp.dom.types.javautil.uuids.persistence.JavaUtilUuidSeeding +
+demoapp.dom.types.javautil.uuids.samples.JavaUtilUuidSamples +
+demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoEntities +
+demoapp.dom.types.jodatime.jodadatetime.persistence.JodaDateTimeJdoSeeding +
+demoapp.dom.types.jodatime.jodadatetime.samples.JodaDateTimeSamples +
+demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoEntities +
+demoapp.dom.types.jodatime.jodalocaldate.persistence.JodaLocalDateJdoSeeding +
+demoapp.dom.types.jodatime.jodalocaldate.samples.JodaLocalDateSamples +
+demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoEntities +
+demoapp.dom.types.jodatime.jodalocaldatetime.persistence.JodaLocalDateTimeSeeding +
+demoapp.dom.types.jodatime.jodalocaldatetime.samples.JodaLocalDateTimeSamples +
+demoapp.dom.types.jodatime.jodalocaltime.jdo.JodaLocalTimeJdoEntities +
+demoapp.dom.types.jodatime.jodalocaltime.persistence.JodaLocalTimeSeeding +
+demoapp.dom.types.jodatime.jodalocaltime.samples.JodaLocalTimeSamples +
+demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoEntities +
+demoapp.dom.types.primitive.booleans.jpa.PrimitiveBooleanJpaEntities +
+demoapp.dom.types.primitive.booleans.persistence.PrimitiveBooleanSeeding +
+demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoEntities +
+demoapp.dom.types.primitive.bytes.jpa.PrimitiveByteJpaEntities +
+demoapp.dom.types.primitive.bytes.persistence.PrimitiveByteSeeding +
+demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoEntities +
+demoapp.dom.types.primitive.chars.jpa.PrimitiveCharJpaEntities +
+demoapp.dom.types.primitive.chars.persistence.PrimitiveCharSeeding +
+demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoEntities +
+demoapp.dom.types.primitive.doubles.jpa.PrimitiveDoubleJpaEntities +
+demoapp.dom.types.primitive.doubles.persistence.PrimitiveDoubleSeeding +
+demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoEntities +
+demoapp.dom.types.primitive.floats.jpa.PrimitiveFloatJpaEntities +
+demoapp.dom.types.primitive.floats.persistence.PrimitiveFloatSeeding +
+demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoEntities +
+demoapp.dom.types.primitive.ints.jpa.PrimitiveIntJpaEntities +
+demoapp.dom.types.primitive.ints.persistence.PrimitiveIntSeeding +
+demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoEntities +
+demoapp.dom.types.primitive.longs.jpa.PrimitiveLongJpaEntities +
+demoapp.dom.types.primitive.longs.persistence.PrimitiveLongSeeding +
+demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoEntities +
+demoapp.dom.types.primitive.shorts.jpa.PrimitiveShortJpaEntities +
+demoapp.dom.types.primitive.shorts.persistence.PrimitiveShortSeeding +
+****
+
+.Dependencies
 ****
 com.h2database:h2:jar:<managed> +
 org.apache.causeway.extensions:causeway-extensions-audittrail-persistence-jdo:jar:<managed> +
@@ -979,9 +1220,9 @@ skinparam rectangle<<Root.ApacheCausewaySupplementalLegalInfo>> {
   BorderColor #2e6295
 }
 
-package "Root\n[Software System]" <<Root>> {
-  skinparam PackageBorderColor<<Root>> #9a9a9a
-  skinparam PackageFontColor<<Root>> #9a9a9a
+rectangle "Root\n<size:10>[Software System]</size>" <<Root>> {
+  skinparam RectangleBorderColor<<Root>> #9a9a9a
+  skinparam RectangleFontColor<<Root>> #9a9a9a
 
   rectangle "==Apache Causeway (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<Root.ApacheCausewayAggregator>> as Root.ApacheCausewayAggregator
   rectangle "==Apache Causeway - Antora\n<size:10>[Container: packaging: pom]</size>" <<Root.ApacheCausewayAntora>> as Root.ApacheCausewayAntora
@@ -1072,9 +1313,9 @@ skinparam rectangle<<Commons.ApacheCausewayCommons>> {
   BorderColor #2e6295
 }
 
-package "Commons\n[Software System]" <<Commons>> {
-  skinparam PackageBorderColor<<Commons>> #9a9a9a
-  skinparam PackageFontColor<<Commons>> #9a9a9a
+rectangle "Commons\n<size:10>[Software System]</size>" <<Commons>> {
+  skinparam RectangleBorderColor<<Commons>> #9a9a9a
+  skinparam RectangleFontColor<<Commons>> #9a9a9a
 
   rectangle "==Apache Causeway Commons\n<size:10>[Container: packaging: jar]</size>" <<Commons.ApacheCausewayCommons>> as Commons.ApacheCausewayCommons
 }
@@ -1217,9 +1458,9 @@ skinparam rectangle<<Core.ApacheCausewayCoreWebApp>> {
   BorderColor #2e6295
 }
 
-package "Core\n[Software System]" <<Core>> {
-  skinparam PackageBorderColor<<Core>> #9a9a9a
-  skinparam PackageFontColor<<Core>> #9a9a9a
+rectangle "Core\n<size:10>[Software System]</size>" <<Core>> {
+  skinparam RectangleBorderColor<<Core>> #9a9a9a
+  skinparam RectangleFontColor<<Core>> #9a9a9a
 
   rectangle "==Apache Causeway Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreRuntimeServices>> as Core.ApacheCausewayCoreRuntimeServices
   rectangle "==Apache Causeway Core - Security\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreSecurity>> as Core.ApacheCausewayCoreSecurity
@@ -1294,6 +1535,7 @@ o.a.i.applib.services.publishing.log.CommandLogger +
 o.a.i.applib.services.publishing.log.EntityChangesLogger +
 o.a.i.applib.services.publishing.log.EntityPropertyChangeLogger +
 o.a.i.applib.services.publishing.log.ExecutionLogger +
+o.a.i.applib.services.publishing.log.PageRenderLogger +
 o.a.i.applib.services.queryresultscache.QueryResultsCache +
 o.a.i.applib.services.session.SessionLogger +
 o.a.i.applib.services.sudo.SudoService +
@@ -1312,7 +1554,7 @@ org.apache.causeway.core:causeway-schema:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annota [...]
+xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annota [...]
 ****
 
 |Apache Causeway Core - Code Gen (ByteBuddy)
@@ -1752,9 +1994,9 @@ skinparam rectangle<<Persistence.ApacheCausewayPersistenceCommons>> {
   BorderColor #2e6295
 }
 
-package "Persistence\n[Software System]" <<Persistence>> {
-  skinparam PackageBorderColor<<Persistence>> #9a9a9a
-  skinparam PackageFontColor<<Persistence>> #9a9a9a
+rectangle "Persistence\n<size:10>[Software System]</size>" <<Persistence>> {
+  skinparam RectangleBorderColor<<Persistence>> #9a9a9a
+  skinparam RectangleFontColor<<Persistence>> #9a9a9a
 
   rectangle "==Apache Causeway Persistence - Commons\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistenceCommons>> as Persistence.ApacheCausewayPersistenceCommons
 }
@@ -1852,9 +2094,9 @@ skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOProviderDataNucleus>> {
   BorderColor #2e6295
 }
 
-package "JDO\n[Software System]" <<JDO>> {
-  skinparam PackageBorderColor<<JDO>> #9a9a9a
-  skinparam PackageFontColor<<JDO>> #9a9a9a
+rectangle "JDO\n<size:10>[Software System]</size>" <<JDO>> {
+  skinparam RectangleBorderColor<<JDO>> #9a9a9a
+  skinparam RectangleFontColor<<JDO>> #9a9a9a
 
   rectangle "==Apache Causeway Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<JDO.ApacheCausewayPersistenceJDO>> as JDO.ApacheCausewayPersistenceJDO
   rectangle "==Apache Causeway Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOapplib>> as JDO.ApacheCausewayPersistenceJDOapplib
@@ -2104,9 +2346,9 @@ skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAEclipseLink>> {
   BorderColor #2e6295
 }
 
-package "JPA\n[Software System]" <<JPA>> {
-  skinparam PackageBorderColor<<JPA>> #9a9a9a
-  skinparam PackageFontColor<<JPA>> #9a9a9a
+rectangle "JPA\n<size:10>[Software System]</size>" <<JPA>> {
+  skinparam RectangleBorderColor<<JPA>> #9a9a9a
+  skinparam RectangleFontColor<<JPA>> #9a9a9a
 
   rectangle "==Apache Causeway Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<JPA.ApacheCausewayPersistenceJPA>> as JPA.ApacheCausewayPersistenceJPA
   rectangle "==Apache Causeway Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<JPA.ApacheCausewayPersistenceJPAapplib>> as JPA.ApacheCausewayPersistenceJPAapplib
@@ -2263,9 +2505,9 @@ skinparam rectangle<<Bypass.ApacheCausewaySecurityBypass>> {
   BorderColor #2e6295
 }
 
-package "Bypass\n[Software System]" <<Bypass>> {
-  skinparam PackageBorderColor<<Bypass>> #9a9a9a
-  skinparam PackageFontColor<<Bypass>> #9a9a9a
+rectangle "Bypass\n<size:10>[Software System]</size>" <<Bypass>> {
+  skinparam RectangleBorderColor<<Bypass>> #9a9a9a
+  skinparam RectangleFontColor<<Bypass>> #9a9a9a
 
   rectangle "==Apache Causeway Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<Bypass.ApacheCausewaySecurityBypass>> as Bypass.ApacheCausewaySecurityBypass
 }
@@ -2328,9 +2570,9 @@ skinparam rectangle<<Keycloak.ApacheCausewaySecurityKeycloak>> {
   BorderColor #2e6295
 }
 
-package "Keycloak\n[Software System]" <<Keycloak>> {
-  skinparam PackageBorderColor<<Keycloak>> #9a9a9a
-  skinparam PackageFontColor<<Keycloak>> #9a9a9a
+rectangle "Keycloak\n<size:10>[Software System]</size>" <<Keycloak>> {
+  skinparam RectangleBorderColor<<Keycloak>> #9a9a9a
+  skinparam RectangleFontColor<<Keycloak>> #9a9a9a
 
   rectangle "==Apache Causeway Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<Keycloak.ApacheCausewaySecurityKeycloak>> as Keycloak.ApacheCausewaySecurityKeycloak
 }
@@ -2402,9 +2644,9 @@ skinparam rectangle<<Shiro.ApacheCausewaySecurityShiro>> {
   BorderColor #2e6295
 }
 
-package "Shiro\n[Software System]" <<Shiro>> {
-  skinparam PackageBorderColor<<Shiro>> #9a9a9a
-  skinparam PackageFontColor<<Shiro>> #9a9a9a
+rectangle "Shiro\n<size:10>[Software System]</size>" <<Shiro>> {
+  skinparam RectangleBorderColor<<Shiro>> #9a9a9a
+  skinparam RectangleFontColor<<Shiro>> #9a9a9a
 
   rectangle "==Apache Causeway Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<Shiro.ApacheCausewaySecurityShiro>> as Shiro.ApacheCausewaySecurityShiro
 }
@@ -2475,9 +2717,9 @@ skinparam rectangle<<Spring.ApacheCausewaySecuritySpring>> {
   BorderColor #2e6295
 }
 
-package "Spring\n[Software System]" <<Spring>> {
-  skinparam PackageBorderColor<<Spring>> #9a9a9a
-  skinparam PackageFontColor<<Spring>> #9a9a9a
+rectangle "Spring\n<size:10>[Software System]</size>" <<Spring>> {
+  skinparam RectangleBorderColor<<Spring>> #9a9a9a
+  skinparam RectangleFontColor<<Spring>> #9a9a9a
 
   rectangle "==Apache Causeway Security - Spring\n<size:10>[Container: packaging: jar]</size>" <<Spring.ApacheCausewaySecuritySpring>> as Spring.ApacheCausewaySecuritySpring
 }
@@ -2570,9 +2812,9 @@ skinparam rectangle<<Common.ApacheCausewayViewerCommonsServices>> {
   BorderColor #2e6295
 }
 
-package "Common\n[Software System]" <<Common>> {
-  skinparam PackageBorderColor<<Common>> #9a9a9a
-  skinparam PackageFontColor<<Common>> #9a9a9a
+rectangle "Common\n<size:10>[Software System]</size>" <<Common>> {
+  skinparam RectangleBorderColor<<Common>> #9a9a9a
+  skinparam RectangleFontColor<<Common>> #9a9a9a
 
   rectangle "==Apache Causeway Viewer - Commons\n<size:10>[Container: packaging: pom]</size>" <<Common.ApacheCausewayViewerCommons>> as Common.ApacheCausewayViewerCommons
   rectangle "==Apache Causeway Viewer - Commons Applib\n<size:10>[Container: packaging: jar]</size>" <<Common.ApacheCausewayViewerCommonsApplib>> as Common.ApacheCausewayViewerCommonsApplib
@@ -2729,9 +2971,9 @@ skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROViewer>> {
   BorderColor #2e6295
 }
 
-package "Restful Objects\n[Software System]" <<RestfulObjects>> {
-  skinparam PackageBorderColor<<RestfulObjects>> #9a9a9a
-  skinparam PackageFontColor<<RestfulObjects>> #9a9a9a
+rectangle "Restful Objects\n<size:10>[Software System]</size>" <<RestfulObjects>> {
+  skinparam RectangleBorderColor<<RestfulObjects>> #9a9a9a
+  skinparam RectangleFontColor<<RestfulObjects>> #9a9a9a
 
   rectangle "==Apache Causeway Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<RestfulObjects.ApacheCausewayViewerRO>> as RestfulObjects.ApacheCausewayViewerRO
   rectangle "==Apache Causeway Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROAppLib>> as RestfulObjects.ApacheCausewayViewerROAppLib
@@ -2980,9 +3222,9 @@ skinparam rectangle<<Wicket.ApacheCausewayViewerWicketViewer>> {
   BorderColor #2e6295
 }
 
-package "Wicket\n[Software System]" <<Wicket>> {
-  skinparam PackageBorderColor<<Wicket>> #9a9a9a
-  skinparam PackageFontColor<<Wicket>> #9a9a9a
+rectangle "Wicket\n<size:10>[Software System]</size>" <<Wicket>> {
+  skinparam RectangleBorderColor<<Wicket>> #9a9a9a
+  skinparam RectangleFontColor<<Wicket>> #9a9a9a
 
   rectangle "==Apache Causeway Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<Wicket.ApacheCausewayViewerWicket>> as Wicket.ApacheCausewayViewerWicket
   rectangle "==Apache Causeway Viewer - Wicket (Applib)\n<size:10>[Container: packaging: jar]</size>" <<Wicket.ApacheCausewayViewerWicketApplib>> as Wicket.ApacheCausewayViewerWicketApplib
@@ -3218,7 +3460,7 @@ skinparam rectangle<<Valuetypes.ApacheCausewayValVegaparent>> {
   FontColor #fffffe
   BorderColor #2e6295
 }
-skinparam rectangle<<Valuetypes.ApacheCausewayValVegapersistencejpa>> {
+skinparam rectangle<<Valuetypes.ApacheCausewayValVegapersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
@@ -3239,11 +3481,11 @@ skinparam rectangle<<Valuetypes.ApacheCausewayValuetypes>> {
   BorderColor #2e6295
 }
 
-package "Valuetypes\n[Software System]" <<Valuetypes>> {
-  skinparam PackageBorderColor<<Valuetypes>> #9a9a9a
-  skinparam PackageFontColor<<Valuetypes>> #9a9a9a
+rectangle "Valuetypes\n<size:10>[Software System]</size>" <<Valuetypes>> {
+  skinparam RectangleBorderColor<<Valuetypes>> #9a9a9a
+  skinparam RectangleFontColor<<Valuetypes>> #9a9a9a
 
-  rectangle "==Apache Causeway Val - Vega (persistence jpa)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValVegapersistencejpa>> as Valuetypes.ApacheCausewayValVegapersistencejpa
+  rectangle "==Apache Causeway Val - Vega (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValVegapersistenceJPA>> as Valuetypes.ApacheCausewayValVegapersistenceJPA
   rectangle "==Apache Causeway Val - Vega (ui)\n<size:10>[Container: packaging: pom]</size>" <<Valuetypes.ApacheCausewayValVegaui>> as Valuetypes.ApacheCausewayValVegaui
   rectangle "==Apache Causeway Val - Vega (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValVegauiwicket>> as Valuetypes.ApacheCausewayValVegauiwicket
   rectangle "==Apache Causeway Value types\n<size:10>[Container: packaging: pom]</size>" <<Valuetypes.ApacheCausewayValuetypes>> as Valuetypes.ApacheCausewayValuetypes
@@ -3263,7 +3505,7 @@ Valuetypes.ApacheCausewayValJodaTimeparent .[#707070,thickness=2].> Valuetypes.A
 Valuetypes.ApacheCausewayValVegaparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegaapplib : "<color:#707070>"
 Valuetypes.ApacheCausewayValVegaparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegaMetaModel : "<color:#707070>"
 Valuetypes.ApacheCausewayValVegaparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegaPersistenceJDO : "<color:#707070>"
-Valuetypes.ApacheCausewayValVegaparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegapersistencejpa : "<color:#707070>"
+Valuetypes.ApacheCausewayValVegaparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegapersistenceJPA : "<color:#707070>"
 Valuetypes.ApacheCausewayValVegaparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegaui : "<color:#707070>"
 Valuetypes.ApacheCausewayValVegaui .[#707070,thickness=2].> Valuetypes.ApacheCausewayValVegauiwicket : "<color:#707070>"
 @enduml
@@ -3420,7 +3662,7 @@ org.datanucleus:datanucleus-core:jar:<managed> +
 xref:refguide:valuetypes:index/vega/persistence/jdo/dn/CausewayModuleValVegaPersistenceJdoDn.adoc[CausewayModuleValVegaPersistenceJdoDn], xref:refguide:valuetypes:index/vega/persistence/jdo/dn/converters/CausewayVegaConverter.adoc[CausewayVegaConverter]
 ****
 
-|Apache Causeway Val - Vega (persistence jpa)
+|Apache Causeway Val - Vega (persistence JPA)
 [source,yaml]
 ----
 Group: org.apache.causeway.valuetypes
@@ -3519,7 +3761,7 @@ skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorparent>> {
   FontColor #fffffe
   BorderColor #2e6295
 }
-skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorpersistencejpa>> {
+skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
@@ -3540,15 +3782,15 @@ skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorui>> {
   BorderColor #2e6295
 }
 
-package "Asciidoc\n[Software System]" <<Asciidoc>> {
-  skinparam PackageBorderColor<<Asciidoc>> #9a9a9a
-  skinparam PackageFontColor<<Asciidoc>> #9a9a9a
+rectangle "Asciidoc\n<size:10>[Software System]</size>" <<Asciidoc>> {
+  skinparam RectangleBorderColor<<Asciidoc>> #9a9a9a
+  skinparam RectangleFontColor<<Asciidoc>> #9a9a9a
 
   rectangle "==Apache Causeway Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorparent>> as Asciidoc.ApacheCausewayValAsciidoctorparent
   rectangle "==Apache Causeway Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorapplib>> as Asciidoc.ApacheCausewayValAsciidoctorapplib
   rectangle "==Apache Causeway Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorMetaModel>> as Asciidoc.ApacheCausewayValAsciidoctorMetaModel
   rectangle "==Apache Causeway Val - Asciidoctor (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO>> as Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO
-  rectangle "==Apache Causeway Val - Asciidoctor (persistence jpa)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorpersistencejpa>> as Asciidoc.ApacheCausewayValAsciidoctorpersistencejpa
+  rectangle "==Apache Causeway Val - Asciidoctor (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA>> as Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA
   rectangle "==Apache Causeway Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorui>> as Asciidoc.ApacheCausewayValAsciidoctorui
   rectangle "==Apache Causeway Val - Asciidoctor (ui vaadin)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctoruivaadin>> as Asciidoc.ApacheCausewayValAsciidoctoruivaadin
   rectangle "==Apache Causeway Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctoruiwicket>> as Asciidoc.ApacheCausewayValAsciidoctoruiwicket
@@ -3557,7 +3799,7 @@ package "Asciidoc\n[Software System]" <<Asciidoc>> {
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorapplib : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorMetaModel : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO : "<color:#707070>"
-Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorpersistencejpa : "<color:#707070>"
+Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorui : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorui .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctoruiwicket : "<color:#707070>"
 @enduml
@@ -3645,7 +3887,7 @@ org.datanucleus:datanucleus-core:jar:<managed> +
 xref:refguide:valuetypes:index/asciidoc/persistence/jdo/dn/CausewayModuleValAsciidocPersistenceJdoDn.adoc[CausewayModuleValAsciidocPersistenceJdoDn], xref:refguide:valuetypes:index/asciidoc/persistence/jdo/dn/converters/CausewayAsciiDocConverter.adoc[CausewayAsciiDocConverter]
 ****
 
-|Apache Causeway Val - Asciidoctor (persistence jpa)
+|Apache Causeway Val - Asciidoctor (persistence JPA)
 [source,yaml]
 ----
 Group: org.apache.causeway.valuetypes
@@ -3767,7 +4009,7 @@ skinparam rectangle<<Markdown.ApacheCausewayValMarkdownparent>> {
   FontColor #fffffe
   BorderColor #2e6295
 }
-skinparam rectangle<<Markdown.ApacheCausewayValMarkdownpersistencejpa>> {
+skinparam rectangle<<Markdown.ApacheCausewayValMarkdownpersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
@@ -3783,22 +4025,22 @@ skinparam rectangle<<Markdown.ApacheCausewayValMarkdownui>> {
   BorderColor #2e6295
 }
 
-package "Markdown\n[Software System]" <<Markdown>> {
-  skinparam PackageBorderColor<<Markdown>> #9a9a9a
-  skinparam PackageFontColor<<Markdown>> #9a9a9a
+rectangle "Markdown\n<size:10>[Software System]</size>" <<Markdown>> {
+  skinparam RectangleBorderColor<<Markdown>> #9a9a9a
+  skinparam RectangleFontColor<<Markdown>> #9a9a9a
 
   rectangle "==Apache Causeway Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<Markdown.ApacheCausewayValMarkdownparent>> as Markdown.ApacheCausewayValMarkdownparent
   rectangle "==Apache Causeway Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownapplib>> as Markdown.ApacheCausewayValMarkdownapplib
   rectangle "==Apache Causeway Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownMetaModel>> as Markdown.ApacheCausewayValMarkdownMetaModel
   rectangle "==Apache Causeway Val - Markdown (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownPersistenceJDO>> as Markdown.ApacheCausewayValMarkdownPersistenceJDO
-  rectangle "==Apache Causeway Val - Markdown (persistence jpa)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownpersistencejpa>> as Markdown.ApacheCausewayValMarkdownpersistencejpa
+  rectangle "==Apache Causeway Val - Markdown (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownpersistenceJPA>> as Markdown.ApacheCausewayValMarkdownpersistenceJPA
   rectangle "==Apache Causeway Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<Markdown.ApacheCausewayValMarkdownui>> as Markdown.ApacheCausewayValMarkdownui
   rectangle "==Apache Causeway Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownuiwicket>> as Markdown.ApacheCausewayValMarkdownuiwicket
 }
 
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownMetaModel : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownPersistenceJDO : "<color:#707070>"
-Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownpersistencejpa : "<color:#707070>"
+Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownpersistenceJPA : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownui : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownui .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownuiwicket : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownapplib : "<color:#707070>"
@@ -3883,7 +4125,7 @@ org.datanucleus:datanucleus-core:jar:<managed> +
 xref:refguide:valuetypes:index/markdown/persistence/jdo/dn/CausewayModuleValMarkdownPersistenceJdoDn.adoc[CausewayModuleValMarkdownPersistenceJdoDn], xref:refguide:valuetypes:index/markdown/persistence/jdo/dn/converters/CausewayMarkdownConverter.adoc[CausewayMarkdownConverter]
 ****
 
-|Apache Causeway Val - Markdown (persistence jpa)
+|Apache Causeway Val - Markdown (persistence JPA)
 [source,yaml]
 ----
 Group: org.apache.causeway.valuetypes
@@ -4227,9 +4469,9 @@ skinparam rectangle<<Extensions.ApacheCausewayExtensions>> {
   BorderColor #2e6295
 }
 
-package "Extensions\n[Software System]" <<Extensions>> {
-  skinparam PackageBorderColor<<Extensions>> #9a9a9a
-  skinparam PackageFontColor<<Extensions>> #9a9a9a
+rectangle "Extensions\n<size:10>[Software System]</size>" <<Extensions>> {
+  skinparam RectangleBorderColor<<Extensions>> #9a9a9a
+  skinparam RectangleFontColor<<Extensions>> #9a9a9a
 
   rectangle "==Apache Causeway Ext - Execution Log\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtExecutionLog>> as Extensions.ApacheCausewayExtExecutionLog
   rectangle "==Apache Causeway Ext - Execution Log API\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtExecutionLogAPI>> as Extensions.ApacheCausewayExtExecutionLogAPI
@@ -5484,9 +5726,9 @@ skinparam rectangle<<ApplibExcel.ApacheCausewaySubExceltestingsupport>> {
   BorderColor #2e6295
 }
 
-package "Applib: Excel\n[Software System]" <<ApplibExcel>> {
-  skinparam PackageBorderColor<<ApplibExcel>> #9a9a9a
-  skinparam PackageFontColor<<ApplibExcel>> #9a9a9a
+rectangle "Applib: Excel\n<size:10>[Software System]</size>" <<ApplibExcel>> {
+  skinparam RectangleBorderColor<<ApplibExcel>> #9a9a9a
+  skinparam RectangleFontColor<<ApplibExcel>> #9a9a9a
 
   rectangle "==Apache Causeway Ext - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<ApplibExcel.ApacheCausewayExtExcelparent>> as ApplibExcel.ApacheCausewayExtExcelparent
   rectangle "==Apache Causeway Ext - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtExcelapplib>> as ApplibExcel.ApacheCausewayExtExcelapplib
@@ -5682,9 +5924,9 @@ skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA
   BorderColor #2e6295
 }
 
-package "Core: Command Log\n[Software System]" <<CoreCommandLog>> {
-  skinparam PackageBorderColor<<CoreCommandLog>> #9a9a9a
-  skinparam PackageFontColor<<CoreCommandLog>> #9a9a9a
+rectangle "Core: Command Log\n<size:10>[Software System]</size>" <<CoreCommandLog>> {
+  skinparam RectangleBorderColor<<CoreCommandLog>> #9a9a9a
+  skinparam RectangleFontColor<<CoreCommandLog>> #9a9a9a
 
   rectangle "==Apache Causeway Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLog>> as CoreCommandLog.ApacheCausewayExtCommandLog
   rectangle "==Apache Causeway Ext - Command Log API\n<size:10>[Container: packaging: jar]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLogAPI>> as CoreCommandLog.ApacheCausewayExtCommandLogAPI
@@ -5879,9 +6121,9 @@ skinparam rectangle<<Tooling.ApacheCausewayToolingProjectModelCodemining>> {
   BorderColor #2e6295
 }
 
-package "Tooling\n[Software System]" <<Tooling>> {
-  skinparam PackageBorderColor<<Tooling>> #9a9a9a
-  skinparam PackageFontColor<<Tooling>> #9a9a9a
+rectangle "Tooling\n<size:10>[Software System]</size>" <<Tooling>> {
+  skinparam RectangleBorderColor<<Tooling>> #9a9a9a
+  skinparam RectangleFontColor<<Tooling>> #9a9a9a
 
   rectangle "==Apache Causeway - Tooling\n<size:10>[Container: packaging: pom]</size>" <<Tooling.ApacheCausewayTooling>> as Tooling.ApacheCausewayTooling
   rectangle "==Apache Causeway - Tooling - C4 Modeling\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingC4Modeling>> as Tooling.ApacheCausewayToolingC4Modeling
@@ -6199,9 +6441,9 @@ skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersJ
   BorderColor #2e6295
 }
 
-package "Regression Tests\n[Software System]" <<RegressionTests>> {
-  skinparam PackageBorderColor<<RegressionTests>> #9a9a9a
-  skinparam PackageFontColor<<RegressionTests>> #9a9a9a
+rectangle "Regression Tests\n<size:10>[Software System]</size>" <<RegressionTests>> {
+  skinparam RectangleBorderColor<<RegressionTests>> #9a9a9a
+  skinparam RectangleFontColor<<RegressionTests>> #9a9a9a
 
   rectangle "==Apache Causeway - Regression Tests (stable) - Core WrapperFactory\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory>> as RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory
   rectangle "==Apache Causeway - Regression Tests (stable) - Cucumber\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCucumber>> as RegressionTests.ApacheCausewayRegressionTestsstableCucumber
@@ -6672,9 +6914,9 @@ skinparam rectangle<<Incubator.ApacheCausewayIncubator>> {
   BorderColor #2e6295
 }
 
-package "Incubator\n[Software System]" <<Incubator>> {
-  skinparam PackageBorderColor<<Incubator>> #9a9a9a
-  skinparam PackageFontColor<<Incubator>> #9a9a9a
+rectangle "Incubator\n<size:10>[Software System]</size>" <<Incubator>> {
+  skinparam RectangleBorderColor<<Incubator>> #9a9a9a
+  skinparam RectangleFontColor<<Incubator>> #9a9a9a
 
   rectangle "==Apache Causeway Incubator\n<size:10>[Container: packaging: pom]</size>" <<Incubator.ApacheCausewayIncubator>> as Incubator.ApacheCausewayIncubator
 }
@@ -6723,9 +6965,9 @@ skinparam rectangle<<KrovizClient.ApacheCausewayIncubatorClientkroViz>> {
   BorderColor #2e6295
 }
 
-package "Kroviz Client\n[Software System]" <<KrovizClient>> {
-  skinparam PackageBorderColor<<KrovizClient>> #9a9a9a
-  skinparam PackageFontColor<<KrovizClient>> #9a9a9a
+rectangle "Kroviz Client\n<size:10>[Software System]</size>" <<KrovizClient>> {
+  skinparam RectangleBorderColor<<KrovizClient>> #9a9a9a
+  skinparam RectangleFontColor<<KrovizClient>> #9a9a9a
 
   rectangle "==Apache Causeway Incubator - Client kroViz\n<size:10>[Container: packaging: jar]</size>" <<KrovizClient.ApacheCausewayIncubatorClientkroViz>> as KrovizClient.ApacheCausewayIncubatorClientkroViz
 }
@@ -6794,9 +7036,9 @@ skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLViewer>> {
   BorderColor #2e6295
 }
 
-package "GraphQL Viewer\n[Software System]" <<GraphQLViewer>> {
-  skinparam PackageBorderColor<<GraphQLViewer>> #9a9a9a
-  skinparam PackageFontColor<<GraphQLViewer>> #9a9a9a
+rectangle "GraphQL Viewer\n<size:10>[Software System]</size>" <<GraphQLViewer>> {
+  skinparam RectangleBorderColor<<GraphQLViewer>> #9a9a9a
+  skinparam RectangleFontColor<<GraphQLViewer>> #9a9a9a
 
   rectangle "==Apache Causeway Inc - Viewer GraphQL\n<size:10>[Container: packaging: pom]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQL>> as GraphQLViewer.ApacheCausewayIncViewerGraphQL
   rectangle "==Apache Causeway Inc - Viewer GraphQL (Applib)\n<size:10>[Container: packaging: jar]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib>> as GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib
@@ -6943,9 +7185,9 @@ skinparam rectangle<<VaadinViewer.ApacheCausewayIncViewerVaadinViewer>> {
   BorderColor #2e6295
 }
 
-package "Vaadin Viewer\n[Software System]" <<VaadinViewer>> {
-  skinparam PackageBorderColor<<VaadinViewer>> #9a9a9a
-  skinparam PackageFontColor<<VaadinViewer>> #9a9a9a
+rectangle "Vaadin Viewer\n<size:10>[Software System]</size>" <<VaadinViewer>> {
+  skinparam RectangleBorderColor<<VaadinViewer>> #9a9a9a
+  skinparam RectangleFontColor<<VaadinViewer>> #9a9a9a
 
   rectangle "==Apache Causeway Inc - Viewer Vaadin\n<size:10>[Container: packaging: pom]</size>" <<VaadinViewer.ApacheCausewayIncViewerVaadin>> as VaadinViewer.ApacheCausewayIncViewerVaadin
   rectangle "==Apache Causeway Inc - Viewer Vaadin (Model)\n<size:10>[Container: packaging: jar]</size>" <<VaadinViewer.ApacheCausewayIncViewerVaadinModel>> as VaadinViewer.ApacheCausewayIncViewerVaadinModel
@@ -7090,9 +7332,9 @@ skinparam rectangle<<JavaFXViewer.ApacheCausewayIncViewerJavaFXViewer>> {
   BorderColor #2e6295
 }
 
-package "JavaFX Viewer\n[Software System]" <<JavaFXViewer>> {
-  skinparam PackageBorderColor<<JavaFXViewer>> #9a9a9a
-  skinparam PackageFontColor<<JavaFXViewer>> #9a9a9a
+rectangle "JavaFX Viewer\n<size:10>[Software System]</size>" <<JavaFXViewer>> {
+  skinparam RectangleBorderColor<<JavaFXViewer>> #9a9a9a
+  skinparam RectangleFontColor<<JavaFXViewer>> #9a9a9a
 
   rectangle "==Apache Causeway Inc - Viewer JavaFX\n<size:10>[Container: packaging: pom]</size>" <<JavaFXViewer.ApacheCausewayIncViewerJavaFX>> as JavaFXViewer.ApacheCausewayIncViewerJavaFX
   rectangle "==Apache Causeway Inc - Viewer JavaFX (Model)\n<size:10>[Container: packaging: jar]</size>" <<JavaFXViewer.ApacheCausewayIncViewerJavaFXModel>> as JavaFXViewer.ApacheCausewayIncViewerJavaFXModel
@@ -7226,9 +7468,9 @@ skinparam rectangle<<Other.ApacheCausewayExtCommandReplayforSecondary>> {
   BorderColor #2e6295
 }
 
-package "Other\n[Software System]" <<Other>> {
-  skinparam PackageBorderColor<<Other>> #9a9a9a
-  skinparam PackageFontColor<<Other>> #9a9a9a
+rectangle "Other\n<size:10>[Software System]</size>" <<Other>> {
+  skinparam RectangleBorderColor<<Other>> #9a9a9a
+  skinparam RectangleFontColor<<Other>> #9a9a9a
 
   rectangle "==Apache Causeway Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<Other.ApacheCausewayExtCommandReplay>> as Other.ApacheCausewayExtCommandReplay
   rectangle "==Apache Causeway Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<Other.ApacheCausewayExtCommandReplayforPrimary>> as Other.ApacheCausewayExtCommandReplayforPrimary
@@ -7264,6 +7506,12 @@ Directory: /incubator/extensions/core/commandreplay/primary
 ----
 |A module for obtaining commands from a primary
 
+.Components
+****
+o.a.i.extensions.commandreplay.primary.config.PrimaryConfig +
+o.a.i.extensions.commandreplay.primary.spiimpl.CaptureResultOfCommand +
+****
+
 .Dependencies
 ****
 org.apache.causeway.core:causeway-core-config:jar:<managed> +
@@ -7289,6 +7537,16 @@ Directory: /incubator/extensions/core/commandreplay/secondary
 |A module providing a Quartz Job to run on a secondary system,
 for obtaining commands from a primary and saving them so that they are replayed.
 
+.Components
+****
+o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserException +
+o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserResult +
+o.a.i.extensions.commandreplay.secondary.analysis.CommandReplayAnalysisService +
+o.a.i.extensions.commandreplay.secondary.config.SecondaryConfig +
+o.a.i.extensions.commandreplay.secondary.fetch.CommandFetcher +
+o.a.i.extensions.commandreplay.secondary.job.ReplicateAndReplayJob +
+****
+
 .Dependencies
 ****
 org.apache.causeway.core:causeway-core-config:jar:<managed> +