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 96983bc865 CAUSEWAY-3404: recreate ref-guide index
96983bc865 is described below

commit 96983bc865a96feb4d4fb9fcf89ef4574065cbf3
Author: Andi Huber <[email protected]>
AuthorDate: Tue May 9 07:49:56 2023 +0200

    CAUSEWAY-3404: recreate ref-guide index
---
 .../modules/applib/pages/index/Identifier.adoc     |   4 +-
 .../applib/pages/index/annotation/Action.adoc      |  19 +-
 .../pages/index/annotation/ActionLayout.adoc       |  22 -
 .../applib/pages/index/annotation/Collection.adoc  |  17 +-
 .../pages/index/annotation/DomainObject.adoc       |   4 +-
 .../applib/pages/index/annotation/Property.adoc    |  19 +-
 .../index/events/domain/AbstractDomainEvent.adoc   |  12 +-
 .../index/events/domain/ActionDomainEvent.adoc     |   5 -
 .../layout/component/DomainObjectLayoutData.adoc   |  46 +-
 .../modules/commons/pages/index/io/DataSource.adoc |  11 +
 .../modules/commons/pages/index/io/TextUtils.adoc  | 116 ++++
 .../modules/commons/pages/index/io/ZipUtils.adoc   |  22 +
 .../index/metamodel/object/ManagedObject.adoc      |  15 +-
 .../applib/fixturescripts/FixtureScripts.adoc      |   2 +-
 .../applib/validate/DomainModelValidator.adoc      |  11 +
 core/adoc/modules/_overview/pages/about.adoc       | 720 +++++++++++++++------
 16 files changed, 784 insertions(+), 261 deletions(-)

diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/Identifier.adoc 
b/antora/components/refguide-index/modules/applib/pages/index/Identifier.adoc
index 741f7f3fe3..d7476c4c6f 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/Identifier.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/Identifier.adoc
@@ -12,8 +12,8 @@ For xref:refguide:applib:index/Identifier.adoc[Identifier] 
(s) of type _Identifi
 ----
 class Identifier {
   Identifier classIdentifier(LogicalType typeIdentifier)
-  Identifier propertyIdentifier(LogicalType typeIdentifier, String 
propertyOrCollectionName)
-  Identifier collectionIdentifier(LogicalType typeIdentifier, String 
propertyOrCollectionName)
+  Identifier propertyIdentifier(LogicalType typeIdentifier, String 
propertyName)
+  Identifier collectionIdentifier(LogicalType typeIdentifier, String 
collectionName)
   Identifier methodIdentifier(LogicalType typeIdentifier, Method method)     
// <.>
   Identifier actionIdentifier(LogicalType typeIdentifier, String actionName, 
Class<?>... parameterClasses)
   Identifier actionIdentifier(LogicalType typeIdentifier, String actionName, 
Can<String> parameterClassNames)
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
index 3fce83b20a..63d85d21a2 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
@@ -14,7 +14,8 @@ Groups together all domain-specific metadata for an invokable 
action on a domain
   Publishing commandPublishing() default Publishing.NOT_SPECIFIED;     // <.>
   Class<? extends ActionDomainEvent<?>> domainEvent() default 
ActionDomainEvent.Default.class;     // <.>
   Publishing executionPublishing() default Publishing.NOT_SPECIFIED;     // <.>
-  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  @Deprecated(forRemoval = true, since = "2.0.0-RC2")
+Where hidden() default Where.NOT_SPECIFIED;     // <.>
   RestrictTo restrictTo() default RestrictTo.NOT_SPECIFIED;     // <.>
   SemanticsOf semantics() default SemanticsOf.NOT_SPECIFIED;     // <.>
   Class<?> typeOf() default // represents unspecified
@@ -51,6 +52,13 @@ Whether 
xref:refguide:applib:index/services/iactn/Execution.adoc[Execution] s (t
 <.> xref:#hidden[hidden]
 +
 --
+[WARNING]
+====
+[red]#_deprecated:_#
+
+use _ActionLayout#hidden()_ instead
+====
+
 Indicates where (in the UI) the action is not visible to the user.
 --
 <.> xref:#restrictTo[restrictTo]
@@ -127,9 +135,14 @@ Whether 
xref:refguide:applib:index/services/iactn/Execution.adoc[Execution] s (t
 [#hidden]
 === hidden
 
-Indicates where (in the UI) the action is not visible to the user.
+[WARNING]
+====
+[red]#_deprecated:_#
 
-It is also possible to suppress an action's visibility using 
_ActionLayout#hidden()_ .
+use _ActionLayout#hidden()_ instead
+====
+
+Indicates where (in the UI) the action is not visible to the user.
 
 For xref:refguide:applib:index/annotation/DomainService.adoc[DomainService] 
actions, the action's visibility is dependent upon its _DomainService#nature() 
nature_ .
 
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 04e78b0474..930c38c9a8 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
@@ -10,8 +10,6 @@ Layout hints for actions.
 ----
 @interface ActionLayout {
   String associateWith() default "";     // <.>
-  @Deprecated(forRemoval = true, since = "2.0.0-RC1")
-BookmarkPolicy bookmarking() default BookmarkPolicy.NOT_SPECIFIED;     // <.>
   String cssClass() default "";     // <.>
   String cssClassFa() default "";     // <.>
   CssClassFaPosition cssClassFaPosition() default CssClassFaPosition.LEFT;     
// <.>
@@ -33,16 +31,6 @@ Redirect redirectPolicy() default Redirect.AS_CONFIGURED;    
 // <.>
 --
 Associates this action with a property or collection, specifying its id.
 --
-<.> xref:#bookmarking[bookmarking]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-Conflicting semantics with _DomainObjectLayout#bookmarking()_ , that is, if 
present on this action's return type, hence deprecated for removal.
-====
---
 <.> xref:#cssClass[cssClass]
 +
 --
@@ -124,16 +112,6 @@ For example `@ActionLayout(associateWith="items") 
@ActionLayout(sequence="2.1")`
 
 Note that it is also possible to associate an action with a collection using 
_Action#choicesFrom()_ (which has the additional semantic of the rows of the 
element being used as choices for that action's collection parameter of the 
same type as the elements of the collection).
 
-[#bookmarking]
-=== bookmarking
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-Conflicting semantics with _DomainObjectLayout#bookmarking()_ , that is, if 
present on this action's return type, hence deprecated for removal.
-====
-
 [#cssClass]
 === cssClass
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
index e3d67d941b..903885feda 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
@@ -10,7 +10,8 @@ Domain semantics for domain object collection.
 ----
 @interface Collection {
   Class<? extends CollectionDomainEvent<?, ?>> domainEvent() default 
CollectionDomainEvent.Default.class;     // <.>
-  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  @Deprecated(forRemoval = true, since = "2.0.0-RC2")
+Where hidden() default Where.NOT_SPECIFIED;     // <.>
   Class<?> typeOf() default // represents unspecified
 void.class;     // <.>
 }
@@ -24,6 +25,13 @@ Indicates that changes to the collection that should be 
posted to the _org.apach
 <.> xref:#hidden[hidden]
 +
 --
+[WARNING]
+====
+[red]#_deprecated:_#
+
+use CollectionLayout#hidden() instead
+====
+
 Indicates when the collection is not visible to the user.
 --
 <.> xref:#typeOf[typeOf]
@@ -58,6 +66,13 @@ This subclass must provide a no-arg constructor; the fields 
are set reflectively
 [#hidden]
 === hidden
 
+[WARNING]
+====
+[red]#_deprecated:_#
+
+use CollectionLayout#hidden() instead
+====
+
 Indicates when the collection is not visible to the user.
 
 [#typeOf]
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObject.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObject.adoc
index 30bab6077f..b8b28117ae 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObject.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObject.adoc
@@ -16,7 +16,7 @@ If - for the currently logged on user - none of the domain 
object's members are
   String autoCompleteMethod() default "autoComplete";     // <.>
   Bounding bounding() default Bounding.NOT_SPECIFIED;     // <.>
   Editing editing() default Editing.NOT_SPECIFIED;     // <.>
-  String editingDisabledReason() default "Disabled";     // <.>
+  String editingDisabledReason() default "";     // <.>
   Publishing entityChangePublishing() default Publishing.NOT_SPECIFIED;     // 
<.>
   Introspection introspection() default Introspection.NOT_SPECIFIED;     // <.>
   String mixinMethod() default "$$";     // <.>
@@ -177,6 +177,8 @@ Note that non-editable objects can nevertheless have 
actions invoked upon them.
 
 If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to 
the user as to why the object's properties cannot be edited/collections 
modified.
 
+If left empty (default), no reason is given.
+
 [#entityChangePublishing]
 === entityChangePublishing
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Property.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Property.adoc
index f2eba3e2ac..974946f8a5 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Property.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Property.adoc
@@ -17,7 +17,8 @@ Collects together all the domain semantics for the property 
of a domain object.
   Publishing entityChangePublishing() default Publishing.NOT_SPECIFIED;     // 
<.>
   Publishing executionPublishing() default Publishing.NOT_SPECIFIED;     // <.>
   String fileAccept() default "";     // <.>
-  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  @Deprecated(forRemoval = true, since = "2.0.0-RC2")
+Where hidden() default Where.NOT_SPECIFIED;     // <.>
   int maxLength() default -1;     // <.>
   Snapshot snapshot() default Snapshot.NOT_SPECIFIED;     // <.>
   Class<? extends Specification>[] mustSatisfy() default {};     // <.>
@@ -72,6 +73,13 @@ For uploading 
xref:refguide:applib:index/value/Blob.adoc[Blob] or xref:refguide:
 <.> xref:#hidden[hidden]
 +
 --
+[WARNING]
+====
+[red]#_deprecated:_#
+
+use _PropertyLayout#hidden()_ instead
+====
+
 Indicates where the property is not visible to the user.
 --
 <.> xref:#maxLength[maxLength]
@@ -160,6 +168,8 @@ Note that non-editable objects can nevertheless have 
actions invoked upon them.
 
 If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to 
the user as to why this property cannot be edited.
 
+If left empty (default), no reason is given.
+
 [#entityChangePublishing]
 === entityChangePublishing
 
@@ -184,6 +194,13 @@ Note that this does not prevent the user from uploading 
some other file type; ra
 [#hidden]
 === hidden
 
+[WARNING]
+====
+[red]#_deprecated:_#
+
+use _PropertyLayout#hidden()_ instead
+====
+
 Indicates where the property is not visible to the user.
 
 [#maxLength]
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/events/domain/AbstractDomainEvent.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/events/domain/AbstractDomainEvent.adoc
index 47c34ed541..e50637e062 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/events/domain/AbstractDomainEvent.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/events/domain/AbstractDomainEvent.adoc
@@ -17,7 +17,7 @@ class AbstractDomainEvent<S> {
   AbstractDomainEvent(S source)     // <.>
   AbstractDomainEvent(S source, Identifier identifier)
   S getSource()     // <.>
-  void setMixedIn(Object mixedIn)     // <.>
+  void setMixee(Object mixee)     // <.>
   T getSubject()     // <.>
   void setEventPhase(Phase phase)     // <.>
   void setIdentifier(Identifier identifier)     // <.>
@@ -57,7 +57,7 @@ If used then the framework will set the remaining state via 
(non-API) setters.
 --
 The domain object raising this event.
 --
-<.> xref:#setMixedIn_Object[setMixedIn(Object)]
+<.> xref:#setMixee_Object[setMixee(Object)]
 +
 --
 Not API - set by the framework.
@@ -65,7 +65,7 @@ Not API - set by the framework.
 <.> xref:#getSubject_[getSubject()]
 +
 --
-The subject of the event, which will be either the _#getSource() source_ for a 
regular action, or the _#getMixedIn() mixed-in_ domain object for a mixin.
+The subject of the event, which will be either the _#getSource() source_ for a 
regular action, or the _#getMixee() mixed-in_ domain object for a mixin.
 --
 <.> xref:#setEventPhase_Phase[setEventPhase(Phase)]
 +
@@ -178,15 +178,15 @@ For a "regular" action, property or collection then this 
will be the target doma
 
 But for a "mixin" action, this will be an instance of the mixin itself.
 
-[#setMixedIn_Object]
-=== setMixedIn(Object)
+[#setMixee_Object]
+=== setMixee(Object)
 
 Not API - set by the framework.
 
 [#getSubject_]
 === getSubject()
 
-The subject of the event, which will be either the _#getSource() source_ for a 
regular action, or the _#getMixedIn() mixed-in_ domain object for a mixin.
+The subject of the event, which will be either the _#getSource() source_ for a 
regular action, or the _#getMixee() mixed-in_ domain object for a mixin.
 
 [#setEventPhase_Phase]
 === setEventPhase(Phase)
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/events/domain/ActionDomainEvent.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/events/domain/ActionDomainEvent.adoc
index ef5fe435f3..96f627fd7d 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/events/domain/ActionDomainEvent.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/events/domain/ActionDomainEvent.adoc
@@ -24,7 +24,6 @@ class ActionDomainEvent<S> {
   void setSemantics(SemanticsOf semantics)     // <.>
   void setParameterNames(List<String> parameterNames)     // <.>
   void setParameterTypes(List<Class<?>> parameterTypes)     // <.>
-  void setMixedIn(Object mixedIn)     // <.>
   String toString()
 }
 ----
@@ -47,7 +46,6 @@ Set by the framework.
 <.> xref:#setSemantics_SemanticsOf[setSemantics(SemanticsOf)]
 <.> xref:#setParameterNames_List[setParameterNames(List)]
 <.> xref:#setParameterTypes_List[setParameterTypes(List)]
-<.> xref:#setMixedIn_Object[setMixedIn(Object)]
 
 == Members
 
@@ -78,6 +76,3 @@ Event subscribers can replace the value with some other value 
if they wish, thou
 
 [#setParameterTypes_List]
 === setParameterTypes(List)
-
-[#setMixedIn_Object]
-=== setMixedIn(Object)
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/layout/component/DomainObjectLayoutData.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/layout/component/DomainObjectLayoutData.adoc
index 3fee85922c..5c1050e80b 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/layout/component/DomainObjectLayoutData.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/layout/component/DomainObjectLayoutData.adoc
@@ -22,8 +22,10 @@ class DomainObjectLayoutData {
   void setDescribedAs(String describedAs)
   String getNamed()
   void setNamed(String named)
-  String getPlural()
-  void setPlural(String plural)
+  String getPlural()     // <.>
+  void setPlural(String plural)     // <.>
+  Integer getPaged()
+  void setPaged(Integer paged)
   Class<? extends TableDecorator> getTableDecorator()
   void setTableDecorator(Class<? extends TableDecorator> tableDecorator)
   String getMetadataError()     // <.>
@@ -35,6 +37,26 @@ class DomainObjectLayoutData {
 }
 ----
 
+<.> xref:#getPlural_[getPlural()]
++
+--
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- unused, to remove.
+====
+--
+<.> xref:#setPlural_String[setPlural(String)]
++
+--
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- unused, to remove.
+====
+--
 <.> xref:#getMetadataError_[getMetadataError()]
 +
 --
@@ -53,6 +75,26 @@ The link to access this resource from the REST API (Restful 
Objects viewer).
 
 == Members
 
+[#getPlural_]
+=== getPlural()
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- unused, to remove.
+====
+
+[#setPlural_String]
+=== setPlural(String)
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- unused, to remove.
+====
+
 [#getMetadataError_]
 === getMetadataError()
 
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
 
b/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
index fe9d0caba9..d403b4da3b 100644
--- 
a/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
@@ -22,6 +22,7 @@ interface DataSource {
   Try<HashUtils.Hash> tryHash(HashAlgorithm hashAlgorithm)
   Try<HashUtils.Hash> tryMd5()
   String md5Hex()
+  DataSource map(ThrowingFunction<InputStream, InputStream> inputStreamMapper) 
    // <.>
   Try<Void> tryReadAndWrite(DataSink dataSink, int bufferSize)     // <.>
   void pipe(DataSink dataSink, int bufferSize)     // <.>
   DataSource empty()     // <.>
@@ -76,6 +77,11 @@ Reads from this DataSource all lines using given charset 
encoding.
 --
 Reads from this DataSource all lines using UTF-8 encoding.
 --
+<.> xref:#map_ThrowingFunction[map(ThrowingFunction)]
++
+--
+Returns a new xref:refguide:commons:index/io/DataSource.adoc[DataSource] that 
maps the _InputStream_ of this 
xref:refguide:commons:index/io/DataSource.adoc[DataSource] to another through 
means of applying given unary operator _inputStreamMapper_ . (eg the decode or 
encode the originating input stream)
+--
 <.> xref:#tryReadAndWrite_DataSink_int[tryReadAndWrite(DataSink, int)]
 +
 --
@@ -184,6 +190,11 @@ Reads from this DataSource all lines using UTF-8 encoding.
 
 If the underlying _InputStream_ is null a success 
xref:refguide:commons:index/functional/Try.adoc[Try] is returned, containing a 
null value.
 
+[#map_ThrowingFunction]
+=== map(ThrowingFunction)
+
+Returns a new xref:refguide:commons:index/io/DataSource.adoc[DataSource] that 
maps the _InputStream_ of this 
xref:refguide:commons:index/io/DataSource.adoc[DataSource] to another through 
means of applying given unary operator _inputStreamMapper_ . (eg the decode or 
encode the originating input stream)
+
 [#tryReadAndWrite_DataSink_int]
 === tryReadAndWrite(DataSink, int)
 
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/io/TextUtils.adoc
 
b/antora/components/refguide-index/modules/commons/pages/index/io/TextUtils.adoc
new file mode 100644
index 0000000000..882533dea3
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/io/TextUtils.adoc
@@ -0,0 +1,116 @@
+= TextUtils
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+Utilities for text processing and text I/O.
+
+== API
+
+[source,java]
+.TextUtils.java
+----
+class TextUtils {
+  Stream<String> streamLines(String text)     // <.>
+  Can<String> readLines(String text)     // <.>
+  Can<String> readLinesFromInputStream(InputStream input, Charset charset)     
// <.>
+  Can<String> readLinesFromResource(Class<?> resourceLocation, String 
resourceName, Charset charset)     // <.>
+  Can<String> readLinesFromUrl(URL url, Charset charset)     // <.>
+  Can<String> readLinesFromFile(File file, Charset charset)     // <.>
+  Can<String> readLinesFromDataSource(DataSource dataSource, Charset charset)  
   // <.>
+  void writeLinesToFile(Iterable<String> lines, File file, Charset charset)    
 // <.>
+  void writeLinesToDataSink(Iterable<String> lines, DataSink dataSink, Charset 
charset)     // <.>
+  StringCutter cutter(String value)
+}
+----
+
+<.> xref:#streamLines_String[streamLines(String)]
++
+--
+Converts given _text_ into a _Stream_ of lines, removing new line characters 
_\n,\r_ in the process.
+--
+<.> xref:#readLines_String[readLines(String)]
++
+--
+Converts given _text_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ in the process.
+--
+<.> 
xref:#readLinesFromInputStream_InputStream_Charset[readLinesFromInputStream(InputStream,
 Charset)]
++
+--
+Reads content from given _input_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+--
+<.> 
xref:#readLinesFromResource_Class_String_Charset[readLinesFromResource(Class, 
String, Charset)]
++
+--
+Reads content from given resource into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+--
+<.> xref:#readLinesFromUrl_URL_Charset[readLinesFromUrl(URL, Charset)]
++
+--
+Reads content from given _URL_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+--
+<.> xref:#readLinesFromFile_File_Charset[readLinesFromFile(File, Charset)]
++
+--
+Reads content from given _File_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+--
+<.> 
xref:#readLinesFromDataSource_DataSource_Charset[readLinesFromDataSource(DataSource,
 Charset)]
++
+--
+Reads content from given 
xref:refguide:commons:index/io/DataSource.adoc[DataSource] into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+--
+<.> xref:#writeLinesToFile_Iterable_File_Charset[writeLinesToFile(Iterable, 
File, Charset)]
++
+--
+Writes given lines to given _File_ , using new line character _\n_ .
+--
+<.> 
xref:#writeLinesToDataSink_Iterable_DataSink_Charset[writeLinesToDataSink(Iterable,
 DataSink, Charset)]
++
+--
+Writes given lines to given 
xref:refguide:commons:index/io/DataSink.adoc[DataSink] , using new line 
character _\n_ .
+--
+
+== Members
+
+[#streamLines_String]
+=== streamLines(String)
+
+Converts given _text_ into a _Stream_ of lines, removing new line characters 
_\n,\r_ in the process.
+
+[#readLines_String]
+=== readLines(String)
+
+Converts given _text_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ in the process.
+
+[#readLinesFromInputStream_InputStream_Charset]
+=== readLinesFromInputStream(InputStream, Charset)
+
+Reads content from given _input_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+
+[#readLinesFromResource_Class_String_Charset]
+=== readLinesFromResource(Class, String, Charset)
+
+Reads content from given resource into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+
+[#readLinesFromUrl_URL_Charset]
+=== readLinesFromUrl(URL, Charset)
+
+Reads content from given _URL_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+
+[#readLinesFromFile_File_Charset]
+=== readLinesFromFile(File, Charset)
+
+Reads content from given _File_ into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+
+[#readLinesFromDataSource_DataSource_Charset]
+=== readLinesFromDataSource(DataSource, Charset)
+
+Reads content from given 
xref:refguide:commons:index/io/DataSource.adoc[DataSource] into a 
xref:refguide:commons:index/collections/Can.adoc[Can] of lines, removing new 
line characters _\n,\r_ and BOM file header (if any) in the process.
+
+[#writeLinesToFile_Iterable_File_Charset]
+=== writeLinesToFile(Iterable, File, Charset)
+
+Writes given lines to given _File_ , using new line character _\n_ .
+
+[#writeLinesToDataSink_Iterable_DataSink_Charset]
+=== writeLinesToDataSink(Iterable, DataSink, Charset)
+
+Writes given lines to given 
xref:refguide:commons:index/io/DataSink.adoc[DataSink] , using new line 
character _\n_ .
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/io/ZipUtils.adoc 
b/antora/components/refguide-index/modules/commons/pages/index/io/ZipUtils.adoc
index 4e59b9a273..979fe67b5e 100644
--- 
a/antora/components/refguide-index/modules/commons/pages/index/io/ZipUtils.adoc
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/io/ZipUtils.adoc
@@ -11,6 +11,8 @@ Utilities to zip and unzip data.
 class ZipUtils {
   Stream<ZipEntryDataSource> streamZipEntries(DataSource zippedSource, 
ZipOptions zipOptions)     // <.>
   Stream<ZipEntryDataSource> streamZipEntries(DataSource zippedSource)     // 
<.>
+  Optional<ZipEntryDataSource> firstZipEntry(DataSource zippedSource, 
ZipOptions zipOptions)     // <.>
+  Optional<ZipEntryDataSource> firstZipEntry(DataSource zippedSource)     // 
<.>
   byte[] zipToBytes(Stream<ZipEntryDataSource> entryStream)
   void writeTo(Stream<ZipEntryDataSource> entryStream, DataSink dataSink)
   EntryBuilder zipEntryBuilder()     // <.>
@@ -27,6 +29,16 @@ Returns a _Stream_ of _ZipEntryDataSource_ , buffered in 
memory, which allows co
 --
 Shortcut for _streamZipEntries(zippedSource, ZipOptions.builder().build())_
 --
+<.> xref:#firstZipEntry_DataSource_ZipOptions[firstZipEntry(DataSource, 
ZipOptions)]
++
+--
+Optionally the first zip-entry as _ZipEntryDataSource_ , based on whether an 
entry exists.
+--
+<.> xref:#firstZipEntry_DataSource[firstZipEntry(DataSource)]
++
+--
+Shortcut for _firstZipEntry(zippedSource, ZipOptions.builder().build())_
+--
 <.> xref:#zipEntryBuilder_[zipEntryBuilder()]
 +
 --
@@ -45,6 +57,16 @@ Returns a _Stream_ of _ZipEntryDataSource_ , buffered in 
memory, which allows co
 
 Shortcut for _streamZipEntries(zippedSource, ZipOptions.builder().build())_
 
+[#firstZipEntry_DataSource_ZipOptions]
+=== firstZipEntry(DataSource, ZipOptions)
+
+Optionally the first zip-entry as _ZipEntryDataSource_ , based on whether an 
entry exists.
+
+[#firstZipEntry_DataSource]
+=== firstZipEntry(DataSource)
+
+Shortcut for _firstZipEntry(zippedSource, ZipOptions.builder().build())_
+
 [#zipEntryBuilder_]
 === zipEntryBuilder()
 
diff --git 
a/antora/components/refguide-index/modules/core/pages/index/metamodel/object/ManagedObject.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/metamodel/object/ManagedObject.adoc
index 1ff977f1f8..a027c00420 100644
--- 
a/antora/components/refguide-index/modules/core/pages/index/metamodel/object/ManagedObject.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/metamodel/object/ManagedObject.adoc
@@ -19,6 +19,7 @@ interface ManagedObject {
   String getTitle()     // <.>
   String getIconName()     // <.>
   ObjectIcon getIcon()
+  Either<ObjectIcon, CssClassFaFactory> eitherIconOrFaClass()     // <.>
   Either<ManagedObject, ManagedObject> asEitherWithOrWithoutMemoizedBookmark()
   ManagedObject unspecified()     // <.>
   ManagedObject empty(ObjectSpecification spec)     // <.>
@@ -67,7 +68,12 @@ The (untranslated) title of the wrapped pojo.
 <.> xref:#getIconName_[getIconName()]
 +
 --
-Returns the name of an icon to use if this object is to be displayed 
graphically.
+Returns the name of an icon to use for this object.
+--
+<.> xref:#eitherIconOrFaClass_[eitherIconOrFaClass()]
++
+--
+Domain Objects may either have an icon corresponding to an icon resource, or 
they use a font awesome icon.
 --
 <.> xref:#unspecified_[unspecified()]
 +
@@ -160,10 +166,15 @@ The (untranslated) title of the wrapped pojo.
 [#getIconName_]
 === getIconName()
 
-Returns the name of an icon to use if this object is to be displayed 
graphically.
+Returns the name of an icon to use for this object.
 
 May return `null` if no icon is specified.
 
+[#eitherIconOrFaClass_]
+=== eitherIconOrFaClass()
+
+Domain Objects may either have an icon corresponding to an icon resource, or 
they use a font awesome icon.
+
 [#unspecified_]
 === unspecified()
 
diff --git 
a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
 
b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
index b923d4ec66..b12e2941d6 100644
--- 
a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
+++ 
b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScripts.adoc
@@ -23,7 +23,7 @@ public static final String LOGICAL_TYPE_NAME;
   Object recreateObjectsAndReturnFirst()     // <.>
   boolean hideRecreateObjectsAndReturnFirst()
   void run(FixtureScript... fixtureScriptList)
-  void runPersonas(PersonaWithBuilderScript<?, ? extends 
BuilderScriptAbstract<?>>... personaScripts)
+  void runPersonas(PersonaWithBuilderScript<?, ? extends 
BuilderScriptAbstract<?>>... personas)
   T runPersona(PersonaWithBuilderScript<T, ? extends BuilderScriptAbstract<? 
extends T>> persona)
   T runBuilder(BuilderScriptAbstract<T> builderScript)     // <.>
   T runBuilderScriptNonTransactional(BuilderScriptAbstract<T> builderScript)   
  // <.>
diff --git 
a/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/validate/DomainModelValidator.adoc
 
b/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/validate/DomainModelValidator.adoc
index 3bd2799ccd..0dc9fbf489 100644
--- 
a/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/validate/DomainModelValidator.adoc
+++ 
b/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/validate/DomainModelValidator.adoc
@@ -15,6 +15,7 @@ class DomainModelValidator {
   Stream<ValidationFailure> streamFailures(Predicate<Identifier> filter)
   Stream<ValidationFailure> 
streamFailuresMatchingOriginatingIdentifier(Identifier identifier)
   void assertAnyFailuresContaining(Identifier identifier, String 
messageSnippet)     // <.>
+  void assertAnyFailuresContaining(Class<?> domainType, String messageSnippet) 
    // <.>
   void assertAnyOfContainingAnyFailures(Can<Identifier> classIdentifiers, 
String messageSnippet)     // <.>
 }
 ----
@@ -34,6 +35,11 @@ Alternative way of checking
 --
 JUnit support
 --
+<.> 
xref:#assertAnyFailuresContaining_Class_String[assertAnyFailuresContaining(Class,
 String)]
++
+--
+JUnit support
+--
 <.> 
xref:#assertAnyOfContainingAnyFailures_Can_String[assertAnyOfContainingAnyFailures(Can,
 String)]
 +
 --
@@ -57,6 +63,11 @@ Alternative way of checking
 
 JUnit support
 
+[#assertAnyFailuresContaining_Class_String]
+=== assertAnyFailuresContaining(Class, String)
+
+JUnit support
+
 [#assertAnyOfContainingAnyFailures_Can_String]
 === assertAnyOfContainingAnyFailures(Can, String)
 
diff --git a/core/adoc/modules/_overview/pages/about.adoc 
b/core/adoc/modules/_overview/pages/about.adoc
index f369843b6c..3aaf36fab5 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -14,7 +14,6 @@ title App - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -27,12 +26,15 @@ skinparam rectangle<<App.ApacheCausewayStarterParent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<App>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -66,7 +68,6 @@ title Mavendeps - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -79,17 +80,21 @@ skinparam rectangle<<Mavendeps.ApacheCausewayMavenDeps>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Mavendeps.ApacheCausewayMavenDepsWebapp>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Mavendeps>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
@@ -132,8 +137,6 @@ 
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
 org.apache.causeway.core:causeway-core-security:jar:<managed> +
 org.apache.causeway.core:causeway-schema:jar:<managed> +
 org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed>
 +
-org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 org.springframework.boot:spring-boot-starter-tomcat:jar:<managed> +
 org.springframework.boot:spring-boot-starter-web:jar:<managed> +
 ****
@@ -150,7 +153,6 @@ title Testing - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -163,102 +165,123 @@ skinparam rectangle<<Testing.ApacheCausewayTesting>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstArchitectureTestSupportapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstArchitectureTestSupportparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstFakeDataapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstFakeDatafixtures>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstFakeDataintegtests>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstFakeDataparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstFixturesapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstFixturesparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstH2Consoleparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstH2Consoleui>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstHSQLDBManager>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstHSQLDBManagerparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstIntegTestSupportapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstIntegTestSupportparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstSpecCucumberapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstSpecCucumberparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstUnitTestSupportapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Testing.ApacheCausewayTstUnitTestSupportparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Testing>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Tst - H2 Console (ui)\n<size:10>[Container: 
packaging: jar]</size>" <<Testing.ApacheCausewayTstH2Consoleui>> as 
Testing.ApacheCausewayTstH2Consoleui
@@ -588,7 +611,7 @@ Directory: /testing/specsupport/applib
 io.cucumber:cucumber-java:jar:<managed> +
 io.cucumber:cucumber-junit-platform-engine:jar:<managed> +
 io.cucumber:cucumber-spring:jar:<managed> +
-io.cucumber:messages:jar:21.0.1 +
+io.cucumber:messages:jar:22.0.0 +
 org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed>
 +
@@ -651,7 +674,6 @@ title Examples - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -664,57 +686,90 @@ skinparam rectangle<<Examples.DemoDomain>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Examples.DemoParent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Examples.DemoTesting>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Examples.DemoTestingJDO>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Examples.DemoTestingJPA>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Examples.DemoWeb>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Examples.DemoWicketCommon>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Examples.DemoWicketJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Examples.DemoWicketJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Examples.DemoWicketJPAwithGraphQL>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Examples>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 rectangle "Examples\n<size:10>[Software System]</size>" <<Examples>> {
-  skinparam RectangleBorderColor<<Examples>> #9a9a9a
-  skinparam RectangleFontColor<<Examples>> #9a9a9a
-
+  rectangle "==Demo - Wicket/JPA\n<size:10>[Container: packaging: jar]</size>" 
<<Examples.DemoWicketJPA>> as Examples.DemoWicketJPA
+  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
   rectangle "==Demo - Domain\n<size:10>[Container: packaging: jar]</size>" 
<<Examples.DemoDomain>> as Examples.DemoDomain
+  rectangle "==Demo - Testing\n<size:10>[Container: packaging: pom]</size>" 
<<Examples.DemoTesting>> as Examples.DemoTesting
+  rectangle "==Demo - Testing (JDO)\n<size:10>[Container: packaging: 
jar]</size>" <<Examples.DemoTestingJDO>> as Examples.DemoTestingJDO
+  rectangle "==Demo - Testing (JPA)\n<size:10>[Container: packaging: 
jar]</size>" <<Examples.DemoTestingJPA>> as Examples.DemoTestingJPA
   rectangle "==Demo - Web\n<size:10>[Container: packaging: jar]</size>" 
<<Examples.DemoWeb>> as Examples.DemoWeb
   rectangle "==Demo - Wicket (Common)\n<size:10>[Container: packaging: 
jar]</size>" <<Examples.DemoWicketCommon>> as Examples.DemoWicketCommon
   rectangle "==Demo - Wicket/JDO\n<size:10>[Container: packaging: jar]</size>" 
<<Examples.DemoWicketJDO>> as Examples.DemoWicketJDO
-  rectangle "==Demo - Wicket/JPA\n<size:10>[Container: packaging: jar]</size>" 
<<Examples.DemoWicketJPA>> as Examples.DemoWicketJPA
-  rectangle "==Demo - Wicket/JPA (with GraphQL)\n<size:10>[Container: 
packaging: jar]</size>" <<Examples.DemoWicketJPAwithGraphQL>> as 
Examples.DemoWicketJPAwithGraphQL
 }
 
+Examples.DemoParent .[#707070,thickness=2].> Examples.DemoDomain : 
"<color:#707070>"
+Examples.DemoParent .[#707070,thickness=2].> Examples.DemoTesting : 
"<color:#707070>"
 Examples.DemoParent .[#707070,thickness=2].> Examples.DemoWeb : 
"<color:#707070>"
 Examples.DemoParent .[#707070,thickness=2].> Examples.DemoWicketCommon : 
"<color:#707070>"
 Examples.DemoParent .[#707070,thickness=2].> Examples.DemoWicketJDO : 
"<color:#707070>"
 Examples.DemoParent .[#707070,thickness=2].> Examples.DemoWicketJPA : 
"<color:#707070>"
 Examples.DemoParent .[#707070,thickness=2].> Examples.DemoWicketJPAwithGraphQL 
: "<color:#707070>"
-Examples.DemoParent .[#707070,thickness=2].> Examples.DemoDomain : 
"<color:#707070>"
+Examples.DemoTesting .[#707070,thickness=2].> Examples.DemoTestingJDO : 
"<color:#707070>"
+Examples.DemoTesting .[#707070,thickness=2].> Examples.DemoTestingJPA : 
"<color:#707070>"
 @enduml
 ----
 .Projects/Modules (Examples)
@@ -760,49 +815,78 @@ 
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.actions.Action.choicesFrom.ActionChoicesFromSeeding +
+demoapp.dom.domain.actions.Action.choicesFrom.jpa.ActionChoicesFromJpaEntities 
+
 
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.domainEvent.ActionDomainEventControlSubscriber
 +
 
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.aliased.CustomerSeeding +
-demoapp.dom.domain.objects.DomainObject.aliased.jpa.CustomerJpaEntities +
+demoapp.dom.domain.actions.ActionLayout.hidden.ActionLayoutHiddenSeeding +
+demoapp.dom.domain.actions.ActionLayout.hidden.jpa.ActionLayoutHiddenJpaEntities
 +
+demoapp.dom.domain.collections.Collection.domainEvent.CollectionDomainEventControlSubscriber
 +
+demoapp.dom.domain.objects.DomainObject.aliased.DomainObjectAliasedSeeding +
+demoapp.dom.domain.objects.DomainObject.aliased.jpa.DomainObjectAliasedJpaEntities
 +
 
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.objects.DomainObject.autoComplete.DomainObjectAutoCompleteSeeding
 +
+demoapp.dom.domain.objects.DomainObject.autoComplete.jpa.DomainObjectAutoCompleteJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.bounded.DomainObjectBoundingSeeding +
+demoapp.dom.domain.objects.DomainObject.bounded.jpa.DomainObjectBoundingJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.editing.DomainObjectEditingSeeding +
+demoapp.dom.domain.objects.DomainObject.editing.jpa.DomainObjectEditingJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.DomainObjectEntityChangePublishingSeeding
 +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.jdo.DomainObjectEntityChangePublishingJdoEntities
 +
+demoapp.dom.domain.objects.DomainObject.entityChangePublishing.jpa.DomainObjectEntityChangePublishingJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.introspection.annotOpt.DomainObjectIntrospectionAnnotOptSeeding
 +
+demoapp.dom.domain.objects.DomainObject.introspection.annotOpt.jpa.DomainObjectIntrospectionAnnotOptJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.introspection.annotReqd.DomainObjectIntrospectionAnnotReqdSeeding
 +
+demoapp.dom.domain.objects.DomainObject.introspection.annotReqd.jpa.DomainObjectIntrospectionAnnotReqdJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.introspection.encapsulated.DomainObjectIntrospectionEncapsulatedSeeding
 +
+demoapp.dom.domain.objects.DomainObject.introspection.encapsulated.jpa.DomainObjectIntrospectionEncapsulatedJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.mixinMethod.DomainObjectMixinMethodSeeding
 +
+demoapp.dom.domain.objects.DomainObject.mixinMethod.jpa.DomainObjectMixinMethodJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.nature.entity.DomainObjectNatureEntitySeeding
 +
+demoapp.dom.domain.objects.DomainObject.nature.entity.jpa.DomainObjectNatureJpaEntities
 +
+demoapp.dom.domain.objects.DomainObject.xxxDomainEvent.DomainObjectXxxDomainEventControlSubscriber
 +
+demoapp.dom.domain.objects.DomainObject.xxxLifecycleEvent.DomainObjectXxxLifecycleEventSubscriber
 +
+demoapp.dom.domain.objects.DomainObject.xxxLifecycleEvent.jpa.DomainObjectXxxLifecycleEventJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.DomainObjectLayoutBookmarkingSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.bookmarking.jpa.DomainObjectLayoutBookmarkingJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.cssClass.DomainObjectLayoutCssClassSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.cssClass.jpa.DomainObjectLayoutCssClassJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.DomainObjectLayoutCssClassFaSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.cssClassFa.jpa.DomainObjectLayoutCssClassFaJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.describedAs.DomainObjectLayoutDescribedAsSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.describedAs.jpa.DomainObjectLayoutDescribedAsJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.named.DomainObjectLayoutNamedSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.named.jpa.DomainObjectLayoutNamedJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.paged.DomainObjectLayoutPagedSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.paged.jpa.DomainObjectLayoutPagedJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.tabledec.DomainObjectLayoutTableDecoratorSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.tabledec.jpa.DomainObjectLayoutTableDecoratorJpaEntities
 +
+demoapp.dom.domain.objects.DomainObjectLayout.xxxUiEvent.DomainObjectLayoutXxxUiEventSeeding
 +
+demoapp.dom.domain.objects.DomainObjectLayout.xxxUiEvent.DomainObjectLayoutXxxUiEventSubscriber
 +
+demoapp.dom.domain.objects.DomainObjectLayout.xxxUiEvent.jpa.DomainObjectLayoutXxxUiEventJpaEntities
 +
+demoapp.dom.domain.progmodel.objects.embedded.embedded.jdo.ComplexNumberJdoValueSemantics
 +
+demoapp.dom.domain.progmodel.objects.embedded.embedded.jdo.NumberConstantJdoRepository
 +
+demoapp.dom.domain.progmodel.objects.embedded.embedded.jpa.ComplexNumberJpaValueSemantics
 +
+demoapp.dom.domain.progmodel.objects.embedded.embedded.jpa.NumberConstantJpaRepository
 +
+demoapp.dom.domain.progmodel.objects.embedded.embedded.persistence.NumberConstantSeeding
 +
+demoapp.dom.domain.progmodel.objects.embedded.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.domainEvent.PropertyDomainEventControlSubscriber
 +
+demoapp.dom.domain.properties.Property.editing.PropertyEditingSeeding +
+demoapp.dom.domain.properties.Property.editing.jpa.PropertyEditingJpaEntities +
 
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.PropertyProjectingChildSeeding
 +
 
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.Property.snapshot.PropertySnapshotSeeding +
+demoapp.dom.domain.properties.Property.snapshot.jpa.PropertySnapshotJpaEntities
 +
+demoapp.dom.domain.properties.PropertyLayout.hidden.PropertyLayoutHiddenSeeding
 +
+demoapp.dom.domain.properties.PropertyLayout.hidden.jpa.PropertyLayoutHiddenJpaEntities
 +
 demoapp.dom.domain.properties.PropertyLayout.navigable.FileTreeNodeService +
 
demoapp.dom.domain.properties.PropertyLayout.repainting.PdfJsViewerAdvisorFallback
 +
 demoapp.dom.featured.customui.geocoding.GeoapifyClient +
@@ -838,6 +922,7 @@ 
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.causeway.treenode.FileTreeNodeService +
 demoapp.dom.types.causewayext.cal.jdo.CausewayCalendarEventEntities +
 demoapp.dom.types.causewayext.cal.jpa.CausewayCalendarEventEntities +
 demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventSeeding +
@@ -993,7 +1078,6 @@ 
org.apache.causeway.extensions:causeway-extensions-audittrail-persistence-jpa:ja
 
org.apache.causeway.extensions:causeway-extensions-commandlog-persistence-jdo:jar:<managed>
 +
 
org.apache.causeway.extensions:causeway-extensions-commandlog-persistence-jpa:jar:<managed>
 +
 org.apache.causeway.extensions:causeway-extensions-docgen:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-exceldownload-wicket-ui:jar:<managed>
 +
 
org.apache.causeway.extensions:causeway-extensions-executionlog-persistence-jdo:jar:<managed>
 +
 
org.apache.causeway.extensions:causeway-extensions-executionlog-persistence-jpa:jar:<managed>
 +
 
org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-jdo:jar:<managed>
 +
@@ -1023,24 +1107,68 @@ org.assertj:assertj-core:jar:<managed> +
 org.springframework.boot:spring-boot-configuration-processor:jar:<managed> +
 ****
 
-|Demo - Web
+|Demo - Testing
 [source,yaml]
 ----
 Group: org.apache.causeway.examples.apps
-Artifact: demo-web
+Artifact: demo-testing
+Type: pom
+Directory: /examples/demo/testing
+----
+|.Dependencies
+****
+org.apache.causeway.examples.apps:demo-domain:jar:<managed> +
+org.apache.causeway.examples.apps:demo-web:jar:<managed> +
+org.apache.causeway.extensions:causeway-extensions-cors-impl:jar:<managed> +
+org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
+org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed>
 +
+org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-ui:pom:${project.version}
 +
+org.springframework.boot:spring-boot-starter:jar:<managed> +
+org.springframework.boot:spring-boot-starter-actuator:jar:<managed> +
+org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
+org.springframework.boot:spring-boot-starter-test:jar:<managed> +
+****
+
+|Demo - Testing (JDO)
+[source,yaml]
+----
+Group: org.apache.causeway.examples.apps
+Artifact: demo-testing-jdo
 Type: jar
-Directory: /examples/demo/web
+Directory: /examples/demo/testing/jdo
 ----
-|.Components
+|.Dependencies
 ****
-demoapp.web._infra.utils.ThereCanBeOnlyOne +
+org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed>
 +
 ****
 
-.Dependencies
+|Demo - Testing (JPA)
+[source,yaml]
+----
+Group: org.apache.causeway.examples.apps
+Artifact: demo-testing-jpa
+Type: jar
+Directory: /examples/demo/testing/jpa
+----
+|.Dependencies
+****
+org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed>
 +
+****
+
+|Demo - Web
+[source,yaml]
+----
+Group: org.apache.causeway.examples.apps
+Artifact: demo-web
+Type: jar
+Directory: /examples/demo/web
+----
+|.Dependencies
 ****
 org.apache.causeway.examples.apps:demo-domain:jar:<managed> +
 org.apache.causeway.extensions:causeway-extensions-cors-impl:jar:<managed> +
 org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
+org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed>
 +
 org.springframework.boot:spring-boot-starter:jar:<managed> +
 org.springframework.boot:spring-boot-starter-actuator:jar:<managed> +
 org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
@@ -1061,7 +1189,8 @@ 
demoapp.webapp.wicket.common.ui.custom.WhereInTheWorldPanelFactory +
 
 .Dependencies
 ****
-org.apache.causeway.examples.apps:demo-web:jar:${project.version} +
+org.apache.causeway.examples.apps:demo-web:jar:<managed> +
+org.apache.causeway.extensions:causeway-extensions-exceldownload-wicket-ui:jar:<managed>
 +
 
org.apache.causeway.extensions:causeway-extensions-fullcalendar-wicket-ui:jar:<managed>
 +
 
org.apache.causeway.extensions:causeway-extensions-pdfjs-wicket-ui:jar:<managed>
 +
 org.apache.causeway.extensions:causeway-extensions-sse-wicket:jar:<managed> +
@@ -1128,7 +1257,6 @@ title Root - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -1141,27 +1269,33 @@ skinparam rectangle<<Root.ApacheCauseway>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Root.ApacheCausewayAggregator>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Root.ApacheCausewayAntora>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Root.ApacheCausewaySupplementalLegalInfo>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Root>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway\n<size:10>[Container: packaging: pom]</size>" 
<<Root.ApacheCauseway>> as Root.ApacheCauseway
@@ -1236,7 +1370,6 @@ title Commons - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -1249,12 +1382,15 @@ skinparam rectangle<<Commons.ApacheCausewayCommons>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Commons>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -1306,7 +1442,7 @@ org.yaml:snakeyaml:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:commons:index/collections/Can.adoc[Can], 
xref:refguide:commons:index/collections/Cardinality.adoc[Cardinality], 
xref:refguide:commons:index/functional/Either.adoc[Either], 
xref:refguide:commons:index/functional/Railway.adoc[Railway], 
xref:refguide:commons:index/functional/ThrowingConsumer.adoc[ThrowingConsumer], 
xref:refguide:commons:index/functional/ThrowingRunnable.adoc[ThrowingRunnable], 
xref:refguide:commons:index/functional/ThrowingSupplier.adoc[ThrowingSupplier], 
xref [...]
+xref:refguide:commons:index/collections/Can.adoc[Can], 
xref:refguide:commons:index/collections/Cardinality.adoc[Cardinality], 
xref:refguide:commons:index/functional/Either.adoc[Either], 
xref:refguide:commons:index/functional/Railway.adoc[Railway], 
xref:refguide:commons:index/functional/ThrowingConsumer.adoc[ThrowingConsumer], 
xref:refguide:commons:index/functional/ThrowingRunnable.adoc[ThrowingRunnable], 
xref:refguide:commons:index/functional/ThrowingSupplier.adoc[ThrowingSupplier], 
xref [...]
 ****
 |===
 
@@ -1321,7 +1457,6 @@ title Core - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -1334,72 +1469,87 @@ skinparam rectangle<<Core.ApacheCausewayApiAppLib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayApiSchemas>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCore>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreCodeGenByteBuddy>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreConfiguration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreInteraction>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreInternalTestSupport>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreMetaModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreRuntime>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreRuntimeServices>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreSecurity>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreTransaction>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Core.ApacheCausewayCoreWebApp>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Core>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Core - Transaction\n<size:10>[Container: 
packaging: jar]</size>" <<Core.ApacheCausewayCoreTransaction>> as 
Core.ApacheCausewayCoreTransaction
@@ -1714,7 +1864,7 @@ 
org.apache.causeway.core:causeway-core-interaction:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
 org.apache.causeway.core:causeway-core-transaction:jar:<managed> +
-org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-integration:jar:${project.version}
 +
+org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-integration:jar:<managed>
 +
 ****
 
 |Apache Causeway Core - Runtime Services
@@ -1873,9 +2023,7 @@ 
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
 org.apache.causeway.core:causeway-core-transaction:jar:<managed> +
 org.springframework:spring-web:jar:<managed> +
-org.springframework.boot:spring-boot:jar:<managed> +
 org.springframework.boot:spring-boot-actuator:jar:<managed> +
-org.springframework.boot:spring-boot-starter-thymeleaf:jar:<managed> +
 ****
 
 .Document Index Entries
@@ -1917,7 +2065,6 @@ title Persistence - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -1930,12 +2077,15 @@ skinparam 
rectangle<<Persistence.ApacheCausewayPersistenceCommons>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Persistence>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -1987,7 +2137,6 @@ title JDO - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2000,42 +2149,51 @@ skinparam rectangle<<JDO.ApacheCausewayPersistenceJDO>> 
{
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOSpring>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOintegration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOmetamodel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOprovider>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOProviderDataNucleus>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<JDO>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Persistence - JDO Provider 
(DataNucleus)\n<size:10>[Container: packaging: jar]</size>" 
<<JDO.ApacheCausewayPersistenceJDOProviderDataNucleus>> as 
JDO.ApacheCausewayPersistenceJDOProviderDataNucleus
@@ -2249,7 +2407,6 @@ title JPA - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2262,32 +2419,39 @@ skinparam rectangle<<JPA.ApacheCausewayPersistenceJPA>> 
{
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAintegration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAmetamodel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAEclipseLink>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<JPA>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Persistence - JPA 
EclipseLink\n<size:10>[Container: packaging: jar]</size>" 
<<JPA.ApacheCausewayPersistenceJPAEclipseLink>> as 
JPA.ApacheCausewayPersistenceJPAEclipseLink
@@ -2428,7 +2592,6 @@ title Bypass - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2441,12 +2604,15 @@ skinparam 
rectangle<<Bypass.ApacheCausewaySecurityBypass>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Bypass>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -2493,7 +2659,6 @@ title Keycloak - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2506,12 +2671,15 @@ skinparam 
rectangle<<Keycloak.ApacheCausewaySecurityKeycloak>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Keycloak>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -2567,7 +2735,6 @@ title Shiro - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2580,12 +2747,15 @@ skinparam 
rectangle<<Shiro.ApacheCausewaySecurityShiro>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Shiro>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -2640,7 +2810,6 @@ title Spring - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2653,12 +2822,15 @@ skinparam 
rectangle<<Spring.ApacheCausewaySecuritySpring>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Spring>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -2715,7 +2887,6 @@ title Common - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2728,32 +2899,39 @@ skinparam 
rectangle<<Common.ApacheCausewayCommonsPrism>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Common.ApacheCausewayViewerCommons>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Common.ApacheCausewayViewerCommonsApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Common.ApacheCausewayViewerCommonsModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Common.ApacheCausewayViewerCommonsServices>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Common>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Viewer - Commons Model\n<size:10>[Container: 
packaging: jar]</size>" <<Common.ApacheCausewayViewerCommonsModel>> as 
Common.ApacheCausewayViewerCommonsModel
@@ -2812,7 +2990,7 @@ Directory: /viewers/commons/model
 ****
 org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-commons-applib:jar:<managed> +
-org.webjars:font-awesome:jar:6.3.0 +
+org.webjars:font-awesome:jar:6.4.0 +
 ****
 
 |Apache Causeway Commons - Prism
@@ -2864,7 +3042,6 @@ title Restful Objects - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -2877,42 +3054,51 @@ skinparam 
rectangle<<RestfulObjects.ApacheCausewayViewerRO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROAppLib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROClient>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROJAXRSResteasy>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerRORendering>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROTesting>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROViewer>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<RestfulObjects>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Viewer - RO (Client)\n<size:10>[Container: 
packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROClient>> as 
RestfulObjects.ApacheCausewayViewerROClient
@@ -3120,7 +3306,6 @@ title Wicket - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -3133,37 +3318,45 @@ skinparam 
rectangle<<Wicket.ApacheCausewayViewerWicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Wicket.ApacheCausewayViewerWicketApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Wicket.ApacheCausewayViewerWicketGraceful>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Wicket.ApacheCausewayViewerWicketModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Wicket.ApacheCausewayViewerWicketUIComponents>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Wicket.ApacheCausewayViewerWicketViewer>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Wicket>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Viewer - Wicket 
(Graceful)\n<size:10>[Container: packaging: jar]</size>" 
<<Wicket.ApacheCausewayViewerWicketGraceful>> as 
Wicket.ApacheCausewayViewerWicketGraceful
@@ -3354,7 +3547,6 @@ title Valuetypes - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -3367,62 +3559,75 @@ skinparam 
rectangle<<Valuetypes.ApacheCausewayValJodaTimeapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValJodaTimeintegration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValJodaTimeparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegaMetaModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegaPersistenceJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegaapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegaparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegapersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegauiwicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValVegaui>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Valuetypes.ApacheCausewayValuetypes>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Valuetypes>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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 (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
@@ -3670,7 +3875,6 @@ title Asciidoc - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -3683,42 +3887,51 @@ skinparam 
rectangle<<Asciidoc.ApacheCausewayValAsciidoctorMetaModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctoruiwicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorui>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Asciidoc>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
@@ -3894,7 +4107,6 @@ title Markdown - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -3907,42 +4119,51 @@ skinparam 
rectangle<<Markdown.ApacheCausewayValMarkdownMetaModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownPersistenceJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownpersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownuiwicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownui>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Markdown>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
@@ -4113,7 +4334,6 @@ title Extensions - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -4126,267 +4346,321 @@ skinparam 
rectangle<<Extensions.ApacheCausewayExtAuditTrail>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrailApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtCORSimpl>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtCORSparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtDocgen>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionLog>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionLogAPI>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtExecutionLogImplementationJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtExecutionLogImplementationJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionOutbox>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionOutboxAPI>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtExecutionOutboxImplementationJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtExecutionOutboxImplementationJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionOutboxRESTClient>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionOutboxRepublisher>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtExecutionRepublisher>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtFlyway>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtFlywayImpl>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarWicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtFullCalendarWicketIntegration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarWicketUI>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecMan>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManDelegatedUsingShiro>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManEncryptionUsingSpring>> 
{
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManIntegration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManPersistenceUsingJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManPersistenceUsingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecurityShiroLDAPRealmimpl>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtSecurityShiroLDAPRealmparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSecuritySpringOauth2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEvents>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEventsWicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEventsmetamodel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEventsparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSessionLog>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtSessionLogApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsMetamodel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsParent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsWicketIntegration>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsWicketUI>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsWicket>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Extensions.ApacheCausewayExtensions>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Extensions>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Ext - Execution Log Implementation 
(JDO)\n<size:10>[Container: packaging: jar]</size>" 
<<Extensions.ApacheCausewayExtExecutionLogImplementationJDO>> as 
Extensions.ApacheCausewayExtExecutionLogImplementationJDO
@@ -4865,6 +5139,7 @@ 
org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-j
 org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 
org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:2.0.0-SNAPSHOT
 +
+org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed>
 +
 ****
 
 .Document Index Entries
@@ -5107,7 +5382,7 @@ Directory: /extensions/vw/pdfjs/wicket/integration
 ****
 org.apache.causeway.extensions:causeway-extensions-pdfjs-applib:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
-org.webjars.npm:pdfjs-dist:jar:3.3.122 +
+org.webjars.npm:pdfjs-dist:jar:3.5.141 +
 ****
 
 .Document Index Entries
@@ -5600,7 +5875,6 @@ title Applib: Excel - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -5613,42 +5887,51 @@ skinparam 
rectangle<<ApplibExcel.ApacheCausewayExtExcelFixtures>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelIntegTests>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadui>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<ApplibExcel.ApacheCausewaySubExceltestingsupport>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<ApplibExcel>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Ext - Excel (Fixtures)\n<size:10>[Container: 
packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtExcelFixtures>> as 
ApplibExcel.ApacheCausewayExtExcelFixtures
@@ -5813,7 +6096,6 @@ title Core: Command Log - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -5826,27 +6108,33 @@ skinparam 
rectangle<<CoreCommandLog.ApacheCausewayExtCommandLog>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogAPI>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<CoreCommandLog>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Ext - Command Log Implementation 
(JDO)\n<size:10>[Container: packaging: jar]</size>" 
<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO>> as 
CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO
@@ -5990,7 +6278,6 @@ title Tooling - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -6003,47 +6290,57 @@ skinparam rectangle<<Tooling.ApacheCausewayTooling>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingC4Modeling>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingCLICommandLineInterface>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingJavaModelCodeMining>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingJavatoAsciidocCodeMining>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingMetaProgramming>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingModelforAsciiDoc>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Tooling.ApacheCausewayToolingProjectModelCodemining>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Tooling>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway - Tooling - CLI (Command Line 
Interface)\n<size:10>[Container: packaging: jar]</size>" 
<<Tooling.ApacheCausewayToolingCLICommandLineInterface>> as 
Tooling.ApacheCausewayToolingCLICommandLineInterface
@@ -6083,8 +6380,8 @@ eg. code mining, automated documentation.
 .Dependencies
 ****
 
org.apache.causeway.core:causeway-core-internaltestsupport:jar:${project.version}
 +
-org.checkerframework:checker-qual:jar:3.32.0 +
-org.mapstruct:mapstruct-processor:jar:1.5.3.Final +
+org.checkerframework:checker-qual:jar:3.34.0 +
+org.mapstruct:mapstruct-processor:jar:1.5.5.Final +
 org.projectlombok:lombok:jar:<managed> +
 org.slf4j:slf4j-api:jar:<managed> +
 org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
@@ -6235,7 +6532,6 @@ title Regression Tests - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -6248,122 +6544,147 @@ skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTests>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstable>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableBootstrapping>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession>>
 {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionGeneric>>
 {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJDO>>
 {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJPA>>
 {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableConfig>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory>>
 {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCucumber>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableDomainModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableEventHandling>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableFactory>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableInteract>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableLayouts>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstablePublishingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableRest>> 
{
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableValueTypes>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersCommon>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersJDO>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam 
rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<RegressionTests>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway - Regression Tests (stable) - Domain 
Model\n<size:10>[Container: packaging: jar]</size>" 
<<RegressionTests.ApacheCausewayRegressionTestsstableDomainModel>> as 
RegressionTests.ApacheCausewayRegressionTestsstableDomainModel
@@ -6484,6 +6805,8 @@ 
org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-metamodel:jar:<manag
 
org.apache.causeway.valuetypes:causeway-valuetypes-markdown-metamodel:jar:<managed>
 +
 
org.apache.causeway.valuetypes:causeway-valuetypes-vega-metamodel:jar:<managed> 
+
 org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> 
+
+org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed>
 +
+org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
 
 |Apache Causeway - Regression Tests (stable) - Bootstrapping
@@ -6745,6 +7068,7 @@ 
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<manage
 
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed>
 +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> 
+
+org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed>
 +
 ****
 
 |Apache Causeway - Regression Tests (stable) - Value Types
@@ -6772,6 +7096,7 @@ Directory: /regressiontests/stable-viewers-common
 ****
 org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
 
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed>
 +
+org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
 
 |Apache Causeway - Regression Tests (stable) - Viewers JDO
@@ -6788,6 +7113,7 @@ 
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
 
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed>
 +
 
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed>
 +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
+org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
 
 |Apache Causeway - Regression Tests (stable) - Viewers JPA
@@ -6804,6 +7130,7 @@ 
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
 
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed>
 +
 
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed>
 +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
+org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
 |===
 
@@ -6818,7 +7145,6 @@ title Incubator - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -6831,12 +7157,15 @@ skinparam 
rectangle<<Incubator.ApacheCausewayIncubator>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Incubator>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
 }
 
@@ -6860,55 +7189,6 @@ Directory: /incubator
 
 === Kroviz Client
 
-[plantuml,Kroviz Client,svg]
-----
-@startuml
-set separator none
-title Kroviz Client - Containers
-
-left to right direction
-
-skinparam {
-  shadowing false
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
-}
-
-hide stereotype
-
-skinparam rectangle<<KrovizClient.ApacheCausewayIncubatorClientkroViz>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-}
-
-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
-}
-
-@enduml
-----
-.Projects/Modules (Kroviz Client)
-[cols="3a,5a", options="header"]
-|===
-|Coordinates |Description 
-
-|Apache Causeway Incubator - Client kroViz
-[source,yaml]
-----
-Group: org.apache.causeway.incubator.clients
-Artifact: causeway-client-kroviz
-Type: jar
-Directory: /incubator/clients/kroviz
-----
-|Web client based on RESTful API
-|===
-
 === GraphQL Viewer
 
 [plantuml,GraphQL Viewer,svg]
@@ -6920,7 +7200,6 @@ title GraphQL Viewer - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -6933,32 +7212,39 @@ skinparam 
rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQL>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLModel>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLTest>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLViewer>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<GraphQLViewer>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Inc - Viewer GraphQL 
(Model)\n<size:10>[Container: packaging: jar]</size>" 
<<GraphQLViewer.ApacheCausewayIncViewerGraphQLModel>> as 
GraphQLViewer.ApacheCausewayIncViewerGraphQLModel
@@ -7078,7 +7364,6 @@ title Other - Containers
 left to right direction
 
 skinparam {
-  shadowing false
   arrowFontSize 10
   defaultTextAlignment center
   wrapWidth 200
@@ -7091,22 +7376,27 @@ skinparam 
rectangle<<Other.ApacheCausewayExtCommandReplay>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Other.ApacheCausewayExtCommandReplayforPrimary>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
 }
 skinparam rectangle<<Other.ApacheCausewayExtCommandReplayforSecondary>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Other>> {
+  BorderColor #9a9a9a
+  FontColor #9a9a9a
+  shadowing false
 }
 
 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
   rectangle "==Apache Causeway Ext - Command Replay for 
Secondary\n<size:10>[Container: packaging: jar]</size>" 
<<Other.ApacheCausewayExtCommandReplayforSecondary>> as 
Other.ApacheCausewayExtCommandReplayforSecondary

Reply via email to