CAUSEWAY-3866: cleans up index.html, reinstate scripts for building antora locally
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 11d61ce..cd39a38 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/Identifier.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/Identifier.adoc
@@ -30,10 +30,6 @@
   boolean isEqualTo(Identifier other)
   int hashCode()
   String toString()
-  String getMemberLogicalName()
-  int getParameterIndex()
-  Can<String> getMemberParameterClassNames()
-  Type getType()
 }
 ----
 
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 76a6493..827cfc8 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
@@ -342,7 +342,7 @@
 
 If at least one property of the entity has been annotated with _Property#queryDslAutoComplete()_ , then that property (and any others) will automatically be used for autocomplete functionality; this attribute determines the minimum number of characters that must be entered before the query is submitted. Fine-tunes how auto-complete queries work, Whether to use the value of this (string) property for auto.
 
-NOTE: this feature requires that the `querydsl-xxx` module (for JDO or JPA as required) is included as part of the application manifest. Otherwise, no autocomplete will be generated.
+NOTE: this feature requires that the `querydsl-jpa` module is included as part of the application manifest. Otherwise, no autocomplete will be generated.
 
 NOTE: if _DomainObject#autoCompleteRepository()_ (and _DomainObject#autoCompleteMethod()_ ) have been specified, then these take precedence of the query DSL auto-complete.
 
@@ -353,7 +353,7 @@
 
 NOTE: if _DomainObject#autoCompleteRepository()_ (and _DomainObject#autoCompleteMethod()_ ) have been specified, then these take precedence of the query DSL auto-complete.
 
-NOTE: this feature requires that the `querydsl-xxx` module (for JDO or JPA as required) is included as part of the application manifest. Otherwise, no autocomplete will be generated.
+NOTE: this feature requires that the `querydsl-jpa` module is included as part of the application manifest. Otherwise, no autocomplete will be generated.
 
 [#queryDslAutoCompleteAdditionalPredicateRepository]
 === queryDslAutoCompleteAdditionalPredicateRepository
@@ -362,14 +362,14 @@
 
 If this attribute is specified, it indicates the class of a repository service that includes a method which returns an additional predicate to be applied. The default name of that method is "queryDslAutoCompleteAdditionalPredicates" (but can be overridden if required using _DomainObject#queryDslAutoCompleteAdditionalPredicateMethod()_ ).
 
-NOTE: this feature requires that the `querydsl-xxx` module (for JDO or JPA as required) is included as part of the application manifest. Otherwise, no autocomplete will be generated.
+NOTE: this feature requires that the `querydsl-jpa` module is included as part of the application manifest. Otherwise, no autocomplete will be generated.
 
 [#queryDslAutoCompleteAdditionalPredicateMethod]
 === queryDslAutoCompleteAdditionalPredicateMethod
 
 If at least one property of the entity has been annotated with _Property#queryDslAutoComplete()_ , then that property (and any others) will automatically be used for autocomplete functionality; this attribute can be used to specify the name of a method in a repository to provide additional predicate(s) to always be added to the autocomplete (for example to search only for current or active objects).
 
-NOTE: this feature requires that the `querydsl-xxx` module (for JDO or JPA as required) is included as part of the application manifest. Otherwise, no autocomplete will be generated.
+NOTE: this feature requires that the `querydsl-jpa` module is included as part of the application manifest. Otherwise, no autocomplete will be generated.
 
 include::hooks/DomainObject_010-examples-and-usage.adoc[]
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObjectLayout.adoc b/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObjectLayout.adoc
index 6e9159f..bc208b8 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObjectLayout.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObjectLayout.adoc
@@ -102,7 +102,7 @@
 
 TheFont AwesomeCSS class that is used as icon for the annotated domain object.
 
-Use the _FontAwesomeLayers iconFaLayers()_ object support method for more advanced icons.
+Use the _icon(..)_ object support method for more advanced icons.
 
 [#cssClassFaPosition]
 === cssClassFaPosition
diff --git a/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc b/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc
index 7c3e19e..443382d 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/annotation/Nature.adoc
@@ -30,7 +30,7 @@
 <.> xref:#ENTITY[ENTITY]
 +
 --
-A domain entity whose persistence is managed internally by Causeway, using JPA or JDO as the persistence implementation.
+A domain entity whose persistence is managed by Causeway using the configured object store, eg JPA/EclipseLink.
 --
 <.> xref:#VIEW_MODEL[VIEW_MODEL]
 +
@@ -58,7 +58,7 @@
 [#ENTITY]
 === ENTITY
 
-A domain entity whose persistence is managed internally by Causeway, using JPA or JDO as the persistence implementation.
+A domain entity whose persistence is managed by Causeway using the configured object store, eg JPA/EclipseLink.
 
 Domain entities are considered to be part of the domain model layer.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/annotation/Optionality.adoc b/antora/components/refguide-index/modules/applib/pages/index/annotation/Optionality.adoc
index 29d7547..055f3a9 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/annotation/Optionality.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/annotation/Optionality.adoc
@@ -30,7 +30,7 @@
 <.> xref:#MANDATORY[MANDATORY]
 +
 --
-Indicates that the property is required (even if the JPA `jakarta.persistence.Column` annotation says otherwise).
+Indicates that the property is required (even if the JPA _jakarta.persistence.Column_ annotation says otherwise).
 --
 <.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
@@ -45,7 +45,7 @@
 
 Default, usually meaning mandatory for properties and always meaning mandatory for parameters.
 
-For properties, will be false unless JPA `jakarta.persistence.Column#nullable()` is set to `true` .
+For properties, will be false unless JPA _Column_ has also specified with _Column#nullable()_ set to `true` .
 
 [#OPTIONAL]
 === OPTIONAL
@@ -55,9 +55,9 @@
 [#MANDATORY]
 === MANDATORY
 
-Indicates that the property is required (even if the JPA `jakarta.persistenc.Column` annotation says otherwise).
+Indicates that the property is required (even if the JPA _jakarta.persistence.Column_ annotation says otherwise).
 
-When using xref:pjpa:ROOT:about.adoc[JPA/Eclipselink] objectstore, it is sometimes necessary to annotate a property as optional (using jakarta.persistence.Column#nullable` set to `true` ), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table using `jakarta.persistence.Inheritance` > with the `jakarta.persistence.InheritanceType#SINGLE_TABLE` mapping strategy.
+When using the JPA/EclipseLink objectstore, it is sometimes necessary to annotate a property as optional (using _Column#nullable()_ set to `true` ), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table using _jakarta.persistence.Inheritance_ strategy of _jakarta.persistence.InheritanceType#SINGLE_TABLE_
 
 This annotation, therefore, is intended to override any objectstore-specific annotation, so that Causeway can apply the constraint even though the objectstore is unable to do so.
 
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 d4cc4b5..e19ae1e 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
@@ -192,14 +192,14 @@
 
 The default value ( `-1` ) indicates that no maxLength has been specified.
 
-NOTE: this will usually be supplemented by a JDO or JPA-specific annotation to indicate length of the column in the table to whic the entity is mapped.
+NOTE: if using the JPA object store, the field will usually also be annotated using _Column#length()_ to specify the length of the column in the table to which the entity is mapped.
 
 [#snapshot]
 === snapshot
 
 Indicates whether the property should be included or excluded from mementos.
 
-To ensure that the property is actually not persisted in the objectstore, also annotate with the JPA annotation `jakarta.persistence.Transient`
+To ensure that the property is actually not persisted in the JPA object store, also annotate with _jakarta.persistence.Transient_ .
 
 [#mustSatisfy]
 === mustSatisfy
@@ -213,7 +213,7 @@
 
 Whether this property is optional or is mandatory (ie required).
 
-NOTE: this will usually be supplmented by a JDO or JPA-specific annotation to specify the nullability of the corresponding column in the table to which the owning entity is mapped.
+NOTE: if using the JPA object store, the field will usually also be annotated using _Column#nullable()_ to specify the nullability of the corresponding column in the table to which the owning entity is mapped.
 
 [#projecting]
 === projecting
@@ -252,7 +252,7 @@
 
 NOTE: if _DomainObject#autoCompleteRepository()_ (and _DomainObject#autoCompleteMethod()_ ) have been specified, then these take precedence of the query DSL auto-complete.
 
-NOTE: this feature requires that the `querydsl-xxx` module (for JDO or JPA as required) is included as part of the application manifest. Otherwise, no autocomplete will be generated.
+NOTE: this feature requires that the `querydsl-jpa` module is included as part of the application manifest. Otherwise, no autocomplete will be generated.
 
 NOTE: this feature only applies to entities, not to view models. Only persisted properties should be annotated.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/client/RepresentationTypeSimplifiedV2.adoc b/antora/components/refguide-index/modules/applib/pages/index/client/RepresentationTypeSimplifiedV2.adoc
index e9760aa..8111fbb 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/client/RepresentationTypeSimplifiedV2.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/client/RepresentationTypeSimplifiedV2.adoc
@@ -23,7 +23,7 @@
   boolean isValue()
   boolean isValues()
   boolean isVoid()
-  String getContentTypeHeaderValue(String profileName)
+  MediaType getResponseContentType(String profileName)
   Optional<RepresentationTypeSimplifiedV2> parse(String typeLiteral)
   Optional<RepresentationTypeSimplifiedV2> parseContentTypeHeaderString(String contentTypeHeaderString)
 }
diff --git a/antora/components/refguide-index/modules/applib/pages/index/client/SuppressionType.adoc b/antora/components/refguide-index/modules/applib/pages/index/client/SuppressionType.adoc
index 4d191ed..e0dc37a 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/client/SuppressionType.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/client/SuppressionType.adoc
@@ -15,6 +15,7 @@
   ALL     // <.>
   EnumSet<SuppressionType> all()
   EnumSet<SuppressionType> setOf(SuppressionType... types)
+  Optional<String> toLiteral(EnumSet<SuppressionType> suppressionTypes)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/clock/VirtualClock.adoc b/antora/components/refguide-index/modules/applib/pages/index/clock/VirtualClock.adoc
index e0b1f9f..bbf6f04 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/clock/VirtualClock.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/clock/VirtualClock.adoc
@@ -17,18 +17,12 @@
   VirtualClock nowAt(java.time.@NonNull OffsetDateTime virtualNow)
   VirtualClock nowAt(java.time.@NonNull ZonedDateTime virtualNow)
   VirtualClock nowAt(java.util.@NonNull Date virtualNow)
-  VirtualClock nowAt(org.joda.time.@NonNull LocalDate virtualNow)     // <.>
-  VirtualClock nowAt(org.joda.time.@NonNull LocalDateTime virtualNow)     // <.>
-  VirtualClock nowAt(org.joda.time.@NonNull DateTime virtualNow)     // <.>
   VirtualClock frozenAt(Instant frozenAt)     // <.>
   VirtualClock frozenAt(java.time.@NonNull LocalDate frozenAt)
   VirtualClock frozenAt(java.time.@NonNull LocalDateTime frozenAt)
   VirtualClock frozenAt(java.time.@NonNull OffsetDateTime frozenAt)
   VirtualClock frozenAt(java.time.@NonNull ZonedDateTime frozenAt)
   VirtualClock frozenAt(java.util.@NonNull Date frozenAt)
-  VirtualClock frozenAt(org.joda.time.@NonNull LocalDate frozenAt)     // <.>
-  VirtualClock frozenAt(org.joda.time.@NonNull LocalDateTime frozenAt)     // <.>
-  VirtualClock frozenAt(org.joda.time.@NonNull DateTime frozenAt)     // <.>
   VirtualClock frozenTestClock()     // <.>
   ZoneId localTimeZone()     // <.>
   long nowAsEpochMilli()     // <.>
@@ -41,12 +35,6 @@
   java.util.Date nowAsJavaUtilDate()     // <.>
   java.sql.Timestamp nowAsJavaSqlTimestamp()     // <.>
   XMLGregorianCalendar nowAsXmlGregorianCalendar()     // <.>
-  org.joda.time.DateTime nowAsJodaDateTime(ZoneId zoneId)     // <.>
-  org.joda.time.DateTime nowAsJodaDateTime()     // <.>
-  org.joda.time.LocalDateTime nowAsJodaLocalDateTime(ZoneId zoneId)     // <.>
-  org.joda.time.LocalDateTime nowAsJodaLocalDateTime()     // <.>
-  org.joda.time.LocalDate nowAsJodaLocalDate(ZoneId zoneId)     // <.>
-  org.joda.time.LocalDate nowAsJodaLocalDate()     // <.>
 }
 ----
 
@@ -70,71 +58,11 @@
 --
 Returns a ticking clock set to virtual time.
 --
-<.> xref:#nowAt_org_joda_time_LocalDate[nowAt(org_joda_time_LocalDate)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-convert use java.time variant instead (Joda Time is deprecated)
-====
---
-<.> xref:#nowAt_org_joda_time_LocalDateTime[nowAt(org_joda_time_LocalDateTime)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-convert use java.time variant instead (Joda Time is deprecated)
-====
---
-<.> xref:#nowAt_org_joda_time_DateTime[nowAt(org_joda_time_DateTime)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-convert use java.time variant instead (Joda Time is deprecated)
-====
---
 <.> xref:#frozenAt_Instant[frozenAt(Instant)]
 +
 --
 Always returns the time _Instant_ as given by _frozenAt_
 --
-<.> xref:#frozenAt_org_joda_time_LocalDate[frozenAt(org_joda_time_LocalDate)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
---
-<.> xref:#frozenAt_org_joda_time_LocalDateTime[frozenAt(org_joda_time_LocalDateTime)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
---
-<.> xref:#frozenAt_org_joda_time_DateTime[frozenAt(org_joda_time_DateTime)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
---
 <.> xref:#frozenTestClock_[frozenTestClock()]
 +
 --
@@ -195,76 +123,6 @@
 --
 Returns the (virtual) time as _XMLGregorianCalendar_ .
 --
-<.> xref:#nowAsJodaDateTime_ZoneId[nowAsJodaDateTime(ZoneId)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _org.joda.time.DateTime_ , using the specified _ZoneId_ timezone.
---
-<.> xref:#nowAsJodaDateTime_[nowAsJodaDateTime()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _org.joda.time.DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
---
-<.> xref:#nowAsJodaLocalDateTime_ZoneId[nowAsJodaLocalDateTime(ZoneId)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
---
-<.> xref:#nowAsJodaLocalDateTime_[nowAsJodaLocalDateTime()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _org.joda.time.LocalDateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
---
-<.> xref:#nowAsJodaLocalDate_ZoneId[nowAsJodaLocalDate(ZoneId)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _DateTime_ , using the specified _ZoneId_ timezone.
---
-<.> xref:#nowAsJodaLocalDate_[nowAsJodaLocalDate()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
---
 
 == Members
 
@@ -288,71 +146,11 @@
 
 Returns a ticking clock set to virtual time.
 
-[#nowAt_org_joda_time_LocalDate]
-=== nowAt(org_joda_time_LocalDate)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-convert use java.time variant instead (Joda Time is deprecated)
-====
-
-[#nowAt_org_joda_time_LocalDateTime]
-=== nowAt(org_joda_time_LocalDateTime)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-convert use java.time variant instead (Joda Time is deprecated)
-====
-
-[#nowAt_org_joda_time_DateTime]
-=== nowAt(org_joda_time_DateTime)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-convert use java.time variant instead (Joda Time is deprecated)
-====
-
 [#frozenAt_Instant]
 === frozenAt(Instant)
 
 Always returns the time _Instant_ as given by _frozenAt_
 
-[#frozenAt_org_joda_time_LocalDate]
-=== frozenAt(org_joda_time_LocalDate)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-[#frozenAt_org_joda_time_LocalDateTime]
-=== frozenAt(org_joda_time_LocalDateTime)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-[#frozenAt_org_joda_time_DateTime]
-=== frozenAt(org_joda_time_DateTime)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
 [#frozenTestClock_]
 === frozenTestClock()
 
@@ -414,73 +212,3 @@
 === nowAsXmlGregorianCalendar()
 
 Returns the (virtual) time as _XMLGregorianCalendar_ .
-
-[#nowAsJodaDateTime_ZoneId]
-=== nowAsJodaDateTime(ZoneId)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _org.joda.time.DateTime_ , using the specified _ZoneId_ timezone.
-
-[#nowAsJodaDateTime_]
-=== nowAsJodaDateTime()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _org.joda.time.DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
-
-[#nowAsJodaLocalDateTime_ZoneId]
-=== nowAsJodaLocalDateTime(ZoneId)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-[#nowAsJodaLocalDateTime_]
-=== nowAsJodaLocalDateTime()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _org.joda.time.LocalDateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
-
-[#nowAsJodaLocalDate_ZoneId]
-=== nowAsJodaLocalDate(ZoneId)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _DateTime_ , using the specified _ZoneId_ timezone.
-
-[#nowAsJodaLocalDate_]
-=== nowAsJodaLocalDate()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use java.time variant instead (Joda Time is deprecated)
-====
-
-Returns the time as a Joda _DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
diff --git a/antora/components/refguide-index/modules/applib/pages/index/events/ui/IconUiEvent.adoc b/antora/components/refguide-index/modules/applib/pages/index/events/ui/IconUiEvent.adoc
index 06d9440..fb27020 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/events/ui/IconUiEvent.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/events/ui/IconUiEvent.adoc
@@ -1,7 +1,7 @@
 = IconUiEvent
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-Emitted for subscribers to provide a cssClass hint (equivalent to the `iconName()` supporting method).
+Emitted for subscribers to provide a cssClass hint (equivalent to the `icon(..)` supporting method).
 
 If the domain object defines its own xref:refguide:applib-methods:ui-hints.adoc[iconName()] supporting method, or if it has the xref:refguide:applib:index/annotation/DomainObjectLayout.adoc#cssClassFa[@DomainObjectLayout#cssClassFa()] attribute, then these will take precedence.
 
@@ -18,44 +18,6 @@
 .IconUiEvent.java
 ----
 class IconUiEvent<S> {
-  IconUiEvent()     // <.>
-  IconUiEvent(S source)
-  String getIconName()     // <.>
-  void setIconName(String iconName)     // <.>
 }
 ----
 
-<.> xref:#IconUiEvent_[IconUiEvent()]
-+
---
-If used then the framework will set state via (non-API) setters.
---
-<.> xref:#getIconName_[getIconName()]
-+
---
-The icon name as provided by a subscriber using _#setIconName(String)_ .
---
-<.> xref:#setIconName_String[setIconName(String)]
-+
---
-For subscribers to call to provide an icon name for this object.
---
-
-== Members
-
-[#IconUiEvent_]
-=== IconUiEvent()
-
-If used then the framework will set state via (non-API) setters.
-
-Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
-
-[#getIconName_]
-=== getIconName()
-
-The icon name as provided by a subscriber using _#setIconName(String)_.
-
-[#setIconName_String]
-=== setIconName(String)
-
-For subscribers to call to provide an icon name for this object.
diff --git a/antora/components/refguide-index/modules/applib/pages/index/exceptions/unrecoverable/RepositoryException.adoc b/antora/components/refguide-index/modules/applib/pages/index/exceptions/unrecoverable/RepositoryException.adoc
index 8b3172e..d998e9c 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/exceptions/unrecoverable/RepositoryException.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/exceptions/unrecoverable/RepositoryException.adoc
@@ -3,7 +3,7 @@
 
 Indicates that a repository method has failed.
 
-This exception is intended to represent an unexpected and non-recoverable condition (eg a syntax error in some JDOQL query syntax or similar), and so is a subclass of xref:refguide:applib:index/exceptions/UnrecoverableException.adoc[UnrecoverableException] . Throwing this exception will therefore result in (some sort of) error page being displayed to the user.
+This exception is intended to represent an unexpected and non-recoverable condition (eg a syntax error in some named query syntax, or similar), and so is a subclass of xref:refguide:applib:index/exceptions/UnrecoverableException.adoc[UnrecoverableException] . Throwing this exception will therefore result in (some sort of) error page being displayed to the user.
 
 == API
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/graph/Vertex.adoc b/antora/components/refguide-index/modules/applib/pages/index/graph/Vertex.adoc
index db62475..c880bf5 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/graph/Vertex.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/graph/Vertex.adoc
@@ -14,71 +14,6 @@
   int outgoingCount()
   Stream<Edge<T>> streamIncoming()
   Stream<Edge<T>> streamOutgoing()
-  T getValue()     // <.>
-  int getIncomingCount()     // <.>
-  int getOutgoingCount()     // <.>
 }
 ----
 
-<.> xref:#getValue_[getValue()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#value()_
-====
---
-<.> xref:#getIncomingCount_[getIncomingCount()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#incomingCount()_
-====
---
-<.> xref:#getOutgoingCount_[getOutgoingCount()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#outgoingCount()_
-====
---
-
-== Members
-
-[#getValue_]
-=== getValue()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#value()_
-====
-
-[#getIncomingCount_]
-=== getIncomingCount()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#incomingCount()_
-====
-
-[#getOutgoingCount_]
-=== getOutgoingCount()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#outgoingCount()_
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/id/HasLogicalType.adoc b/antora/components/refguide-index/modules/applib/pages/index/id/HasLogicalType.adoc
index bbb2c75..dd7cf72 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/id/HasLogicalType.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/id/HasLogicalType.adoc
@@ -10,44 +10,11 @@
   LogicalType logicalType()
   String logicalTypeName()     // <.>
   String className()     // <.>
-  LogicalType getLogicalType()     // <.>
-  String getLogicalTypeName()     // <.>
-  String getClassName()     // <.>
 }
 ----
 
 <.> xref:#logicalTypeName_[logicalTypeName()]
 <.> xref:#className_[className()]
-<.> xref:#getLogicalType_[getLogicalType()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use #logicalType()
-====
---
-<.> xref:#getLogicalTypeName_[getLogicalTypeName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use #logicalName()
-====
---
-<.> xref:#getClassName_[getClassName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use #className()
-====
---
 
 == Members
 
@@ -56,33 +23,3 @@
 
 [#className_]
 === className()
-
-[#getLogicalType_]
-=== getLogicalType()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use #logicalType()
-====
-
-[#getLogicalTypeName_]
-=== getLogicalTypeName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use #logicalName()
-====
-
-[#getClassName_]
-=== getClassName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use #className()
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/id/LogicalType.adoc b/antora/components/refguide-index/modules/applib/pages/index/id/LogicalType.adoc
index 118b7d6..efc9446 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/id/LogicalType.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/id/LogicalType.adoc
@@ -25,12 +25,6 @@
   boolean isEqualTo(LogicalType other)
   int hashCode()
   int compareTo(LogicalType other)
-  Class<?> getCorrespondingClass()     // <.>
-  String getLogicalTypeName()     // <.>
-  String getClassName()     // <.>
-  String getLogicalTypeSimpleName()     // <.>
-  String getNamespace()     // <.>
-  String getLogicalTypeNameFormatted(String root, String delimiter)     // <.>
 }
 ----
 
@@ -64,66 +58,6 @@
 --
 The logical type name consists of 2 parts, the _namespace_ and the _logical simple name_ . Returns a concatenation of _namespace_ , _delimiter_ and the _logical simple name_ , whereas in the absence of a _namespace_ returns a concatenation of _root_ and the _logical simple name_ .
 --
-<.> xref:#getCorrespondingClass_[getCorrespondingClass()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#correspondingClass()_
-====
---
-<.> xref:#getLogicalTypeName_[getLogicalTypeName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#logicalName()_
-====
---
-<.> xref:#getClassName_[getClassName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#className()_
-====
---
-<.> xref:#getLogicalTypeSimpleName_[getLogicalTypeSimpleName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#logicalSimpleName()_
-====
---
-<.> xref:#getNamespace_[getNamespace()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#namespace()_
-====
---
-<.> xref:#getLogicalTypeNameFormatted_String_String[getLogicalTypeNameFormatted(String, String)]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#logicalNameFormatted(String, String)_
-====
---
 
 == Members
 
@@ -160,63 +94,3 @@
 === logicalNameFormatted(String, String)
 
 The logical type name consists of 2 parts, the _namespace_ and the _logical simple name_ . Returns a concatenation of _namespace_ , _delimiter_ and the _logical simple name_ , whereas in the absence of a _namespace_ returns a concatenation of _root_ and the _logical simple name_ .
-
-[#getCorrespondingClass_]
-=== getCorrespondingClass()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#correspondingClass()_
-====
-
-[#getLogicalTypeName_]
-=== getLogicalTypeName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#logicalName()_
-====
-
-[#getClassName_]
-=== getClassName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#className()_
-====
-
-[#getLogicalTypeSimpleName_]
-=== getLogicalTypeSimpleName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#logicalSimpleName()_
-====
-
-[#getNamespace_]
-=== getNamespace()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#namespace()_
-====
-
-[#getLogicalTypeNameFormatted_String_String]
-=== getLogicalTypeNameFormatted(String, String)
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#logicalNameFormatted(String, String)_
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/locale/UserLocale.adoc b/antora/components/refguide-index/modules/applib/pages/index/locale/UserLocale.adoc
index dc3680d..21d94b5 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/locale/UserLocale.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/locale/UserLocale.adoc
@@ -11,42 +11,7 @@
 record UserLocale {
   UserLocale getDefault()
   UserLocale valueOf(Locale mainLocale)
-  Locale getLanguageLocale()     // <.>
-  Locale getNumberFormatLocale()     // <.>
-  Locale getTimeFormatLocale()     // <.>
   UserLocaleBuilder asBuilder()
 }
 ----
 
-<.> xref:#getLanguageLocale_[getLanguageLocale()]
-+
---
-use _#languageLocale()_ instead
---
-<.> xref:#getNumberFormatLocale_[getNumberFormatLocale()]
-+
---
-use _#numberFormatLocale()_ instead
---
-<.> xref:#getTimeFormatLocale_[getTimeFormatLocale()]
-+
---
-use _#timeFormatLocale()_ instead
---
-
-== Members
-
-[#getLanguageLocale_]
-=== getLanguageLocale()
-
-use _#languageLocale()_ instead
-
-[#getNumberFormatLocale_]
-=== getNumberFormatLocale()
-
-use _#numberFormatLocale()_ instead
-
-[#getTimeFormatLocale_]
-=== getTimeFormatLocale()
-
-use _#timeFormatLocale()_ instead
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/acceptheader/hooks/AcceptHeaderService_010-implementation.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/acceptheader/hooks/AcceptHeaderService_010-implementation.adoc
index cac4a8b..e4852a7 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/acceptheader/hooks/AcceptHeaderService_010-implementation.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/acceptheader/hooks/AcceptHeaderService_010-implementation.adoc
@@ -1,8 +1,5 @@
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-== Implementation
-
-The xref:vro:ROOT:about.adoc[Restful Objects] viewer provides an implementation of this API, xref:refguide:viewer:index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc[].
 
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureMenu.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureMenu.adoc
index 995e026..62110af 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureMenu.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureMenu.adoc
@@ -8,7 +8,7 @@
 ----
 class ApplicationFeatureMenu {
   public static final String LOGICAL_TYPE_NAME;
-  String iconName()
+  ObjectSupport.IconResource icon(ObjectSupport.IconSize iconSize)
   List<ApplicationNamespace> allNamespaces()
   List<ApplicationType> allTypes()
   List<ApplicationTypeAction> allActions()
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureViewModel.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureViewModel.adoc
index 811e4e1..09ed7d5 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureViewModel.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/appfeatui/ApplicationFeatureViewModel.adoc
@@ -14,7 +14,7 @@
   ApplicationFeatureViewModel(String encodedMemento)
   ApplicationFeatureViewModel newViewModel(ApplicationFeatureId featureId, ApplicationFeatureRepository applicationFeatureRepository, FactoryService factoryService)
   String title()     // <.>
-  String iconName()
+  ObjectSupport.IconResource icon(ObjectSupport.IconSize iconSize)
   String viewModelMemento()
   ApplicationFeature getFeature()
   String getFullyQualifiedName()
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/IdStringifier.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/IdStringifier.adoc
index 38d5947..0c91769 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/IdStringifier.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/IdStringifier.adoc
@@ -1,11 +1,11 @@
 = IdStringifier
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-SPI to convert the identifier (primary key) of an entity, of a given type (eg Integer) into a string, and to convert back again into the key object used to actually look up the target entity instance; supported by both JDO and JPA persistence mechanisms.
+SPI to convert the identifier (primary key) of an entity, of a given type (eg Integer) into a string, and to convert back again into the key object used to actually look up the target entity instance.
 
 This is ultimately used by xref:refguide:applib:index/services/bookmark/BookmarkService.adoc[BookmarkService] where we hold a persistent reference to an entity. The resultant string also appears in URLs of the Wicket viewer and Restful Objects viewers, and in mementos eg in _org.apache.causeway.schema.cmd.v2.CommandDto_ and _org.apache.causeway.schema.ixn.v2.InteractionDto_ .
 
-The framework provides default implementations of this SPI for JDO (data store and application identity) and for JPA. Because this is a SPI, other modules or application code can provide their own implementations. An example of such is the JPA implementation of the `commandlog` extension.
+The framework provides default implementations of this SPI for the supported value types. Modules that define application-defined primary keys can provide their own implementations of this SPI, for examples see the JPA entities defined in the commandlog-jpa module.
 
 == API
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/Oid.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/Oid.adoc
index 18f9ab1..623cf59 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/Oid.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/bookmark/Oid.adoc
@@ -9,9 +9,7 @@
 interface Oid {
   String SEPARATOR;
   String logicalTypeName()     // <.>
-  String getLogicalTypeName()     // <.>
   String identifier()     // <.>
-  String getIdentifier()     // <.>
   String stringify()     // <.>
 }
 ----
@@ -21,21 +19,11 @@
 --
 Logical-type-name of the domain object this Oid is representing. (aka. object-type)
 --
-<.> xref:#getLogicalTypeName_[getLogicalTypeName()]
-+
---
-use _#logicalTypeName()_ instead
---
 <.> xref:#identifier_[identifier()]
 +
 --
 Stringified version of the ID of the domain object instance this Oid is representing.
 --
-<.> xref:#getIdentifier_[getIdentifier()]
-+
---
-use _#identifier()_ instead
---
 <.> xref:#stringify_[stringify()]
 +
 --
@@ -49,21 +37,11 @@
 
 Logical-type-name of the domain object this Oid is representing. (aka. object-type)
 
-[#getLogicalTypeName_]
-=== getLogicalTypeName()
-
-use _#logicalTypeName()_ instead
-
 [#identifier_]
 === identifier()
 
 Stringified version of the ID of the domain object instance this Oid is representing.
 
-[#getIdentifier_]
-=== getIdentifier()
-
-use _#identifier()_ instead
-
 [#stringify_]
 === stringify()
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/email/EmailService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/email/EmailService.adoc
index a2e64b0..982d019 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/email/EmailService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/email/EmailService.adoc
@@ -11,7 +11,6 @@
 .EmailService.java
 ----
 interface EmailService {
-  void init()
   boolean send(List<String> to, List<String> cc, List<String> bcc, String subject, String body, DataSource... attachments)     // <.>
   boolean isConfigured()     // <.>
 }
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/error/ErrorDetails.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/error/ErrorDetails.adoc
index d158490..52df929 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/error/ErrorDetails.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/error/ErrorDetails.adoc
@@ -1,4 +1,4 @@
-= ErrorDetails
+= ErrorDetails _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Details of the error (obtained from the thrown exception), passed as part of the request to the xref:refguide:applib:index/services/error/ErrorReportingService.adoc[ErrorReportingService] .
@@ -8,7 +8,7 @@
 [source,java]
 .ErrorDetails.java
 ----
-class ErrorDetails {
+record ErrorDetails {
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/exceprecog/ExceptionRecognizer.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/exceprecog/ExceptionRecognizer.adoc
index 8526b30..b0529d4 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/exceprecog/ExceptionRecognizer.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/exceprecog/ExceptionRecognizer.adoc
@@ -5,7 +5,7 @@
 
 Rather than redirecting to a general-purpose error page, the message (corresponding to the recognized exception) is rendered as a regular validation message.
 
-For example, a set of recognizers are provided for the xref:pjpa:ROOT:about.adoc[JPA/Eclipselink] object store in order to recognize and handle SQL constraint exceptions such as uniqueness violations. These can then be rendered back to the user as expected errors, rather than fatal stacktraces.
+For example, a set of recognizers are provided for the JPA object store in order to recognize and handle SQL constraint exceptions such as uniqueness violations. These can then be rendered back to the user as expected errors, rather than fatal stacktraces.
 
 More than one implementation of xref:refguide:applib:index/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer] can be registered; they will all be consulted (in the order as specified by Spring's _org.springframework.core.annotation.Order_ annotation) to determine if they recognize the exception. The message returned by the first service recognizing the exception is used.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/factory/FactoryService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/factory/FactoryService.adoc
index 0ada4cd..06133bb 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/factory/FactoryService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/factory/FactoryService.adoc
@@ -99,7 +99,7 @@
 
 Creates a new detached entity instance, with injection points resolved.
 
-The entity will not yet be persisted, in other words: its not yet known to the persistence layer.
+The entity will not yet be persisted, in other words: it is not yet known to the persistence layer.
 
 [#mixin_Class_Object]
 === mixin(Class, Object)
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/health/Health.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/health/Health.adoc
index c3c5121..3b0891a 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/health/Health.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/health/Health.adoc
@@ -11,41 +11,6 @@
   Health error(Throwable throwable)
   Health error(String message)
   boolean isOk()
-  String getMessage()     // <.>
-  Throwable getCause()     // <.>
-  boolean getResult()     // <.>
 }
 ----
 
-<.> xref:#getMessage_[getMessage()]
-+
---
-use _#message()_ instead
---
-<.> xref:#getCause_[getCause()]
-+
---
-use _#cause()_ instead
---
-<.> xref:#getResult_[getResult()]
-+
---
-use _#isOk()_ instead
---
-
-== Members
-
-[#getMessage_]
-=== getMessage()
-
-use _#message()_ instead
-
-[#getCause_]
-=== getCause()
-
-use _#cause()_ instead
-
-[#getResult_]
-=== getResult()
-
-use _#isOk()_ instead
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc
index 2837f79..70e00a7 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionLayer.adoc
@@ -13,50 +13,6 @@
 .InteractionLayer.java
 ----
 record InteractionLayer {
-  Interaction getInteraction()     // <.>
-  InteractionContext getInteractionContext()     // <.>
 }
 ----
 
-<.> xref:#getInteraction_[getInteraction()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#interaction()_ instead
-====
---
-<.> xref:#getInteractionContext_[getInteractionContext()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#interactionContext()_ instead
-====
---
-
-== Members
-
-[#getInteraction_]
-=== getInteraction()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#interaction()_ instead
-====
-
-[#getInteractionContext_]
-=== getInteractionContext()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#interactionContext()_ instead
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc
index 1438068..180b148 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/iactnlayer/InteractionService.adoc
@@ -1,12 +1,12 @@
 = InteractionService
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-A low-level service to programmatically "connect" (or create a session, or interact with; choose your term) the framework's runtime.
+A low-level service to programmatically create a short-lived interaction or session.
+
+You could think of this as analogous to an _java.net.http.HttpRequest_ or a JPA _jakarta.persistence.EntityManager_ or a Hibernate Session.
 
 This service is used internally by the framework itself, for example when a viewer receives a request a new xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] is created for the duration of the users's interaction. It is also used by integration tests, to be able to connect to the database.
 
-You could think of this as analogous to an `HttpRequest` , or a JPA `EntityManager` or JDO `PersistenceManager` .
-
 There are two main APIs exposed. One is to _#openInteraction(InteractionContext) open_ a new xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] , to be _#closeInteractionLayers() closed later_ . The other is to execute a _Callable_ or xref:refguide:commons:index/functional/ThrowingRunnable.adoc[ThrowingRunnable] within the duration of an xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer] , wrapping up automatically. This is what is used by _org.apache.causeway.applib.services.sudo.SudoService_ , for example.
 
 == API
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/jaxb/JaxbService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/jaxb/JaxbService.adoc
index 0410643..b17d5ce 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/jaxb/JaxbService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/jaxb/JaxbService.adoc
@@ -16,6 +16,7 @@
   String toXml(Object domainObject)     // <.>
   String toXml(Object domainObject, Map<String, Object> marshallerProperties)     // <.>
   Map<String, String> toXsd(Object domainObject, CausewaySchemas causewaySchemas)     // <.>
+  JaxbService simple()     // <.>
 }
 ----
 
@@ -44,6 +45,11 @@
 --
 Generates a map of each of the schemas referenced; the key is the schema namespace, the value is the XML of the schema itself.
 --
+<.> xref:#simple_[simple()]
++
+--
+'Simple' because no injection point resolving or advanced xref:refguide:applib:index/domain/DomainObjectList.adoc[DomainObjectList] handling.
+--
 
 == Members
 
@@ -74,6 +80,11 @@
 
 A JAXB-annotated domain object will live in its own XSD namespace and may reference multiple other XSD schemas. In particular, many JAXB domain objects will reference the common causeway schemas. The xref:refguide:applib:index/services/jaxb/CausewaySchemas.adoc[CausewaySchemas] paramter indicates whether these schemas should be included or excluded from the map.
 
+[#simple_]
+=== simple()
+
+'Simple' because no injection point resolving or advanced xref:refguide:applib:index/domain/DomainObjectList.adoc[DomainObjectList] handling.
+
 include::hooks/JaxbService_010-implementation.adoc[]
 
 include::hooks/JaxbService_020-examples-and-usage.adoc[]
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/placeholder/hooks/PlaceholderRenderService_010-implementation.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/placeholder/hooks/PlaceholderRenderService_010-implementation.adoc
index 6de2f21..7de84df 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/placeholder/hooks/PlaceholderRenderService_010-implementation.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/placeholder/hooks/PlaceholderRenderService_010-implementation.adoc
@@ -5,5 +5,5 @@
 
 == Implementation
 
-The xref:core:runtimeservices:about.adoc[Core Runtime Services] module provides a default of this service, namely xref:refguide:core:index/runtimeservices/placeholder/PlaceholderRenderServiceDefault.adoc[].
+The xref:core:runtimeservices:about.adoc[Core Runtime Services] module provides a default of this service, namely xref:refguide:core:index/runtimeservices/render/PlaceholderRenderServiceDefault.adoc[].
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/registry/ServiceRegistry.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/registry/ServiceRegistry.adoc
index 290a6db..8ecaf59 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/registry/ServiceRegistry.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/registry/ServiceRegistry.adoc
@@ -11,10 +11,10 @@
 interface ServiceRegistry {
   Can<T> select(Class<T> type, Annotation[] qualifiers)     // <.>
   Can<T> select(Class<T> type)     // <.>
-  Stream<_SingletonBeanProvider> streamRegisteredBeansOfType(Class<?> requiredType)     // <.>
-  Stream<_SingletonBeanProvider> streamRegisteredBeans()     // <.>
-  Optional<_SingletonBeanProvider> lookupRegisteredBeanById(LogicalType id)     // <.>
-  _SingletonBeanProvider lookupRegisteredBeanByIdElseFail(LogicalType id)     // <.>
+  Stream<SingletonBeanProvider> streamRegisteredBeansOfType(Class<?> requiredType)     // <.>
+  Stream<SingletonBeanProvider> streamRegisteredBeans()     // <.>
+  Optional<SingletonBeanProvider> lookupRegisteredBeanById(LogicalType id)     // <.>
+  SingletonBeanProvider lookupRegisteredBeanByIdElseFail(LogicalType id)     // <.>
   Optional<?> lookupBeanById(String id)
   Optional<T> lookupService(Class<T> serviceClass)     // <.>
   Optional<T> lookupService(Class<T> serviceClass, Comparator<Object> comparator)     // <.>
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/render/ObjectIcon.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/render/ObjectIcon.adoc
new file mode 100644
index 0000000..a89d7f0
--- /dev/null
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/render/ObjectIcon.adoc
@@ -0,0 +1,49 @@
+= ObjectIcon
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+
+Icon image data class-path resource reference.
+
+== API
+
+[source,java]
+.ObjectIcon.java
+----
+interface ObjectIcon {
+  String shortName()     // <.>
+  String mediaType()     // <.>
+  byte[] iconData()     // <.>
+}
+----
+
+<.> xref:#shortName_[shortName()]
++
+--
+Name for the image, usually corresponds to the domain object's class simple name.
+--
+<.> xref:#mediaType_[mediaType()]
++
+--
+The image media type, e.g. _image/pdf_ or _text/css_ for font-awesome icons.
+--
+<.> xref:#iconData_[iconData()]
++
+--
+Image data as bytes (plain, no encoding) or 'quick-notation' in support of font awesome layers.
+--
+
+== Members
+
+[#shortName_]
+=== shortName()
+
+Name for the image, usually corresponds to the domain object's class simple name.
+
+[#mediaType_]
+=== mediaType()
+
+The image media type, e.g. _image/pdf_ or _text/css_ for font-awesome icons.
+
+[#iconData_]
+=== iconData()
+
+Image data as bytes (plain, no encoding) or 'quick-notation' in support of font awesome layers.
diff --git a/antora/components/refguide-index/modules/security/pages/index/shiro/webmodule/WebModuleShiro.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/render/ObjectRenderService.adoc
similarity index 67%
rename from antora/components/refguide-index/modules/security/pages/index/shiro/webmodule/WebModuleShiro.adoc
rename to antora/components/refguide-index/modules/applib/pages/index/services/render/ObjectRenderService.adoc
index ae985e1..6021123 100644
--- a/antora/components/refguide-index/modules/security/pages/index/shiro/webmodule/WebModuleShiro.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/render/ObjectRenderService.adoc
@@ -1,20 +1,20 @@
-= WebModuleShiro
+= ObjectRenderService
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-WebModule to enable support for Shiro.
+ExperimentalService that renders various aspects of a domain object, enum or value, as presented with the UI. Currently handling icons only, but could be extended in the future.
 
-Can be customized via static _WebModuleShiro#setShiroEnvironmentClass(Class)_
+* icon
+* title
+* description
 
 == API
 
 [source,java]
-.WebModuleShiro.java
+.ObjectRenderService.java
 ----
-class WebModuleShiro {
-  WebModuleShiro(ServiceInjector serviceInjector)
-  void setShiroIniResource(String resourcePath)
-  void prepare(WebModuleContext ctx)
-  Can<ServletContextListener> init(ServletContext ctx)
+interface ObjectRenderService {
+  String iconToHtml(ObjectIcon objectIcon, IconSize iconSize)
+  ObjectRenderService fallback()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/placeholder/PlaceholderRenderService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/render/PlaceholderRenderService.adoc
similarity index 96%
rename from antora/components/refguide-index/modules/applib/pages/index/services/placeholder/PlaceholderRenderService.adoc
rename to antora/components/refguide-index/modules/applib/pages/index/services/render/PlaceholderRenderService.adoc
index bae96b5..8824d55 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/placeholder/PlaceholderRenderService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/render/PlaceholderRenderService.adoc
@@ -40,5 +40,3 @@
 === asHtml(PlaceholderLiteral, Map)
 
 HTML representation of given _PlaceholderLiteral_ , as used for rendering with the UI (when appropriate).
-
-include::hooks/PlaceholderRenderService_010-implementation.adoc[]
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/repository/EntityState.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/repository/EntityState.adoc
index abdfb75..d880e3f 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/repository/EntityState.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/repository/EntityState.adoc
@@ -62,7 +62,12 @@
 <.> xref:#HOLLOW[HOLLOW]
 +
 --
-JDO specificObject with this state is an entity that no longer attached to a persistence session and cannot be re-attached. In other words: changes to the entity will _not_ be tracked nor flushed back to the database.
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- This entity state is no longer in use; was specific to JDO/DataNucleus object store, now retired.
+====
 --
 <.> xref:#TRANSIENT_OR_REMOVED[TRANSIENT_OR_REMOVED]
 +
@@ -72,7 +77,12 @@
 <.> xref:#REMOVED[REMOVED]
 +
 --
-JDO specificNot supported by JPA. (Cannot distinguish between TRANSIENT and REMOVED.)
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- This entity state is no longer in use; was specific to JDO/DataNucleus object store, now retired.
+====
 --
 <.> xref:#isPersistable_[isPersistable()]
 +
@@ -118,16 +128,15 @@
 
 Is detached, hence (per definition) has an OID.
 
-Supported by both JDO and JPA. However, historically never used by the framework for JDO.
-
 [#HOLLOW]
 === HOLLOW
 
-JDO specificObject with this state is an entity that no longer attached to a persistence session and cannot be re-attached. In other words: changes to the entity will _not_ be tracked nor flushed back to the database.
+[WARNING]
+====
+[red]#_deprecated:_#
 
-JDO distinguishes between DETACHED and HOLLOW, by virtue of _javax.jdo.option.detachAllOnCommit=false_ .
-
-(Unfortunately, we have not found a way to recover _OIDs_ from _hollow_ entities, as used for serialization post commit. We have instead implemented a workaround using the `DnStateManagerForHollow` class).
+- This entity state is no longer in use; was specific to JDO/DataNucleus object store, now retired.
+====
 
 [#TRANSIENT_OR_REMOVED]
 === TRANSIENT_OR_REMOVED
@@ -137,7 +146,12 @@
 [#REMOVED]
 === REMOVED
 
-JDO specificNot supported by JPA. (Cannot distinguish between TRANSIENT and REMOVED.)
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- This entity state is no longer in use; was specific to JDO/DataNucleus object store, now retired.
+====
 
 [#isPersistable_]
 === isPersistable()
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/repository/RepositoryService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/repository/RepositoryService.adoc
index 80e3790..441cf84 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/repository/RepositoryService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/repository/RepositoryService.adoc
@@ -42,7 +42,7 @@
 <.> xref:#detachedEntity_T[detachedEntity(T)]
 +
 --
-Usually called as a precursor to persisting a domain entity, this method verifies that the object is an entity and injects domain services into it.
+Creates a new detached entity instance, with injection points resolved.
 --
 <.> xref:#execInBulk_Callable[execInBulk(Callable)]
 +
@@ -145,9 +145,9 @@
 [#detachedEntity_T]
 === detachedEntity(T)
 
-Usually called as a precursor to persisting a domain entity, this method verifies that the object is an entity and injects domain services into it.
+Creates a new detached entity instance, with injection points resolved.
 
-This approach allows the domain entity to have regular constructor (with parameters) to set up the initial state of the domain object. This is preferred over _#detachedEntity(Class)_ , which also instantiates the class and then injects into it - but requires that the domain object has a no-arg constructor to do so.
+The entity will not yet be persisted, in other words: it is not yet known to the persistence layer.
 
 This is the same functionality as exposed by _org.apache.causeway.applib.services.factory.FactoryService#detachedEntity(Object)_ . It is provided in this service as a convenience because instantiating and _#persist(Object) persisting_ an object are often done together.
 
@@ -239,7 +239,7 @@
 
 Returns all the instances that match the given xref:refguide:applib:index/query/Query.adoc[Query] .
 
-This is the main API for server-side (performant) queries returning multiple instances, where a _org.apache.causeway.applib.query.NamedQuery_ can be passed in that ultimately describes a SELECT query with WHERE predicates. The mechanism by which this is defined depends on the ORM (JDO or JPA). A _org.apache.causeway.applib.query.NamedQuery_ can optionally specify a _org.apache.causeway.applib.query.NamedQuery#withRange(QueryRange) range_ of instances to be returned.
+This is the main API for server-side (performant) queries returning multiple instances, where a _org.apache.causeway.applib.query.NamedQuery_ can be passed in that ultimately describes a SELECT query with WHERE predicates. A _org.apache.causeway.applib.query.NamedQuery_ can optionally specify a _org.apache.causeway.applib.query.NamedQuery#withRange(QueryRange) range_ of instances to be returned.
 
 It is also possible to specify an _org.apache.causeway.applib.query.AllInstancesQuery_ . This is equivalent to using _#allInstances(Class, long, long)_ ; a range can also be specified.
 
@@ -257,7 +257,7 @@
 
 Find the only instance that matches the provided xref:refguide:applib:index/query/Query.adoc[Query] .
 
-This is the main API for server-side (performant) queries returning no more than one instance, where a _org.apache.causeway.applib.query.NamedQuery_ can be passed in that ultimately describes a SELECT query with WHERE predicates. The mechanism by which this is defined depends on the ORM (JDO or JPA). A _org.apache.causeway.applib.query.NamedQuery_ can optionally specify a _org.apache.causeway.applib.query.NamedQuery#withRange(QueryRange) range_ of instances to be returned.
+This is the main API for server-side (performant) queries returning no more than one instance, where a _org.apache.causeway.applib.query.NamedQuery_ can be passed in that ultimately describes a SELECT query with WHERE predicates. A _org.apache.causeway.applib.query.NamedQuery_ can optionally specify a _org.apache.causeway.applib.query.NamedQuery#withRange(QueryRange) range_ of instances to be returned.
 
 If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances a run-time exception will be thrown.
 
@@ -275,7 +275,7 @@
 
 Find the only instance that matches the provided xref:refguide:applib:index/query/Query.adoc[Query] , if any.
 
-This is the main API for server-side (performant) queries returning the first matching instance, where a _org.apache.causeway.applib.query.NamedQuery_ can be passed in that ultimately describes a SELECT query with WHERE predicates. The mechanism by which this is defined depends on the ORM (JDO or JPA). A _org.apache.causeway.applib.query.NamedQuery_ can optionally specify a _org.apache.causeway.applib.query.NamedQuery#withRange(QueryRange) range_ of instances to be returned.
+This is the main API for server-side (performant) queries returning the first matching instance, where a _org.apache.causeway.applib.query.NamedQuery_ can be passed in that ultimately describes a SELECT query with WHERE predicates. A _org.apache.causeway.applib.query.NamedQuery_ can optionally specify a _org.apache.causeway.applib.query.NamedQuery#withRange(QueryRange) range_ of instances to be returned.
 
 If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances then the first will be returned.
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/title/TitleService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/title/TitleService.adoc
index 74a015e..e364e1f 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/title/TitleService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/title/TitleService.adoc
@@ -10,7 +10,7 @@
 ----
 interface TitleService {
   String titleOf(Object domainObject)     // <.>
-  String iconNameOf(Object domainObject)     // <.>
+  IconResource iconOf(Object domainObject, IconSize iconSize)     // <.>
 }
 ----
 
@@ -19,10 +19,10 @@
 --
 Returns the title of the object (as rendered in the UI by the framework's viewers).
 --
-<.> xref:#iconNameOf_Object[iconNameOf(Object)]
+<.> xref:#iconOf_Object_IconSize[iconOf(Object, IconSize)]
 +
 --
-Returns the icon name of the object (as rendered in the UI by the framework's viewers).
+Returns the icon of the object (as rendered in the UI by the framework's viewers).
 --
 
 == Members
@@ -32,10 +32,10 @@
 
 Returns the title of the object (as rendered in the UI by the framework's viewers).
 
-[#iconNameOf_Object]
-=== iconNameOf(Object)
+[#iconOf_Object_IconSize]
+=== iconOf(Object, IconSize)
 
-Returns the icon name of the object (as rendered in the UI by the framework's viewers).
+Returns the icon of the object (as rendered in the UI by the framework's viewers).
 
 include::hooks/TitleService_010-implementation.adoc[]
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/user/RoleMemento.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/user/RoleMemento.adoc
index 18f398b..329e930 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/user/RoleMemento.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/user/RoleMemento.adoc
@@ -14,8 +14,6 @@
   RoleMemento(String name, String description)     // <.>
   boolean equals(Object obj)
   int hashCode()
-  String getName()     // <.>
-  String getDescription()     // <.>
 }
 ----
 
@@ -29,26 +27,6 @@
 --
 Creates a new role with the specified name and description.
 --
-<.> xref:#getName_[getName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#name()_ instead
-====
---
-<.> xref:#getDescription_[getDescription()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#description()_ instead
-====
---
 
 == Members
 
@@ -61,23 +39,3 @@
 === RoleMemento(String, String)
 
 Creates a new role with the specified name and description.
-
-[#getName_]
-=== getName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#name()_ instead
-====
-
-[#getDescription_]
-=== getDescription()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#description()_ instead
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/user/UserMemento.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/user/UserMemento.adoc
index a59f92d..0c28ab7 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/user/UserMemento.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/user/UserMemento.adoc
@@ -37,16 +37,6 @@
   UserMemento withTimeFormatLocale(Locale timeFormatLocale)
   boolean equals(Object obj)
   int hashCode()
-  String getName()     // <.>
-  String getAuthenticationCode()     // <.>
-  AuthenticationSource getAuthenticationSource()     // <.>
-  URL getAvatarUrl()     // <.>
-  String getRealName()     // <.>
-  Locale getLanguageLocale()     // <.>
-  Locale getnumberFormatLocale()     // <.>
-  Locale getTimeFormatLocale()     // <.>
-  String getMultiTenancyToken()     // <.>
-  List<RoleMemento> getRoles()     // <.>
 }
 ----
 
@@ -95,106 +85,6 @@
 --
 Whether this xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento] 's _UserMemento#roles() roles_ contains the xref:refguide:applib:index/services/sudo/SudoService.adoc[SudoService] 's _SudoService#ACCESS_ALL_ROLE ACCESS_ALL_ROLE_ role (meaning that security checks are disabled).
 --
-<.> xref:#getName_[getName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#name()_ instead
-====
---
-<.> xref:#getAuthenticationCode_[getAuthenticationCode()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#authenticationCode()_ instead
-====
---
-<.> xref:#getAuthenticationSource_[getAuthenticationSource()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#authenticationSource()_ instead
-====
---
-<.> xref:#getAvatarUrl_[getAvatarUrl()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#avatarUrl()_ instead
-====
---
-<.> xref:#getRealName_[getRealName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#realName()_ instead
-====
---
-<.> xref:#getLanguageLocale_[getLanguageLocale()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#languageLocale()_ instead
-====
---
-<.> xref:#getnumberFormatLocale_[getnumberFormatLocale()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#numberFormatLocale()_ instead
-====
---
-<.> xref:#getTimeFormatLocale_[getTimeFormatLocale()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#timeFormatLocale()_ instead
-====
---
-<.> xref:#getMultiTenancyToken_[getMultiTenancyToken()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#multiTenancyToken()_ instead
-====
---
-<.> xref:#getRoles_[getRoles()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#roles()_ instead
-====
---
 
 == Members
 
@@ -242,103 +132,3 @@
 === hasSudoAccessAllRole()
 
 Whether this xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento] 's _UserMemento#roles() roles_ contains the xref:refguide:applib:index/services/sudo/SudoService.adoc[SudoService] 's _SudoService#ACCESS_ALL_ROLE ACCESS_ALL_ROLE_ role (meaning that security checks are disabled).
-
-[#getName_]
-=== getName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#name()_ instead
-====
-
-[#getAuthenticationCode_]
-=== getAuthenticationCode()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#authenticationCode()_ instead
-====
-
-[#getAuthenticationSource_]
-=== getAuthenticationSource()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#authenticationSource()_ instead
-====
-
-[#getAvatarUrl_]
-=== getAvatarUrl()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#avatarUrl()_ instead
-====
-
-[#getRealName_]
-=== getRealName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#realName()_ instead
-====
-
-[#getLanguageLocale_]
-=== getLanguageLocale()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#languageLocale()_ instead
-====
-
-[#getnumberFormatLocale_]
-=== getnumberFormatLocale()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#numberFormatLocale()_ instead
-====
-
-[#getTimeFormatLocale_]
-=== getTimeFormatLocale()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#timeFormatLocale()_ instead
-====
-
-[#getMultiTenancyToken_]
-=== getMultiTenancyToken()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#multiTenancyToken()_ instead
-====
-
-[#getRoles_]
-=== getRoles()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#roles()_ instead
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/hooks/WrapperFactory_020-examples-and-usage.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/hooks/WrapperFactory_020-examples-and-usage.adoc
index 6013636..ea492ca 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/hooks/WrapperFactory_020-examples-and-usage.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/wrapper/hooks/WrapperFactory_020-examples-and-usage.adoc
@@ -106,6 +106,5 @@
 
 * xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl] and xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc[AsyncControl]
 ** xref:refguide:applib:index/services/wrapper/control/ExceptionHandler.adoc[ExceptionHandler]
-** xref:refguide:applib:index/services/wrapper/control/ExecutionMode.adoc[ExecutionMode]
 * xref:refguide:applib:index/services/wrapper/listeners/InteractionListener.adoc[InteractionListener]
 ** xref:refguide:applib:index/services/wrapper/listeners/InteractionAdapter.adoc[InteractionAdapter]
diff --git a/antora/components/refguide-index/modules/applib/pages/index/util/ObjectContracts.adoc b/antora/components/refguide-index/modules/applib/pages/index/util/ObjectContracts.adoc
index 9f4991c..966fe67 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/util/ObjectContracts.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/util/ObjectContracts.adoc
@@ -14,10 +14,6 @@
   Hashing<T> hashing(Function<T, ?> getter)
   ObjectContract<T> contract(Class<T> objectClass)
   ObjectContract<T> parse(Class<T> target, String propertyNames)
-  String toString(T obj, String propertyNames)
-  boolean equals(T obj, Object other, String propertyNames)
-  int hashCode(Object obj, String propertyNames)
-  int compare(T obj, T other, String propertyNames)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/value/Blob.adoc b/antora/components/refguide-index/modules/applib/pages/index/value/Blob.adoc
index d59086e..12d14c9 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/value/Blob.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/value/Blob.adoc
@@ -21,11 +21,12 @@
   Blob of(String name, CommonMimeType mimeType, byte[] content)     // <.>
   Try<Blob> tryRead(String name, CommonMimeType mimeType, DataSource dataSource)     // <.>
   Try<Blob> tryRead(String name, CommonMimeType mimeType, File file)     // <.>
-  byte[] getBytes()     // <.>
   Clob toClob(Charset charset)     // <.>
+  Clob toClobUtf8()     // <.>
   void writeBytesTo(OutputStream os)     // <.>
   void writeTo(File file)     // <.>
   DataSource asDataSource()     // <.>
+  Blob flatMap(UnaryOperator<Blob> mapper)     // <.>
   Blob zip()     // <.>
   Blob zip(String zipEntryNameIfAny)     // <.>
   Blob unZip(CommonMimeType resultingMimeType)
@@ -55,21 +56,16 @@
 --
 Shortcut for _tryRead(name, mimeType, DataSource.ofFile(file))_
 --
-<.> xref:#getBytes_[getBytes()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#bytes()_ instead
-====
---
 <.> xref:#toClob_Charset[toClob(Charset)]
 +
 --
 Converts to a xref:refguide:applib:index/value/Clob.adoc[Clob] , using given _Charset_ for the underlying byte[] to String conversion.
 --
+<.> xref:#toClobUtf8_[toClobUtf8()]
++
+--
+Converts to a xref:refguide:applib:index/value/Clob.adoc[Clob] , using UTF-8 for the underlying byte[] to String conversion.
+--
 <.> xref:#writeBytesTo_OutputStream[writeBytesTo(OutputStream)]
 +
 --
@@ -85,6 +81,11 @@
 --
 Returns a new xref:refguide:commons:index/io/DataSource.adoc[DataSource] for underlying byte array.
 --
+<.> xref:#flatMap_UnaryOperator[flatMap(UnaryOperator)]
++
+--
+Allows fluent chaining of xref:refguide:applib:index/value/Blob.adoc[Blob] operators.
+--
 <.> xref:#zip_[zip()]
 +
 --
@@ -122,21 +123,16 @@
 
 Shortcut for _tryRead(name, mimeType, DataSource.ofFile(file))_
 
-[#getBytes_]
-=== getBytes()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#bytes()_ instead
-====
-
 [#toClob_Charset]
 === toClob(Charset)
 
 Converts to a xref:refguide:applib:index/value/Clob.adoc[Clob] , using given _Charset_ for the underlying byte[] to String conversion.
 
+[#toClobUtf8_]
+=== toClobUtf8()
+
+Converts to a xref:refguide:applib:index/value/Clob.adoc[Clob] , using UTF-8 for the underlying byte[] to String conversion.
+
 [#writeBytesTo_OutputStream]
 === writeBytesTo(OutputStream)
 
@@ -154,6 +150,11 @@
 
 Returns a new xref:refguide:commons:index/io/DataSource.adoc[DataSource] for underlying byte array.
 
+[#flatMap_UnaryOperator]
+=== flatMap(UnaryOperator)
+
+Allows fluent chaining of xref:refguide:applib:index/value/Blob.adoc[Blob] operators.
+
 [#zip_]
 === zip()
 
diff --git a/antora/components/refguide-index/modules/applib/pages/index/value/Clob.adoc b/antora/components/refguide-index/modules/applib/pages/index/value/Clob.adoc
index a8c2c62..f332fd0 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/value/Clob.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/value/Clob.adoc
@@ -25,7 +25,7 @@
   Try<Clob> tryRead(String name, CommonMimeType mimeType, DataSource dataSource, Charset charset)     // <.>
   Try<Clob> tryRead(String name, CommonMimeType mimeType, File file, Charset charset)     // <.>
   Try<Clob> tryReadUtf8(String name, CommonMimeType mimeType, File file)     // <.>
-  CharSequence getChars()     // <.>
+  Clob flatMap(UnaryOperator<Clob> mapper)     // <.>
   Blob toBlob(Charset charset)     // <.>
   Blob toBlobUtf8()     // <.>
   void writeCharsTo(Writer wr)
@@ -58,15 +58,10 @@
 --
 Shortcut for _#tryRead(String, org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType, File, Charset)_ using _StandardCharsets#UTF_8_ .
 --
-<.> xref:#getChars_[getChars()]
+<.> xref:#flatMap_UnaryOperator[flatMap(UnaryOperator)]
 +
 --
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#chars()_ instead
-====
+Allows fluent chaining of xref:refguide:applib:index/value/Clob.adoc[Clob] operators.
 --
 <.> xref:#toBlob_Charset[toBlob(Charset)]
 +
@@ -119,15 +114,10 @@
 
 Shortcut for _#tryRead(String, org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType, File, Charset)_ using _StandardCharsets#UTF_8_ .
 
-[#getChars_]
-=== getChars()
+[#flatMap_UnaryOperator]
+=== flatMap(UnaryOperator)
 
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#chars()_ instead
-====
+Allows fluent chaining of xref:refguide:applib:index/value/Clob.adoc[Clob] operators.
 
 [#toBlob_Charset]
 === toBlob(Charset)
diff --git a/antora/components/refguide-index/modules/applib/pages/index/value/LocalResourcePath.adoc b/antora/components/refguide-index/modules/applib/pages/index/value/LocalResourcePath.adoc
index 4e55650..db4f049 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/value/LocalResourcePath.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/value/LocalResourcePath.adoc
@@ -16,7 +16,6 @@
   public static final String LOGICAL_TYPE_NAME;
   LocalResourcePath(String path)
   LocalResourcePath(String path, OpenUrlStrategy openUrlStrategy)
-  OpenUrlStrategy getOpenUrlStrategy()     // <.>
   String getValue()
   String getEffectivePath(UnaryOperator<String> contextPathPrepender)
   String toString()
@@ -26,15 +25,3 @@
 }
 ----
 
-<.> xref:#getOpenUrlStrategy_[getOpenUrlStrategy()]
-+
---
-use _#openUrlStrategy()_ instead
---
-
-== Members
-
-[#getOpenUrlStrategy_]
-=== getOpenUrlStrategy()
-
-use _#openUrlStrategy()_ instead
diff --git a/antora/components/refguide-index/modules/applib/pages/index/value/Markup.adoc b/antora/components/refguide-index/modules/applib/pages/index/value/Markup.adoc
index d7c7e66..7025096 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/value/Markup.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/value/Markup.adoc
@@ -12,21 +12,9 @@
   Markup()
   Markup(String html)
   Markup valueOf(String html)
-  String asHtml()     // <.>
+  Markup embeddedImage(DataUri dataUri)
   String toString()
   String summarizeHtmlAsTitle(String html)
 }
 ----
 
-<.> xref:#asHtml_[asHtml()]
-+
---
-use _#html()_ instead
---
-
-== Members
-
-[#asHtml_]
-=== asHtml()
-
-use _#html()_ instead
diff --git a/antora/components/refguide-index/modules/applib/pages/index/value/NamedWithMimeType.adoc b/antora/components/refguide-index/modules/applib/pages/index/value/NamedWithMimeType.adoc
index fe01c03..3dcd909 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/value/NamedWithMimeType.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/value/NamedWithMimeType.adoc
@@ -9,51 +9,7 @@
 interface NamedWithMimeType {
   String name()
   MimeType mimeType()
-  String getName()     // <.>
-  MimeType getMimeType()     // <.>
   int compareTo(NamedWithMimeType o)
 }
 ----
 
-<.> xref:#getName_[getName()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#name()_ instead
-====
---
-<.> xref:#getMimeType_[getMimeType()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#mimeType()_ instead
-====
---
-
-== Members
-
-[#getName_]
-=== getName()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#name()_ instead
-====
-
-[#getMimeType_]
-=== getMimeType()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#mimeType()_ instead
-====
diff --git a/antora/components/refguide-index/modules/applib/pages/index/value/Password.adoc b/antora/components/refguide-index/modules/applib/pages/index/value/Password.adoc
index b559da0..f0c2114 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/value/Password.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/value/Password.adoc
@@ -10,31 +10,8 @@
 ----
 record Password {
   Password of(String password)
-  String getPassword()     // <.>
   boolean checkPassword(String password)
   String toString()
 }
 ----
 
-<.> xref:#getPassword_[getPassword()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#password()_ instead
-====
---
-
-== Members
-
-[#getPassword_]
-=== getPassword()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#password()_ instead
-====
diff --git a/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_ApiScope.adoc b/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_ApiScope.adoc
index ff5daec..9b699e2 100644
--- a/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_ApiScope.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_ApiScope.adoc
@@ -39,4 +39,4 @@
 
 The generated GraphQL spec is not restricted, includes both _org.apache.causeway.applib.annotation.Nature#ENTITY domain entities_ as well as _org.apache.causeway.applib.annotation.Nature#VIEW_MODEL view model_ s.
 
-This is perfectly acceptable where the team developing the GraphQL client is the same as the team developing the backend service ... the use of the Web API between the client and server is a private implementation detail of the application.
+This is perfectly acceptable where the team developing the GraphQL client is the same as the team developing the backend service ... the use of the Web API between the client and server is a implementation detail of the application.
diff --git a/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_SchemaStyle.adoc b/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_SchemaStyle.adoc
index d02bfa5..126a9a1 100644
--- a/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_SchemaStyle.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/config/CausewayConfiguration_Viewer_Graphql_SchemaStyle.adoc
@@ -1,7 +1,7 @@
 = CausewayConfiguration.Viewer.Graphql.SchemaStyle _(enum)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-Which style of schema to expose: "simple", "rich" or some combination of both.
+Which style of schema to expose: 'simple', 'rich' or some combination of both.
 
 == API
 
@@ -21,22 +21,22 @@
 <.> xref:#SIMPLE_ONLY[SIMPLE_ONLY]
 +
 --
-Expose only the "simple" schema, defining only fields that return the state of the domain objects but with no fields to represent additional facets of state (such as whether an action is hidden or disabled).
+Expose only the 'simple' schema, defining only fields that return the state of the domain objects but with no fields to represent additional facets of state (such as whether an action is hidden or disabled).
 --
 <.> xref:#RICH_ONLY[RICH_ONLY]
 +
 --
-Expose only the "rich" schema, exposing not only fields that return the state of the domain objects but _also_ with fields to represent additional facets of state (such as whether an action is hidden or disabled).
+Expose only the 'rich' schema, exposing not only fields that return the state of the domain objects but _also_ with fields to represent additional facets of state (such as whether an action is hidden or disabled).
 --
 <.> xref:#SIMPLE_AND_RICH[SIMPLE_AND_RICH]
 +
 --
-Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#getTopLevelFieldName()_ (by default "simple") and _Schema.Rich#getTopLevelFieldName()_ (by default "rich").
+Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#topLevelFieldName()_ (by default 'simple') and _Schema.Rich#topLevelFieldName()_ (by default 'rich').
 --
 <.> xref:#RICH_AND_SIMPLE[RICH_AND_SIMPLE]
 +
 --
-Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#getTopLevelFieldName()_ (by default "simple") and _Schema.Rich#getTopLevelFieldName()_ (by default "rich").
+Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#topLevelFieldName()_ (by default 'simple') and _Schema.Rich#topLevelFieldName()_ (by default 'rich').
 --
 
 == Members
@@ -44,29 +44,29 @@
 [#SIMPLE_ONLY]
 === SIMPLE_ONLY
 
-Expose only the "simple" schema, defining only fields that return the state of the domain objects but with no fields to represent additional facets of state (such as whether an action is hidden or disabled).
+Expose only the 'simple' schema, defining only fields that return the state of the domain objects but with no fields to represent additional facets of state (such as whether an action is hidden or disabled).
 
 Suitable for clients where the application logic and state is the responsibility of the client.
 
 [#RICH_ONLY]
 === RICH_ONLY
 
-Expose only the "rich" schema, exposing not only fields that return the state of the domain objects but _also_ with fields to represent additional facets of state (such as whether an action is hidden or disabled).
+Expose only the 'rich' schema, exposing not only fields that return the state of the domain objects but _also_ with fields to represent additional facets of state (such as whether an action is hidden or disabled).
 
-Optionally, fields for Scenario (given/when/then) testing may also be added if the _Schema.Rich#isEnableScenarioTesting()_ config property is set.
+Optionally, fields for Scenario (given/when/then) testing may also be added if the _Schema.Rich#enableScenarioTesting()_ config property is set.
 
 Suitable for clients where the application logic and state remains in the backend, within the domain model hosted by Causeway.
 
 [#SIMPLE_AND_RICH]
 === SIMPLE_AND_RICH
 
-Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#getTopLevelFieldName()_ (by default "simple") and _Schema.Rich#getTopLevelFieldName()_ (by default "rich").
+Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#topLevelFieldName()_ (by default 'simple') and _Schema.Rich#topLevelFieldName()_ (by default 'rich').
 
 For mutations, use the _simple_ schema types.
 
 [#RICH_AND_SIMPLE]
 === RICH_AND_SIMPLE
 
-Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#getTopLevelFieldName()_ (by default "simple") and _Schema.Rich#getTopLevelFieldName()_ (by default "rich").
+Exposes both the simple and rich schemas, for the query have each under a field as defined by _Schema.Simple#topLevelFieldName()_ (by default 'simple') and _Schema.Rich#topLevelFieldName()_ (by default 'rich').
 
 For mutations, use the _rich_ schema types.
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 8250287..0968852 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
@@ -10,15 +10,12 @@
 ----
 interface ManagedObject {
   Specialization specialization()     // <.>
-  Specialization getSpecialization()
   Specialization.BookmarkPolicy getBookmarkPolicy()
   ObjectSpecification objSpec()     // <.>
   Object getPojo()     // <.>
   EntityState getEntityState()
   String getTitle()     // <.>
-  String getIconName()     // <.>
-  ObjectIcon getIcon()
-  Either<ObjectIcon, FontAwesomeLayers> eitherIconOrFaLayers()     // <.>
+  ObjectIcon getIcon(IconSize iconSize)     // <.>
   Either<ManagedObject, ManagedObject> asEitherWithOrWithoutMemoizedBookmark()
   ManagedObject unspecified()     // <.>
   ManagedObject empty(ObjectSpecification spec)     // <.>
@@ -61,12 +58,7 @@
 --
 The (untranslated) title of the wrapped pojo.
 --
-<.> xref:#getIconName_[getIconName()]
-+
---
-Returns the name of an icon to use for this object.
---
-<.> xref:#eitherIconOrFaLayers_[eitherIconOrFaLayers()]
+<.> xref:#getIcon_IconSize[getIcon(IconSize)]
 +
 --
 Domain Objects may either have an icon corresponding to an icon resource, or they use a font awesome icon.
@@ -154,15 +146,8 @@
 
 The (untranslated) title of the wrapped pojo.
 
-[#getIconName_]
-=== getIconName()
-
-Returns the name of an icon to use for this object.
-
-May return `null` if no icon is specified.
-
-[#eitherIconOrFaLayers_]
-=== eitherIconOrFaLayers()
+[#getIcon_IconSize]
+=== getIcon(IconSize)
 
 Domain Objects may either have an icon corresponding to an icon resource, or they use a font awesome icon.
 
diff --git a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.adoc b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.adoc
index d8fa29a..a26c157 100644
--- a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.adoc
@@ -11,7 +11,7 @@
 class GridSystemServiceBootstrap {
   public static final String TNS;
   public static final String SCHEMA_LOCATION;
-  GridSystemServiceBootstrap(MetaModelContext metaModelContext, TranslationService translationService, JaxbService jaxbService, MessageService messageService, CausewaySystemEnvironment causewaySystemEnvironment, List<FallbackLayoutDataSource> fallbackLayoutDataSources)
+  GridSystemServiceBootstrap(CausewayConfiguration causewayConfiguration, Provider<SpecificationLoader> specLoaderProvider, TranslationService translationService, JaxbService jaxbService, MessageService messageService, CausewaySystemEnvironment causewaySystemEnvironment, List<FallbackLayoutDataSource> fallbackLayoutDataSources)
   Class<BSGrid> gridImplementation()
   String tns()
   String schemaLocation()
diff --git a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/metamodel/MetaModelServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/metamodel/MetaModelServiceDefault.adoc
index 9620450..56fff66 100644
--- a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/metamodel/MetaModelServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/metamodel/MetaModelServiceDefault.adoc
@@ -1,4 +1,4 @@
-= MetaModelServiceDefault
+= MetaModelServiceDefault _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Default implementation of xref:refguide:applib:index/services/metamodel/MetaModelService.adoc[MetaModelService] .
@@ -8,7 +8,7 @@
 [source,java]
 .MetaModelServiceDefault.java
 ----
-class MetaModelServiceDefault {
+record MetaModelServiceDefault {
   Optional<LogicalType> lookupLogicalTypeByName(String logicalTypeName)
   Can<LogicalType> logicalTypeAndAliasesFor(LogicalType logicalType)
   Can<LogicalType> logicalTypeAndAliasesFor(String logicalTypeName)
diff --git a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/objectlifecycle/ObjectLifecyclePublisher.adoc b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/objectlifecycle/ObjectLifecyclePublisher.adoc
index 2cccbf6..e5f43f2 100644
--- a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/objectlifecycle/ObjectLifecyclePublisher.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/objectlifecycle/ObjectLifecyclePublisher.adoc
@@ -29,32 +29,32 @@
 <.> xref:#onPostLoad_ManagedObject[onPostLoad(ManagedObject)]
 +
 --
-Called by both JPA and JDO, just after an object is retrieved from the database.
+Called by the JPA object store, just after an object is retrieved from the database.
 --
 <.> xref:#onPrePersist_Either[onPrePersist(Either)]
 +
 --
-Called by both JPA and JDO, just before an entity is inserted into the database.
+Called by the JPA object store, just before an entity is inserted into the database.
 --
 <.> xref:#onPostPersist_ManagedObject[onPostPersist(ManagedObject)]
 +
 --
-Called by both JPA and JDO, just after an entity has been inserted into the database.
+Called by the JPA object store, just after an entity has been inserted into the database.
 --
 <.> xref:#onPreUpdate_ManagedObject_Function[onPreUpdate(ManagedObject, Function)]
 +
 --
-Called by both JPA and JDO (though JDO does _not_ provide any changeRecords).
+Called by the JPA object store, just before the object is about to be updated.
 --
 <.> xref:#onPostUpdate_ManagedObject[onPostUpdate(ManagedObject)]
 +
 --
-Called by both JPA and JDO, after an existing entity has been updated.
+Called by the JPA object store, after an existing entity has been updated.
 --
 <.> xref:#onPreRemove_ManagedObject[onPreRemove(ManagedObject)]
 +
 --
-Called by both JPA and JDO, just before an entity is deleted from the database.
+Called by the JPA object store, just before an entity is deleted from the database.
 --
 
 == Members
@@ -69,41 +69,41 @@
 [#onPostLoad_ManagedObject]
 === onPostLoad(ManagedObject)
 
-Called by both JPA and JDO, just after an object is retrieved from the database.
+Called by the JPA object store, just after an object is retrieved from the database.
 
 Default implementation calls `EntityChangeTracker#recognizeLoaded(ManagedObject)` and fires off callback/lifecycle events.
 
 [#onPrePersist_Either]
 === onPrePersist(Either)
 
-Called by both JPA and JDO, just before an entity is inserted into the database.
+Called by the JPA object store, just before an entity is inserted into the database.
 
 Default implementation fires callbacks (including emitting the `PreStoreEvent` , eg as subscribed) by the `TimestampService` .
 
 [#onPostPersist_ManagedObject]
 === onPostPersist(ManagedObject)
 
-Called by both JPA and JDO, just after an entity has been inserted into the database.
+Called by the JPA object store, just after an entity has been inserted into the database.
 
 Default implementation fires callbacks and enlists the entity within `EntityChangeTracker` for create/persist.
 
 [#onPreUpdate_ManagedObject_Function]
 === onPreUpdate(ManagedObject, Function)
 
-Called by both JPA and JDO (though JDO does _not_ provide any changeRecords).
+Called by the JPA object store, just before the object is about to be updated.
 
 Default implementation fires callbacks and enlists the entity within `EntityChangeTracker` for update.
 
 [#onPostUpdate_ManagedObject]
 === onPostUpdate(ManagedObject)
 
-Called by both JPA and JDO, after an existing entity has been updated.
+Called by the JPA object store, after an existing entity has been updated.
 
 Default implementation fires callbacks.
 
 [#onPreRemove_ManagedObject]
 === onPreRemove(ManagedObject)
 
-Called by both JPA and JDO, just before an entity is deleted from the database.
+Called by the JPA object store, just before an entity is deleted from the database.
 
 Default implementation fires callbacks and enlists the entity within `EntityChangeTracker` for delete/remove.
diff --git a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/registry/ServiceRegistryDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/registry/ServiceRegistryDefault.adoc
index 0b49535..9791886 100644
--- a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/registry/ServiceRegistryDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/registry/ServiceRegistryDefault.adoc
@@ -9,9 +9,9 @@
 .ServiceRegistryDefault.java
 ----
 class ServiceRegistryDefault {
-  Optional<_SingletonBeanProvider> lookupRegisteredBeanById(LogicalType id)
+  Optional<SingletonBeanProvider> lookupRegisteredBeanById(LogicalType id)
   Optional<?> lookupBeanById(String id)
-  Stream<_SingletonBeanProvider> streamRegisteredBeans()
+  Stream<SingletonBeanProvider> streamRegisteredBeans()
   Can<T> select(Class<T> type, Annotation[] qualifiers)
   void clearRegisteredBeans()
 }
diff --git a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/title/TitleServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/title/TitleServiceDefault.adoc
index 0ddb8fd..b54ddb4 100644
--- a/antora/components/refguide-index/modules/core/pages/index/metamodel/services/title/TitleServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/metamodel/services/title/TitleServiceDefault.adoc
@@ -1,4 +1,4 @@
-= TitleServiceDefault
+= TitleServiceDefault _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Default implementation of xref:refguide:applib:index/services/title/TitleService.adoc[TitleService] .
@@ -8,9 +8,9 @@
 [source,java]
 .TitleServiceDefault.java
 ----
-class TitleServiceDefault {
+record TitleServiceDefault {
   String titleOf(Object domainObject)
-  String iconNameOf(Object domainObject)
+  ObjectSupport.IconResource iconOf(Object domainObject, ObjectSupport.IconSize iconSize)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc
index bcb7890..96643f2 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc
@@ -1,4 +1,4 @@
-= BookmarkServiceDefault
+= BookmarkServiceDefault _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Default implementation of xref:refguide:applib:index/services/bookmark/BookmarkService.adoc[BookmarkService] .
@@ -8,7 +8,7 @@
 [source,java]
 .BookmarkServiceDefault.java
 ----
-class BookmarkServiceDefault {
+record BookmarkServiceDefault {
   Optional<Object> lookup(BookmarkHolder bookmarkHolder)
   List<Bookmark> bookmarksFor(Object domainObject)
   Optional<Object> lookup(Bookmark bookmark)
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc
index 49a58ce..9e8108b 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc
@@ -11,23 +11,10 @@
 .EmailServiceDefault.java
 ----
 class EmailServiceDefault {
-  void init()     // <.>
-  boolean isConfigured()
+  EmailServiceDefault(EmailConfiguration configuration, Provider<JavaMailSender> emailSenderProvider)
   boolean send(List<String> toList, List<String> ccList, List<String> bccList, String subject, String body, DataSource... attachments)
   String[] originalUnlessOverridden(List<String> original, String overrideIfAny)
   boolean notEmpty(String[] addresses)
 }
 ----
 
-<.> xref:#init_[init()]
-+
---
-Loads responsive email templates borrowed from http://zurb.com/ink/templates.php (Basic)
---
-
-== Members
-
-[#init_]
-=== init()
-
-Loads responsive email templates borrowed from http://zurb.com/ink/templates.php (Basic)
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc
index 7b0f3ff..b616101 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc
@@ -1,4 +1,4 @@
-= FactoryServiceDefault
+= FactoryServiceDefault _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Default implementation of xref:refguide:applib:index/services/factory/FactoryService.adoc[FactoryService] .
@@ -8,7 +8,7 @@
 [source,java]
 .FactoryServiceDefault.java
 ----
-class FactoryServiceDefault {
+record FactoryServiceDefault {
   T getOrCreate(Class<T> requiredType)
   T get(Class<T> requiredType)
   T detachedEntity(Class<T> domainClass)
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc
index a450517..fe69227 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc
@@ -1,4 +1,4 @@
-= ObjectIconServiceDefault
+= ObjectIconServiceDefault _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Default implementation of _ObjectIconService_ .
@@ -8,8 +8,9 @@
 [source,java]
 .ObjectIconServiceDefault.java
 ----
-class ObjectIconServiceDefault {
-  ObjectIcon getObjectIcon(ObjectSpecification spec, String iconNameModifier)
+record ObjectIconServiceDefault {
+  ObjectIconServiceDefault(ResourceLoader resourceLoader)
+  ObjectIcon getObjectIcon(ManagedObject managedObject, IconSize iconSize)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc
index 9e33d80..1f8cef9 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc
@@ -1,4 +1,4 @@
-= JaxbServiceDefault
+= JaxbServiceDefault _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Default implementation of xref:refguide:applib:index/services/jaxb/JaxbService.adoc[JaxbService] .
@@ -8,7 +8,11 @@
 [source,java]
 .JaxbServiceDefault.java
 ----
-class JaxbServiceDefault {
+record JaxbServiceDefault {
+  JaxbServiceDefault(ServiceInjector serviceInjector, Provider<SpecificationLoader> specLoaderProvider)
+  T fromXml(Class<T> domainClass, String xml, Map<String, Object> unmarshallerProperties)
+  String toXml(Object domainObject, Map<String, Object> marshallerProperties)
+  Map<String, String> toXsd(Object domainObject, CausewaySchemas causewaySchemas)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/placeholder/PlaceholderRenderServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/render/PlaceholderRenderServiceDefault.adoc
similarity index 84%
rename from antora/components/refguide-index/modules/core/pages/index/runtimeservices/placeholder/PlaceholderRenderServiceDefault.adoc
rename to antora/components/refguide-index/modules/core/pages/index/runtimeservices/render/PlaceholderRenderServiceDefault.adoc
index cb1f49d..9c33c9a 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/placeholder/PlaceholderRenderServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/render/PlaceholderRenderServiceDefault.adoc
@@ -1,7 +1,7 @@
 = PlaceholderRenderServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-Default implementation of xref:refguide:applib:index/services/placeholder/PlaceholderRenderService.adoc[PlaceholderRenderService] , that (HTML) rendersBootstrapstyled placeholder badges.
+Default implementation of xref:refguide:applib:index/services/render/PlaceholderRenderService.adoc[PlaceholderRenderService] , that (HTML) rendersBootstrapstyled placeholder badges.
 
 == API
 
diff --git a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionServiceDefault.adoc b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionServiceDefault.adoc
index 656eae7..edb6527 100644
--- a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionServiceDefault.adoc
@@ -9,7 +9,7 @@
 .InteractionServiceDefault.java
 ----
 class InteractionServiceDefault {
-  InteractionServiceDefault(MetamodelEventService runtimeEventService, SpecificationLoader specificationLoader, ServiceInjector serviceInjector, TransactionServiceSpring transactionServiceSpring, ClockService clockService, Provider<CommandPublisher> commandPublisherProvider, ConfigurableBeanFactory beanFactory, InteractionIdGenerator interactionIdGenerator)
+  InteractionServiceDefault(MetamodelEventService runtimeEventService, Provider<SpecificationLoader> specificationLoaderProvider, ServiceInjector serviceInjector, TransactionServiceSpring transactionServiceSpring, ClockService clockService, Provider<CommandPublisher> commandPublisherProvider, ConfigurableBeanFactory beanFactory, InteractionIdGenerator interactionIdGenerator)
   void init(ContextRefreshedEvent event)
   int getInteractionLayerCount()
   InteractionLayer openInteraction()
diff --git a/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTracker.adoc b/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTracker.adoc
index 43b1c8f..f3ab281 100644
--- a/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTracker.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/transaction/changetracking/EntityChangeTracker.adoc
@@ -53,7 +53,7 @@
 
 The post-modification values are captured when the transaction commits.
 
-Overload as an optimization for ORMs (specifically, JPA) where already have access to the changed records by accessing the ORM-specific data structures ( `EntityManager` 's unit-of-work).
+Overload is an optimization for the JPA object store where we already have access to the changed records by accessing the ORM-specific data structures ( _jakarta.persistence.EntityManager_ 's "unit-of-work").
 
 [#enlistDeleting_ManagedObject]
 === enlistDeleting(ManagedObject)
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/CausewayModuleExtCommandReplayPrimary.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/CausewayModuleExtCommandReplayPrimary.adoc
deleted file mode 100644
index 2307c29..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/CausewayModuleExtCommandReplayPrimary.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-= CausewayModuleExtCommandReplayPrimary
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Activates with _Spring profile_ 'commandreplay-primary'.
-
-== API
-
-[source,java]
-.CausewayModuleExtCommandReplayPrimary.java
-----
-class CausewayModuleExtCommandReplayPrimary {
-  public static final String NAMESPACE;
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/config/PrimaryConfig.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/config/PrimaryConfig.adoc
deleted file mode 100644
index 0ae895e..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/config/PrimaryConfig.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= PrimaryConfig
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.PrimaryConfig.java
-----
-class PrimaryConfig {
-  PrimaryConfig(CausewayConfiguration causewayConfiguration)
-  boolean isConfigured()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/mixins/Object_openOnSecondary.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/mixins/Object_openOnSecondary.adoc
deleted file mode 100644
index 88e9adf..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/mixins/Object_openOnSecondary.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= Object_openOnSecondary
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.Object_openOnSecondary.java
-----
-class Object_openOnSecondary {
-  URL act()
-  boolean hideAct()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.adoc
deleted file mode 100644
index 382f9f5..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.adoc
+++ /dev/null
@@ -1,28 +0,0 @@
-= CommandRetrievalOnPrimaryService
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandRetrievalOnPrimaryService.java
-----
-class CommandRetrievalOnPrimaryService {
-  List<CommandDto> findCommandsOnPrimaryAsDto(UUID interactionId, Integer batchSize)     // <.>
-  Integer default1FindCommandsOnPrimaryAsDto()
-}
-----
-
-<.> xref:#findCommandsOnPrimaryAsDto_UUID_Integer[findCommandsOnPrimaryAsDto(UUID, Integer)]
-+
---
-Returns the command(s) that have been executed on the primary with the specified interactionId.
---
-
-== Members
-
-[#findCommandsOnPrimaryAsDto_UUID_Integer]
-=== findCommandsOnPrimaryAsDto(UUID, Integer)
-
-Returns the command(s) that have been executed on the primary with the specified interactionId.
-
-This action should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.causeway.schema.cmd.v2.CommandsDto"` 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc
deleted file mode 100644
index 86479bd..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-= CommandReplayOnPrimaryService
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandReplayOnPrimaryService.java
-----
-class CommandReplayOnPrimaryService {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/CausewayModuleExtCommandReplaySecondary.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/CausewayModuleExtCommandReplaySecondary.adoc
deleted file mode 100644
index 9ba2354..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/CausewayModuleExtCommandReplaySecondary.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-= CausewayModuleExtCommandReplaySecondary
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Activates with _Spring profile_ 'commandreplay-secondary'.
-
-== API
-
-[source,java]
-.CausewayModuleExtCommandReplaySecondary.java
-----
-class CausewayModuleExtCommandReplaySecondary {
-  public static final String NAMESPACE;
-  JobDetailFactoryBean replicateAndReplayJobDetailFactory()
-  SimpleTriggerFactoryBean replicateAndReplayTriggerFactory(JobDetail job)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc
deleted file mode 100644
index 013d6ae..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc
+++ /dev/null
@@ -1,19 +0,0 @@
-= CommandReplayAnalyser
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandReplayAnalyser.java
-----
-interface CommandReplayAnalyser {
-  String analyzeReplay(CommandLogEntry commandLogEntry)     // <.>
-}
-----
-
-<.> xref:#analyzeReplay_CommandLogEntry[analyzeReplay(CommandLogEntry)]
-
-== Members
-
-[#analyzeReplay_CommandLogEntry]
-=== analyzeReplay(CommandLogEntry)
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyserException.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyserException.adoc
deleted file mode 100644
index 3e9e6af..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyserException.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= CommandReplayAnalyserException
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandReplayAnalyserException.java
-----
-class CommandReplayAnalyserException {
-  void init()
-  String analyzeReplay(CommandLogEntry commandLogEntry)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyserResult.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyserResult.adoc
deleted file mode 100644
index 246f1b5..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analyser/CommandReplayAnalyserResult.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= CommandReplayAnalyserResult
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandReplayAnalyserResult.java
-----
-class CommandReplayAnalyserResult {
-  void init()
-  String analyzeReplay(CommandLogEntry commandLogEntry)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc
deleted file mode 100644
index 19e5e1a..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc
+++ /dev/null
@@ -1,25 +0,0 @@
-= CommandReplayAnalysisService
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandReplayAnalysisService.java
-----
-class CommandReplayAnalysisService {
-  void analyse(CommandLogEntry commandLogEntry)     // <.>
-}
-----
-
-<.> xref:#analyse_CommandLogEntry[analyse(CommandLogEntry)]
-+
---
-if hit an issue with the command having been replayed, then mark this as in error. This will effectively block the running of any further commands until the administrator fixes the issue.
---
-
-== Members
-
-[#analyse_CommandLogEntry]
-=== analyse(CommandLogEntry)
-
-if hit an issue with the command having been replayed, then mark this as in error. This will effectively block the running of any further commands until the administrator fixes the issue.
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/config/SecondaryConfig.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/config/SecondaryConfig.adoc
deleted file mode 100644
index ae91473..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/config/SecondaryConfig.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= SecondaryConfig
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.SecondaryConfig.java
-----
-class SecondaryConfig {
-  SecondaryConfig(CausewayConfiguration causewayConfiguration)
-  boolean isConfigured()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/fetch/CommandFetcher.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/fetch/CommandFetcher.adoc
deleted file mode 100644
index 9153370..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/fetch/CommandFetcher.adoc
+++ /dev/null
@@ -1,27 +0,0 @@
-= CommandFetcher
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandFetcher.java
-----
-class CommandFetcher {
-  CommandFetcher(SecondaryConfig secondaryConfig)
-  Can<CommandDto> fetchCommand(CommandLogEntry previousHwmIfAny)     // <.>
-  Can<CommandDto> callPrimary(UUID interactionId)
-}
-----
-
-<.> xref:#fetchCommand_CommandLogEntry[fetchCommand(CommandLogEntry)]
-+
---
-Replicates a single command.
---
-
-== Members
-
-[#fetchCommand_CommandLogEntry]
-=== fetchCommand(CommandLogEntry)
-
-Replicates a single command.
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/JobExecutionData.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/JobExecutionData.adoc
deleted file mode 100644
index 0af8717..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/JobExecutionData.adoc
+++ /dev/null
@@ -1,38 +0,0 @@
-= JobExecutionData
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Requires that the job is annotated with the _org.quartz.PersistJobDataAfterExecution_ annotation.
-
-== API
-
-[source,java]
-.JobExecutionData.java
-----
-class JobExecutionData {
-  String getString(String key, String defaultValue)     // <.>
-  void setString(String key, String value)     // <.>
-}
-----
-
-<.> xref:#getString_String_String[getString(String, String)]
-+
---
-Lookup property from the job detail.
---
-<.> xref:#setString_String_String[setString(String, String)]
-+
---
-Save key into the job detail obtained from context.
---
-
-== Members
-
-[#getString_String_String]
-=== getString(String, String)
-
-Lookup property from the job detail.
-
-[#setString_String_String]
-=== setString(String, String)
-
-Save key into the job detail obtained from context.
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/ReplicateAndReplayJob.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/ReplicateAndReplayJob.adoc
deleted file mode 100644
index 443aee1..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/ReplicateAndReplayJob.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-= ReplicateAndReplayJob
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.ReplicateAndReplayJob.java
-----
-class ReplicateAndReplayJob {
-  void execute(JobExecutionContext quartzContext)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/SecondaryStatusData.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/SecondaryStatusData.adoc
deleted file mode 100644
index c8f4c99..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/job/SecondaryStatusData.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-= SecondaryStatusData
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.SecondaryStatusData.java
-----
-class SecondaryStatusData {
-  SecondaryStatusData(JobExecutionContext jobExecutionContext)
-  SecondaryStatus getSecondaryStatus()
-  SecondaryStatus getSecondaryStatus(SecondaryStatus defaultStatus)
-  void setSecondaryStatus(SecondaryStatus mode)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.adoc
deleted file mode 100644
index f81eb62..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-= ReplicateAndRunCommands
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Encodes the algorithm for fetching commands from the primary, and replaying on the secondary.
-
-This class is instantiated each time the Quartz job ( `_org.apache.causeway.extensions.commandreplay.secondary.job.ReplicateAndReplayJob_` ) files.
-
-== API
-
-[source,java]
-.ReplicateAndRunCommands.java
-----
-class ReplicateAndRunCommands {
-  SecondaryStatus call()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/CommandLogEntry_exclude.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/CommandLogEntry_exclude.adoc
deleted file mode 100644
index ff38cb8..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/CommandLogEntry_exclude.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-= CommandLogEntry_exclude
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandLogEntry_exclude.java
-----
-class CommandLogEntry_exclude {
-  CommandLogEntry act()
-  boolean hideAct()
-  String disableAct()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.adoc
deleted file mode 100644
index 66681aa..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= CommandLogEntry_replayQueue
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandLogEntry_replayQueue.java
-----
-class CommandLogEntry_replayQueue {
-  List<? extends CommandLogEntry> coll()
-  boolean hideColl()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/Object_openOnPrimary.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/Object_openOnPrimary.adoc
deleted file mode 100644
index 9aa3c88..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/mixins/Object_openOnPrimary.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= Object_openOnPrimary
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.Object_openOnPrimary.java
-----
-class Object_openOnPrimary {
-  URL act()
-  boolean hideAct()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc
deleted file mode 100644
index ad0575d..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc
+++ /dev/null
@@ -1,29 +0,0 @@
-= ReplayCommandExecutionController
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Optional SPI that allows the replicate and replay job to be paused if required.
-
-If no implementation is configured, then replication/replay will continue without interruption.
-
-== API
-
-[source,java]
-.ReplayCommandExecutionController.java
-----
-interface ReplayCommandExecutionController {
-  State getState()     // <.>
-}
-----
-
-<.> xref:#getState_[getState()]
-+
---
-The current state, or `null` if the service implementing this SPI has not yet been initialized.
---
-
-== Members
-
-[#getState_]
-=== getState()
-
-The current state, or `null` if the service implementing this SPI has not yet been initialized.
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc
deleted file mode 100644
index 3aeccd9..0000000
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-= CommandReplayOnSecondaryService
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CommandReplayOnSecondaryService.java
-----
-class CommandReplayOnSecondaryService {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/cors/impl/CausewayModuleExtCors.adoc b/antora/components/refguide-index/modules/extensions/pages/index/cors/impl/CausewayModuleExtCors.adoc
index da08ddc..46e046b 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/cors/impl/CausewayModuleExtCors.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/cors/impl/CausewayModuleExtCors.adoc
@@ -7,7 +7,7 @@
 .CausewayModuleExtCors.java
 ----
 class CausewayModuleExtCors {
-  FilterRegistrationBean<Filter> createCorsFilterRegistration(CausewayConfiguration causewayConfiguration, RestEasyConfiguration restEasyConfiguration)
+  FilterRegistrationBean<Filter> createCorsFilterRegistration(CausewayConfiguration causewayConfiguration)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc
index 4e3e029..226fd69 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc
@@ -1,7 +1,7 @@
 = CausewayExtSecmanAdminRoleAndPermissions
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-Sets up a role for administrators (whose name is _Admin#getRoleName() configurable_ with an initial set of permissions being the union of _NamespacePermissions#getSticky()_ and _NamespacePermissions#getAdditional()_ .
+Sets up a role for administrators (whose name is _Admin#roleName() configurable_ with an initial set of permissions being the union of _NamespacePermissions#sticky()_ and _NamespacePermissions#additional()_ .
 
 == API
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/status/SecondaryStatus.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayPersistenceJpaMetaModelRoleAndPermissions.adoc
similarity index 69%
rename from antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/status/SecondaryStatus.adoc
rename to antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayPersistenceJpaMetaModelRoleAndPermissions.adoc
index ecc885c..077f8d1 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/commandreplay/secondary/status/SecondaryStatus.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/role/seed/CausewayPersistenceJpaMetaModelRoleAndPermissions.adoc
@@ -1,16 +1,16 @@
-= SecondaryStatus _(enum)_
+= CausewayPersistenceJpaMetaModelRoleAndPermissions
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
+Sets up a role with access to the menu actions to download the JPA metamodel.
+
 == API
 
 [source,java]
-.SecondaryStatus.java
+.CausewayPersistenceJpaMetaModelRoleAndPermissions.java
 ----
-enum SecondaryStatus {
-  OK
-  REST_CALL_FAILING
-  FAILED_TO_UNMARSHALL_RESPONSE
-  UNKNOWN_STATE
+class CausewayPersistenceJpaMetaModelRoleAndPermissions {
+  public static final String ROLE_NAME;
+  CausewayPersistenceJpaMetaModelRoleAndPermissions()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/dom/AccountType.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/dom/AccountType.adoc
index 489a57c..ebb2d54 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/dom/AccountType.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/dom/AccountType.adoc
@@ -1,7 +1,7 @@
 = AccountType _(enum)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-Whether the user's account is local enabled (user/password) or delegated (eg LDAP), as per _org.apache.causeway.extensions.secman.shiro.CausewayModuleExtSecmanShiroRealm#setDelegateAuthenticationRealm(org.apache.shiro.realm.AuthenticatingRealm)_ .
+Whether the user's account is defined by locally (Secman itself is the authenticator) or instead if there's a different security module that has responsibility for authentication (for example Spring Security with OAuth2). This is the delegate model.
 
 == API
 
@@ -9,11 +9,33 @@
 .AccountType.java
 ----
 enum AccountType {
-  LOCAL
-  DELEGATED
+  LOCAL     // <.>
+  DELEGATED     // <.>
   boolean isLocal()
   boolean isDelegated()
   String toString()
 }
 ----
 
+<.> xref:#LOCAL[LOCAL]
++
+--
+Secman itself is the authenticator.
+--
+<.> xref:#DELEGATED[DELEGATED]
++
+--
+Another security module performs the primary authentication, for example Spring Security with OAuth2.
+--
+
+== Members
+
+[#LOCAL]
+=== LOCAL
+
+Secman itself is the authenticator.
+
+[#DELEGATED]
+=== DELEGATED
+
+Another security module performs the primary authentication, for example Spring Security with OAuth2.
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/events/UserCreatedEvent.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/events/UserCreatedEvent.adoc
index db04edc..0d82954 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/events/UserCreatedEvent.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/applib/user/events/UserCreatedEvent.adoc
@@ -21,32 +21,9 @@
 .UserCreatedEvent.java
 ----
 record UserCreatedEvent {
-  ApplicationUser getUser()     // <.>
   AccountType getAccountType()
   String getUserName()
   boolean isDelegated()
 }
 ----
 
-<.> xref:#getUser_[getUser()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#user()_ instead
-====
---
-
-== Members
-
-[#getUser_]
-=== getUser()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-use _#user()_ instead
-====
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/delegated/springoauth2/dom/ApplicationUserAutoCreationService.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/delegated/springoauth2/dom/ApplicationUserAutoCreationService.adoc
index 65d74bf..c55c8b8 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/delegated/springoauth2/dom/ApplicationUserAutoCreationService.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/delegated/springoauth2/dom/ApplicationUserAutoCreationService.adoc
@@ -1,9 +1,9 @@
 = ApplicationUserAutoCreationService
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-This service automatically creates an xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser] if an end-user successfully logged in via Oauth.
+This service automatically creates an xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser] if an end-user successfully logged in via OAuth.
 
-The initial set of rules are as per _CausewayConfiguration.Extensions.Secman.DelegatedUsers.AutoCreatePolicy_
+The initial set of rules are as per _org.apache.causeway.core.config.CausewayConfiguration.Extensions.Secman.DelegatedUsers.AutoCreatePolicy_
 
 == API
 
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/secman/integration/authorizor/AuthorizorSecman.adoc b/antora/components/refguide-index/modules/extensions/pages/index/secman/integration/authorizor/AuthorizorSecman.adoc
index a50a575..ce9b1a3 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/secman/integration/authorizor/AuthorizorSecman.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/secman/integration/authorizor/AuthorizorSecman.adoc
@@ -1,10 +1,6 @@
 = AuthorizorSecman
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
-Note that this service has an earlier precedence than `AuthorizorShiro` . Conversely, `AuthenticatorShiro` overrides _org.apache.causeway.extensions.secman.integration.authenticator.AuthenticatorSecman_ .
-
-Therefore if both shiro and secman are configured, then shiro will be used for authentication, while secman will be used for authorization.
-
 == API
 
 [source,java]
diff --git a/antora/components/refguide-index/modules/extensions/pages/index/sse/applib/service/SseChannel.adoc b/antora/components/refguide-index/modules/extensions/pages/index/sse/applib/service/SseChannel.adoc
index d4395b9..433cdfa 100644
--- a/antora/components/refguide-index/modules/extensions/pages/index/sse/applib/service/SseChannel.adoc
+++ b/antora/components/refguide-index/modules/extensions/pages/index/sse/applib/service/SseChannel.adoc
@@ -11,8 +11,6 @@
 interface SseChannel {
   UUID uuid()
   Class<?> sourceType()
-  UUID getId()
-  Class<?> getSourceType()
   void listenWhile(Predicate<SseSource> listener)
   void fire(SseSource source)
   void close()
diff --git a/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/BlobJpaEmbeddable.adoc b/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/BlobJpaEmbeddable.adoc
index ae4ba89..50ca858 100644
--- a/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/BlobJpaEmbeddable.adoc
+++ b/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/BlobJpaEmbeddable.adoc
@@ -12,6 +12,11 @@
 Example usage:
 
 ----
+    @AttributeOverrides({
+        @AttributeOverride(name="name",    column=@Column(name="attachment_name")),
+        @AttributeOverride(name="mimeType",column=@Column(name="attachment_mimeType")),
+        @AttributeOverride(name="bytes",   column=@Column(name="attachment_bytes"))
+    })
     @Embedded
     private BlobJpaEmbeddable pdf;
 
@@ -25,7 +30,7 @@
     }
 ----
 
-Lastly; note that _jakarta.persistence.AttributeOverrides_ and _jakarta.persistence.AttributeOverride_ provide a standardised way of fine-tuning the column definitions.
+The _jakarta.persistence.AttributeOverrides_ and _jakarta.persistence.AttributeOverride_ attributes allow the column definitions to be fine-tuned.
 
 == API
 
diff --git a/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/ClobJpaEmbeddable.adoc b/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/ClobJpaEmbeddable.adoc
index 30366b6..cf4c79e 100644
--- a/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/ClobJpaEmbeddable.adoc
+++ b/antora/components/refguide-index/modules/persistence/pages/index/jpa/applib/types/ClobJpaEmbeddable.adoc
@@ -12,6 +12,11 @@
 Example usage:
 
 ----
+    @AttributeOverrides({
+        @AttributeOverride(name="name", column=@Column(name="doc_name")),
+        @AttributeOverride(name="mimeType",column=@Column(name="doc_mimeType")),
+        @AttributeOverride(name="bytes", column=@Column(name="doc_bytes"))
+    })
     @Embedded
     private ClobJpaEmbeddable xml;
 
@@ -25,7 +30,7 @@
     }
 ----
 
-Lastly; note that _jakarta.persistence.AttributeOverrides_ and _jakarta.persistence.AttributeOverride_ provide a standardised way of fine-tuning the column definitions.
+The _jakarta.persistence.AttributeOverrides_ and _jakarta.persistence.AttributeOverride_ annotations allow the column definitions to be fine-tuned..
 
 == API
 
diff --git a/antora/components/refguide-index/modules/security/pages/index/shiro/CausewayModuleSecurityShiro.adoc b/antora/components/refguide-index/modules/security/pages/index/shiro/CausewayModuleSecurityShiro.adoc
deleted file mode 100644
index ddc4943..0000000
--- a/antora/components/refguide-index/modules/security/pages/index/shiro/CausewayModuleSecurityShiro.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= CausewayModuleSecurityShiro
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Configuration Bean to support Causeway Security using Shiro.
-
-== API
-
-[source,java]
-.CausewayModuleSecurityShiro.java
-----
-class CausewayModuleSecurityShiro {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/security/pages/index/shiro/authentication/AuthenticatorShiro.adoc b/antora/components/refguide-index/modules/security/pages/index/shiro/authentication/AuthenticatorShiro.adoc
deleted file mode 100644
index 67b5567..0000000
--- a/antora/components/refguide-index/modules/security/pages/index/shiro/authentication/AuthenticatorShiro.adoc
+++ /dev/null
@@ -1,21 +0,0 @@
-= AuthenticatorShiro
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-If Shiro is configured for both authentication and authorization (as recommended), then this class is in the role of xref:refguide:core:index/security/authentication/Authenticator.adoc[Authenticator] .
-
-However, although there are two objects, they are set up to share the same _SecurityManager Shiro SecurityManager_ (bound to a thread-local).
-
-== API
-
-[source,java]
-.AuthenticatorShiro.java
-----
-class AuthenticatorShiro {
-  AuthenticatorShiro(CausewayConfiguration configuration)
-  boolean canAuthenticate(Class<? extends AuthenticationRequest> authenticationRequestClass)
-  InteractionContext authenticate(AuthenticationRequest request, String code)
-  void logout()
-  InteractionContext authenticationFor(AuthenticationRequest request, String validationCode, AuthenticationToken token, Subject currentSubject)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/AuthorizorShiro.adoc b/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/AuthorizorShiro.adoc
deleted file mode 100644
index b23ef63..0000000
--- a/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/AuthorizorShiro.adoc
+++ /dev/null
@@ -1,18 +0,0 @@
-= AuthorizorShiro
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-If Shiro is configured for both authentication and authorization (as recommended), then this class is in the role of xref:refguide:core:index/security/authorization/Authorizor.adoc[Authorizor] .
-
-However, although there are two objects, they are set up to share the same _SecurityManager Shiro SecurityManager_ (bound to a thread-local).
-
-== API
-
-[source,java]
-.AuthorizorShiro.java
-----
-class AuthorizorShiro {
-  boolean isVisible(InteractionContext authentication, Identifier identifier)
-  boolean isUsable(InteractionContext authentication, Identifier identifier)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/CausewayPermission.adoc b/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/CausewayPermission.adoc
deleted file mode 100644
index f0f87b3..0000000
--- a/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/CausewayPermission.adoc
+++ /dev/null
@@ -1,20 +0,0 @@
-= CausewayPermission
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CausewayPermission.java
-----
-class CausewayPermission {
-  CausewayPermission()
-  CausewayPermission(String wildcardString, boolean caseSensitive)
-  CausewayPermission(String wildcardString)
-  boolean implies(Permission p)
-  boolean equals(Object other)
-  int hashCode()
-  String toString()
-  void resetVetoedPermissions()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/CausewayPermissionResolver.adoc b/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/CausewayPermissionResolver.adoc
deleted file mode 100644
index 82f1043..0000000
--- a/antora/components/refguide-index/modules/security/pages/index/shiro/authorization/CausewayPermissionResolver.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= CausewayPermissionResolver
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CausewayPermissionResolver.java
-----
-class CausewayPermissionResolver {
-  CausewayPermissionResolver()
-  Permission resolvePermission(String permissionString)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/FakeDataService.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/FakeDataService.adoc
index 3df94d9..649f89b 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/FakeDataService.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/FakeDataService.adoc
@@ -34,12 +34,10 @@
   JavaUtilDates javaUtilDates()
   JavaSqlDates javaSqlDates()
   JavaSqlTimestamps javaSqlTimestamps()
-  JavaTimeLocalDates javaTimeLocalDates()
-  JavaTimeDateTimes javaTimeDateTimes()
-  JavaTimePeriods javaTimePeriods()
-  JodaLocalDates jodaLocalDates()
-  JodaDateTimes jodaDateTimes()
-  JodaPeriods jodaPeriods()
+  LocalDates localDates()
+  OffsetDateTimes offsetDateTimes()
+  ZonedDateTimes zonedDateTimes()
+  Periods periods()
   BigDecimals bigDecimals()
   BigIntegers bigIntegers()
   Urls urls()
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimePeriods.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimePeriods.adoc
deleted file mode 100644
index 0f7d85f..0000000
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimePeriods.adoc
+++ /dev/null
@@ -1,22 +0,0 @@
-= JavaTimePeriods
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Returns random _Period_ s constrained to last a certain number number of days, months and/or years.
-
-== API
-
-[source,java]
-.JavaTimePeriods.java
-----
-class JavaTimePeriods {
-  JavaTimePeriods(FakeDataService fakeDataService)
-  Period daysBetween(int minDays, int maxDays)
-  Period daysUpTo(int maxDays)
-  Period monthsBetween(int minMonths, int maxMonths)
-  Period monthsUpTo(int months)
-  Period yearsBetween(int minYears, int maxYears)
-  Period yearsUpTo(int years)
-  Period within(Period period)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaDateTimes.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaDateTimes.adoc
deleted file mode 100644
index 0290b6e..0000000
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaDateTimes.adoc
+++ /dev/null
@@ -1,63 +0,0 @@
-= JodaDateTimes
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Returns a random _DateTime_ , optionally based on the current time but constrained by a _Period_ .
-
-The current time ('now') is obtained from the _org.apache.causeway.applib.services.clock.ClockService_ .
-
-== API
-
-[source,java]
-.JodaDateTimes.java
-----
-class JodaDateTimes {
-  JodaDateTimes(FakeDataService fakeDataService)
-  DateTime around(Period period)     // <.>
-  DateTime before(Period period)     // <.>
-  DateTime after(Period period)     // <.>
-  DateTime any()     // <.>
-}
-----
-
-<.> xref:#around_Period[around(Period)]
-+
---
-Returns a random date/time either before or after 'now', within the specified _java.time.Period_ .
---
-<.> xref:#before_Period[before(Period)]
-+
---
-Returns a random date/time some time before 'now', within the specified _java.time.Period_ .
---
-<.> xref:#after_Period[after(Period)]
-+
---
-Returns a random date/time some time after 'now', within the specified _java.time.Period_ .
---
-<.> xref:#any_[any()]
-+
---
-Returns a random date/time 5 years around 'now'.
---
-
-== Members
-
-[#around_Period]
-=== around(Period)
-
-Returns a random date/time either before or after 'now', within the specified _java.time.Period_ .
-
-[#before_Period]
-=== before(Period)
-
-Returns a random date/time some time before 'now', within the specified _java.time.Period_ .
-
-[#after_Period]
-=== after(Period)
-
-Returns a random date/time some time after 'now', within the specified _java.time.Period_ .
-
-[#any_]
-=== any()
-
-Returns a random date/time 5 years around 'now'.
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaLocalDates.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaLocalDates.adoc
deleted file mode 100644
index 6c08eab..0000000
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaLocalDates.adoc
+++ /dev/null
@@ -1,63 +0,0 @@
-= JodaLocalDates
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-Returns a random _LocalDate_ , optionally based on the current time but constrained by a _Period_ .
-
-The current time ('now') is obtained from the _org.apache.causeway.applib.services.clock.ClockService_ .
-
-== API
-
-[source,java]
-.JodaLocalDates.java
-----
-class JodaLocalDates {
-  JodaLocalDates(FakeDataService fakeDataService)
-  LocalDate around(Period period)     // <.>
-  org.joda.time.LocalDate before(Period period)     // <.>
-  org.joda.time.LocalDate after(Period period)     // <.>
-  LocalDate any()     // <.>
-}
-----
-
-<.> xref:#around_Period[around(Period)]
-+
---
-Returns a random date either before or after 'now', within the specified _java.time.Period_ .
---
-<.> xref:#before_Period[before(Period)]
-+
---
-Returns a random date some time before 'now', within the specified _java.time.Period_ .
---
-<.> xref:#after_Period[after(Period)]
-+
---
-Returns a random date some time after 'now', within the specified _java.time.Period_ .
---
-<.> xref:#any_[any()]
-+
---
-Returns a random date 5 years around 'now'.
---
-
-== Members
-
-[#around_Period]
-=== around(Period)
-
-Returns a random date either before or after 'now', within the specified _java.time.Period_ .
-
-[#before_Period]
-=== before(Period)
-
-Returns a random date some time before 'now', within the specified _java.time.Period_ .
-
-[#after_Period]
-=== after(Period)
-
-Returns a random date some time after 'now', within the specified _java.time.Period_ .
-
-[#any_]
-=== any()
-
-Returns a random date 5 years around 'now'.
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeLocalDates.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/LocalDates.adoc
similarity index 94%
rename from antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeLocalDates.adoc
rename to antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/LocalDates.adoc
index 9a62381..80b4d05 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeLocalDates.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/LocalDates.adoc
@@ -1,4 +1,4 @@
-= JavaTimeLocalDates
+= LocalDates
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Returns a random _LocalDate_ , optionally based on the current time but constrained by a _Period_ .
@@ -8,10 +8,10 @@
 == API
 
 [source,java]
-.JavaTimeLocalDates.java
+.LocalDates.java
 ----
-class JavaTimeLocalDates {
-  JavaTimeLocalDates(FakeDataService fakeDataService)
+class LocalDates {
+  LocalDates(FakeDataService fakeDataService)
   LocalDate around(Period period)     // <.>
   LocalDate before(Period period)     // <.>
   LocalDate after(Period period)     // <.>
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeDateTimes.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/OffsetDateTimes.adoc
similarity index 94%
rename from antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeDateTimes.adoc
rename to antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/OffsetDateTimes.adoc
index ff6180d..373246b 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeDateTimes.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/OffsetDateTimes.adoc
@@ -1,4 +1,4 @@
-= JavaTimeDateTimes
+= OffsetDateTimes
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Returns a random _OffsetDateTime_ , optionally based on the current time but constrained by a _Period_ .
@@ -8,10 +8,10 @@
 == API
 
 [source,java]
-.JavaTimeDateTimes.java
+.OffsetDateTimes.java
 ----
-class JavaTimeDateTimes {
-  JavaTimeDateTimes(FakeDataService fakeDataService)
+class OffsetDateTimes {
+  OffsetDateTimes(FakeDataService fakeDataService)
   OffsetDateTime around(Period period)     // <.>
   OffsetDateTime before(Period period)     // <.>
   OffsetDateTime after(Period period)     // <.>
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaPeriods.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/Periods.adoc
similarity index 92%
rename from antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaPeriods.adoc
rename to antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/Periods.adoc
index d2c0bf2..639e597 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JodaPeriods.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/Periods.adoc
@@ -1,4 +1,4 @@
-= JodaPeriods
+= Periods
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Returns random _Period_ s constrained to last a certain number number of days, months and/or years.
@@ -6,10 +6,10 @@
 == API
 
 [source,java]
-.JodaPeriods.java
+.Periods.java
 ----
-class JodaPeriods {
-  JodaPeriods(FakeDataService fakeDataService)
+class Periods {
+  Periods(FakeDataService fakeDataService)
   Period daysBetween(int minDays, int maxDays)
   Period daysUpTo(int maxDays)
   Period monthsBetween(int minMonths, int maxMonths)
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeDateTimes.adoc b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/ZonedDateTimes.adoc
similarity index 86%
copy from antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeDateTimes.adoc
copy to antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/ZonedDateTimes.adoc
index ff6180d..50e6abb 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/JavaTimeDateTimes.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fakedata/applib/services/ZonedDateTimes.adoc
@@ -1,4 +1,4 @@
-= JavaTimeDateTimes
+= ZonedDateTimes
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 Returns a random _OffsetDateTime_ , optionally based on the current time but constrained by a _Period_ .
@@ -8,14 +8,14 @@
 == API
 
 [source,java]
-.JavaTimeDateTimes.java
+.ZonedDateTimes.java
 ----
-class JavaTimeDateTimes {
-  JavaTimeDateTimes(FakeDataService fakeDataService)
-  OffsetDateTime around(Period period)     // <.>
-  OffsetDateTime before(Period period)     // <.>
-  OffsetDateTime after(Period period)     // <.>
-  OffsetDateTime any()     // <.>
+class ZonedDateTimes {
+  ZonedDateTimes(FakeDataService fakeDataService)
+  ZonedDateTime around(Period period)     // <.>
+  ZonedDateTime before(Period period)     // <.>
+  ZonedDateTime after(Period period)     // <.>
+  ZonedDateTime any()     // <.>
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParameters.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParameters.adoc
index 90d9d61..dccd05b 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParameters.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParameters.adoc
@@ -39,7 +39,8 @@
   void setParameter(String parameterName, BigDecimal parameterValue)
   void setParameter(String parameterName, LocalDate parameterValue)
   void setParameter(String parameterName, LocalDateTime parameterValue)
-  void setParameter(String parameterName, DateTime parameterValue)
+  void setParameter(String parameterName, ZonedDateTime parameterValue)
+  void setParameter(String parameterName, OffsetDateTime parameterValue)
   void setParameter(String parameterName, java.util.Date parameterValue)
   void setParameter(String parameterName, java.sql.Date parameterValue)
   void setParameter(String parameterName, Enum<?> parameterValue)
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc
index 01f5c08..935fbff 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc
@@ -44,7 +44,8 @@
   void setParameter(String parameterName, java.sql.Date parameterValue)
   void setParameter(String parameterName, LocalDate parameterValue)
   void setParameter(String parameterName, LocalDateTime parameterValue)
-  void setParameter(String parameterName, DateTime parameterValue)
+  void setParameter(String parameterName, OffsetDateTime parameterValue)
+  void setParameter(String parameterName, ZonedDateTime parameterValue)
   void setParameter(String parameterName, BigDecimal parameterValue)
   void setParameter(String parameterName, Enum<?> parameterValue)
   void setParameter(String parameterName, String parameterValue)
diff --git a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc
index 4feb415..0e783eb 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc
@@ -47,7 +47,8 @@
   void setParameter(String parameterName, java.sql.Date parameterValue)
   void setParameter(String parameterName, LocalDate parameterValue)
   void setParameter(String parameterName, LocalDateTime parameterValue)
-  void setParameter(String parameterName, org.joda.time.DateTime parameterValue)
+  void setParameter(String parameterName, OffsetDateTime parameterValue)
+  void setParameter(String parameterName, ZonedDateTime parameterValue)
   void setParameter(String parameterName, BigDecimal parameterValue)
   void setParameter(String parameterName, Enum<?> parameterValue)
   void setParameter(String parameterName, String parameterValue)
diff --git a/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/dom/pojo/PojoTester.adoc b/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/dom/pojo/PojoTester.adoc
index 842c366..912b4a7 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/dom/pojo/PojoTester.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/dom/pojo/PojoTester.adoc
@@ -46,7 +46,7 @@
 <.> xref:#usingData_Class[usingData(Class)]
 +
 --
-Convenience overload to provide a _DatumFactory_ to the xref:refguide:testing:index/unittestsupport/applib/dom/pojo/PojoTester.adoc[PojoTester] for the specified compile time type, also instantiatable as the runtime type (with a no-arg constructor).
+Convenience overload to provide a _DatumFactory_ to the xref:refguide:testing:index/unittestsupport/applib/dom/pojo/PojoTester.adoc[PojoTester] for the specified compile time type, also instantiable as the runtime type (with a no-arg constructor).
 --
 <.> xref:#exercise_Object[exercise(Object)]
 +
@@ -90,7 +90,7 @@
 [#usingData_Class]
 === usingData(Class)
 
-Convenience overload to provide a _DatumFactory_ to the xref:refguide:testing:index/unittestsupport/applib/dom/pojo/PojoTester.adoc[PojoTester] for the specified compile time type, also instantiatable as the runtime type (with a no-arg constructor).
+Convenience overload to provide a _DatumFactory_ to the xref:refguide:testing:index/unittestsupport/applib/dom/pojo/PojoTester.adoc[PojoTester] for the specified compile time type, also instantiable as the runtime type (with a no-arg constructor).
 
 [#exercise_Object]
 === exercise(Object)
diff --git a/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/util/InjectUtils.adoc b/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/util/InjectUtils.adoc
index 58c3c71..682ea08 100644
--- a/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/util/InjectUtils.adoc
+++ b/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/util/InjectUtils.adoc
@@ -7,11 +7,9 @@
 .InjectUtils.java
 ----
 class InjectUtils {
-  public static final Predicate<? super Field> persistentMappedBy;
   Predicate<Field> withTypeAssignableFrom(Class<T> type)
   Predicate<Method> withReturnTypeAssignableFrom(Class<T> type)
   Predicate<Method> withParametersAssignableFrom(Class<?>... types)
-  Predicate<? super Method> withEntityParameter()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/CausewayModuleValJodatimeApplib.adoc b/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/CausewayModuleValJodatimeApplib.adoc
deleted file mode 100644
index a16ee9c..0000000
--- a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/CausewayModuleValJodatimeApplib.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-= CausewayModuleValJodatimeApplib
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CausewayModuleValJodatimeApplib.java
-----
-class CausewayModuleValJodatimeApplib {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/jaxb/JodaTimeJaxbAdapters.adoc b/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/jaxb/JodaTimeJaxbAdapters.adoc
deleted file mode 100644
index 0213376..0000000
--- a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/jaxb/JodaTimeJaxbAdapters.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-= JodaTimeJaxbAdapters
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.JodaTimeJaxbAdapters.java
-----
-class JodaTimeJaxbAdapters {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc b/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc
deleted file mode 100644
index 0f4c49b..0000000
--- a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc
+++ /dev/null
@@ -1,20 +0,0 @@
-= JodaTimeXMLGregorianCalendarMarshalling
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.JodaTimeXMLGregorianCalendarMarshalling.java
-----
-class JodaTimeXMLGregorianCalendarMarshalling {
-  DateTime toDateTime(XMLGregorianCalendar xgc)
-  LocalDate toLocalDate(XMLGregorianCalendar xgc)
-  LocalDateTime toLocalDateTime(XMLGregorianCalendar xgc)
-  LocalTime toLocalTime(XMLGregorianCalendar xgc)
-  XMLGregorianCalendar toXMLGregorianCalendar(DateTime dateTime)
-  XMLGregorianCalendar toXMLGregorianCalendar(LocalDateTime localDateTime)
-  XMLGregorianCalendar toXMLGregorianCalendar(LocalDate localDate)
-  XMLGregorianCalendar toXMLGregorianCalendar(LocalTime localTime)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/value/JodaTimeConverters.adoc b/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/value/JodaTimeConverters.adoc
deleted file mode 100644
index 5869672..0000000
--- a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/applib/value/JodaTimeConverters.adoc
+++ /dev/null
@@ -1,24 +0,0 @@
-= JodaTimeConverters
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.JodaTimeConverters.java
-----
-class JodaTimeConverters {
-  Instant toJoda(java.time.@Nullable Instant input)
-  java.time.@Nullable Instant fromJoda(Instant input)
-  LocalTime toJoda(java.time.@Nullable LocalTime input)
-  java.time.@Nullable LocalTime fromJoda(LocalTime input)
-  LocalDate toJoda(java.time.@Nullable LocalDate input)
-  java.time.@Nullable LocalDate fromJoda(LocalDate input)
-  LocalDateTime toJoda(java.time.@Nullable LocalDateTime input)
-  java.time.@Nullable LocalDateTime fromJoda(LocalDateTime input)
-  DateTime toJoda(java.time.@Nullable ZonedDateTime input)
-  java.time.@Nullable ZonedDateTime fromJoda(DateTime input)
-  DateTimeZone toJoda(java.time.@Nullable ZoneId input)
-  java.time.@Nullable ZoneId fromJoda(DateTimeZone input)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/integration/CausewayModuleValJodatimeIntegration.adoc b/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/integration/CausewayModuleValJodatimeIntegration.adoc
deleted file mode 100644
index 1fc07eb..0000000
--- a/antora/components/refguide-index/modules/valuetypes/pages/index/jodatime/integration/CausewayModuleValJodatimeIntegration.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-= CausewayModuleValJodatimeIntegration
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CausewayModuleValJodatimeIntegration.java
-----
-class CausewayModuleValJodatimeIntegration {
-  public static final String NAMESPACE;
-}
-----
-
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/JsonRepresentation.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/JsonRepresentation.adoc
index 52f1c61..0e53fdb 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/JsonRepresentation.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/JsonRepresentation.adoc
@@ -9,9 +9,6 @@
 .JsonRepresentation.java
 ----
 class JsonRepresentation {
-  public static final DateTimeFormatter yyyyMMdd;
-  public static final DateTimeFormatter yyyyMMddTHHmmssZ;
-  public static final DateTimeFormatter _HHmmss;
   JsonRepresentation(JsonNode jsonNode)
   JsonRepresentation jsonAsMap(String keyValuePairsAsJson)
   JsonRepresentation newMap(String... keyValuePairs)
@@ -35,12 +32,6 @@
   Number asNumber()
   boolean isIntegralNumber(String path)     // <.>
   boolean isIntegralNumber()     // <.>
-  java.util.Date getDate(String path)
-  java.util.Date asDate()
-  java.util.Date getDateTime(String path)
-  java.util.Date asDateTime()
-  java.util.Date getTime(String path)
-  java.util.Date asTime()
   boolean isBoolean(String path)
   boolean isBoolean()
   Boolean getBoolean(String path)     // <.>
@@ -92,7 +83,7 @@
   JsonRepresentation getNull(String path)     // <.>
   JsonRepresentation asNull()     // <.>
   LinkRepresentation mapValueAsLink()     // <.>
-  InputStream asInputStream()
+  InputStream asInputStream()     // <.>
   T as(Class<T> cls)     // <.>
   String asUrlEncoded()
   JsonRepresentation arrayAdd(Object value)
@@ -314,10 +305,15 @@
 --
 Convert a representation that contains a single node representing a link into a xref:refguide:viewer:index/restfulobjects/applib/LinkRepresentation.adoc[LinkRepresentation] .
 --
+<.> xref:#asInputStream_[asInputStream()]
++
+--
+Returns the underlying JSON (UTF-8 String) as _ByteArrayInputStream_ .
+--
 <.> xref:#as_Class[as(Class)]
 +
 --
-Convenience to simply "downcast".
+Convenience to simply 'downcast'.
 --
 <.> xref:#ensureArray_[ensureArray()]
 +
@@ -501,10 +497,15 @@
 
 Convert a representation that contains a single node representing a link into a xref:refguide:viewer:index/restfulobjects/applib/LinkRepresentation.adoc[LinkRepresentation] .
 
+[#asInputStream_]
+=== asInputStream()
+
+Returns the underlying JSON (UTF-8 String) as _ByteArrayInputStream_ .
+
 [#as_Class]
 === as(Class)
 
-Convenience to simply "downcast".
+Convenience to simply 'downcast'.
 
 In fact, the method creates a new instance of the specified type, which shares the underlying _#jsonNode jsonNode_ .
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulMediaType.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulMediaType.adoc
index 866a4de..5cf718b 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulMediaType.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulMediaType.adoc
@@ -3,7 +3,7 @@
 
 Media types including the `profile` parameter.
 
-Because these values are used in the `@Produces` annotation on the jax-rs resources, they must be constants and must be strings.
+Because these values are used with _RequestMapping_ annotations, they must be constant strings.
 
 == API
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulResponse.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulResponse.adoc
index f0103dd..1205540 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulResponse.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/RestfulResponse.adoc
@@ -7,27 +7,6 @@
 .RestfulResponse.java
 ----
 class RestfulResponse<T> {
-  RestfulResponse<JsonRepresentation> of(Response response)
-  RestfulResponse<T> ofT(Response response)
-  HttpStatusCode getStatus()
-  T getEntity()
-  V getHeader(Header<V> header)
-  RestfulResponse<Q> wraps(Class<Q> cls)     // <.>
-  String toString()
 }
 ----
 
-<.> xref:#wraps_Class[wraps(Class)]
-+
---
-Convenience that recasts this response as wrapping some other representation.
---
-
-== Members
-
-[#wraps_Class]
-=== wraps(Class)
-
-Convenience that recasts this response as wrapping some other representation.
-
-This would typically be as the results of a content type being an error rather than a representation returned on success.
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc
index 124d03b..3cbde55 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc
@@ -7,26 +7,26 @@
 .DomainObjectResource.java
 ----
 interface DomainObjectResource {
-  Response persist(String domainType, InputStream object)
-  Response object(String domainType, String instanceId)
-  Response object(String domainType, String instanceId, InputStream arguments)
-  Response deleteMethodNotSupported(String domainType, String instanceId)
-  Response postMethodNotAllowed(String domainType, String instanceId)
-  Response image(String domainType, String instanceId)
-  Response layout(String domainType, String instanceId)
-  Response propertyDetails(String domainType, String instanceId, String propertyId)
-  Response modifyProperty(String domainType, String instanceId, String propertyId, InputStream arguments)
-  Response clearProperty(String domainType, String instanceId, String propertyId)
-  Response postPropertyNotAllowed(String domainType, String instanceId, String propertyId)
-  Response accessCollection(String domainType, String instanceId, String collectionId)
-  Response actionPrompt(String domainType, String instanceId, String actionId)
-  Response deleteActionPromptNotAllowed(String domainType, String instanceId, String actionId)
-  Response putActionPromptNotAllowed(String domainType, String instanceId, String actionId)
-  Response postActionPromptNotAllowed(String domainType, String instanceId, String actionId)
-  Response invokeActionQueryOnly(String domainType, String instanceId, String actionId, String xCausewayQueryString)
-  Response invokeActionIdempotent(String domainType, String instanceId, String actionId, InputStream arguments)
-  Response invokeAction(String domainType, String instanceId, String actionId, InputStream arguments)
-  Response deleteInvokeActionNotAllowed(String domainType, String instanceId, String actionId)
+  ResponseEntity<Object> persist(String domainType, InputStream object)
+  ResponseEntity<Object> object(String domainType, String instanceId)
+  ResponseEntity<Object> object(String domainType, String instanceId, InputStream arguments)
+  ResponseEntity<Object> deleteMethodNotSupported(String domainType, String instanceId)
+  ResponseEntity<Object> postMethodNotAllowed(String domainType, String instanceId)
+  ResponseEntity<Object> image(String domainType, String instanceId)
+  ResponseEntity<Object> layout(String domainType, String instanceId)
+  ResponseEntity<Object> propertyDetails(String domainType, String instanceId, String propertyId)
+  ResponseEntity<Object> modifyProperty(String domainType, String instanceId, String propertyId, InputStream arguments)
+  ResponseEntity<Object> clearProperty(String domainType, String instanceId, String propertyId)
+  ResponseEntity<Object> postPropertyNotAllowed(String domainType, String instanceId, String propertyId)
+  ResponseEntity<Object> accessCollection(String domainType, String instanceId, String collectionId)
+  ResponseEntity<Object> actionPrompt(String domainType, String instanceId, String actionId)
+  ResponseEntity<Object> deleteActionPromptNotAllowed(String domainType, String instanceId, String actionId)
+  ResponseEntity<Object> putActionPromptNotAllowed(String domainType, String instanceId, String actionId)
+  ResponseEntity<Object> postActionPromptNotAllowed(String domainType, String instanceId, String actionId)
+  ResponseEntity<Object> invokeActionQueryOnly(String domainType, String instanceId, String actionId, String xCausewayQueryString)
+  ResponseEntity<Object> invokeActionIdempotent(String domainType, String instanceId, String actionId, InputStream arguments)
+  ResponseEntity<Object> invokeAction(String domainType, String instanceId, String actionId, InputStream arguments)
+  ResponseEntity<Object> deleteInvokeActionNotAllowed(String domainType, String instanceId, String actionId)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc
index 491319b..8878210 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc
@@ -7,22 +7,22 @@
 .DomainServiceResource.java
 ----
 interface DomainServiceResource {
-  Response services()
-  Response deleteServicesNotAllowed()
-  Response putServicesNotAllowed()
-  Response postServicesNotAllowed()
-  Response service(String serviceId)
-  Response deleteServiceNotAllowed(String serviceId)
-  Response putServiceNotAllowed(String serviceId)
-  Response postServiceNotAllowed(String serviceId)
-  Response actionPrompt(String serviceId, String actionId)
-  Response deleteActionPromptNotAllowed(String serviceId, String actionId)
-  Response putActionPromptNotAllowed(String serviceId, String actionId)
-  Response postActionPromptNotAllowed(String serviceId, String actionId)
-  Response invokeActionQueryOnly(String serviceId, String actionId, String xCausewayQueryString)     // <.>
-  Response invokeActionIdempotent(String serviceId, String actionId, InputStream arguments)
-  Response invokeAction(String serviceId, String actionId, InputStream arguments)
-  Response deleteInvokeActionNotAllowed(String serviceId, String actionId)
+  ResponseEntity<Object> services()
+  ResponseEntity<Object> deleteServicesNotAllowed()
+  ResponseEntity<Object> putServicesNotAllowed()
+  ResponseEntity<Object> postServicesNotAllowed()
+  ResponseEntity<Object> service(String serviceId)
+  ResponseEntity<Object> deleteServiceNotAllowed(String serviceId)
+  ResponseEntity<Object> putServiceNotAllowed(String serviceId)
+  ResponseEntity<Object> postServiceNotAllowed(String serviceId)
+  ResponseEntity<Object> actionPrompt(String serviceId, String actionId)
+  ResponseEntity<Object> deleteActionPromptNotAllowed(String serviceId, String actionId)
+  ResponseEntity<Object> putActionPromptNotAllowed(String serviceId, String actionId)
+  ResponseEntity<Object> postActionPromptNotAllowed(String serviceId, String actionId)
+  ResponseEntity<Object> invokeActionQueryOnly(String serviceId, String actionId, String xCausewayQueryString)     // <.>
+  ResponseEntity<Object> invokeActionIdempotent(String serviceId, String actionId, InputStream arguments)
+  ResponseEntity<Object> invokeAction(String serviceId, String actionId, InputStream arguments)
+  ResponseEntity<Object> deleteInvokeActionNotAllowed(String serviceId, String actionId)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc
index fab6a62..0b1b519 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc
@@ -7,15 +7,15 @@
 .DomainTypeResource.java
 ----
 interface DomainTypeResource {
-  Response domainTypes()
-  Response domainType(String domainType)
-  Response layout(String domainType)
-  Response typeProperty(String domainType, String propertyId)
-  Response typeCollection(String domainType, String collectionId)
-  Response typeAction(String domainType, String actionId)
-  Response typeActionParam(String domainType, String actionId, String paramId)
-  Response domainTypeIsSubtypeOf(String domainType, String superType, String argumentsQueryString)
-  Response domainTypeIsSupertypeOf(String domainType, String superType, String argumentsQueryString)
+  ResponseEntity<Object> domainTypes()
+  ResponseEntity<Object> domainType(String domainType)
+  ResponseEntity<Object> layout(String domainType)
+  ResponseEntity<Object> typeProperty(String domainType, String propertyId)
+  ResponseEntity<Object> typeCollection(String domainType, String collectionId)
+  ResponseEntity<Object> typeAction(String domainType, String actionId)
+  ResponseEntity<Object> typeActionParam(String domainType, String actionId, String paramId)
+  ResponseEntity<Object> domainTypeIsSubtypeOf(String domainType, String superType, String argumentsQueryString)
+  ResponseEntity<Object> domainTypeIsSupertypeOf(String domainType, String superType, String argumentsQueryString)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/health/HealthResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/health/HealthResource.adoc
index 105539e..cce8da6 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/health/HealthResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/health/HealthResource.adoc
@@ -7,10 +7,10 @@
 .HealthResource.java
 ----
 interface HealthResource {
-  Response health()
-  Response deleteHealthNotAllowed()
-  Response putHealthNotAllowed()
-  Response postHealthNotAllowed()
+  ResponseEntity<Object> health()
+  ResponseEntity<Object> deleteHealthNotAllowed()
+  ResponseEntity<Object> putHealthNotAllowed()
+  ResponseEntity<Object> postHealthNotAllowed()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/homepage/HomePageResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/homepage/HomePageResource.adoc
index 1e7bde6..18b761e 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/homepage/HomePageResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/homepage/HomePageResource.adoc
@@ -7,11 +7,11 @@
 .HomePageResource.java
 ----
 interface HomePageResource {
-  Response homePage()
-  Response deleteHomePageNotAllowed()
-  Response putHomePageNotAllowed()
-  Response postHomePageNotAllowed()
-  Response notAuthenticated()     // <.>
+  ResponseEntity<Object> homePage()
+  ResponseEntity<Object> deleteHomePageNotAllowed()
+  ResponseEntity<Object> putHomePageNotAllowed()
+  ResponseEntity<Object> postHomePageNotAllowed()
+  ResponseEntity<Object> notAuthenticated()     // <.>
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/menubars/MenuBarsResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/menubars/MenuBarsResource.adoc
index 6d744f4..883398e 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/menubars/MenuBarsResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/menubars/MenuBarsResource.adoc
@@ -9,10 +9,10 @@
 .MenuBarsResource.java
 ----
 interface MenuBarsResource {
-  Response menuBars()     // <.>
-  Response deleteMenuBarsNotAllowed()     // <.>
-  Response putMenuBarsNotAllowed()     // <.>
-  Response postMenuBarsNotAllowed()     // <.>
+  ResponseEntity<Object> menuBars()     // <.>
+  ResponseEntity<Object> deleteMenuBarsNotAllowed()     // <.>
+  ResponseEntity<Object> putMenuBarsNotAllowed()     // <.>
+  ResponseEntity<Object> postMenuBarsNotAllowed()     // <.>
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/user/UserResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/user/UserResource.adoc
index afc40b2..4ea62d9 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/user/UserResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/user/UserResource.adoc
@@ -7,11 +7,11 @@
 .UserResource.java
 ----
 interface UserResource {
-  Response user()
-  Response deleteUserNotAllowed()
-  Response putUserNotAllowed()
-  Response postUserNotAllowed()
-  Response logout()     // <.>
+  ResponseEntity<Object> user()
+  ResponseEntity<Object> deleteUserNotAllowed()
+  ResponseEntity<Object> putUserNotAllowed()
+  ResponseEntity<Object> postUserNotAllowed()
+  ResponseEntity<Object> logout()     // <.>
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonMapper.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonMapper.adoc
index be8b880..f16fb80 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonMapper.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonMapper.adoc
@@ -1,4 +1,4 @@
-= JsonMapper
+= JsonMapper _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 == API
@@ -6,13 +6,11 @@
 [source,java]
 .JsonMapper.java
 ----
-class JsonMapper {
-  String getEntityAsStringFrom(Response response)
+record JsonMapper {
   JsonMapper instance()     // <.>
   JsonMapper instance(PrettyPrinting prettyPrinting)
   JsonRepresentation read(String json)
   T read(String json, Class<T> requiredType)
-  T read(Response response, Class<T> requiredType)
   String write(Object object)
 }
 ----
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
deleted file mode 100644
index 7956df9..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
+++ /dev/null
@@ -1,40 +0,0 @@
-= JsonNodeUtils
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.JsonNodeUtils.java
-----
-class JsonNodeUtils {
-  InputStream asInputStream(JsonNode jsonNode)
-  InputStream asInputStream(JsonRepresentation jsonRepresentation)
-  ObjectNode walkNodeUpTo(ObjectNode node, List<String> keys)     // <.>
-}
-----
-
-<.> xref:#walkNodeUpTo_ObjectNode_List[walkNodeUpTo(ObjectNode, List)]
-+
---
-Walks the path, ensuring keys exist and are maps, or creating required maps as it goes.
---
-
-== Members
-
-[#walkNodeUpTo_ObjectNode_List]
-=== walkNodeUpTo(ObjectNode, List)
-
-Walks the path, ensuring keys exist and are maps, or creating required maps as it goes.
-
-For example, if given a list ("a", "b", "c") and starting with an empty map, then will create:
-
-----
-{
-  "a": {
-    "b: {
-      "c": {
-      }
-    }
-  }
-}
-----
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/MediaTypes.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/MediaTypes.adoc
deleted file mode 100644
index 37e28ab..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/MediaTypes.adoc
+++ /dev/null
@@ -1,27 +0,0 @@
-= MediaTypes
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.MediaTypes.java
-----
-class MediaTypes {
-  MediaType parse(String type)     // <.>
-}
-----
-
-<.> xref:#parse_String[parse(String)]
-+
---
-Same as _MediaType.valueOf(type)_ , but with fallback in case _MediaType.valueOf(type)_ throws an IllegalArgumentException.
---
-
-== Members
-
-[#parse_String]
-=== parse(String)
-
-Same as _MediaType.valueOf(type)_ , but with fallback in case _MediaType.valueOf(type)_ throws an IllegalArgumentException.
-
-The fallback is to retry with some special characters replaces in String _type_ .
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/Parser.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/Parser.adoc
index 3f18ff2..4006a51 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/Parser.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/Parser.adoc
@@ -6,22 +6,23 @@
 [source,java]
 .Parser.java
 ----
-class Parser<T> {
+interface Parser<T> {
+  T valueOf(String str)
+  String asString(T t)
   T valueOf(List<String> str)
   T valueOf(String[] str)
   T valueOf(JsonRepresentation jsonRepresentation)
-  JsonRepresentation asJsonRepresentation(T t)
-  Parser<String> forString()
-  Parser<Date> forDate()
-  Parser<CacheControl> forCacheControl()
-  Parser<MediaType> forJaxRsMediaType()
   Parser<Boolean> forBoolean()
+  Parser<Date> forDate()
   Parser<Integer> forInteger()
+  Parser<String> forString()
+  Parser<String> forWarning()
+  Parser<MediaType> forMediaType()
+  Parser<CacheControl> forCacheControl()
   Parser<List<String>> forListOfStrings()
   Parser<List<List<String>>> forListOfListOfStrings()
   Parser<String[]> forArrayOfStrings()
-  Parser<List<MediaType>> forListOfJaxRsMediaTypes()
-  Parser<String> forETag()
+  Parser<List<MediaType>> forListOfMediaTypes()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/PathNode.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/PathNode.adoc
index bca1c01..e55d2ed 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/PathNode.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/PathNode.adoc
@@ -1,4 +1,4 @@
-= PathNode
+= PathNode _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 == API
@@ -6,12 +6,11 @@
 [source,java]
 .PathNode.java
 ----
-class PathNode {
+record PathNode {
   public static final PathNode NULL;
+  PathNode(String key, Map<String, String> criteria)
   List<String> split(String path)
   PathNode parse(String path)
-  String getKey()
-  Map<String, String> getCriteria()
   boolean hasCriteria()
   boolean matches(JsonRepresentation repr)
   int hashCode()
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/UrlEncodingUtils.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/UrlEncodingUtils.adoc
deleted file mode 100644
index b1f6e26..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/UrlEncodingUtils.adoc
+++ /dev/null
@@ -1,18 +0,0 @@
-= UrlEncodingUtils
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.UrlEncodingUtils.java
-----
-class UrlEncodingUtils {
-  String urlDecode(String string)
-  List<String> urlDecode(List<String> values)
-  String[] urlDecode(String[] values)
-  String urlEncode(JsonNode jsonNode)
-  String urlEncode(JsonRepresentation jsonRepresentation)
-  String urlEncode(String str)
-}
-----
-
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/version/VersionResource.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/version/VersionResource.adoc
index f2c0978..a52b63e 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/version/VersionResource.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/version/VersionResource.adoc
@@ -7,10 +7,10 @@
 .VersionResource.java
 ----
 interface VersionResource {
-  Response version()
-  Response deleteVersionNotAllowed()
-  Response putVersionNotAllowed()
-  Response postVersionNotAllowed()
+  ResponseEntity<Object> version()
+  ResponseEntity<Object> deleteVersionNotAllowed()
+  ResponseEntity<Object> putVersionNotAllowed()
+  ResponseEntity<Object> postVersionNotAllowed()
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/ActionParameterListBuilder.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/ActionParameterListBuilder.adoc
index 8cc3a40..08b1d10 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/ActionParameterListBuilder.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/ActionParameterListBuilder.adoc
@@ -1,13 +1,14 @@
 = ActionParameterListBuilder
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
+Use _RestfulClient#arguments()_ to get an instance.
+
 == API
 
 [source,java]
 .ActionParameterListBuilder.java
 ----
 class ActionParameterListBuilder {
-  ActionParameterListBuilder()     // <.>
   ActionParameterListBuilder(RestfulClient restfulClient)
   ActionParameterListBuilder addActionParameter(String parameterName, String parameterValue)
   ActionParameterListBuilder addActionParameter(String parameterName, int parameterValue)
@@ -27,16 +28,6 @@
 }
 ----
 
-<.> xref:#ActionParameterListBuilder_[ActionParameterListBuilder()]
-+
---
-[WARNING]
-====
-[red]#_deprecated:_#
-
-- use _RestfulClient#arguments()_
-====
---
 <.> xref:#addActionParameter_String_ValueDecomposition[addActionParameter(String, ValueDecomposition)]
 +
 --
@@ -45,16 +36,6 @@
 
 == Members
 
-[#ActionParameterListBuilder_]
-=== ActionParameterListBuilder()
-
-[WARNING]
-====
-[red]#_deprecated:_#
-
-- use _RestfulClient#arguments()_
-====
-
 [#addActionParameter_String_ValueDecomposition]
 === addActionParameter(String, ValueDecomposition)
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/CausewayModuleViewerRestfulObjectsJaxrsResteasy.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/CausewayModuleViewerRestfulObjectsJaxrsResteasy.adoc
deleted file mode 100644
index d08e483..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/CausewayModuleViewerRestfulObjectsJaxrsResteasy.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-= CausewayModuleViewerRestfulObjectsJaxrsResteasy
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.CausewayModuleViewerRestfulObjectsJaxrsResteasy.java
-----
-class CausewayModuleViewerRestfulObjectsJaxrsResteasy {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/conneg/RestfulObjectsJaxbWriterForXml.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/conneg/RestfulObjectsJaxbWriterForXml.adoc
deleted file mode 100644
index d52844c..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/conneg/RestfulObjectsJaxbWriterForXml.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-= RestfulObjectsJaxbWriterForXml
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.RestfulObjectsJaxbWriterForXml.java
-----
-class RestfulObjectsJaxbWriterForXml {
-}
-----
-
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc
index 65af7da..e8e6948 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc
@@ -8,6 +8,7 @@
 ----
 class CausewayModuleRestfulObjectsRendering {
   public static final String NAMESPACE;
+  ResponseFactory responseFactory(MetaModelContext mmc)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc
index 8b1c812..34d26d0 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/IResourceContext.adoc
@@ -11,16 +11,16 @@
 interface IResourceContext {
   String restfulUrlFor(String url)     // <.>
   String applicationUrlFor(String url)     // <.>
-  List<MediaType> getAcceptableMediaTypes()     // <.>
-  InteractionInitiatedBy getInteractionInitiatedBy()     // <.>
-  Where getWhere()
-  ObjectAdapterLinkTo getObjectAdapterLinkTo()
-  List<List<String>> getFollowLinks()
+  List<MediaType> acceptableMediaTypes()     // <.>
+  InteractionInitiatedBy interactionInitiatedBy()     // <.>
+  Where where()
+  ObjectAdapterLinkTo objectAdapterLinkTo()
+  List<List<String>> followLinks()
   boolean isValidateOnly()
   Restfulobjects config()
   boolean canEagerlyRender(ManagedObject objectAdapter)     // <.>
-  RepresentationService.Intent getIntent()     // <.>
-  Optional<ManagedObject> getObjectAdapterForOidFromHref(String oidFromHref)
+  RepresentationService.Intent intent()     // <.>
+  Optional<ManagedObject> objectAdapterForOidFromHref(String oidFromHref)
 }
 ----
 
@@ -34,12 +34,12 @@
 --
 Prepends with the application's base URI.
 --
-<.> xref:#getAcceptableMediaTypes_[getAcceptableMediaTypes()]
+<.> xref:#acceptableMediaTypes_[acceptableMediaTypes()]
 +
 --
-Returns the _HttpHeaders#getAcceptableMediaTypes() acceptable media types_ as obtained from _HttpHeaders_ .
+Returns the _HttpHeaders#getAccept() acceptable media types_ as obtained from _HttpHeaders_ .
 --
-<.> xref:#getInteractionInitiatedBy_[getInteractionInitiatedBy()]
+<.> xref:#interactionInitiatedBy_[interactionInitiatedBy()]
 +
 --
 Whether this interaction was initiated directly by a _InteractionInitiatedBy#USER user_ (or indirectly by the _InteractionInitiatedBy#FRAMEWORK framework_ .
@@ -49,7 +49,7 @@
 --
 To avoid infinite loops when eagerly rendering graphs of objects as _DomainObjectReprRenderer#asEventSerialization() events_ .
 --
-<.> xref:#getIntent_[getIntent()]
+<.> xref:#intent_[intent()]
 +
 --
 Applies only when rendering a domain object.
@@ -67,13 +67,13 @@
 
 Prepends with the application's base URI.
 
-[#getAcceptableMediaTypes_]
-=== getAcceptableMediaTypes()
+[#acceptableMediaTypes_]
+=== acceptableMediaTypes()
 
-Returns the _HttpHeaders#getAcceptableMediaTypes() acceptable media types_ as obtained from _HttpHeaders_ .
+Returns the _HttpHeaders#getAccept() acceptable media types_ as obtained from _HttpHeaders_ .
 
-[#getInteractionInitiatedBy_]
-=== getInteractionInitiatedBy()
+[#interactionInitiatedBy_]
+=== interactionInitiatedBy()
 
 Whether this interaction was initiated directly by a _InteractionInitiatedBy#USER user_ (or indirectly by the _InteractionInitiatedBy#FRAMEWORK framework_ .
 
@@ -82,7 +82,7 @@
 
 To avoid infinite loops when eagerly rendering graphs of objects as _DomainObjectReprRenderer#asEventSerialization() events_ .
 
-[#getIntent_]
-=== getIntent()
+[#intent_]
+=== intent()
 
 Applies only when rendering a domain object.
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationService.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationService.adoc
index f673ae9..403f770 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationService.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/RepresentationService.adoc
@@ -14,13 +14,13 @@
 ----
 class RepresentationService {
   RepresentationService(List<ContentNegotiationService> contentNegotiationServices)
-  Response objectRepresentation(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
-  Response propertyDetails(IResourceContext resourceContext, ManagedProperty objectAndProperty)     // <.>
-  Response collectionDetails(IResourceContext resourceContext, ManagedCollection objectAndCollection)     // <.>
-  Response actionPrompt(IResourceContext resourceContext, ManagedAction objectAndAction)     // <.>
-  Response actionResult(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
-  void assertContentNegotiationServiceHandled(Response.ResponseBuilder responseBuilder)
-  Response.ResponseBuilder buildResponse(Function<ContentNegotiationService, Response.ResponseBuilder> connegServiceBuildResponse)     // <.>
+  ResponseEntity<Object> objectRepresentation(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
+  ResponseEntity<Object> propertyDetails(IResourceContext resourceContext, ManagedProperty objectAndProperty)     // <.>
+  ResponseEntity<Object> collectionDetails(IResourceContext resourceContext, ManagedCollection objectAndCollection)     // <.>
+  ResponseEntity<Object> actionPrompt(IResourceContext resourceContext, ManagedAction objectAndAction)     // <.>
+  ResponseEntity<Object> actionResult(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
+  ResponseEntity<T> assertContentNegotiationServiceHandled(ResponseEntity<T> responseBuilder)
+  ResponseEntity<Object> buildResponse(Function<ContentNegotiationService, ResponseEntity<Object>> connegServiceBuildResponse)     // <.>
 }
 ----
 
@@ -62,36 +62,26 @@
 
 Returns a representation of a single object.
 
-By default this representation is as per section 14.4 of the RO spec, v1.0.
-
 [#propertyDetails_IResourceContext_ManagedProperty]
 === propertyDetails(IResourceContext, ManagedProperty)
 
 Returns a representation of a single property of an object.
 
-By default this representation is as per section 16.4 of the RO spec, v1.0.
-
 [#collectionDetails_IResourceContext_ManagedCollection]
 === collectionDetails(IResourceContext, ManagedCollection)
 
 Returns a representation of a single collection of an object.
 
-By default this representation is as per section 17.5 of the RO spec, v1.0.
-
 [#actionPrompt_IResourceContext_ManagedAction]
 === actionPrompt(IResourceContext, ManagedAction)
 
 Returns a representation of a single action (prompt) of an object.
 
-By default this representation is as per section 18.2 of the RO spec, v1.0.
-
 [#actionResult_IResourceContext_ObjectAndActionInvocation]
 === actionResult(IResourceContext, ObjectAndActionInvocation)
 
 Returns a representation of a single action invocation of an object.
 
-By default this representation is as per section 19.5 of the RO spec, v1.0.
-
 [#buildResponse_Function]
 === buildResponse(Function)
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc
deleted file mode 100644
index 6e7cebc..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-= AcceptHeaderServiceForRest
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.AcceptHeaderServiceForRest.java
-----
-class AcceptHeaderServiceForRest {
-  public static final String LOGICAL_TYPE_NAME;
-  List<MediaType> getAcceptableMediaTypes()
-}
-----
-
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc
index f5888f6..de38a8b 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc
@@ -13,11 +13,11 @@
 .ContentNegotiationService.java
 ----
 interface ContentNegotiationService {
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedCollection objectAndCollection)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedCollection objectAndCollection)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
 }
 ----
 
@@ -54,32 +54,22 @@
 
 Returns a representation of a single object.
 
-By default this representation is as per section 14.4 of the RO spec, v1.0.
-
 [#buildResponse_IResourceContext_ManagedProperty]
 === buildResponse(IResourceContext, ManagedProperty)
 
 Returns a representation of a single property of an object.
 
-By default this representation is as per section 16.4 of the RO spec, v1.0.
-
 [#buildResponse_IResourceContext_ManagedCollection]
 === buildResponse(IResourceContext, ManagedCollection)
 
 Returns a representation of a single collection of an object.
 
-By default this representation is as per section 17.5 of the RO spec, v1.0.
-
 [#buildResponse_IResourceContext_ManagedAction]
 === buildResponse(IResourceContext, ManagedAction)
 
 Returns a representation of a single action (prompt) of an object.
 
-By default this representation is as per section 18.2 of the RO spec, v1.0.
-
 [#buildResponse_IResourceContext_ObjectAndActionInvocation]
 === buildResponse(IResourceContext, ObjectAndActionInvocation)
 
 Returns a representation of a single action invocation of an object.
-
-By default this representation is as per section 19.5 of the RO spec, v1.0.
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc
index 4952773..c084b40 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc
@@ -7,11 +7,11 @@
 .ContentNegotiationServiceAbstract.java
 ----
 class ContentNegotiationServiceAbstract {
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedCollection objectAndCollection)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedCollection objectAndCollection)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc
index dd2e488..5af6935 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc
@@ -9,29 +9,29 @@
 .ContentNegotiationServiceForRestfulObjectsV1_0.java
 ----
 class ContentNegotiationServiceForRestfulObjectsV1_0 {
-  ContentNegotiationServiceForRestfulObjectsV1_0(CausewayConfiguration configuration, SpecificationLoader specificationLoader)
-  ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)
-  ResponseBuilder buildResponseTo(IResourceContext resourceContext, ManagedObject objectAdapter, JsonRepresentation representationIfAnyRequired, JsonRepresentation rootRepresentation)     // <.>
-  ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)
-  ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedCollection objectAndCollection)
-  ResponseBuilder buildResponseTo(IResourceContext resourceContext, ManagedCollection objectAndCollection, JsonRepresentation representation, JsonRepresentation rootRepresentation)     // <.>
-  ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)
-  ResponseBuilder buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)
-  ResponseBuilder buildResponseTo(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation, JsonRepresentation representation, JsonRepresentation rootRepresentation)     // <.>
+  ContentNegotiationServiceForRestfulObjectsV1_0(CausewayConfiguration configuration, SpecificationLoader specificationLoader, ResponseFactory responseFactory)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)
+  ResponseEntity<Object> buildResponseTo(IResourceContext resourceContext, ManagedObject objectAdapter, JsonRepresentation representationIfAnyRequired, JsonRepresentation rootRepresentation, MediaType mediaTypeOverride)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedCollection objectAndCollection)
+  ResponseEntity<Object> buildResponseTo(IResourceContext resourceContext, ManagedCollection objectAndCollection, JsonRepresentation representation, JsonRepresentation rootRepresentation, MediaType mediaTypeOverride)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)
+  ResponseEntity<Object> buildResponseTo(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation, JsonRepresentation representation, JsonRepresentation rootRepresentation, MediaType mediaTypeOverride)     // <.>
 }
 ----
 
-<.> xref:#buildResponseTo_IResourceContext_ManagedObject_JsonRepresentation_JsonRepresentation[buildResponseTo(IResourceContext, ManagedObject, JsonRepresentation, JsonRepresentation)]
+<.> xref:#buildResponseTo_IResourceContext_ManagedObject_JsonRepresentation_JsonRepresentation_MediaType[buildResponseTo(IResourceContext, ManagedObject, JsonRepresentation, JsonRepresentation, MediaType)]
 +
 --
 Not API
 --
-<.> xref:#buildResponseTo_IResourceContext_ManagedCollection_JsonRepresentation_JsonRepresentation[buildResponseTo(IResourceContext, ManagedCollection, JsonRepresentation, JsonRepresentation)]
+<.> xref:#buildResponseTo_IResourceContext_ManagedCollection_JsonRepresentation_JsonRepresentation_MediaType[buildResponseTo(IResourceContext, ManagedCollection, JsonRepresentation, JsonRepresentation, MediaType)]
 +
 --
 Not API
 --
-<.> xref:#buildResponseTo_IResourceContext_ObjectAndActionInvocation_JsonRepresentation_JsonRepresentation[buildResponseTo(IResourceContext, ObjectAndActionInvocation, JsonRepresentation, JsonRepresentation)]
+<.> xref:#buildResponseTo_IResourceContext_ObjectAndActionInvocation_JsonRepresentation_JsonRepresentation_MediaType[buildResponseTo(IResourceContext, ObjectAndActionInvocation, JsonRepresentation, JsonRepresentation, MediaType)]
 +
 --
 Not API
@@ -39,18 +39,18 @@
 
 == Members
 
-[#buildResponseTo_IResourceContext_ManagedObject_JsonRepresentation_JsonRepresentation]
-=== buildResponseTo(IResourceContext, ManagedObject, JsonRepresentation, JsonRepresentation)
+[#buildResponseTo_IResourceContext_ManagedObject_JsonRepresentation_JsonRepresentation_MediaType]
+=== buildResponseTo(IResourceContext, ManagedObject, JsonRepresentation, JsonRepresentation, MediaType)
 
 Not API
 
-[#buildResponseTo_IResourceContext_ManagedCollection_JsonRepresentation_JsonRepresentation]
-=== buildResponseTo(IResourceContext, ManagedCollection, JsonRepresentation, JsonRepresentation)
+[#buildResponseTo_IResourceContext_ManagedCollection_JsonRepresentation_JsonRepresentation_MediaType]
+=== buildResponseTo(IResourceContext, ManagedCollection, JsonRepresentation, JsonRepresentation, MediaType)
 
 Not API
 
-[#buildResponseTo_IResourceContext_ObjectAndActionInvocation_JsonRepresentation_JsonRepresentation]
-=== buildResponseTo(IResourceContext, ObjectAndActionInvocation, JsonRepresentation, JsonRepresentation)
+[#buildResponseTo_IResourceContext_ObjectAndActionInvocation_JsonRepresentation_JsonRepresentation_MediaType]
+=== buildResponseTo(IResourceContext, ObjectAndActionInvocation, JsonRepresentation, JsonRepresentation, MediaType)
 
 Not API
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc
index 5b5ca74..fdf99dc 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc
@@ -8,11 +8,11 @@
 ----
 class ContentNegotiationServiceOrgApacheCausewayV2 {
   public static final String ACCEPT_PROFILE;     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedCollection managedCollection)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedCollection managedCollection)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
   boolean canAccept(IResourceContext resourceContext)
 }
 ----
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc
deleted file mode 100644
index 6965204..0000000
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc
+++ /dev/null
@@ -1,19 +0,0 @@
-= ContentNegotiationServiceOrgApacheIsisV1
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
-== API
-
-[source,java]
-.ContentNegotiationServiceOrgApacheIsisV1.java
-----
-class ContentNegotiationServiceOrgApacheIsisV1 {
-  public static final String ACCEPT_PROFILE;
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedProperty objectAndProperty)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedCollection managedCollection)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedAction objectAndAction)
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)
-}
-----
-
-include::hooks/ContentNegotiationServiceOrgApacheIsisV1_usage-notes.adoc[]
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc
index 632a8fe..304700a 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc
@@ -14,8 +14,8 @@
 ----
 class ContentNegotiationServiceXRoDomainType {
   public static final String X_RO_DOMAIN_TYPE;
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
-  Response.ResponseBuilder buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ManagedObject objectAdapter)     // <.>
+  ResponseEntity<Object> buildResponse(IResourceContext resourceContext, ObjectAndActionInvocation objectAndActionInvocation)     // <.>
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.adoc
index f418ad2..5e9530a 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.adoc
@@ -10,7 +10,7 @@
 ----
 class SwaggerServiceDefault {
   public static final String LOGICAL_TYPE_NAME;     // <.>
-  SwaggerServiceDefault(OpenApiSpecGenerator swaggerSpecGenerator, RestEasyConfiguration restEasyConfiguration, WebAppContextPath webAppContextPath)
+  SwaggerServiceDefault(OpenApiSpecGenerator swaggerSpecGenerator, CausewayConfiguration causewayConfiguration, WebAppContextPath webAppContextPath)
   String generateSwaggerSpec(Visibility visibility, Format format)
 }
 ----
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc
index 224a22b..acbe386 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc
@@ -8,7 +8,7 @@
 ----
 class SwaggerServiceMenu {
   public static final String LOGICAL_TYPE_NAME;
-  SwaggerServiceMenu(SwaggerService swaggerService, ServiceRegistry serviceRegistry, RestEasyConfiguration restEasyConfiguration)
+  SwaggerServiceMenu(SwaggerService swaggerService, ServiceRegistry serviceRegistry, CausewayConfiguration causewayConfiguration)
   String disableReasonWhenRequiresROViewer()
 }
 ----
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc
index cdffd96..9a521b3 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc
@@ -20,17 +20,17 @@
 <.> xref:#asAdapter_ObjectSpecification_JsonRepresentation_JsonValueConverter_Context[asAdapter(ObjectSpecification, JsonRepresentation, JsonValueConverter_Context)]
 +
 --
-The value recovered from xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] as xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] honoring _Context_ , otherwise `null` .
+The value recovered from xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] as xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] honoring _JsonValueConverter.Context_ , otherwise `null` .
 --
 <.> xref:#appendValueAndFormat_ManagedObject_JsonRepresentation_JsonValueConverter_Context[appendValueAndFormat(ManagedObject, JsonRepresentation, JsonValueConverter_Context)]
 +
 --
-Appends given value type representing xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] to given xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] honoring _Context_ .
+Appends given value type representing xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] to given xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] honoring _JsonValueConverter.Context_ .
 --
 <.> xref:#asObject_ManagedObject_JsonValueConverter_Context[asObject(ManagedObject, JsonValueConverter_Context)]
 +
 --
-A _JsonNode_ or otherwise natively supported simple type from given xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] , honoring _Context_ .
+A _JsonNode_ or otherwise natively supported simple type from given xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] , honoring _JsonValueConverter.Context_ .
 --
 
 == Members
@@ -38,14 +38,14 @@
 [#asAdapter_ObjectSpecification_JsonRepresentation_JsonValueConverter_Context]
 === asAdapter(ObjectSpecification, JsonRepresentation, JsonValueConverter_Context)
 
-The value recovered from xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] as xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] honoring _Context_ , otherwise `null` .
+The value recovered from xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] as xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] honoring _JsonValueConverter.Context_ , otherwise `null` .
 
 [#appendValueAndFormat_ManagedObject_JsonRepresentation_JsonValueConverter_Context]
 === appendValueAndFormat(ManagedObject, JsonRepresentation, JsonValueConverter_Context)
 
-Appends given value type representing xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] to given xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] honoring _Context_ .
+Appends given value type representing xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] to given xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation] honoring _JsonValueConverter.Context_ .
 
 [#asObject_ManagedObject_JsonValueConverter_Context]
 === asObject(ManagedObject, JsonValueConverter_Context)
 
-A _JsonNode_ or otherwise natively supported simple type from given xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] , honoring _Context_ .
+A _JsonNode_ or otherwise natively supported simple type from given xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject] , honoring _JsonValueConverter.Context_ .
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc
index 951dda3..e2b8393 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc
@@ -7,6 +7,7 @@
 .CausewayModuleViewerRestfulObjectsViewer.java
 ----
 class CausewayModuleViewerRestfulObjectsViewer {
+  ExceptionResponseFactory exceptionResponseFactory(List<RootCauseFinder> rootCauseFinders)
 }
 ----
 
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/webmodule/WebModuleJaxrsResteasy.adoc b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.adoc
similarity index 79%
rename from antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/webmodule/WebModuleJaxrsResteasy.adoc
rename to antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.adoc
index 6ce9f50..287dc13 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/jaxrsresteasy/webmodule/WebModuleJaxrsResteasy.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.adoc
@@ -1,4 +1,4 @@
-= WebModuleJaxrsResteasy
+= WebModuleRestfulObjects
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 WebModule that provides the RestfulObjects Viewer.
@@ -6,10 +6,10 @@
 == API
 
 [source,java]
-.WebModuleJaxrsResteasy.java
+.WebModuleRestfulObjects.java
 ----
-class WebModuleJaxrsResteasy {
-  WebModuleJaxrsResteasy(CausewayConfiguration causewayConfiguration, RestEasyConfiguration restEasyConfiguration, ServiceInjector serviceInjector)
+class WebModuleRestfulObjects {
+  WebModuleRestfulObjects(CausewayConfiguration causewayConfiguration, ServiceInjector serviceInjector)
   void prepare(WebModuleContext ctx)
   Can<ServletContextListener> init(ServletContext ctx)
 }
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc b/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
index bc625d0..573912c 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
@@ -1,4 +1,4 @@
-= DeepLinkServiceWicket
+= DeepLinkServiceWicket _(record)_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 An implementation of xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService] for Wicket Viewer.
@@ -8,7 +8,7 @@
 [source,java]
 .DeepLinkServiceWicket.java
 ----
-class DeepLinkServiceWicket {
+record DeepLinkServiceWicket {
   URI deepLinkFor(Object domainObject)
 }
 ----
diff --git a/antora/components/relnotes/modules/ROOT/pages/2025/4.0.0-M1/relnotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2025/4.0.0-M1/relnotes.adoc
index 54f9101..073f3df 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2025/4.0.0-M1/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2025/4.0.0-M1/relnotes.adoc
@@ -4,10 +4,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 :page-partial:
 
-
-[[r4.0.0-M1]]
-= 4.0.0-M1
-
 Apache Causeeway v4 is based on Spring Boot v4.
 In this milestone release, much of the porting has been done, now based on Spring Boot 4.0.0-M3.
 
diff --git a/antora/playbooks/site.yml b/antora/playbooks/site.yml
index c8aa170..2a30c34 100644
--- a/antora/playbooks/site.yml
+++ b/antora/playbooks/site.yml
@@ -184,9 +184,6 @@
       start_path: persistence/jpa/adoc
       branches: HEAD
     - url: .
-      start_path: persistence/jdo/adoc
-      branches: HEAD
-    - url: .
       start_path: persistence/querydsl/adoc
       branches: HEAD
 
@@ -206,9 +203,6 @@
       start_path: security/simple/src/main/adoc # security
       branches: HEAD
     - url: .
-      start_path: security/shiro/src/main/adoc # security
-      branches: HEAD
-    - url: .
       start_path: security/keycloak/src/main/adoc # security
       branches: HEAD
     - url: .
@@ -258,9 +252,6 @@
       start_path: valuetypes/asciidoc/adoc # valuetypes
       branches: HEAD
     - url: .
-      start_path: valuetypes/jodatime/adoc # valuetypes
-      branches: HEAD
-    - url: .
       start_path: valuetypes/markdown/adoc # valuetypes
       branches: HEAD
     - url: .
diff --git a/antora/supplemental-ui/index.html b/antora/supplemental-ui/index.html
index b6e32bf..231e835 100644
--- a/antora/supplemental-ui/index.html
+++ b/antora/supplemental-ui/index.html
@@ -566,92 +566,99 @@
   <!--==========================
     Call To Action
   ============================-->
-  <section id="call-to-action" class="wow fadeInUp">
-    <div class="container">
-      <div class="row">
-        <div class="col-lg-12 text-center text-lg-left">
-          <h3 class="cta-title">Quick Start</h3>
+    <section id="call-to-action" class="wow fadeInUp">
+        <div class="container">
+            <div class="row">
+                <div class="col-lg-12 text-center text-lg-left">
+                    <h3 class="cta-title">Quick Start</h3>
 
-          <div class="row">
-            <div class="col-lg-12 text-left text-lg-left">
-              <p class="cta-text text-center" style="margin-block-end: 0; ">
-                Prereqs: v3.x: Java 17 and Maven 3.6+<br/>
-                We recommend you try out using Linux, MacOS or WSL2 <br/>
-                (to <a href="https://github.com/spring-projects/spring-boot/issues/17766">avoid exceeding</a> Windows' limits due to classpath length).
-              </p>
-              <br/>
-            </div>
-            <div class="col-lg-6 text-left text-lg-left">
-              <h4 class="cta-text">Try out ...</h4>
-                <p class="cta-text text-left" style="margin-block-end: 0; ">
-                  Try out the framework with the minimal <a href="docs/latest/starters/helloworld.html">helloworld</a> starter&nbsp;app.
-                  <p>
-                  <p class="cta-text text-left" style="margin-block-end: 0; ">
-                    Run it locally using:
-                  <pre id="helloworld-docker-text"  style="margin-top: 5px">
+                    <div class="row">
+                        <div class="col-lg-6 text-left text-lg-left">
+                            <h4 class="cta-text">Try out ...</h4>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Try out the framework with the minimal <a href="docs/latest/starters/helloworld.html">helloworld</a> starter&nbsp;app.
+                            <p>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Run it locally using:
+                            <pre id="helloworld-docker-text"  style="margin-top: 5px">
 docker run -p 8080:8080 apache/causeway-app-helloworld:latest</pre>
-                <p>
-                <p class="cta-text text-left" style="margin-block-end: 0; ">
-                    Build from source using:
-                <pre id="helloworld-jpa-text">
+                            <p>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Build from source (prereqs below) using:
+                            <pre id="helloworld-jpa-text"  style="margin-top: 5px">
 APP=causeway-app-helloworld
-VARIANT="3-jpa"
-curl https://codeload.github.com/apache/$APP/zip/v$VARIANT | jar xv
-cd $APP-$VARIANT
+VER="3-jpa"                  # or "4-jpa"
+curl https://codeload.github.com/apache/$APP/zip/v$VER | jar xv
+cd $APP-$VER
 
 mvn clean install -Dskip.staging -Dskip.nightly
 mvn spring-boot:run</pre>
-            </div>
-            <div class="col-lg-6 text-left text-lg-left">
-                <h4 class="cta-text">Develop your own ...</h4>
-              <p class="cta-text text-left" style="margin-block-end: 0; ">
-                Develop your own app with the structured <a href="docs/latest/starters/simpleapp.html">simpleapp</a> starter&nbsp;app.
-                <p>
-                <p class="cta-text text-left" style="margin-block-end: 0; ">
-                Run it locally using:
-                <pre id="simpleapp-docker-jpa-text"  style="margin-top: 5px">
+                        </div>
+                        <div class="col-lg-6 text-left text-lg-left">
+                            <h4 class="cta-text">Develop your own ...</h4>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Develop your own app with the structured <a href="docs/latest/starters/simpleapp.html">simpleapp</a> starter&nbsp;app.
+                            <p>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Run it locally using:
+                            <pre id="simpleapp-docker-jpa-text"  style="margin-top: 5px">
 docker run -p 8080:8080 apache/causeway-app-simpleapp:latest</pre>
-                <p>
-                <p class="cta-text text-left" style="margin-block-end: 0; ">
-                    Build from source using:
-              <pre id="simpleapp-jpa-text">
+                            <p>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Build from source (prereqs below) using:
+                            <pre id="simpleapp-jpa-text"  style="margin-top: 5px">
 APP=causeway-app-simpleapp
-VARIANT="3-jpa"
-curl https://codeload.github.com/apache/$APP/zip/v$VARIANT | jar xv
-cd $APP-$VARIANT
+VER="3-jpa"                  # or "4-jpa"
+curl https://codeload.github.com/apache/$APP/zip/v$VER | jar xv
+cd $APP-$VER
 
 mvn clean install -Dskip.staging -Dskip.nightly
 mvn -pl webapp spring-boot:run</pre>
-            </div>
-          </div>
-          <div class="row">
-              <div class="col-lg-2 text-left text-lg-left">
-              </div>
-              <div class="col-lg-8 text-left text-lg-left">
-                  <h4 class="cta-text" style="margin-top: 20px">Learn and Explore...</h4>
-                <p class="cta-text text-left" style="margin-block-end: 0; margin-top: 20px;">
-                  You can also explore the Apache Causeway™ programming model through the reference app, which illustrates many of the framework's annotations and programming conventions.
-                  <br/>
-                  <p class="cta-text text-left" style="margin-block-end: 0; ">
-                  <pre id="demoapp-docker-text"  style="margin-top: 5px">
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-lg-6 text-left text-lg-left">
+                            <h4 class="cta-text" style="margin-top: 20px">Build Prereqs</h4>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                The prereqs are Java 17 and Maven 3.x.  You could start off by building within a container (files accessible at <span style="font-family: "Courier New", Courier, monospace">/tmp/causeway</span>):<br/>
+                            <pre id="docker-container-text"  style="margin-top: 5px">
+mkdir /tmp/causeway
+docker run -p8080:8080 -v /tmp/causeway:/tmp \
+    -it --platform linux/amd64 eclipse-temurin:21-jdk /bin/bash</pre>
+                            </p>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                and then within the container:<br/>
+                            <pre id="docker-prereqs-text"  style="margin-top: 5px">
+apt update && apt install -y curl zip unzip vim
+curl -s "https://get.sdkman.io" | bash
+source "$HOME/.sdkman/bin/sdkman-init.sh"
+sdk install maven 3.9.11
+sdk install mvnd 1.0.3
+cd /tmp
+</pre>
+                            </p>
+                        </div>
+                        <div class="col-lg-6 text-left text-lg-left">
+                            <h4 class="cta-text" style="margin-top: 20px">Learn and Explore...</h4>
+                            <p class="cta-text text-left" style="margin-block-end: 0; margin-top: 20px;">
+                                You can also explore the Apache Causeway™ programming model through the demo app, which illustrates many of the framework's annotations and programming conventions.
+                            <p>
+                            <p class="cta-text text-left" style="margin-block-end: 0; ">
+                                Run it locally using:
+                            <pre id="demoapp-docker-text"  style="margin-top: 5px">
 docker run -p 8080:8080 apache/causeway-app-demo-jpa:latest</pre>
-                  <br/>
-                <p>
-              </div>
-              <div class="col-lg-2 text-left text-lg-left">
-              </div>
-          </div>
-            <div class="row">
-            <div class="col-lg-12 text-left text-lg-left">
-              <p class="cta-text text-center" style="margin-block-end: 0; margin-top: 20px;">
-                  <b>NOTE</b>: The online apps all scale to zero when not in use, so please allow up to a minute for it to restart if necessary.
-              </p>
+                            </p>
+                            <p class="cta-text text-left" style="margin-block-end: 0;">
+                                You might also want to download the programming model <a href="docs/latest/resources/cheatsheet.html">cheatsheet</a>.
+                            </p>
+                        </div>
+                        <div class="col-lg-2 text-left text-lg-left">
+                        </div>
+                    </div>
+                </div>
             </div>
-          </div>
         </div>
-      </div>
-    </div>
-  </section>
+    </section>
 
   <!--==========================
     Support
diff --git a/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/control/SyncControl.java b/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/control/SyncControl.java
index 9af288f..cb28960 100644
--- a/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/control/SyncControl.java
+++ b/api/applib/src/main/java/org/apache/causeway/applib/services/wrapper/control/SyncControl.java
@@ -53,6 +53,10 @@ public record SyncControl(
         ExceptionHandler exceptionHandler) {
 
     //TODO can this be further simplified, or is there already an API we can reuse?
+
+    /**
+     * @since 2.0 revised for 3.4 {@index}
+     */
     @FunctionalInterface
     public interface CommandListener {
         public void onCommand(
diff --git a/retired/scripts/build-site.sh b/build-site.sh
similarity index 100%
rename from retired/scripts/build-site.sh
rename to build-site.sh
diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index b031474..a4eacfd 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -44,7 +44,7 @@
 .Projects/Modules (App)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Starter Parent
 [source,yaml]
@@ -54,7 +54,8 @@
 Type: pom
 Directory: /starters
 ----
-|Parent pom providing dependency and plugin management for Apache Causeway applications
+|Parent pom providing dependency and plugin management for Apache
+Causeway applications
 built with Maven. Builds on top of spring-boot-starter-parent.
 |===
 
@@ -107,7 +108,7 @@
 .Projects/Modules (Mavendeps)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Maven Deps
 [source,yaml]
@@ -195,12 +196,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Testing.ApacheCausewayTstFakeDataintegtests>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Testing.ApacheCausewayTstFakeDataparent>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -286,7 +281,6 @@
 }
 
 rectangle "Testing\n<size:10>[Software System]</size>" <<Testing>> {
-  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
   rectangle "==Apache Causeway Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstHSQLDBManagerparent>> as Testing.ApacheCausewayTstHSQLDBManagerparent
@@ -296,15 +290,15 @@
   rectangle "==Apache Causeway Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstSpecCucumberparent>> as Testing.ApacheCausewayTstSpecCucumberparent
   rectangle "==Apache Causeway Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstSpecCucumberapplib>> as Testing.ApacheCausewayTstSpecCucumberapplib
   rectangle "==Apache Causeway Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstUnitTestSupportparent>> as Testing.ApacheCausewayTstUnitTestSupportparent
-  rectangle "==Apache Causeway Testing\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTesting>> as Testing.ApacheCausewayTesting
   rectangle "==Apache Causeway Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstUnitTestSupportapplib>> as Testing.ApacheCausewayTstUnitTestSupportapplib
+  rectangle "==Apache Causeway Testing\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTesting>> as Testing.ApacheCausewayTesting
   rectangle "==Apache Causeway Tst - Architecture Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstArchitectureTestSupportparent>> as Testing.ApacheCausewayTstArchitectureTestSupportparent
   rectangle "==Apache Causeway Tst - Architecture Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstArchitectureTestSupportapplib>> as Testing.ApacheCausewayTstArchitectureTestSupportapplib
   rectangle "==Apache Causeway Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstFakeDataparent>> as Testing.ApacheCausewayTstFakeDataparent
   rectangle "==Apache Causeway Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFakeDataapplib>> as Testing.ApacheCausewayTstFakeDataapplib
   rectangle "==Apache Causeway Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFakeDatafixtures>> as Testing.ApacheCausewayTstFakeDatafixtures
-  rectangle "==Apache Causeway Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFakeDataintegtests>> as Testing.ApacheCausewayTstFakeDataintegtests
   rectangle "==Apache Causeway Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstFixturesparent>> as Testing.ApacheCausewayTstFixturesparent
+  rectangle "==Apache Causeway Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFixturesapplib>> as Testing.ApacheCausewayTstFixturesapplib
 }
 
 Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstArchitectureTestSupportparent : "<color:#707070>"
@@ -318,7 +312,6 @@
 Testing.ApacheCausewayTstArchitectureTestSupportparent .[#707070,thickness=2].> Testing.ApacheCausewayTstArchitectureTestSupportapplib : "<color:#707070>"
 Testing.ApacheCausewayTstFakeDataparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDataapplib : "<color:#707070>"
 Testing.ApacheCausewayTstFakeDataparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDatafixtures : "<color:#707070>"
-Testing.ApacheCausewayTstFakeDataparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDataintegtests : "<color:#707070>"
 Testing.ApacheCausewayTstFixturesparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFixturesapplib : "<color:#707070>"
 Testing.ApacheCausewayTstH2Consoleparent .[#707070,thickness=2].> Testing.ApacheCausewayTstH2Consoleui : "<color:#707070>"
 Testing.ApacheCausewayTstHSQLDBManagerparent .[#707070,thickness=2].> Testing.ApacheCausewayTstHSQLDBManager : "<color:#707070>"
@@ -331,7 +324,7 @@
 .Projects/Modules (Testing)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Testing
 [source,yaml]
@@ -367,7 +360,6 @@
 com.tngtech.archunit:archunit-junit5-engine:jar:<managed> +
 org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-applib:jar:<managed> +
-org.apache.causeway.persistence:causeway-persistence-jdo-integration:jar:<managed> +
 org.apache.causeway.persistence:causeway-persistence-jpa-integration:jar:<managed> +
 org.slf4j:slf4j-api:jar:<managed> +
 org.springframework:spring-test:jar:<managed> +
@@ -376,7 +368,7 @@
 
 .Document Index Entries
 ****
-xref:refguide:testing:index/archtestsupport/applib/CausewayModuleTestingArchTestSupportApplib.adoc[CausewayModuleTestingArchTestSupportApplib], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureDomainRules.adoc[ArchitectureDomainRules], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureJdoRules.adoc[ArchitectureJdoRules], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureJpaRules.adoc[ArchitectureJpaRules], xref:refguide:testing:index/archtestsupport/applib/modulerules/ArchitectureModuleRules.adoc[ArchitectureModuleRules], xref:refguide:testing:index/archtestsupport/applib/modulerules/Subpackage.adoc[Subpackage], xref:refguide:testing:index/archtestsupport/applib/modulerules/SubpackageEnum.adoc[SubpackageEnum]
+xref:refguide:testing:index/archtestsupport/applib/CausewayModuleTestingArchTestSupportApplib.adoc[CausewayModuleTestingArchTestSupportApplib], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureDomainRules.adoc[ArchitectureDomainRules], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureJpaRules.adoc[ArchitectureJpaRules], xref:refguide:testing:index/archtestsupport/applib/modulerules/ArchitectureModuleRules.adoc[ArchitectureModuleRules], xref:refguide:testing:index/archtestsupport/applib/modulerules/Subpackage.adoc[Subpackage], xref:refguide:testing:index/archtestsupport/applib/modulerules/SubpackageEnum.adoc[SubpackageEnum]
 ****
 
 |Apache Causeway Tst - FakeData (parent)
@@ -413,7 +405,7 @@
 
 .Document Index Entries
 ****
-xref:refguide:testing:index/fakedata/applib/CausewayModuleTestingFakeDataApplib.adoc[CausewayModuleTestingFakeDataApplib], xref:refguide:testing:index/fakedata/applib/services/AbstractRandomValueGenerator.adoc[AbstractRandomValueGenerator], xref:refguide:testing:index/fakedata/applib/services/Addresses.adoc[Addresses], xref:refguide:testing:index/fakedata/applib/services/BigDecimals.adoc[BigDecimals], xref:refguide:testing:index/fakedata/applib/services/BigIntegers.adoc[BigIntegers], xref:refguide:testing:index/fakedata/applib/services/Books.adoc[Books], xref:refguide:testing:index/fakedata/applib/services/Booleans.adoc[Booleans], xref:refguide:testing:index/fakedata/applib/services/Bytes.adoc[Bytes], xref:refguide:testing:index/fakedata/applib/services/CausewayBlobs.adoc[CausewayBlobs], xref:refguide:testing:index/fakedata/applib/services/CausewayClobs.adoc[CausewayClobs], xref:refguide:testing:index/fakedata/applib/services/CausewayPasswords.adoc[CausewayPasswords], xref:refguide:testing:index/fakedata/applib/services/Chars.adoc[Chars], xref:refguide:testing:index/fakedata/applib/services/Collections.adoc[Collections], xref:refguide:testing:index/fakedata/applib/services/Comms.adoc[Comms], xref:refguide:testing:index/fakedata/applib/services/CreditCards.adoc[CreditCards], xref:refguide:testing:index/fakedata/applib/services/Doubles.adoc[Doubles], xref:refguide:testing:index/fakedata/applib/services/Enums.adoc[Enums], xref:refguide:testing:index/fakedata/applib/services/FakeDataService.adoc[FakeDataService], xref:refguide:testing:index/fakedata/applib/services/Floats.adoc[Floats], xref:refguide:testing:index/fakedata/applib/services/Integers.adoc[Integers], xref:refguide:testing:index/fakedata/applib/services/JavaSqlDates.adoc[JavaSqlDates], xref:refguide:testing:index/fakedata/applib/services/JavaSqlTimestamps.adoc[JavaSqlTimestamps], xref:refguide:testing:index/fakedata/applib/services/JavaTimeDateTimes.adoc[JavaTimeDateTimes], xref:refguide:testing:index/fakedata/applib/services/JavaTimeLocalDates.adoc[JavaTimeLocalDates], xref:refguide:testing:index/fakedata/applib/services/JavaTimePeriods.adoc[JavaTimePeriods], xref:refguide:testing:index/fakedata/applib/services/JavaUtilDates.adoc[JavaUtilDates], xref:refguide:testing:index/fakedata/applib/services/JodaDateTimes.adoc[JodaDateTimes], xref:refguide:testing:index/fakedata/applib/services/JodaLocalDates.adoc[JodaLocalDates], xref:refguide:testing:index/fakedata/applib/services/JodaPeriods.adoc[JodaPeriods], xref:refguide:testing:index/fakedata/applib/services/Longs.adoc[Longs], xref:refguide:testing:index/fakedata/applib/services/Lorem.adoc[Lorem], xref:refguide:testing:index/fakedata/applib/services/Names.adoc[Names], xref:refguide:testing:index/fakedata/applib/services/Shorts.adoc[Shorts], xref:refguide:testing:index/fakedata/applib/services/Strings.adoc[Strings], xref:refguide:testing:index/fakedata/applib/services/Urls.adoc[Urls], xref:refguide:testing:index/fakedata/applib/services/Uuids.adoc[Uuids]
+xref:refguide:testing:index/fakedata/applib/CausewayModuleTestingFakeDataApplib.adoc[CausewayModuleTestingFakeDataApplib], xref:refguide:testing:index/fakedata/applib/services/AbstractRandomValueGenerator.adoc[AbstractRandomValueGenerator], xref:refguide:testing:index/fakedata/applib/services/Addresses.adoc[Addresses], xref:refguide:testing:index/fakedata/applib/services/BigDecimals.adoc[BigDecimals], xref:refguide:testing:index/fakedata/applib/services/BigIntegers.adoc[BigIntegers], xref:refguide:testing:index/fakedata/applib/services/Books.adoc[Books], xref:refguide:testing:index/fakedata/applib/services/Booleans.adoc[Booleans], xref:refguide:testing:index/fakedata/applib/services/Bytes.adoc[Bytes], xref:refguide:testing:index/fakedata/applib/services/CausewayBlobs.adoc[CausewayBlobs], xref:refguide:testing:index/fakedata/applib/services/CausewayClobs.adoc[CausewayClobs], xref:refguide:testing:index/fakedata/applib/services/CausewayPasswords.adoc[CausewayPasswords], xref:refguide:testing:index/fakedata/applib/services/Chars.adoc[Chars], xref:refguide:testing:index/fakedata/applib/services/Collections.adoc[Collections], xref:refguide:testing:index/fakedata/applib/services/Comms.adoc[Comms], xref:refguide:testing:index/fakedata/applib/services/CreditCards.adoc[CreditCards], xref:refguide:testing:index/fakedata/applib/services/Doubles.adoc[Doubles], xref:refguide:testing:index/fakedata/applib/services/Enums.adoc[Enums], xref:refguide:testing:index/fakedata/applib/services/FakeDataService.adoc[FakeDataService], xref:refguide:testing:index/fakedata/applib/services/Floats.adoc[Floats], xref:refguide:testing:index/fakedata/applib/services/Integers.adoc[Integers], xref:refguide:testing:index/fakedata/applib/services/JavaSqlDates.adoc[JavaSqlDates], xref:refguide:testing:index/fakedata/applib/services/JavaSqlTimestamps.adoc[JavaSqlTimestamps], xref:refguide:testing:index/fakedata/applib/services/JavaUtilDates.adoc[JavaUtilDates], xref:refguide:testing:index/fakedata/applib/services/LocalDates.adoc[LocalDates], xref:refguide:testing:index/fakedata/applib/services/Longs.adoc[Longs], xref:refguide:testing:index/fakedata/applib/services/Lorem.adoc[Lorem], xref:refguide:testing:index/fakedata/applib/services/Names.adoc[Names], xref:refguide:testing:index/fakedata/applib/services/OffsetDateTimes.adoc[OffsetDateTimes], xref:refguide:testing:index/fakedata/applib/services/Periods.adoc[Periods], xref:refguide:testing:index/fakedata/applib/services/Shorts.adoc[Shorts], xref:refguide:testing:index/fakedata/applib/services/Strings.adoc[Strings], xref:refguide:testing:index/fakedata/applib/services/Urls.adoc[Urls], xref:refguide:testing:index/fakedata/applib/services/Uuids.adoc[Uuids], xref:refguide:testing:index/fakedata/applib/services/ZonedDateTimes.adoc[ZonedDateTimes]
 ****
 
 |Apache Causeway Tst - FakeData (fixtures)
@@ -427,28 +419,12 @@
 |.Dependencies
 ****
 org.apache.causeway.core:causeway-applib:jar:<managed> +
-org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
+org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 org.projectlombok:lombok:jar:<managed> +
 ****
 
-|Apache Causeway Tst - FakeData (integ tests)
-[source,yaml]
-----
-Group: org.apache.causeway.testing
-Artifact: causeway-testing-fakedata-integtests
-Type: jar
-Directory: /testing/fakedata/integtests
-----
-|.Dependencies
-****
-org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fakedata-fixtures:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-****
-
 |Apache Causeway Tst - Fixtures (parent)
 [source,yaml]
 ----
@@ -476,16 +452,14 @@
 
 .Dependencies
 ****
-joda-time:joda-time:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
-org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
 org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
 ****
 
 .Document Index Entries
 ****
-xref:refguide:testing:index/fixtures/applib/CausewayIntegrationGwtAbstractWithFixtures.adoc[CausewayIntegrationGwtAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/CausewayIntegrationTestAbstractWithFixtures.adoc[CausewayIntegrationTestAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/CausewayModuleTestingFixturesApplib.adoc[CausewayModuleTestingFixturesApplib], xref:refguide:testing:index/fixtures/applib/events/FixturesInstalledEvent.adoc[FixturesInstalledEvent], xref:refguide:testing:index/fixtures/applib/events/FixturesInstallingEvent.adoc[FixturesInstallingEvent], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParameters.adoc[ExecutionParameters], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc[ExecutionParametersDefault], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersService.adoc[ExecutionParametersService], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureResult.adoc[FixtureResult], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureResultList.adoc[FixtureResultList], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScript.adoc[FixtureScript], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptWithExecutionStrategy.adoc[FixtureScriptWithExecutionStrategy], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc[FixtureScript.ExecutionContext], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts.adoc[FixtureScripts], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptsSpecification.adoc[FixtureScriptsSpecification], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc[FixtureScriptsSpecificationProviderAutoConfiguration], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts_MultipleExecutionStrategy.adoc[FixtureScripts.MultipleExecutionStrategy], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts_NonPersistedObjectsStrategy.adoc[FixtureScripts.NonPersistedObjectsStrategy], xref:refguide:testing:index/fixtures/applib/modules/ModuleWithFixtures.adoc[ModuleWithFixtures], xref:refguide:testing:index/fixtures/applib/modules/ModuleWithFixturesService.adoc[ModuleWithFixturesService], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptAbstract.adoc[BuilderScriptAbstract], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptWithResult.adoc[BuilderScriptWithResult], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptWithoutResult.adoc[BuilderScriptWithoutResult], xref:refguide:testing:index/fixtures/applib/personas/Persona.adoc[Persona], xref:refguide:testing:index/fixtures/applib/personas/PersonaWithBuilderScript.adoc[PersonaWithBuilderScript], xref:refguide:testing:index/fixtures/applib/personas/PersonaWithFinder.adoc[PersonaWithFinder], xref:refguide:testing:index/fixtures/applib/queryresultscache/QueryResultsCacheControlForFixtures.adoc[QueryResultsCacheControlForFixtures], xref:refguide:testing:index/fixtures/applib/services/InitialFixtureScriptsInstaller.adoc[InitialFixtureScriptsInstaller], xref:refguide:testing:index/fixtures/applib/setup/PersonaEnumPersistAll.adoc[PersonaEnumPersistAll], xref:refguide:testing:index/fixtures/applib/teardown/jdo/TeardownFixtureJdoAbstract.adoc[TeardownFixtureJdoAbstract], xref:refguide:testing:index/fixtures/applib/teardown/jpa/TeardownFixtureJpaAbstract.adoc[TeardownFixtureJpaAbstract]
+xref:refguide:testing:index/fixtures/applib/CausewayIntegrationGwtAbstractWithFixtures.adoc[CausewayIntegrationGwtAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/CausewayIntegrationTestAbstractWithFixtures.adoc[CausewayIntegrationTestAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/CausewayModuleTestingFixturesApplib.adoc[CausewayModuleTestingFixturesApplib], xref:refguide:testing:index/fixtures/applib/events/FixturesInstalledEvent.adoc[FixturesInstalledEvent], xref:refguide:testing:index/fixtures/applib/events/FixturesInstallingEvent.adoc[FixturesInstallingEvent], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParameters.adoc[ExecutionParameters], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc[ExecutionParametersDefault], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersService.adoc[ExecutionParametersService], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureResult.adoc[FixtureResult], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureResultList.adoc[FixtureResultList], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScript.adoc[FixtureScript], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptWithExecutionStrategy.adoc[FixtureScriptWithExecutionStrategy], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc[FixtureScript.ExecutionContext], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts.adoc[FixtureScripts], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptsSpecification.adoc[FixtureScriptsSpecification], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc[FixtureScriptsSpecificationProviderAutoConfiguration], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts_MultipleExecutionStrategy.adoc[FixtureScripts.MultipleExecutionStrategy], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts_NonPersistedObjectsStrategy.adoc[FixtureScripts.NonPersistedObjectsStrategy], xref:refguide:testing:index/fixtures/applib/modules/ModuleWithFixtures.adoc[ModuleWithFixtures], xref:refguide:testing:index/fixtures/applib/modules/ModuleWithFixturesService.adoc[ModuleWithFixturesService], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptAbstract.adoc[BuilderScriptAbstract], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptWithResult.adoc[BuilderScriptWithResult], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptWithoutResult.adoc[BuilderScriptWithoutResult], xref:refguide:testing:index/fixtures/applib/personas/Persona.adoc[Persona], xref:refguide:testing:index/fixtures/applib/personas/PersonaWithBuilderScript.adoc[PersonaWithBuilderScript], xref:refguide:testing:index/fixtures/applib/personas/PersonaWithFinder.adoc[PersonaWithFinder], xref:refguide:testing:index/fixtures/applib/queryresultscache/QueryResultsCacheControlForFixtures.adoc[QueryResultsCacheControlForFixtures], xref:refguide:testing:index/fixtures/applib/services/InitialFixtureScriptsInstaller.adoc[InitialFixtureScriptsInstaller], xref:refguide:testing:index/fixtures/applib/setup/PersonaEnumPersistAll.adoc[PersonaEnumPersistAll], xref:refguide:testing:index/fixtures/applib/teardown/jpa/TeardownFixtureJpaAbstract.adoc[TeardownFixtureJpaAbstract]
 ****
 
 |Apache Causeway Tst - H2 Console (parent)
@@ -516,6 +490,7 @@
 com.h2database:h2:jar:<managed> +
 jakarta.servlet:jakarta.servlet-api:jar:<managed> +
 org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
+org.springframework.boot:spring-boot-jdbc:jar:<managed> +
 ****
 
 .Document Index Entries
@@ -560,7 +535,7 @@
 Type: pom
 Directory: /testing/integtestsupport
 ----
-|Support for writing integ tests in JUnit 5; should be added as a dependency with scope=test only
+|Support for writing integ tests in JUnit 6; should be added as a dependency with scope=test only
 
 |Apache Causeway Tst - Integ Test Support (applib)
 [source,yaml]
@@ -613,7 +588,7 @@
 io.cucumber:cucumber-java:jar:<managed> +
 io.cucumber:cucumber-junit-platform-engine:jar:<managed> +
 io.cucumber:cucumber-spring:jar:<managed> +
-io.cucumber:messages:jar:27.2.0 +
+io.cucumber:messages:jar:30.1.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> +
@@ -703,6 +678,12 @@
   BorderColor #2e6295
   shadowing false
 }
+skinparam rectangle<<Root.ApacheCausewayParent>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
+}
 skinparam rectangle<<Root.ApacheCausewaySupplementalLegalInfo>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -719,18 +700,20 @@
   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
+  rectangle "==Apache Causeway Parent\n<size:10>[Container: packaging: pom]</size>" <<Root.ApacheCausewayParent>> as Root.ApacheCausewayParent
   rectangle "==Apache Causeway Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<Root.ApacheCausewaySupplementalLegalInfo>> as Root.ApacheCausewaySupplementalLegalInfo
 }
 
 Root.ApacheCausewayAggregator .[#707070,thickness=2].> Root.ApacheCausewayAntora : "<color:#707070>"
 Root.ApacheCausewayAggregator .[#707070,thickness=2].> Root.ApacheCauseway : "<color:#707070>"
+Root.ApacheCausewayAggregator .[#707070,thickness=2].> Root.ApacheCausewayParent : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Root)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway (Aggregator)
 [source,yaml]
@@ -740,7 +723,8 @@
 Type: pom
 Directory: /
 ----
-|Convenience aggregator POM that references all modules, some explicitely,
+|Convenience aggregator POM that references all modules, some
+explicitely,
 others via profiles, that are not activiated per default.
 The parent POM of the core framework is bom/pom.xml.
 
@@ -763,7 +747,25 @@
 Directory: /bom
 ----
 |Apache Causeway Bill of Material (BOM).
-Also the parent POM for the core framework and extensions.
+All the build configuration goes into the parent POM,
+which inherits from this BOM and is the parent for the core framework
+and extensions.
+
+|Apache Causeway Parent
+[source,yaml]
+----
+Group: org.apache.causeway
+Artifact: causeway-parent
+Type: pom
+Directory: /parent
+----
+|Gathers all the framework build configuration, such that the BOM can be
+free of that.
+
+.Dependencies
+****
+org.projectlombok:lombok:jar:<managed> +
+****
 
 |Apache Causeway Supplemental - Legal Info
 [source,yaml]
@@ -821,7 +823,7 @@
 .Projects/Modules (Commons)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Commons
 [source,yaml]
@@ -859,11 +861,9 @@
 org.junit.jupiter:junit-jupiter-api:jar:<managed> +
 org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
 org.junit.jupiter:junit-jupiter-params:jar:<managed> +
-org.slf4j:slf4j-api:jar:<managed> +
 org.springframework:spring-context:jar:<managed> +
 org.springframework:spring-tx:jar:<managed> +
 org.springframework.boot:spring-boot-starter:jar:<managed> +
-org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
 org.yaml:snakeyaml:jar:<managed> +
 ****
 
@@ -940,6 +940,18 @@
   BorderColor #2e6295
   shadowing false
 }
+skinparam rectangle<<Core.ApacheCausewayCoreMetamodelTest>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
+}
+skinparam rectangle<<Core.ApacheCausewayCoreMetamodelTestSupport>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
+}
 skinparam rectangle<<Core.ApacheCausewayCoreRuntime>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -977,6 +989,8 @@
 }
 
 rectangle "Core\n<size:10>[Software System]</size>" <<Core>> {
+  rectangle "==Apache Causeway Core - Metamodel Test Support\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreMetamodelTestSupport>> as Core.ApacheCausewayCoreMetamodelTestSupport
+  rectangle "==Apache Causeway Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreRuntime>> as Core.ApacheCausewayCoreRuntime
   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
@@ -989,7 +1003,7 @@
   rectangle "==Apache Causeway Core - Interaction\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreInteraction>> as Core.ApacheCausewayCoreInteraction
   rectangle "==Apache Causeway Core - Internal Test Support\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreInternalTestSupport>> as Core.ApacheCausewayCoreInternalTestSupport
   rectangle "==Apache Causeway Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreMetaModel>> as Core.ApacheCausewayCoreMetaModel
-  rectangle "==Apache Causeway Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreRuntime>> as Core.ApacheCausewayCoreRuntime
+  rectangle "==Apache Causeway Core - Metamodel Test\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreMetamodelTest>> as Core.ApacheCausewayCoreMetamodelTest
 }
 
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayApiAppLib : "<color:#707070>"
@@ -998,6 +1012,8 @@
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreInteraction : "<color:#707070>"
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreInternalTestSupport : "<color:#707070>"
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreMetaModel : "<color:#707070>"
+Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreMetamodelTest : "<color:#707070>"
+Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreMetamodelTestSupport : "<color:#707070>"
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreRuntime : "<color:#707070>"
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreRuntimeServices : "<color:#707070>"
 Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreSecurity : "<color:#707070>"
@@ -1010,7 +1026,7 @@
 .Projects/Modules (Core)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Core
 [source,yaml]
@@ -1022,11 +1038,6 @@
 ----
 |Core framework, providing metamodel, runtime and core APIs.
 
-.Dependencies
-****
-org.projectlombok:lombok:jar:<managed> +
-****
-
 |Apache Causeway Api - AppLib
 [source,yaml]
 ----
@@ -1047,6 +1058,7 @@
 o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto +
 o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto +
 o.a.i.applib.services.commanddto.processor.spi.CommandDtoProcessorServiceIdentity +
+o.a.i.applib.services.jaxb.JaxbService$JaxbServiceInternal +
 o.a.i.applib.services.publishing.log.CommandLogger +
 o.a.i.applib.services.publishing.log.EntityChangesLogger +
 o.a.i.applib.services.publishing.log.EntityPropertyChangeLogger +
@@ -1064,16 +1076,15 @@
 ****
 jakarta.persistence:jakarta.persistence-api:jar:<managed> +
 jakarta.validation:jakarta.validation-api:jar:<managed> +
-jakarta.ws.rs:jakarta.ws.rs-api:jar:<managed> +
-joda-time:joda-time:jar:<managed> +
 org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-schema:jar:<managed> +
+org.springframework:spring-web:jar:<managed> +
 ****
 
 .Document Index Entries
 ****
-xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annotation/ActionLayout.adoc[ActionLayout], xref:refguide:applib:index/annotation/BookmarkPolicy.adoc[BookmarkPolicy], xref:refguide:applib:index/annotation/Bounding.adoc[Bounding], xref:refguide:applib:index/annotation/Collection.adoc[Collection], xref:refguide:applib:index/annotation/CollectionLayout.adoc[CollectionLayout], xref:refguide:applib:index/annotation/DomainObject.adoc[DomainObject], xref:refguide:applib:index/annotation/DomainObjectLayout.adoc[DomainObjectLayout], xref:refguide:applib:index/annotation/DomainService.adoc[DomainService], xref:refguide:applib:index/annotation/DomainServiceLayout.adoc[DomainServiceLayout], xref:refguide:applib:index/annotation/DomainServiceLayout_MenuBar.adoc[DomainServiceLayout.MenuBar], xref:refguide:applib:index/annotation/Domain_Exclude.adoc[Domain.Exclude], xref:refguide:applib:index/annotation/Domain_Include.adoc[Domain.Include], xref:refguide:applib:index/annotation/Editing.adoc[Editing], xref:refguide:applib:index/annotation/EntityChangeKind.adoc[EntityChangeKind], xref:refguide:applib:index/annotation/HomePage.adoc[HomePage], xref:refguide:applib:index/annotation/InteractionScope.adoc[InteractionScope], xref:refguide:applib:index/annotation/Introspection.adoc[Introspection], xref:refguide:applib:index/annotation/LabelPosition.adoc[LabelPosition], xref:refguide:applib:index/annotation/MemberSupport.adoc[MemberSupport], xref:refguide:applib:index/annotation/MinLength.adoc[MinLength], xref:refguide:applib:index/annotation/Module.adoc[Module], xref:refguide:applib:index/annotation/Nature.adoc[Nature], xref:refguide:applib:index/annotation/Navigable.adoc[Navigable], xref:refguide:applib:index/annotation/ObjectLifecycle.adoc[ObjectLifecycle], xref:refguide:applib:index/annotation/ObjectSupport.adoc[ObjectSupport], xref:refguide:applib:index/annotation/Optionality.adoc[Optionality], xref:refguide:applib:index/annotation/Parameter.adoc[Parameter], xref:refguide:applib:index/annotation/ParameterLayout.adoc[ParameterLayout], xref:refguide:applib:index/annotation/ParameterTuple.adoc[ParameterTuple], xref:refguide:applib:index/annotation/PrecedingParamsPolicy.adoc[PrecedingParamsPolicy], xref:refguide:applib:index/annotation/PriorityPrecedence.adoc[PriorityPrecedence], xref:refguide:applib:index/annotation/Programmatic.adoc[Programmatic], xref:refguide:applib:index/annotation/Projecting.adoc[Projecting], xref:refguide:applib:index/annotation/PromptStyle.adoc[PromptStyle], xref:refguide:applib:index/annotation/Property.adoc[Property], xref:refguide:applib:index/annotation/PropertyLayout.adoc[PropertyLayout], xref:refguide:applib:index/annotation/Publishing.adoc[Publishing], xref:refguide:applib:index/annotation/Repainting.adoc[Repainting], xref:refguide:applib:index/annotation/RestrictTo.adoc[RestrictTo], xref:refguide:applib:index/annotation/SemanticsOf.adoc[SemanticsOf], xref:refguide:applib:index/annotation/Snapshot.adoc[Snapshot], xref:refguide:applib:index/annotation/TimePrecision.adoc[TimePrecision], xref:refguide:applib:index/annotation/TimeZoneTranslation.adoc[TimeZoneTranslation], xref:refguide:applib:index/annotation/Title.adoc[Title], xref:refguide:applib:index/annotation/TransactionScope.adoc[TransactionScope], xref:refguide:applib:index/annotation/Value.adoc[Value], xref:refguide:applib:index/annotation/ValueSemantics.adoc[ValueSemantics], xref:refguide:applib:index/annotation/Where.adoc[Where], xref:refguide:applib:index/client/RepresentationTypeSimplifiedV2.adoc[RepresentationTypeSimplifiedV2], xref:refguide:applib:index/client/SuppressionType.adoc[SuppressionType], xref:refguide:applib:index/clock/VirtualClock.adoc[VirtualClock], xref:refguide:applib:index/domain/DomainObjectList.adoc[DomainObjectList], xref:refguide:applib:index/events/EventObjectBase.adoc[EventObjectBase], xref:refguide:applib:index/events/domain/AbstractDomainEvent.adoc[AbstractDomainEvent], xref:refguide:applib:index/events/domain/ActionDomainEvent.adoc[ActionDomainEvent], xref:refguide:applib:index/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent], xref:refguide:applib:index/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent], xref:refguide:applib:index/events/lifecycle/AbstractLifecycleEvent.adoc[AbstractLifecycleEvent], xref:refguide:applib:index/events/lifecycle/ObjectCreatedEvent.adoc[ObjectCreatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectLoadedEvent.adoc[ObjectLoadedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistedEvent.adoc[ObjectPersistedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistingEvent.adoc[ObjectPersistingEvent], xref:refguide:applib:index/events/lifecycle/ObjectRemovingEvent.adoc[ObjectRemovingEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatedEvent.adoc[ObjectUpdatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatingEvent.adoc[ObjectUpdatingEvent], xref:refguide:applib:index/events/ui/AbstractUiEvent.adoc[AbstractUiEvent], xref:refguide:applib:index/events/ui/CssClassUiEvent.adoc[CssClassUiEvent], xref:refguide:applib:index/events/ui/IconUiEvent.adoc[IconUiEvent], xref:refguide:applib:index/events/ui/LayoutUiEvent.adoc[LayoutUiEvent], xref:refguide:applib:index/events/ui/TitleUiEvent.adoc[TitleUiEvent], xref:refguide:applib:index/exceptions/RecoverableException.adoc[RecoverableException], xref:refguide:applib:index/exceptions/TranslatableException.adoc[TranslatableException], xref:refguide:applib:index/exceptions/UnrecoverableException.adoc[UnrecoverableException], xref:refguide:applib:index/exceptions/unrecoverable/BookmarkNotFoundException.adoc[BookmarkNotFoundException], xref:refguide:applib:index/exceptions/unrecoverable/DomainModelException.adoc[DomainModelException], xref:refguide:applib:index/exceptions/unrecoverable/MetaModelException.adoc[MetaModelException], xref:refguide:applib:index/exceptions/unrecoverable/NoAuthenticatorException.adoc[NoAuthenticatorException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectNotFoundException.adoc[ObjectNotFoundException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectPersistenceException.adoc[ObjectPersistenceException], xref:refguide:applib:index/exceptions/unrecoverable/PersistFailedException.adoc[PersistFailedException], xref:refguide:applib:index/exceptions/unrecoverable/ReflectiveActionException.adoc[ReflectiveActionException], xref:refguide:applib:index/exceptions/unrecoverable/RepositoryException.adoc[RepositoryException], xref:refguide:applib:index/exceptions/unrecoverable/UnexpectedCallException.adoc[UnexpectedCallException], xref:refguide:applib:index/exceptions/unrecoverable/UnknownTypeException.adoc[UnknownTypeException], xref:refguide:applib:index/fa/FontAwesomeLayers.adoc[FontAwesomeLayers], xref:refguide:applib:index/graph/Edge.adoc[Edge], xref:refguide:applib:index/graph/SimpleEdge.adoc[SimpleEdge], xref:refguide:applib:index/graph/Vertex.adoc[Vertex], xref:refguide:applib:index/graph/tree/TreeAdapter.adoc[TreeAdapter], xref:refguide:applib:index/graph/tree/TreeNode.adoc[TreeNode], xref:refguide:applib:index/graph/tree/TreePath.adoc[TreePath], xref:refguide:applib:index/graph/tree/TreeState.adoc[TreeState], xref:refguide:applib:index/id/HasLogicalType.adoc[HasLogicalType], xref:refguide:applib:index/id/LogicalType.adoc[LogicalType], xref:refguide:applib:index/jaxb/DataTypeFactory.adoc[DataTypeFactory], xref:refguide:applib:index/jaxb/JavaSqlJaxbAdapters.adoc[JavaSqlJaxbAdapters], xref:refguide:applib:index/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc[JavaSqlXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaTimeJaxbAdapters.adoc[JavaTimeJaxbAdapters], xref:refguide:applib:index/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc[JavaTimeXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaUtilJaxbAdapters.adoc[JavaUtilJaxbAdapters], xref:refguide:applib:index/jaxb/PersistentEntitiesAdapter.adoc[PersistentEntitiesAdapter], xref:refguide:applib:index/jaxb/PersistentEntityAdapter.adoc[PersistentEntityAdapter], xref:refguide:applib:index/jaxb/PrimitiveJaxbAdapters.adoc[PrimitiveJaxbAdapters], xref:refguide:applib:index/layout/LayoutConstants.adoc[LayoutConstants], xref:refguide:applib:index/layout/component/ActionLayoutData.adoc[ActionLayoutData], xref:refguide:applib:index/layout/component/ActionLayoutDataOwner.adoc[ActionLayoutDataOwner], xref:refguide:applib:index/layout/component/CollectionLayoutData.adoc[CollectionLayoutData], xref:refguide:applib:index/layout/component/CollectionLayoutDataOwner.adoc[CollectionLayoutDataOwner], xref:refguide:applib:index/layout/component/CssClassFaPosition.adoc[CssClassFaPosition], xref:refguide:applib:index/layout/component/DomainObjectLayoutData.adoc[DomainObjectLayoutData], xref:refguide:applib:index/layout/component/DomainObjectLayoutDataOwner.adoc[DomainObjectLayoutDataOwner], xref:refguide:applib:index/layout/component/FieldSet.adoc[FieldSet], xref:refguide:applib:index/layout/component/FieldSetOwner.adoc[FieldSetOwner], xref:refguide:applib:index/layout/component/HasBookmarking.adoc[HasBookmarking], xref:refguide:applib:index/layout/component/HasCssClass.adoc[HasCssClass], xref:refguide:applib:index/layout/component/HasCssClassFa.adoc[HasCssClassFa], xref:refguide:applib:index/layout/component/HasDescribedAs.adoc[HasDescribedAs], xref:refguide:applib:index/layout/component/HasHidden.adoc[HasHidden], xref:refguide:applib:index/layout/component/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/component/MemberRegion.adoc[MemberRegion], xref:refguide:applib:index/layout/component/MemberRegionOwner.adoc[MemberRegionOwner], xref:refguide:applib:index/layout/component/Owned.adoc[Owned], xref:refguide:applib:index/layout/component/Owner.adoc[Owner], xref:refguide:applib:index/layout/component/PropertyLayoutData.adoc[PropertyLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutData.adoc[ServiceActionLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutDataOwner.adoc[ServiceActionLayoutDataOwner], xref:refguide:applib:index/layout/grid/Grid.adoc[Grid], xref:refguide:applib:index/layout/grid/GridAbstract.adoc[GridAbstract], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFix.adoc[BSClearFix], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFixHidden.adoc[BSClearFixHidden], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFixVisible.adoc[BSClearFixVisible], xref:refguide:applib:index/layout/grid/bootstrap/BSCol.adoc[BSCol], xref:refguide:applib:index/layout/grid/bootstrap/BSElement.adoc[BSElement], xref:refguide:applib:index/layout/grid/bootstrap/BSElementAbstract.adoc[BSElementAbstract], xref:refguide:applib:index/layout/grid/bootstrap/BSGrid.adoc[BSGrid], xref:refguide:applib:index/layout/grid/bootstrap/BSRow.adoc[BSRow], xref:refguide:applib:index/layout/grid/bootstrap/BSRowContent.adoc[BSRowContent], xref:refguide:applib:index/layout/grid/bootstrap/BSRowContentOwner.adoc[BSRowContentOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSRowOwner.adoc[BSRowOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSTab.adoc[BSTab], xref:refguide:applib:index/layout/grid/bootstrap/BSTabGroup.adoc[BSTabGroup], xref:refguide:applib:index/layout/grid/bootstrap/BSTabGroupOwner.adoc[BSTabGroupOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSTabOwner.adoc[BSTabOwner], xref:refguide:applib:index/layout/grid/bootstrap/HasCssId.adoc[HasCssId], xref:refguide:applib:index/layout/grid/bootstrap/Size.adoc[Size], xref:refguide:applib:index/layout/grid/bootstrap/SizeSpan.adoc[SizeSpan], xref:refguide:applib:index/layout/grid/bootstrap/WithinGrid.adoc[WithinGrid], xref:refguide:applib:index/layout/links/Link.adoc[Link], xref:refguide:applib:index/layout/menubars/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/menubars/Menu.adoc[Menu], xref:refguide:applib:index/layout/menubars/MenuBar.adoc[MenuBar], xref:refguide:applib:index/layout/menubars/MenuBars.adoc[MenuBars], xref:refguide:applib:index/layout/menubars/MenuBarsAbstract.adoc[MenuBarsAbstract], xref:refguide:applib:index/layout/menubars/MenuSection.adoc[MenuSection], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenu.adoc[BSMenu], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuBar.adoc[BSMenuBar], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuBars.adoc[BSMenuBars], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuSection.adoc[BSMenuSection], xref:refguide:applib:index/locale/UserLocale.adoc[UserLocale], xref:refguide:applib:index/mixins/dto/Dto.adoc[Dto], xref:refguide:applib:index/mixins/dto/DtoMixinConstants.adoc[DtoMixinConstants], xref:refguide:applib:index/mixins/dto/Dto_downloadXml.adoc[Dto_downloadXml], xref:refguide:applib:index/mixins/dto/Dto_downloadXsd.adoc[Dto_downloadXsd], xref:refguide:applib:index/mixins/layout/Object_downloadLayout.adoc[Object_downloadLayout], xref:refguide:applib:index/mixins/metamodel/Object_downloadMetamodelXml.adoc[Object_downloadMetamodelXml], xref:refguide:applib:index/mixins/metamodel/Object_logicalTypeName.adoc[Object_logicalTypeName], xref:refguide:applib:index/mixins/metamodel/Object_objectIdentifier.adoc[Object_objectIdentifier], xref:refguide:applib:index/mixins/metamodel/Object_rebuildMetamodel.adoc[Object_rebuildMetamodel], xref:refguide:applib:index/mixins/rest/Object_openRestApi.adoc[Object_openRestApi], xref:refguide:applib:index/mixins/security/HasUsername.adoc[HasUsername], xref:refguide:applib:index/mixins/system/DomainChangeRecord.adoc[DomainChangeRecord], xref:refguide:applib:index/mixins/system/DomainChangeRecord_ChangeType.adoc[DomainChangeRecord.ChangeType], xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId], xref:refguide:applib:index/mixins/system/HasInteractionIdAndSequence.adoc[HasInteractionIdAndSequence], xref:refguide:applib:index/mixins/system/HasTarget_openTargetObject.adoc[HasTarget_openTargetObject], xref:refguide:applib:index/mixins/updates/OnUpdatedAt.adoc[OnUpdatedAt], xref:refguide:applib:index/mixins/updates/OnUpdatedBy.adoc[OnUpdatedBy], xref:refguide:applib:index/mixins/updates/OnUpdatedByAndAt.adoc[OnUpdatedByAndAt], xref:refguide:applib:index/query/AllInstancesQuery.adoc[AllInstancesQuery], xref:refguide:applib:index/query/NamedQuery.adoc[NamedQuery], xref:refguide:applib:index/query/Query.adoc[Query], xref:refguide:applib:index/query/QueryRange.adoc[QueryRange], xref:refguide:applib:index/services/acceptheader/AcceptHeaderService.adoc[AcceptHeaderService], xref:refguide:applib:index/services/appfeat/ApplicationFeature.adoc[ApplicationFeature], xref:refguide:applib:index/services/appfeat/ApplicationFeatureId.adoc[ApplicationFeatureId], xref:refguide:applib:index/services/appfeat/ApplicationFeatureRepository.adoc[ApplicationFeatureRepository], xref:refguide:applib:index/services/appfeat/ApplicationFeatureSort.adoc[ApplicationFeatureSort], xref:refguide:applib:index/services/appfeat/ApplicationMemberSort.adoc[ApplicationMemberSort], xref:refguide:applib:index/services/appfeatui/ApplicationFeatureMenu.adoc[ApplicationFeatureMenu], xref:refguide:applib:index/services/appfeatui/ApplicationFeatureViewModel.adoc[ApplicationFeatureViewModel], xref:refguide:applib:index/services/appfeatui/ApplicationNamespace.adoc[ApplicationNamespace], xref:refguide:applib:index/services/appfeatui/ApplicationType.adoc[ApplicationType], xref:refguide:applib:index/services/appfeatui/ApplicationTypeAction.adoc[ApplicationTypeAction], xref:refguide:applib:index/services/appfeatui/ApplicationTypeCollection.adoc[ApplicationTypeCollection], xref:refguide:applib:index/services/appfeatui/ApplicationTypeMember.adoc[ApplicationTypeMember], xref:refguide:applib:index/services/appfeatui/ApplicationTypeProperty.adoc[ApplicationTypeProperty], xref:refguide:applib:index/services/ascii/AsciiIdentifierService.adoc[AsciiIdentifierService], xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark], xref:refguide:applib:index/services/bookmark/BookmarkHolder.adoc[BookmarkHolder], xref:refguide:applib:index/services/bookmark/BookmarkHolder_lookup.adoc[BookmarkHolder_lookup], xref:refguide:applib:index/services/bookmark/BookmarkHolder_object.adoc[BookmarkHolder_object], xref:refguide:applib:index/services/bookmark/BookmarkService.adoc[BookmarkService], xref:refguide:applib:index/services/bookmark/HasTarget.adoc[HasTarget], xref:refguide:applib:index/services/bookmark/IdStringifier.adoc[IdStringifier], xref:refguide:applib:index/services/bookmark/Oid.adoc[Oid], xref:refguide:applib:index/services/bookmarkui/BookmarkUiService.adoc[BookmarkUiService], xref:refguide:applib:index/services/clock/ClockService.adoc[ClockService], xref:refguide:applib:index/services/columnorder/ColumnOrderTxtFileService.adoc[ColumnOrderTxtFileService], xref:refguide:applib:index/services/command/Command.adoc[Command], xref:refguide:applib:index/services/command/CommandExecutorService.adoc[CommandExecutorService], xref:refguide:applib:index/services/command/CommandExecutorService_InteractionContextPolicy.adoc[CommandExecutorService.InteractionContextPolicy], xref:refguide:applib:index/services/command/CommandOutcomeHandler.adoc[CommandOutcomeHandler], xref:refguide:applib:index/services/commanddto/HasCommandDto.adoc[HasCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto], xref:refguide:applib:index/services/commanddto/conmap/UserDataKeys.adoc[UserDataKeys], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc[CommandDtoProcessorForActionAbstract], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc[CommandDtoProcessorForPropertyAbstract], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[CommandDtoProcessorService], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc[CommandDtoProcessorServiceIdentity], xref:refguide:applib:index/services/confview/ConfigurationMenu.adoc[ConfigurationMenu], xref:refguide:applib:index/services/confview/ConfigurationProperty.adoc[ConfigurationProperty], xref:refguide:applib:index/services/confview/ConfigurationViewService.adoc[ConfigurationViewService], xref:refguide:applib:index/services/confview/ConfigurationViewmodel.adoc[ConfigurationViewmodel], xref:refguide:applib:index/services/conmap/ContentMappingService.adoc[ContentMappingService], xref:refguide:applib:index/services/email/EmailService.adoc[EmailService], xref:refguide:applib:index/services/error/ErrorDetails.adoc[ErrorDetails], xref:refguide:applib:index/services/error/ErrorReportingService.adoc[ErrorReportingService], xref:refguide:applib:index/services/error/SimpleTicket.adoc[SimpleTicket], xref:refguide:applib:index/services/error/Ticket.adoc[Ticket], xref:refguide:applib:index/services/eventbus/EventBusService.adoc[EventBusService], xref:refguide:applib:index/services/exceprecog/Category.adoc[Category], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerAbstract.adoc[ExceptionRecognizerAbstract], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerForType.adoc[ExceptionRecognizerForType], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerService.adoc[ExceptionRecognizerService], xref:refguide:applib:index/services/exceprecog/Recognition.adoc[Recognition], xref:refguide:applib:index/services/exceprecog/RootCauseFinder.adoc[RootCauseFinder], xref:refguide:applib:index/services/factory/FactoryService.adoc[FactoryService], xref:refguide:applib:index/services/filter/CollectionFilterService.adoc[CollectionFilterService], xref:refguide:applib:index/services/grid/GridLoaderService.adoc[GridLoaderService], xref:refguide:applib:index/services/grid/GridMarshallerService.adoc[GridMarshallerService], xref:refguide:applib:index/services/grid/GridService.adoc[GridService], xref:refguide:applib:index/services/grid/GridSystemService.adoc[GridSystemService], xref:refguide:applib:index/services/health/Health.adoc[Health], xref:refguide:applib:index/services/health/HealthCheckService.adoc[HealthCheckService], xref:refguide:applib:index/services/hint/HintIdProvider.adoc[HintIdProvider], xref:refguide:applib:index/services/hint/HintStore.adoc[HintStore], xref:refguide:applib:index/services/homepage/HomePageResolverService.adoc[HomePageResolverService], xref:refguide:applib:index/services/i18n/HasTranslationContext.adoc[HasTranslationContext], xref:refguide:applib:index/services/i18n/LanguageProvider.adoc[LanguageProvider], xref:refguide:applib:index/services/i18n/Mode.adoc[Mode], xref:refguide:applib:index/services/i18n/TranslatableString.adoc[TranslatableString], xref:refguide:applib:index/services/i18n/TranslationContext.adoc[TranslationContext], xref:refguide:applib:index/services/i18n/TranslationService.adoc[TranslationService], xref:refguide:applib:index/services/i18n/TranslationsResolver.adoc[TranslationsResolver], xref:refguide:applib:index/services/iactn/ActionInvocation.adoc[ActionInvocation], xref:refguide:applib:index/services/iactn/Execution.adoc[Execution], xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction], xref:refguide:applib:index/services/iactn/InteractionProvider.adoc[InteractionProvider], xref:refguide:applib:index/services/iactn/PropertyEdit.adoc[PropertyEdit], xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext], xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer], xref:refguide:applib:index/services/iactnlayer/InteractionLayerTracker.adoc[InteractionLayerTracker], xref:refguide:applib:index/services/iactnlayer/InteractionService.adoc[InteractionService], xref:refguide:applib:index/services/inject/ServiceInjector.adoc[ServiceInjector], xref:refguide:applib:index/services/jaxb/CausewaySchemas.adoc[CausewaySchemas], xref:refguide:applib:index/services/jaxb/JaxbService.adoc[JaxbService], xref:refguide:applib:index/services/keyvaluestore/KeyValueSessionStore.adoc[KeyValueSessionStore], xref:refguide:applib:index/services/layout/LayoutExportStyle.adoc[LayoutExportStyle], xref:refguide:applib:index/services/layout/LayoutService.adoc[LayoutService], xref:refguide:applib:index/services/layout/LayoutServiceMenu.adoc[LayoutServiceMenu], xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService], xref:refguide:applib:index/services/locale/LocaleChoiceProvider.adoc[LocaleChoiceProvider], xref:refguide:applib:index/services/marshal/MarshallerService.adoc[MarshallerService], xref:refguide:applib:index/services/menu/MenuBarsLoaderService.adoc[MenuBarsLoaderService], xref:refguide:applib:index/services/menu/MenuBarsMarshallerService.adoc[MenuBarsMarshallerService], xref:refguide:applib:index/services/menu/MenuBarsService.adoc[MenuBarsService], xref:refguide:applib:index/services/message/MessageService.adoc[MessageService], xref:refguide:applib:index/services/metamodel/BeanSort.adoc[BeanSort], xref:refguide:applib:index/services/metamodel/Config.adoc[Config], xref:refguide:applib:index/services/metamodel/DomainMember.adoc[DomainMember], xref:refguide:applib:index/services/metamodel/DomainModel.adoc[DomainModel], xref:refguide:applib:index/services/metamodel/MetaModelService.adoc[MetaModelService], xref:refguide:applib:index/services/metamodel/MetaModelServiceMenu.adoc[MetaModelServiceMenu], xref:refguide:applib:index/services/metamodel/objgraph/ObjectGraph.adoc[ObjectGraph], xref:refguide:applib:index/services/metrics/MetricsService.adoc[MetricsService], xref:refguide:applib:index/services/placeholder/PlaceholderRenderService.adoc[PlaceholderRenderService], xref:refguide:applib:index/services/publishing/log/CommandLogger.adoc[CommandLogger], xref:refguide:applib:index/services/publishing/log/EntityChangesLogger.adoc[EntityChangesLogger], xref:refguide:applib:index/services/publishing/log/EntityPropertyChangeLogger.adoc[EntityPropertyChangeLogger], xref:refguide:applib:index/services/publishing/log/ExecutionLogger.adoc[ExecutionLogger], xref:refguide:applib:index/services/publishing/log/PageRenderCollectionLogger.adoc[PageRenderCollectionLogger], xref:refguide:applib:index/services/publishing/log/PageRenderDomainObjectLogger.adoc[PageRenderDomainObjectLogger], xref:refguide:applib:index/services/publishing/log/PageRenderValueLogger.adoc[PageRenderValueLogger], xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityChanges.adoc[EntityChanges], xref:refguide:applib:index/services/publishing/spi/EntityChangesSubscriber.adoc[EntityChangesSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber], xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber], xref:refguide:applib:index/services/publishing/spi/PageRenderSubscriber.adoc[PageRenderSubscriber], xref:refguide:applib:index/services/queryresultscache/MethodReferences.adoc[MethodReferences], xref:refguide:applib:index/services/queryresultscache/QueryResultsCache.adoc[QueryResultsCache], xref:refguide:applib:index/services/queryresultscache/QueryResultsCacheControl.adoc[QueryResultsCacheControl], xref:refguide:applib:index/services/registry/InstanceByPriorityComparator.adoc[InstanceByPriorityComparator], xref:refguide:applib:index/services/registry/ServiceRegistry.adoc[ServiceRegistry], xref:refguide:applib:index/services/repository/EntityState.adoc[EntityState], xref:refguide:applib:index/services/repository/RepositoryService.adoc[RepositoryService], xref:refguide:applib:index/services/routing/RoutingService.adoc[RoutingService], xref:refguide:applib:index/services/scratchpad/Scratchpad.adoc[Scratchpad], xref:refguide:applib:index/services/session/SessionLogger.adoc[SessionLogger], xref:refguide:applib:index/services/session/SessionSubscriber.adoc[SessionSubscriber], xref:refguide:applib:index/services/sitemap/SitemapService.adoc[SitemapService], xref:refguide:applib:index/services/sitemap/SitemapServiceMenu.adoc[SitemapServiceMenu], xref:refguide:applib:index/services/sudo/SudoService.adoc[SudoService], xref:refguide:applib:index/services/swagger/Format.adoc[Format], xref:refguide:applib:index/services/swagger/SwaggerService.adoc[SwaggerService], xref:refguide:applib:index/services/swagger/Visibility.adoc[Visibility], xref:refguide:applib:index/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc[TableColumnOrderForCollectionTypeAbstract], xref:refguide:applib:index/services/tablecol/TableColumnOrderService.adoc[TableColumnOrderService], xref:refguide:applib:index/services/tablecol/TableColumnVisibilityService.adoc[TableColumnVisibilityService], xref:refguide:applib:index/services/title/TitleService.adoc[TitleService], xref:refguide:applib:index/services/urlencoding/UrlEncodingService.adoc[UrlEncodingService], xref:refguide:applib:index/services/user/ImpersonateMenu.adoc[ImpersonateMenu], xref:refguide:applib:index/services/user/ImpersonateMenuAdvisor.adoc[ImpersonateMenuAdvisor], xref:refguide:applib:index/services/user/ImpersonateStopMenu.adoc[ImpersonateStopMenu], xref:refguide:applib:index/services/user/RoleMemento.adoc[RoleMemento], xref:refguide:applib:index/services/user/UserCurrentSessionTimeZoneHolder.adoc[UserCurrentSessionTimeZoneHolder], xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento], xref:refguide:applib:index/services/user/UserService.adoc[UserService], xref:refguide:applib:index/services/userreg/EmailNotificationService.adoc[EmailNotificationService], xref:refguide:applib:index/services/userreg/UserDetails.adoc[UserDetails], xref:refguide:applib:index/services/userreg/UserRegistrationService.adoc[UserRegistrationService], xref:refguide:applib:index/services/userreg/events/EmailEventAbstract.adoc[EmailEventAbstract], xref:refguide:applib:index/services/userreg/events/EmailRegistrationEvent.adoc[EmailRegistrationEvent], xref:refguide:applib:index/services/userreg/events/PasswordResetEvent.adoc[PasswordResetEvent], xref:refguide:applib:index/services/userui/UserMenu.adoc[UserMenu], xref:refguide:applib:index/services/userui/UserMenu_me.adoc[UserMenu.me], xref:refguide:applib:index/services/wrapper/DisabledException.adoc[DisabledException], xref:refguide:applib:index/services/wrapper/HiddenException.adoc[HiddenException], xref:refguide:applib:index/services/wrapper/InvalidException.adoc[InvalidException], xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory], xref:refguide:applib:index/services/wrapper/WrapperFactory_AsyncProxy.adoc[WrapperFactory.AsyncProxy], xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc[AsyncControl], xref:refguide:applib:index/services/wrapper/control/ExceptionHandler.adoc[ExceptionHandler], xref:refguide:applib:index/services/wrapper/control/ExceptionHandlerAbstract.adoc[ExceptionHandlerAbstract], xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl], xref:refguide:applib:index/services/wrapper/events/AccessEvent.adoc[AccessEvent], xref:refguide:applib:index/services/wrapper/events/ActionArgumentEvent.adoc[ActionArgumentEvent], xref:refguide:applib:index/services/wrapper/events/ActionInvocationEvent.adoc[ActionInvocationEvent], xref:refguide:applib:index/services/wrapper/events/ActionUsabilityEvent.adoc[ActionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ActionVisibilityEvent.adoc[ActionVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent], xref:refguide:applib:index/services/wrapper/events/CollectionMethodEvent.adoc[CollectionMethodEvent], xref:refguide:applib:index/services/wrapper/events/CollectionUsabilityEvent.adoc[CollectionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionVisibilityEvent.adoc[CollectionVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/InteractionEvent.adoc[InteractionEvent], xref:refguide:applib:index/services/wrapper/events/ObjectTitleEvent.adoc[ObjectTitleEvent], xref:refguide:applib:index/services/wrapper/events/ObjectValidityEvent.adoc[ObjectValidityEvent], xref:refguide:applib:index/services/wrapper/events/ObjectVisibilityEvent.adoc[ObjectVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent], xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent], xref:refguide:applib:index/services/wrapper/events/PropertyUsabilityEvent.adoc[PropertyUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/PropertyVisibilityEvent.adoc[PropertyVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/ProposedHolderEvent.adoc[ProposedHolderEvent], xref:refguide:applib:index/services/wrapper/events/UsabilityEvent.adoc[UsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ValidityEvent.adoc[ValidityEvent], xref:refguide:applib:index/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent], xref:refguide:applib:index/services/wrapper/listeners/InteractionAdapter.adoc[InteractionAdapter], xref:refguide:applib:index/services/wrapper/listeners/InteractionListener.adoc[InteractionListener], xref:refguide:applib:index/services/xactn/TransactionId.adoc[TransactionId], xref:refguide:applib:index/services/xactn/TransactionService.adoc[TransactionService], xref:refguide:applib:index/services/xactn/TransactionState.adoc[TransactionState], xref:refguide:applib:index/services/xactn/TransactionalProcessor.adoc[TransactionalProcessor], xref:refguide:applib:index/services/xml/XmlService.adoc[XmlService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService.adoc[XmlSnapshotService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService_Snapshot.adoc[XmlSnapshotService.Snapshot], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService_Snapshot_Builder.adoc[XmlSnapshotService.Snapshot.Builder], xref:refguide:applib:index/snapshot/SnapshottableWithInclusions.adoc[SnapshottableWithInclusions], xref:refguide:applib:index/spec/AbstractSpecification.adoc[AbstractSpecification], xref:refguide:applib:index/spec/AbstractSpecification2.adoc[AbstractSpecification2], xref:refguide:applib:index/spec/Specification.adoc[Specification], xref:refguide:applib:index/spec/Specification2.adoc[Specification2], xref:refguide:applib:index/spec/SpecificationAnd.adoc[SpecificationAnd], xref:refguide:applib:index/spec/SpecificationNot.adoc[SpecificationNot], xref:refguide:applib:index/spec/SpecificationOr.adoc[SpecificationOr], xref:refguide:applib:index/tabular/TabularExporter.adoc[TabularExporter], xref:refguide:applib:index/types/DescriptionType.adoc[DescriptionType], xref:refguide:applib:index/types/MemberIdentifierType.adoc[MemberIdentifierType], xref:refguide:applib:index/types/TargetActionType.adoc[TargetActionType], xref:refguide:applib:index/types/TargetClassType.adoc[TargetClassType], xref:refguide:applib:index/util/Enums.adoc[Enums], xref:refguide:applib:index/util/Equality.adoc[Equality], xref:refguide:applib:index/util/Hashing.adoc[Hashing], xref:refguide:applib:index/util/ObjectContracts.adoc[ObjectContracts], xref:refguide:applib:index/util/ReasonBuffer.adoc[ReasonBuffer], xref:refguide:applib:index/util/ReasonBuffer2.adoc[ReasonBuffer2], xref:refguide:applib:index/util/Reasons.adoc[Reasons], xref:refguide:applib:index/util/TitleBuffer.adoc[TitleBuffer], xref:refguide:applib:index/util/TitleBufferException.adoc[TitleBufferException], xref:refguide:applib:index/util/ToString.adoc[ToString], xref:refguide:applib:index/util/schema/ChangesDtoUtils.adoc[ChangesDtoUtils], xref:refguide:applib:index/util/schema/CommandDtoUtils.adoc[CommandDtoUtils], xref:refguide:applib:index/util/schema/CommonDtoUtils.adoc[CommonDtoUtils], xref:refguide:applib:index/util/schema/InteractionDtoUtils.adoc[InteractionDtoUtils], xref:refguide:applib:index/util/schema/InteractionsDtoUtils.adoc[InteractionsDtoUtils], xref:refguide:applib:index/util/schema/MemberExecutionDtoUtils.adoc[MemberExecutionDtoUtils], xref:refguide:applib:index/value/Blob.adoc[Blob], xref:refguide:applib:index/value/Clob.adoc[Clob], xref:refguide:applib:index/value/LocalResourcePath.adoc[LocalResourcePath], xref:refguide:applib:index/value/Markup.adoc[Markup], xref:refguide:applib:index/value/NamedWithMimeType.adoc[NamedWithMimeType], xref:refguide:applib:index/value/OpenUrlStrategy.adoc[OpenUrlStrategy], xref:refguide:applib:index/value/Password.adoc[Password], xref:refguide:applib:index/value/semantics/Converter.adoc[Converter], xref:refguide:applib:index/value/semantics/DefaultsProvider.adoc[DefaultsProvider], xref:refguide:applib:index/value/semantics/OrderRelation.adoc[OrderRelation], xref:refguide:applib:index/value/semantics/Parser.adoc[Parser], xref:refguide:applib:index/value/semantics/ParsingException.adoc[ParsingException], xref:refguide:applib:index/value/semantics/Renderer.adoc[Renderer], xref:refguide:applib:index/value/semantics/ValueSemanticsAbstract.adoc[ValueSemanticsAbstract], xref:refguide:applib:index/value/semantics/ValueSemanticsProvider.adoc[ValueSemanticsProvider], xref:refguide:applib:index/value/semantics/ValueSemanticsResolver.adoc[ValueSemanticsResolver]
+xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annotation/ActionLayout.adoc[ActionLayout], xref:refguide:applib:index/annotation/BookmarkPolicy.adoc[BookmarkPolicy], xref:refguide:applib:index/annotation/Bounding.adoc[Bounding], xref:refguide:applib:index/annotation/Collection.adoc[Collection], xref:refguide:applib:index/annotation/CollectionLayout.adoc[CollectionLayout], xref:refguide:applib:index/annotation/DomainObject.adoc[DomainObject], xref:refguide:applib:index/annotation/DomainObjectLayout.adoc[DomainObjectLayout], xref:refguide:applib:index/annotation/DomainService.adoc[DomainService], xref:refguide:applib:index/annotation/DomainServiceLayout.adoc[DomainServiceLayout], xref:refguide:applib:index/annotation/DomainServiceLayout_MenuBar.adoc[DomainServiceLayout.MenuBar], xref:refguide:applib:index/annotation/Domain_Exclude.adoc[Domain.Exclude], xref:refguide:applib:index/annotation/Domain_Include.adoc[Domain.Include], xref:refguide:applib:index/annotation/Editing.adoc[Editing], xref:refguide:applib:index/annotation/EntityChangeKind.adoc[EntityChangeKind], xref:refguide:applib:index/annotation/HomePage.adoc[HomePage], xref:refguide:applib:index/annotation/InteractionScope.adoc[InteractionScope], xref:refguide:applib:index/annotation/Introspection.adoc[Introspection], xref:refguide:applib:index/annotation/LabelPosition.adoc[LabelPosition], xref:refguide:applib:index/annotation/MemberSupport.adoc[MemberSupport], xref:refguide:applib:index/annotation/MinLength.adoc[MinLength], xref:refguide:applib:index/annotation/Module.adoc[Module], xref:refguide:applib:index/annotation/Nature.adoc[Nature], xref:refguide:applib:index/annotation/Navigable.adoc[Navigable], xref:refguide:applib:index/annotation/ObjectLifecycle.adoc[ObjectLifecycle], xref:refguide:applib:index/annotation/ObjectSupport.adoc[ObjectSupport], xref:refguide:applib:index/annotation/Optionality.adoc[Optionality], xref:refguide:applib:index/annotation/Parameter.adoc[Parameter], xref:refguide:applib:index/annotation/ParameterLayout.adoc[ParameterLayout], xref:refguide:applib:index/annotation/ParameterTuple.adoc[ParameterTuple], xref:refguide:applib:index/annotation/PrecedingParamsPolicy.adoc[PrecedingParamsPolicy], xref:refguide:applib:index/annotation/PriorityPrecedence.adoc[PriorityPrecedence], xref:refguide:applib:index/annotation/Programmatic.adoc[Programmatic], xref:refguide:applib:index/annotation/Projecting.adoc[Projecting], xref:refguide:applib:index/annotation/PromptStyle.adoc[PromptStyle], xref:refguide:applib:index/annotation/Property.adoc[Property], xref:refguide:applib:index/annotation/PropertyLayout.adoc[PropertyLayout], xref:refguide:applib:index/annotation/Publishing.adoc[Publishing], xref:refguide:applib:index/annotation/Repainting.adoc[Repainting], xref:refguide:applib:index/annotation/RestrictTo.adoc[RestrictTo], xref:refguide:applib:index/annotation/SemanticsOf.adoc[SemanticsOf], xref:refguide:applib:index/annotation/Snapshot.adoc[Snapshot], xref:refguide:applib:index/annotation/TimePrecision.adoc[TimePrecision], xref:refguide:applib:index/annotation/TimeZoneTranslation.adoc[TimeZoneTranslation], xref:refguide:applib:index/annotation/Title.adoc[Title], xref:refguide:applib:index/annotation/TransactionScope.adoc[TransactionScope], xref:refguide:applib:index/annotation/Value.adoc[Value], xref:refguide:applib:index/annotation/ValueSemantics.adoc[ValueSemantics], xref:refguide:applib:index/annotation/Where.adoc[Where], xref:refguide:applib:index/client/RepresentationTypeSimplifiedV2.adoc[RepresentationTypeSimplifiedV2], xref:refguide:applib:index/client/SuppressionType.adoc[SuppressionType], xref:refguide:applib:index/clock/VirtualClock.adoc[VirtualClock], xref:refguide:applib:index/domain/DomainObjectList.adoc[DomainObjectList], xref:refguide:applib:index/events/EventObjectBase.adoc[EventObjectBase], xref:refguide:applib:index/events/domain/AbstractDomainEvent.adoc[AbstractDomainEvent], xref:refguide:applib:index/events/domain/ActionDomainEvent.adoc[ActionDomainEvent], xref:refguide:applib:index/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent], xref:refguide:applib:index/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent], xref:refguide:applib:index/events/lifecycle/AbstractLifecycleEvent.adoc[AbstractLifecycleEvent], xref:refguide:applib:index/events/lifecycle/ObjectCreatedEvent.adoc[ObjectCreatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectLoadedEvent.adoc[ObjectLoadedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistedEvent.adoc[ObjectPersistedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistingEvent.adoc[ObjectPersistingEvent], xref:refguide:applib:index/events/lifecycle/ObjectRemovingEvent.adoc[ObjectRemovingEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatedEvent.adoc[ObjectUpdatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatingEvent.adoc[ObjectUpdatingEvent], xref:refguide:applib:index/events/ui/AbstractUiEvent.adoc[AbstractUiEvent], xref:refguide:applib:index/events/ui/CssClassUiEvent.adoc[CssClassUiEvent], xref:refguide:applib:index/events/ui/IconUiEvent.adoc[IconUiEvent], xref:refguide:applib:index/events/ui/LayoutUiEvent.adoc[LayoutUiEvent], xref:refguide:applib:index/events/ui/TitleUiEvent.adoc[TitleUiEvent], xref:refguide:applib:index/exceptions/RecoverableException.adoc[RecoverableException], xref:refguide:applib:index/exceptions/TranslatableException.adoc[TranslatableException], xref:refguide:applib:index/exceptions/UnrecoverableException.adoc[UnrecoverableException], xref:refguide:applib:index/exceptions/unrecoverable/BookmarkNotFoundException.adoc[BookmarkNotFoundException], xref:refguide:applib:index/exceptions/unrecoverable/DomainModelException.adoc[DomainModelException], xref:refguide:applib:index/exceptions/unrecoverable/MetaModelException.adoc[MetaModelException], xref:refguide:applib:index/exceptions/unrecoverable/NoAuthenticatorException.adoc[NoAuthenticatorException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectNotFoundException.adoc[ObjectNotFoundException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectPersistenceException.adoc[ObjectPersistenceException], xref:refguide:applib:index/exceptions/unrecoverable/PersistFailedException.adoc[PersistFailedException], xref:refguide:applib:index/exceptions/unrecoverable/ReflectiveActionException.adoc[ReflectiveActionException], xref:refguide:applib:index/exceptions/unrecoverable/RepositoryException.adoc[RepositoryException], xref:refguide:applib:index/exceptions/unrecoverable/UnexpectedCallException.adoc[UnexpectedCallException], xref:refguide:applib:index/exceptions/unrecoverable/UnknownTypeException.adoc[UnknownTypeException], xref:refguide:applib:index/fa/FontAwesomeLayers.adoc[FontAwesomeLayers], xref:refguide:applib:index/graph/Edge.adoc[Edge], xref:refguide:applib:index/graph/SimpleEdge.adoc[SimpleEdge], xref:refguide:applib:index/graph/Vertex.adoc[Vertex], xref:refguide:applib:index/graph/tree/TreeAdapter.adoc[TreeAdapter], xref:refguide:applib:index/graph/tree/TreeNode.adoc[TreeNode], xref:refguide:applib:index/graph/tree/TreePath.adoc[TreePath], xref:refguide:applib:index/graph/tree/TreeState.adoc[TreeState], xref:refguide:applib:index/id/HasLogicalType.adoc[HasLogicalType], xref:refguide:applib:index/id/LogicalType.adoc[LogicalType], xref:refguide:applib:index/jaxb/DataTypeFactory.adoc[DataTypeFactory], xref:refguide:applib:index/jaxb/JavaSqlJaxbAdapters.adoc[JavaSqlJaxbAdapters], xref:refguide:applib:index/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc[JavaSqlXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaTimeJaxbAdapters.adoc[JavaTimeJaxbAdapters], xref:refguide:applib:index/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc[JavaTimeXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaUtilJaxbAdapters.adoc[JavaUtilJaxbAdapters], xref:refguide:applib:index/jaxb/PersistentEntitiesAdapter.adoc[PersistentEntitiesAdapter], xref:refguide:applib:index/jaxb/PersistentEntityAdapter.adoc[PersistentEntityAdapter], xref:refguide:applib:index/jaxb/PrimitiveJaxbAdapters.adoc[PrimitiveJaxbAdapters], xref:refguide:applib:index/layout/LayoutConstants.adoc[LayoutConstants], xref:refguide:applib:index/layout/component/ActionLayoutData.adoc[ActionLayoutData], xref:refguide:applib:index/layout/component/ActionLayoutDataOwner.adoc[ActionLayoutDataOwner], xref:refguide:applib:index/layout/component/CollectionLayoutData.adoc[CollectionLayoutData], xref:refguide:applib:index/layout/component/CollectionLayoutDataOwner.adoc[CollectionLayoutDataOwner], xref:refguide:applib:index/layout/component/CssClassFaPosition.adoc[CssClassFaPosition], xref:refguide:applib:index/layout/component/DomainObjectLayoutData.adoc[DomainObjectLayoutData], xref:refguide:applib:index/layout/component/DomainObjectLayoutDataOwner.adoc[DomainObjectLayoutDataOwner], xref:refguide:applib:index/layout/component/FieldSet.adoc[FieldSet], xref:refguide:applib:index/layout/component/FieldSetOwner.adoc[FieldSetOwner], xref:refguide:applib:index/layout/component/HasBookmarking.adoc[HasBookmarking], xref:refguide:applib:index/layout/component/HasCssClass.adoc[HasCssClass], xref:refguide:applib:index/layout/component/HasCssClassFa.adoc[HasCssClassFa], xref:refguide:applib:index/layout/component/HasDescribedAs.adoc[HasDescribedAs], xref:refguide:applib:index/layout/component/HasHidden.adoc[HasHidden], xref:refguide:applib:index/layout/component/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/component/MemberRegion.adoc[MemberRegion], xref:refguide:applib:index/layout/component/MemberRegionOwner.adoc[MemberRegionOwner], xref:refguide:applib:index/layout/component/Owned.adoc[Owned], xref:refguide:applib:index/layout/component/Owner.adoc[Owner], xref:refguide:applib:index/layout/component/PropertyLayoutData.adoc[PropertyLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutData.adoc[ServiceActionLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutDataOwner.adoc[ServiceActionLayoutDataOwner], xref:refguide:applib:index/layout/grid/Grid.adoc[Grid], xref:refguide:applib:index/layout/grid/GridAbstract.adoc[GridAbstract], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFix.adoc[BSClearFix], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFixHidden.adoc[BSClearFixHidden], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFixVisible.adoc[BSClearFixVisible], xref:refguide:applib:index/layout/grid/bootstrap/BSCol.adoc[BSCol], xref:refguide:applib:index/layout/grid/bootstrap/BSElement.adoc[BSElement], xref:refguide:applib:index/layout/grid/bootstrap/BSElementAbstract.adoc[BSElementAbstract], xref:refguide:applib:index/layout/grid/bootstrap/BSGrid.adoc[BSGrid], xref:refguide:applib:index/layout/grid/bootstrap/BSRow.adoc[BSRow], xref:refguide:applib:index/layout/grid/bootstrap/BSRowContent.adoc[BSRowContent], xref:refguide:applib:index/layout/grid/bootstrap/BSRowContentOwner.adoc[BSRowContentOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSRowOwner.adoc[BSRowOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSTab.adoc[BSTab], xref:refguide:applib:index/layout/grid/bootstrap/BSTabGroup.adoc[BSTabGroup], xref:refguide:applib:index/layout/grid/bootstrap/BSTabGroupOwner.adoc[BSTabGroupOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSTabOwner.adoc[BSTabOwner], xref:refguide:applib:index/layout/grid/bootstrap/HasCssId.adoc[HasCssId], xref:refguide:applib:index/layout/grid/bootstrap/Size.adoc[Size], xref:refguide:applib:index/layout/grid/bootstrap/SizeSpan.adoc[SizeSpan], xref:refguide:applib:index/layout/grid/bootstrap/WithinGrid.adoc[WithinGrid], xref:refguide:applib:index/layout/links/Link.adoc[Link], xref:refguide:applib:index/layout/menubars/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/menubars/Menu.adoc[Menu], xref:refguide:applib:index/layout/menubars/MenuBar.adoc[MenuBar], xref:refguide:applib:index/layout/menubars/MenuBars.adoc[MenuBars], xref:refguide:applib:index/layout/menubars/MenuBarsAbstract.adoc[MenuBarsAbstract], xref:refguide:applib:index/layout/menubars/MenuSection.adoc[MenuSection], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenu.adoc[BSMenu], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuBar.adoc[BSMenuBar], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuBars.adoc[BSMenuBars], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuSection.adoc[BSMenuSection], xref:refguide:applib:index/locale/UserLocale.adoc[UserLocale], xref:refguide:applib:index/mixins/dto/Dto.adoc[Dto], xref:refguide:applib:index/mixins/dto/DtoMixinConstants.adoc[DtoMixinConstants], xref:refguide:applib:index/mixins/dto/Dto_downloadXml.adoc[Dto_downloadXml], xref:refguide:applib:index/mixins/dto/Dto_downloadXsd.adoc[Dto_downloadXsd], xref:refguide:applib:index/mixins/layout/Object_downloadLayout.adoc[Object_downloadLayout], xref:refguide:applib:index/mixins/metamodel/Object_downloadMetamodelXml.adoc[Object_downloadMetamodelXml], xref:refguide:applib:index/mixins/metamodel/Object_logicalTypeName.adoc[Object_logicalTypeName], xref:refguide:applib:index/mixins/metamodel/Object_objectIdentifier.adoc[Object_objectIdentifier], xref:refguide:applib:index/mixins/metamodel/Object_rebuildMetamodel.adoc[Object_rebuildMetamodel], xref:refguide:applib:index/mixins/rest/Object_openRestApi.adoc[Object_openRestApi], xref:refguide:applib:index/mixins/security/HasUsername.adoc[HasUsername], xref:refguide:applib:index/mixins/system/DomainChangeRecord.adoc[DomainChangeRecord], xref:refguide:applib:index/mixins/system/DomainChangeRecord_ChangeType.adoc[DomainChangeRecord.ChangeType], xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId], xref:refguide:applib:index/mixins/system/HasInteractionIdAndSequence.adoc[HasInteractionIdAndSequence], xref:refguide:applib:index/mixins/system/HasTarget_openTargetObject.adoc[HasTarget_openTargetObject], xref:refguide:applib:index/mixins/updates/OnUpdatedAt.adoc[OnUpdatedAt], xref:refguide:applib:index/mixins/updates/OnUpdatedBy.adoc[OnUpdatedBy], xref:refguide:applib:index/mixins/updates/OnUpdatedByAndAt.adoc[OnUpdatedByAndAt], xref:refguide:applib:index/query/AllInstancesQuery.adoc[AllInstancesQuery], xref:refguide:applib:index/query/NamedQuery.adoc[NamedQuery], xref:refguide:applib:index/query/Query.adoc[Query], xref:refguide:applib:index/query/QueryRange.adoc[QueryRange], xref:refguide:applib:index/services/acceptheader/AcceptHeaderService.adoc[AcceptHeaderService], xref:refguide:applib:index/services/appfeat/ApplicationFeature.adoc[ApplicationFeature], xref:refguide:applib:index/services/appfeat/ApplicationFeatureId.adoc[ApplicationFeatureId], xref:refguide:applib:index/services/appfeat/ApplicationFeatureRepository.adoc[ApplicationFeatureRepository], xref:refguide:applib:index/services/appfeat/ApplicationFeatureSort.adoc[ApplicationFeatureSort], xref:refguide:applib:index/services/appfeat/ApplicationMemberSort.adoc[ApplicationMemberSort], xref:refguide:applib:index/services/appfeatui/ApplicationFeatureMenu.adoc[ApplicationFeatureMenu], xref:refguide:applib:index/services/appfeatui/ApplicationFeatureViewModel.adoc[ApplicationFeatureViewModel], xref:refguide:applib:index/services/appfeatui/ApplicationNamespace.adoc[ApplicationNamespace], xref:refguide:applib:index/services/appfeatui/ApplicationType.adoc[ApplicationType], xref:refguide:applib:index/services/appfeatui/ApplicationTypeAction.adoc[ApplicationTypeAction], xref:refguide:applib:index/services/appfeatui/ApplicationTypeCollection.adoc[ApplicationTypeCollection], xref:refguide:applib:index/services/appfeatui/ApplicationTypeMember.adoc[ApplicationTypeMember], xref:refguide:applib:index/services/appfeatui/ApplicationTypeProperty.adoc[ApplicationTypeProperty], xref:refguide:applib:index/services/ascii/AsciiIdentifierService.adoc[AsciiIdentifierService], xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark], xref:refguide:applib:index/services/bookmark/BookmarkHolder.adoc[BookmarkHolder], xref:refguide:applib:index/services/bookmark/BookmarkHolder_lookup.adoc[BookmarkHolder_lookup], xref:refguide:applib:index/services/bookmark/BookmarkHolder_object.adoc[BookmarkHolder_object], xref:refguide:applib:index/services/bookmark/BookmarkService.adoc[BookmarkService], xref:refguide:applib:index/services/bookmark/HasTarget.adoc[HasTarget], xref:refguide:applib:index/services/bookmark/IdStringifier.adoc[IdStringifier], xref:refguide:applib:index/services/bookmark/Oid.adoc[Oid], xref:refguide:applib:index/services/bookmarkui/BookmarkUiService.adoc[BookmarkUiService], xref:refguide:applib:index/services/clock/ClockService.adoc[ClockService], xref:refguide:applib:index/services/columnorder/ColumnOrderTxtFileService.adoc[ColumnOrderTxtFileService], xref:refguide:applib:index/services/command/Command.adoc[Command], xref:refguide:applib:index/services/command/CommandExecutorService.adoc[CommandExecutorService], xref:refguide:applib:index/services/command/CommandExecutorService_InteractionContextPolicy.adoc[CommandExecutorService.InteractionContextPolicy], xref:refguide:applib:index/services/command/CommandOutcomeHandler.adoc[CommandOutcomeHandler], xref:refguide:applib:index/services/commanddto/HasCommandDto.adoc[HasCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto], xref:refguide:applib:index/services/commanddto/conmap/UserDataKeys.adoc[UserDataKeys], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc[CommandDtoProcessorForActionAbstract], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc[CommandDtoProcessorForPropertyAbstract], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[CommandDtoProcessorService], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc[CommandDtoProcessorServiceIdentity], xref:refguide:applib:index/services/confview/ConfigurationMenu.adoc[ConfigurationMenu], xref:refguide:applib:index/services/confview/ConfigurationProperty.adoc[ConfigurationProperty], xref:refguide:applib:index/services/confview/ConfigurationViewService.adoc[ConfigurationViewService], xref:refguide:applib:index/services/confview/ConfigurationViewmodel.adoc[ConfigurationViewmodel], xref:refguide:applib:index/services/conmap/ContentMappingService.adoc[ContentMappingService], xref:refguide:applib:index/services/email/EmailService.adoc[EmailService], xref:refguide:applib:index/services/error/ErrorDetails.adoc[ErrorDetails], xref:refguide:applib:index/services/error/ErrorReportingService.adoc[ErrorReportingService], xref:refguide:applib:index/services/error/SimpleTicket.adoc[SimpleTicket], xref:refguide:applib:index/services/error/Ticket.adoc[Ticket], xref:refguide:applib:index/services/eventbus/EventBusService.adoc[EventBusService], xref:refguide:applib:index/services/exceprecog/Category.adoc[Category], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerAbstract.adoc[ExceptionRecognizerAbstract], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerForType.adoc[ExceptionRecognizerForType], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerService.adoc[ExceptionRecognizerService], xref:refguide:applib:index/services/exceprecog/Recognition.adoc[Recognition], xref:refguide:applib:index/services/exceprecog/RootCauseFinder.adoc[RootCauseFinder], xref:refguide:applib:index/services/factory/FactoryService.adoc[FactoryService], xref:refguide:applib:index/services/filter/CollectionFilterService.adoc[CollectionFilterService], xref:refguide:applib:index/services/grid/GridLoaderService.adoc[GridLoaderService], xref:refguide:applib:index/services/grid/GridMarshallerService.adoc[GridMarshallerService], xref:refguide:applib:index/services/grid/GridService.adoc[GridService], xref:refguide:applib:index/services/grid/GridSystemService.adoc[GridSystemService], xref:refguide:applib:index/services/health/Health.adoc[Health], xref:refguide:applib:index/services/health/HealthCheckService.adoc[HealthCheckService], xref:refguide:applib:index/services/hint/HintIdProvider.adoc[HintIdProvider], xref:refguide:applib:index/services/hint/HintStore.adoc[HintStore], xref:refguide:applib:index/services/homepage/HomePageResolverService.adoc[HomePageResolverService], xref:refguide:applib:index/services/i18n/HasTranslationContext.adoc[HasTranslationContext], xref:refguide:applib:index/services/i18n/LanguageProvider.adoc[LanguageProvider], xref:refguide:applib:index/services/i18n/Mode.adoc[Mode], xref:refguide:applib:index/services/i18n/TranslatableString.adoc[TranslatableString], xref:refguide:applib:index/services/i18n/TranslationContext.adoc[TranslationContext], xref:refguide:applib:index/services/i18n/TranslationService.adoc[TranslationService], xref:refguide:applib:index/services/i18n/TranslationsResolver.adoc[TranslationsResolver], xref:refguide:applib:index/services/iactn/ActionInvocation.adoc[ActionInvocation], xref:refguide:applib:index/services/iactn/Execution.adoc[Execution], xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction], xref:refguide:applib:index/services/iactn/InteractionProvider.adoc[InteractionProvider], xref:refguide:applib:index/services/iactn/PropertyEdit.adoc[PropertyEdit], xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext], xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer], xref:refguide:applib:index/services/iactnlayer/InteractionLayerTracker.adoc[InteractionLayerTracker], xref:refguide:applib:index/services/iactnlayer/InteractionService.adoc[InteractionService], xref:refguide:applib:index/services/inject/ServiceInjector.adoc[ServiceInjector], xref:refguide:applib:index/services/jaxb/CausewaySchemas.adoc[CausewaySchemas], xref:refguide:applib:index/services/jaxb/JaxbService.adoc[JaxbService], xref:refguide:applib:index/services/keyvaluestore/KeyValueSessionStore.adoc[KeyValueSessionStore], xref:refguide:applib:index/services/layout/LayoutExportStyle.adoc[LayoutExportStyle], xref:refguide:applib:index/services/layout/LayoutService.adoc[LayoutService], xref:refguide:applib:index/services/layout/LayoutServiceMenu.adoc[LayoutServiceMenu], xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService], xref:refguide:applib:index/services/locale/LocaleChoiceProvider.adoc[LocaleChoiceProvider], xref:refguide:applib:index/services/marshal/MarshallerService.adoc[MarshallerService], xref:refguide:applib:index/services/menu/MenuBarsLoaderService.adoc[MenuBarsLoaderService], xref:refguide:applib:index/services/menu/MenuBarsMarshallerService.adoc[MenuBarsMarshallerService], xref:refguide:applib:index/services/menu/MenuBarsService.adoc[MenuBarsService], xref:refguide:applib:index/services/message/MessageService.adoc[MessageService], xref:refguide:applib:index/services/metamodel/BeanSort.adoc[BeanSort], xref:refguide:applib:index/services/metamodel/Config.adoc[Config], xref:refguide:applib:index/services/metamodel/DomainMember.adoc[DomainMember], xref:refguide:applib:index/services/metamodel/DomainModel.adoc[DomainModel], xref:refguide:applib:index/services/metamodel/MetaModelService.adoc[MetaModelService], xref:refguide:applib:index/services/metamodel/MetaModelServiceMenu.adoc[MetaModelServiceMenu], xref:refguide:applib:index/services/metamodel/objgraph/ObjectGraph.adoc[ObjectGraph], xref:refguide:applib:index/services/metrics/MetricsService.adoc[MetricsService], xref:refguide:applib:index/services/publishing/log/CommandLogger.adoc[CommandLogger], xref:refguide:applib:index/services/publishing/log/EntityChangesLogger.adoc[EntityChangesLogger], xref:refguide:applib:index/services/publishing/log/EntityPropertyChangeLogger.adoc[EntityPropertyChangeLogger], xref:refguide:applib:index/services/publishing/log/ExecutionLogger.adoc[ExecutionLogger], xref:refguide:applib:index/services/publishing/log/PageRenderCollectionLogger.adoc[PageRenderCollectionLogger], xref:refguide:applib:index/services/publishing/log/PageRenderDomainObjectLogger.adoc[PageRenderDomainObjectLogger], xref:refguide:applib:index/services/publishing/log/PageRenderValueLogger.adoc[PageRenderValueLogger], xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityChanges.adoc[EntityChanges], xref:refguide:applib:index/services/publishing/spi/EntityChangesSubscriber.adoc[EntityChangesSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber], xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber], xref:refguide:applib:index/services/publishing/spi/PageRenderSubscriber.adoc[PageRenderSubscriber], xref:refguide:applib:index/services/queryresultscache/MethodReferences.adoc[MethodReferences], xref:refguide:applib:index/services/queryresultscache/QueryResultsCache.adoc[QueryResultsCache], xref:refguide:applib:index/services/queryresultscache/QueryResultsCacheControl.adoc[QueryResultsCacheControl], xref:refguide:applib:index/services/registry/InstanceByPriorityComparator.adoc[InstanceByPriorityComparator], xref:refguide:applib:index/services/registry/ServiceRegistry.adoc[ServiceRegistry], xref:refguide:applib:index/services/render/ObjectIcon.adoc[ObjectIcon], xref:refguide:applib:index/services/render/ObjectRenderService.adoc[ObjectRenderService], xref:refguide:applib:index/services/render/PlaceholderRenderService.adoc[PlaceholderRenderService], xref:refguide:applib:index/services/repository/EntityState.adoc[EntityState], xref:refguide:applib:index/services/repository/RepositoryService.adoc[RepositoryService], xref:refguide:applib:index/services/routing/RoutingService.adoc[RoutingService], xref:refguide:applib:index/services/scratchpad/Scratchpad.adoc[Scratchpad], xref:refguide:applib:index/services/session/SessionLogger.adoc[SessionLogger], xref:refguide:applib:index/services/session/SessionSubscriber.adoc[SessionSubscriber], xref:refguide:applib:index/services/sitemap/SitemapService.adoc[SitemapService], xref:refguide:applib:index/services/sitemap/SitemapServiceMenu.adoc[SitemapServiceMenu], xref:refguide:applib:index/services/sudo/SudoService.adoc[SudoService], xref:refguide:applib:index/services/swagger/Format.adoc[Format], xref:refguide:applib:index/services/swagger/SwaggerService.adoc[SwaggerService], xref:refguide:applib:index/services/swagger/Visibility.adoc[Visibility], xref:refguide:applib:index/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc[TableColumnOrderForCollectionTypeAbstract], xref:refguide:applib:index/services/tablecol/TableColumnOrderService.adoc[TableColumnOrderService], xref:refguide:applib:index/services/tablecol/TableColumnVisibilityService.adoc[TableColumnVisibilityService], xref:refguide:applib:index/services/title/TitleService.adoc[TitleService], xref:refguide:applib:index/services/urlencoding/UrlEncodingService.adoc[UrlEncodingService], xref:refguide:applib:index/services/user/ImpersonateMenu.adoc[ImpersonateMenu], xref:refguide:applib:index/services/user/ImpersonateMenuAdvisor.adoc[ImpersonateMenuAdvisor], xref:refguide:applib:index/services/user/ImpersonateStopMenu.adoc[ImpersonateStopMenu], xref:refguide:applib:index/services/user/RoleMemento.adoc[RoleMemento], xref:refguide:applib:index/services/user/UserCurrentSessionTimeZoneHolder.adoc[UserCurrentSessionTimeZoneHolder], xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento], xref:refguide:applib:index/services/user/UserService.adoc[UserService], xref:refguide:applib:index/services/userreg/EmailNotificationService.adoc[EmailNotificationService], xref:refguide:applib:index/services/userreg/UserDetails.adoc[UserDetails], xref:refguide:applib:index/services/userreg/UserRegistrationService.adoc[UserRegistrationService], xref:refguide:applib:index/services/userreg/events/EmailEventAbstract.adoc[EmailEventAbstract], xref:refguide:applib:index/services/userreg/events/EmailRegistrationEvent.adoc[EmailRegistrationEvent], xref:refguide:applib:index/services/userreg/events/PasswordResetEvent.adoc[PasswordResetEvent], xref:refguide:applib:index/services/userui/UserMenu.adoc[UserMenu], xref:refguide:applib:index/services/userui/UserMenu_me.adoc[UserMenu.me], xref:refguide:applib:index/services/wrapper/DisabledException.adoc[DisabledException], xref:refguide:applib:index/services/wrapper/HiddenException.adoc[HiddenException], xref:refguide:applib:index/services/wrapper/InvalidException.adoc[InvalidException], xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory], xref:refguide:applib:index/services/wrapper/WrapperFactory_AsyncProxy.adoc[WrapperFactory.AsyncProxy], xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc[AsyncControl], xref:refguide:applib:index/services/wrapper/control/ExceptionHandler.adoc[ExceptionHandler], xref:refguide:applib:index/services/wrapper/control/ExceptionHandlerAbstract.adoc[ExceptionHandlerAbstract], xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl], xref:refguide:applib:index/services/wrapper/events/AccessEvent.adoc[AccessEvent], xref:refguide:applib:index/services/wrapper/events/ActionArgumentEvent.adoc[ActionArgumentEvent], xref:refguide:applib:index/services/wrapper/events/ActionInvocationEvent.adoc[ActionInvocationEvent], xref:refguide:applib:index/services/wrapper/events/ActionUsabilityEvent.adoc[ActionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ActionVisibilityEvent.adoc[ActionVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent], xref:refguide:applib:index/services/wrapper/events/CollectionMethodEvent.adoc[CollectionMethodEvent], xref:refguide:applib:index/services/wrapper/events/CollectionUsabilityEvent.adoc[CollectionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionVisibilityEvent.adoc[CollectionVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/InteractionEvent.adoc[InteractionEvent], xref:refguide:applib:index/services/wrapper/events/ObjectTitleEvent.adoc[ObjectTitleEvent], xref:refguide:applib:index/services/wrapper/events/ObjectValidityEvent.adoc[ObjectValidityEvent], xref:refguide:applib:index/services/wrapper/events/ObjectVisibilityEvent.adoc[ObjectVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent], xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent], xref:refguide:applib:index/services/wrapper/events/PropertyUsabilityEvent.adoc[PropertyUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/PropertyVisibilityEvent.adoc[PropertyVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/ProposedHolderEvent.adoc[ProposedHolderEvent], xref:refguide:applib:index/services/wrapper/events/UsabilityEvent.adoc[UsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ValidityEvent.adoc[ValidityEvent], xref:refguide:applib:index/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent], xref:refguide:applib:index/services/wrapper/listeners/InteractionAdapter.adoc[InteractionAdapter], xref:refguide:applib:index/services/wrapper/listeners/InteractionListener.adoc[InteractionListener], xref:refguide:applib:index/services/xactn/TransactionId.adoc[TransactionId], xref:refguide:applib:index/services/xactn/TransactionService.adoc[TransactionService], xref:refguide:applib:index/services/xactn/TransactionState.adoc[TransactionState], xref:refguide:applib:index/services/xactn/TransactionalProcessor.adoc[TransactionalProcessor], xref:refguide:applib:index/services/xml/XmlService.adoc[XmlService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService.adoc[XmlSnapshotService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService_Snapshot.adoc[XmlSnapshotService.Snapshot], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService_Snapshot_Builder.adoc[XmlSnapshotService.Snapshot.Builder], xref:refguide:applib:index/snapshot/SnapshottableWithInclusions.adoc[SnapshottableWithInclusions], xref:refguide:applib:index/spec/AbstractSpecification.adoc[AbstractSpecification], xref:refguide:applib:index/spec/AbstractSpecification2.adoc[AbstractSpecification2], xref:refguide:applib:index/spec/Specification.adoc[Specification], xref:refguide:applib:index/spec/Specification2.adoc[Specification2], xref:refguide:applib:index/spec/SpecificationAnd.adoc[SpecificationAnd], xref:refguide:applib:index/spec/SpecificationNot.adoc[SpecificationNot], xref:refguide:applib:index/spec/SpecificationOr.adoc[SpecificationOr], xref:refguide:applib:index/tabular/TabularExporter.adoc[TabularExporter], xref:refguide:applib:index/types/DescriptionType.adoc[DescriptionType], xref:refguide:applib:index/types/MemberIdentifierType.adoc[MemberIdentifierType], xref:refguide:applib:index/types/TargetActionType.adoc[TargetActionType], xref:refguide:applib:index/types/TargetClassType.adoc[TargetClassType], xref:refguide:applib:index/util/Enums.adoc[Enums], xref:refguide:applib:index/util/Equality.adoc[Equality], xref:refguide:applib:index/util/Hashing.adoc[Hashing], xref:refguide:applib:index/util/ObjectContracts.adoc[ObjectContracts], xref:refguide:applib:index/util/ReasonBuffer.adoc[ReasonBuffer], xref:refguide:applib:index/util/ReasonBuffer2.adoc[ReasonBuffer2], xref:refguide:applib:index/util/Reasons.adoc[Reasons], xref:refguide:applib:index/util/TitleBuffer.adoc[TitleBuffer], xref:refguide:applib:index/util/TitleBufferException.adoc[TitleBufferException], xref:refguide:applib:index/util/ToString.adoc[ToString], xref:refguide:applib:index/util/schema/ChangesDtoUtils.adoc[ChangesDtoUtils], xref:refguide:applib:index/util/schema/CommandDtoUtils.adoc[CommandDtoUtils], xref:refguide:applib:index/util/schema/CommonDtoUtils.adoc[CommonDtoUtils], xref:refguide:applib:index/util/schema/InteractionDtoUtils.adoc[InteractionDtoUtils], xref:refguide:applib:index/util/schema/InteractionsDtoUtils.adoc[InteractionsDtoUtils], xref:refguide:applib:index/util/schema/MemberExecutionDtoUtils.adoc[MemberExecutionDtoUtils], xref:refguide:applib:index/value/Blob.adoc[Blob], xref:refguide:applib:index/value/Clob.adoc[Clob], xref:refguide:applib:index/value/LocalResourcePath.adoc[LocalResourcePath], xref:refguide:applib:index/value/Markup.adoc[Markup], xref:refguide:applib:index/value/NamedWithMimeType.adoc[NamedWithMimeType], xref:refguide:applib:index/value/OpenUrlStrategy.adoc[OpenUrlStrategy], xref:refguide:applib:index/value/Password.adoc[Password], xref:refguide:applib:index/value/semantics/Converter.adoc[Converter], xref:refguide:applib:index/value/semantics/DefaultsProvider.adoc[DefaultsProvider], xref:refguide:applib:index/value/semantics/OrderRelation.adoc[OrderRelation], xref:refguide:applib:index/value/semantics/Parser.adoc[Parser], xref:refguide:applib:index/value/semantics/ParsingException.adoc[ParsingException], xref:refguide:applib:index/value/semantics/Renderer.adoc[Renderer], xref:refguide:applib:index/value/semantics/ValueSemanticsAbstract.adoc[ValueSemanticsAbstract], xref:refguide:applib:index/value/semantics/ValueSemanticsProvider.adoc[ValueSemanticsProvider], xref:refguide:applib:index/value/semantics/ValueSemanticsResolver.adoc[ValueSemanticsResolver]
 ****
 
 |Apache Causeway Core - Code Gen (ByteBuddy)
@@ -1124,7 +1135,7 @@
 org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-applib:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-org.hibernate:hibernate-validator:jar:<managed> +
+org.hibernate.validator:hibernate-validator:jar:<managed> +
 org.projectlombok:lombok:jar:<managed> +
 org.springframework.boot:spring-boot-configuration-processor:jar:<managed> +
 ****
@@ -1165,7 +1176,8 @@
 Type: jar
 Directory: /core/internaltestsupport
 ----
-|Support for writing unit tests in JUnit 5; should be added as a dependency with scope=test only
+|Support for writing unit tests in JUnit 5; should be added as a
+dependency with scope=test only
 
 .Dependencies
 ****
@@ -1261,7 +1273,6 @@
 io.swagger.core.v3:swagger-core:jar:<managed> +
 org.apache.causeway.core:causeway-applib:jar:<managed> +
 org.apache.causeway.core:causeway-core-config:jar:<managed> +
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-security:jar:<managed> +
 ****
 
@@ -1270,6 +1281,41 @@
 xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject], xref:refguide:core:index/metamodel/services/appfeat/ApplicationFeatureDefault.adoc[ApplicationFeatureDefault], xref:refguide:core:index/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.adoc[ApplicationFeatureRepositoryDefault], xref:refguide:core:index/metamodel/services/columnorder/ColumnOrderTxtFileServiceDefault.adoc[ColumnOrderTxtFileServiceDefault], xref:refguide:core:index/metamodel/services/exceprecog/ExceptionRecognizerForRecoverableException.adoc[ExceptionRecognizerForRecoverableException], xref:refguide:core:index/metamodel/services/grid/GridLoaderServiceDefault.adoc[GridLoaderServiceDefault], xref:refguide:core:index/metamodel/services/grid/GridServiceDefault.adoc[GridServiceDefault], xref:refguide:core:index/metamodel/services/grid/bootstrap/GridMarshallerServiceBootstrap.adoc[GridMarshallerServiceBootstrap], xref:refguide:core:index/metamodel/services/grid/bootstrap/GridSystemServiceBootstrap.adoc[GridSystemServiceBootstrap], xref:refguide:core:index/metamodel/services/grid/spi/LayoutResourceLoader.adoc[LayoutResourceLoader], xref:refguide:core:index/metamodel/services/grid/spi/LayoutResourceLoaderDefault.adoc[LayoutResourceLoaderDefault], xref:refguide:core:index/metamodel/services/health/HealthCheckServiceForMetaModelValidationFailures.adoc[HealthCheckServiceForMetaModelValidationFailures], xref:refguide:core:index/metamodel/services/inject/ServiceInjectorDefault.adoc[ServiceInjectorDefault], xref:refguide:core:index/metamodel/services/layout/LayoutServiceDefault.adoc[LayoutServiceDefault], xref:refguide:core:index/metamodel/services/message/MessageBroker.adoc[MessageBroker], xref:refguide:core:index/metamodel/services/metamodel/MetaModelAnnotator.adoc[MetaModelAnnotator], xref:refguide:core:index/metamodel/services/metamodel/MetaModelServiceDefault.adoc[MetaModelServiceDefault], xref:refguide:core:index/metamodel/services/objectlifecycle/ObjectLifecyclePublisher.adoc[ObjectLifecyclePublisher], xref:refguide:core:index/metamodel/services/publishing/CommandPublisher.adoc[CommandPublisher], xref:refguide:core:index/metamodel/services/publishing/ExecutionPublisher.adoc[ExecutionPublisher], xref:refguide:core:index/metamodel/services/registry/ServiceRegistryDefault.adoc[ServiceRegistryDefault], xref:refguide:core:index/metamodel/services/schema/SchemaValueMarshaller.adoc[SchemaValueMarshaller], xref:refguide:core:index/metamodel/services/tablecol/TableColumnOrderServiceDefault.adoc[TableColumnOrderServiceDefault], xref:refguide:core:index/metamodel/services/tablecol/TableColumnOrderServiceUsingTxtFile.adoc[TableColumnOrderServiceUsingTxtFile], xref:refguide:core:index/metamodel/services/title/TitleServiceDefault.adoc[TitleServiceDefault], xref:refguide:core:index/metamodel/tabular/simple/DataColumn.adoc[DataColumn], xref:refguide:core:index/metamodel/tabular/simple/DataRow.adoc[DataRow], xref:refguide:core:index/metamodel/tabular/simple/DataTable.adoc[DataTable]
 ****
 
+|Apache Causeway Core - Metamodel Test
+[source,yaml]
+----
+Group: org.apache.causeway.core
+Artifact: causeway-core-mmtest
+Type: jar
+Directory: /core/mmtest
+----
+|Tests the causeway-core-metamodel artifact (using a custom
+MetaModelContext for testing, as provided by
+causeway-core-mmtestsupport).
+Introduced to avoid a circular artifact dependency.
+
+.Dependencies
+****
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
+****
+
+|Apache Causeway Core - Metamodel Test Support
+[source,yaml]
+----
+Group: org.apache.causeway.core
+Artifact: causeway-core-mmtestsupport
+Type: jar
+Directory: /core/mmtestsupport
+----
+|Provides a custom MetaModelContext for testing.
+Introduced to avoid a circular artifact dependency.
+
+.Dependencies
+****
+org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
+****
+
 |Apache Causeway Core - Runtime
 [source,yaml]
 ----
@@ -1291,7 +1337,6 @@
 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:<managed> +
 ****
 
 .Document Index Entries
@@ -1330,7 +1375,6 @@
 o.a.i.core.runtimeservices.menubars.bootstrap.MenuBarsMarshallerServiceBootstrap +
 o.a.i.core.runtimeservices.menubars.bootstrap.MenuBarsServiceBootstrap +
 o.a.i.core.runtimeservices.message.MessageServiceDefault +
-o.a.i.core.runtimeservices.placeholder.PlaceholderRenderServiceDefault +
 o.a.i.core.runtimeservices.publish.CommandPublisherDefault +
 o.a.i.core.runtimeservices.publish.EntityChangesPublisherDefault +
 o.a.i.core.runtimeservices.publish.EntityPropertyChangePublisherDefault +
@@ -1339,6 +1383,7 @@
 o.a.i.core.runtimeservices.publish.ObjectLifecyclePublisherDefault +
 o.a.i.core.runtimeservices.recognizer.ExceptionRecognizerServiceDefault +
 o.a.i.core.runtimeservices.recognizer.dae.ExceptionRecognizerForDataAccessException +
+o.a.i.core.runtimeservices.render.PlaceholderRenderServiceDefault +
 o.a.i.core.runtimeservices.routing.RoutingServiceDefault +
 o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault +
 o.a.i.core.runtimeservices.serializing.SerializingAdapterDefault +
@@ -1360,7 +1405,7 @@
 ****
 jakarta.mail:jakarta.mail-api:jar:<managed> +
 org.apache.causeway.core:causeway-core-codegen-bytebuddy:jar:<managed> +
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
 org.eclipse.angus:jakarta.mail:jar:<managed> +
 org.hsqldb:hsqldb:jar:<managed> +
@@ -1369,7 +1414,7 @@
 
 .Document Index Entries
 ****
-xref:refguide:core:index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc[BookmarkServiceDefault], xref:refguide:core:index/runtimeservices/command/CommandExecutorServiceDefault.adoc[CommandExecutorServiceDefault], xref:refguide:core:index/runtimeservices/command/SchemaValueMarshallerDefault.adoc[SchemaValueMarshallerDefault], xref:refguide:core:index/runtimeservices/email/EmailServiceDefault.adoc[EmailServiceDefault], xref:refguide:core:index/runtimeservices/eventbus/EventBusServiceSpring.adoc[EventBusServiceSpring], xref:refguide:core:index/runtimeservices/executor/MemberExecutorServiceDefault.adoc[MemberExecutorServiceDefault], xref:refguide:core:index/runtimeservices/factory/FactoryServiceDefault.adoc[FactoryServiceDefault], xref:refguide:core:index/runtimeservices/homepage/HomePageResolverServiceDefault.adoc[HomePageResolverServiceDefault], xref:refguide:core:index/runtimeservices/i18n/po/ContextAndMsgId.adoc[ContextAndMsgId], xref:refguide:core:index/runtimeservices/i18n/po/TranslationServicePo.adoc[TranslationServicePo], xref:refguide:core:index/runtimeservices/i18n/po/TranslationServicePoMenu.adoc[TranslationServicePoMenu], xref:refguide:core:index/runtimeservices/icons/ObjectIconServiceDefault.adoc[ObjectIconServiceDefault], xref:refguide:core:index/runtimeservices/jaxb/JaxbServiceDefault.adoc[JaxbServiceDefault], xref:refguide:core:index/runtimeservices/locale/LanguageProviderDefault.adoc[LanguageProviderDefault], xref:refguide:core:index/runtimeservices/locale/LocaleChoiceProviderDefault.adoc[LocaleChoiceProviderDefault], xref:refguide:core:index/runtimeservices/menubars/MenuBarsLoaderServiceDefault.adoc[MenuBarsLoaderServiceDefault], xref:refguide:core:index/runtimeservices/menubars/bootstrap/MenuBarsMarshallerServiceBootstrap.adoc[MenuBarsMarshallerServiceBootstrap], xref:refguide:core:index/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.adoc[MenuBarsServiceBootstrap], xref:refguide:core:index/runtimeservices/message/MessageServiceDefault.adoc[MessageServiceDefault], xref:refguide:core:index/runtimeservices/placeholder/PlaceholderRenderServiceDefault.adoc[PlaceholderRenderServiceDefault], xref:refguide:core:index/runtimeservices/publish/CommandPublisherDefault.adoc[CommandPublisherDefault], xref:refguide:core:index/runtimeservices/publish/EntityChangesPublisherDefault.adoc[EntityChangesPublisherDefault], xref:refguide:core:index/runtimeservices/publish/EntityPropertyChangePublisherDefault.adoc[EntityPropertyChangePublisherDefault], xref:refguide:core:index/runtimeservices/publish/ExecutionPublisherDefault.adoc[ExecutionPublisherDefault], xref:refguide:core:index/runtimeservices/publish/LifecycleCallbackNotifier.adoc[LifecycleCallbackNotifier], xref:refguide:core:index/runtimeservices/publish/ObjectLifecyclePublisherDefault.adoc[ObjectLifecyclePublisherDefault], xref:refguide:core:index/runtimeservices/recognizer/ExceptionRecognizerServiceDefault.adoc[ExceptionRecognizerServiceDefault], xref:refguide:core:index/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.adoc[ExceptionRecognizerForDataAccessException], xref:refguide:core:index/runtimeservices/routing/RoutingServiceDefault.adoc[RoutingServiceDefault], xref:refguide:core:index/runtimeservices/scratchpad/ScratchpadDefault.adoc[ScratchpadDefault], xref:refguide:core:index/runtimeservices/serializing/SerializingAdapterDefault.adoc[SerializingAdapterDefault], xref:refguide:core:index/runtimeservices/session/InteractionIdGenerator.adoc[InteractionIdGenerator], xref:refguide:core:index/runtimeservices/session/InteractionIdGeneratorDefault.adoc[InteractionIdGeneratorDefault], xref:refguide:core:index/runtimeservices/session/InteractionServiceDefault.adoc[InteractionServiceDefault], xref:refguide:core:index/runtimeservices/sitemap/SitemapServiceDefault.adoc[SitemapServiceDefault], xref:refguide:core:index/runtimeservices/spring/BeanDescriptor.adoc[BeanDescriptor], xref:refguide:core:index/runtimeservices/spring/ContextBeans.adoc[ContextBeans], xref:refguide:core:index/runtimeservices/spring/SpringBeansService.adoc[SpringBeansService], xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:refguide:core:index/runtimeservices/urlencoding/UrlEncodingServiceWithCompression.adoc[UrlEncodingServiceWithCompression], xref:refguide:core:index/runtimeservices/user/ImpersonateMenuAdvisorDefault.adoc[ImpersonateMenuAdvisorDefault], xref:refguide:core:index/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.adoc[UserCurrentSessionTimeZoneHolderDefault], xref:refguide:core:index/runtimeservices/userreg/EmailNotificationServiceDefault.adoc[EmailNotificationServiceDefault], xref:refguide:core:index/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault], xref:refguide:core:index/runtimeservices/xmlsnapshot/XmlSnapshotBuilder.adoc[XmlSnapshotBuilder], xref:refguide:core:index/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.adoc[XmlSnapshotServiceDefault]
+xref:refguide:core:index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc[BookmarkServiceDefault], xref:refguide:core:index/runtimeservices/command/CommandExecutorServiceDefault.adoc[CommandExecutorServiceDefault], xref:refguide:core:index/runtimeservices/command/SchemaValueMarshallerDefault.adoc[SchemaValueMarshallerDefault], xref:refguide:core:index/runtimeservices/email/EmailServiceDefault.adoc[EmailServiceDefault], xref:refguide:core:index/runtimeservices/eventbus/EventBusServiceSpring.adoc[EventBusServiceSpring], xref:refguide:core:index/runtimeservices/executor/MemberExecutorServiceDefault.adoc[MemberExecutorServiceDefault], xref:refguide:core:index/runtimeservices/factory/FactoryServiceDefault.adoc[FactoryServiceDefault], xref:refguide:core:index/runtimeservices/homepage/HomePageResolverServiceDefault.adoc[HomePageResolverServiceDefault], xref:refguide:core:index/runtimeservices/i18n/po/ContextAndMsgId.adoc[ContextAndMsgId], xref:refguide:core:index/runtimeservices/i18n/po/TranslationServicePo.adoc[TranslationServicePo], xref:refguide:core:index/runtimeservices/i18n/po/TranslationServicePoMenu.adoc[TranslationServicePoMenu], xref:refguide:core:index/runtimeservices/icons/ObjectIconServiceDefault.adoc[ObjectIconServiceDefault], xref:refguide:core:index/runtimeservices/jaxb/JaxbServiceDefault.adoc[JaxbServiceDefault], xref:refguide:core:index/runtimeservices/locale/LanguageProviderDefault.adoc[LanguageProviderDefault], xref:refguide:core:index/runtimeservices/locale/LocaleChoiceProviderDefault.adoc[LocaleChoiceProviderDefault], xref:refguide:core:index/runtimeservices/menubars/MenuBarsLoaderServiceDefault.adoc[MenuBarsLoaderServiceDefault], xref:refguide:core:index/runtimeservices/menubars/bootstrap/MenuBarsMarshallerServiceBootstrap.adoc[MenuBarsMarshallerServiceBootstrap], xref:refguide:core:index/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.adoc[MenuBarsServiceBootstrap], xref:refguide:core:index/runtimeservices/message/MessageServiceDefault.adoc[MessageServiceDefault], xref:refguide:core:index/runtimeservices/publish/CommandPublisherDefault.adoc[CommandPublisherDefault], xref:refguide:core:index/runtimeservices/publish/EntityChangesPublisherDefault.adoc[EntityChangesPublisherDefault], xref:refguide:core:index/runtimeservices/publish/EntityPropertyChangePublisherDefault.adoc[EntityPropertyChangePublisherDefault], xref:refguide:core:index/runtimeservices/publish/ExecutionPublisherDefault.adoc[ExecutionPublisherDefault], xref:refguide:core:index/runtimeservices/publish/LifecycleCallbackNotifier.adoc[LifecycleCallbackNotifier], xref:refguide:core:index/runtimeservices/publish/ObjectLifecyclePublisherDefault.adoc[ObjectLifecyclePublisherDefault], xref:refguide:core:index/runtimeservices/recognizer/ExceptionRecognizerServiceDefault.adoc[ExceptionRecognizerServiceDefault], xref:refguide:core:index/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.adoc[ExceptionRecognizerForDataAccessException], xref:refguide:core:index/runtimeservices/render/PlaceholderRenderServiceDefault.adoc[PlaceholderRenderServiceDefault], xref:refguide:core:index/runtimeservices/routing/RoutingServiceDefault.adoc[RoutingServiceDefault], xref:refguide:core:index/runtimeservices/scratchpad/ScratchpadDefault.adoc[ScratchpadDefault], xref:refguide:core:index/runtimeservices/serializing/SerializingAdapterDefault.adoc[SerializingAdapterDefault], xref:refguide:core:index/runtimeservices/session/InteractionIdGenerator.adoc[InteractionIdGenerator], xref:refguide:core:index/runtimeservices/session/InteractionIdGeneratorDefault.adoc[InteractionIdGeneratorDefault], xref:refguide:core:index/runtimeservices/session/InteractionServiceDefault.adoc[InteractionServiceDefault], xref:refguide:core:index/runtimeservices/sitemap/SitemapServiceDefault.adoc[SitemapServiceDefault], xref:refguide:core:index/runtimeservices/spring/BeanDescriptor.adoc[BeanDescriptor], xref:refguide:core:index/runtimeservices/spring/ContextBeans.adoc[ContextBeans], xref:refguide:core:index/runtimeservices/spring/SpringBeansService.adoc[SpringBeansService], xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:refguide:core:index/runtimeservices/urlencoding/UrlEncodingServiceWithCompression.adoc[UrlEncodingServiceWithCompression], xref:refguide:core:index/runtimeservices/user/ImpersonateMenuAdvisorDefault.adoc[ImpersonateMenuAdvisorDefault], xref:refguide:core:index/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.adoc[UserCurrentSessionTimeZoneHolderDefault], xref:refguide:core:index/runtimeservices/userreg/EmailNotificationServiceDefault.adoc[EmailNotificationServiceDefault], xref:refguide:core:index/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault], xref:refguide:core:index/runtimeservices/xmlsnapshot/XmlSnapshotBuilder.adoc[XmlSnapshotBuilder], xref:refguide:core:index/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.adoc[XmlSnapshotServiceDefault]
 ****
 
 |Apache Causeway Core - Security
@@ -1452,12 +1497,14 @@
 .Dependencies
 ****
 jakarta.servlet:jakarta.servlet-api:jar:<managed> +
+org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-core-interaction:jar:<managed> +
 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-actuator:jar:<managed> +
+org.springframework.boot:spring-boot-health:jar:<managed> +
 ****
 
 .Document Index Entries
@@ -1531,12 +1578,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydsljdo>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydsljpa>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -1566,25 +1607,23 @@
   rectangle "==Apache Causeway Persistence - QueryDSL\n<size:10>[Container: packaging: pom]</size>" <<Persistence.ApacheCausewayPersistenceQueryDSL>> as Persistence.ApacheCausewayPersistenceQueryDSL
   rectangle "==Apache Causeway Persistence - querydsl (applib)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydslapplib>> as Persistence.ApacheCausewayPersistencequerydslapplib
   rectangle "==Apache Causeway Persistence - querydsl (integration)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydslintegration>> as Persistence.ApacheCausewayPersistencequerydslintegration
-  rectangle "==Apache Causeway Persistence - querydsl (jdo)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydsljdo>> as Persistence.ApacheCausewayPersistencequerydsljdo
   rectangle "==Apache Causeway Persistence - querydsl (jpa)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydsljpa>> as Persistence.ApacheCausewayPersistencequerydsljpa
   rectangle "==Apache Causeway Persistence - querydsl (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydslmetamodel>> as Persistence.ApacheCausewayPersistencequerydslmetamodel
   rectangle "==Apache Causeway Persistence - querydsl (testsupport)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydsltestsupport>> as Persistence.ApacheCausewayPersistencequerydsltestsupport
 }
 
-Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslapplib : "<color:#707070>"
 Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslintegration : "<color:#707070>"
-Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydsljdo : "<color:#707070>"
 Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydsljpa : "<color:#707070>"
 Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslmetamodel : "<color:#707070>"
 Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydsltestsupport : "<color:#707070>"
+Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslapplib : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Persistence)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - JDBC
 [source,yaml]
@@ -1669,34 +1708,6 @@
 xref:refguide:persistence:index/querydsl/integration/CausewayModulePersistenceQueryDslIntegration.adoc[CausewayModulePersistenceQueryDslIntegration]
 ****
 
-|Apache Causeway Persistence - querydsl (jdo)
-[source,yaml]
-----
-Group: org.apache.causeway.persistence
-Artifact: causeway-persistence-querydsl-jdo
-Type: jar
-Directory: /persistence/querydsl/jdo
-----
-|Supplementary jdo for querydsl support
-
-.Components
-****
-o.a.i.persistence.querydsl.jdo.services.support.DetachedQueryFactoryJdo +
-o.a.i.persistence.querydsl.jdo.services.support.QueryDslSupportJdo +
-****
-
-.Dependencies
-****
-com.querydsl:querydsl-jdo:jar:<managed> +
-org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
-org.apache.causeway.persistence:causeway-persistence-querydsl-integration:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:persistence:index/querydsl/jdo/CausewayModulePersistenceQueryDslJdo.adoc[CausewayModulePersistenceQueryDslJdo]
-****
-
 |Apache Causeway Persistence - querydsl (jpa)
 [source,yaml]
 ----
@@ -1810,7 +1821,7 @@
 .Projects/Modules (Persistence Commons)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - Commons
 [source,yaml]
@@ -1919,7 +1930,7 @@
 .Projects/Modules (JPA)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - JPA
 [source,yaml]
@@ -1948,6 +1959,7 @@
 org.apache.causeway.core:causeway-applib:jar:<managed> +
 org.apache.causeway.core:causeway-core-transaction:jar:<managed> +
 org.eclipse.persistence:org.eclipse.persistence.moxy:jar:<managed> +
+org.springframework.boot:spring-boot-persistence:jar:${spring-boot.version} +
 org.springframework.data:spring-data-jpa:jar:<managed> +
 ****
 
@@ -2007,6 +2019,7 @@
 org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
 org.apache.causeway.persistence:causeway-persistence-commons:jar:<managed> +
 org.apache.causeway.persistence:causeway-persistence-jpa-metamodel:jar:<managed> +
+org.springframework.boot:spring-boot-persistence:jar:${spring-boot.version} +
 org.springframework.data:spring-data-jpa:jar:<managed> +
 ****
 
@@ -2041,75 +2054,6 @@
 
 == Security
 
-[plantuml,Security,svg]
-----
-@startuml
-set separator none
-title Security - Containers
-
-left to right direction
-
-skinparam {
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
-}
-
-hide stereotype
-
-skinparam rectangle<<Security.ApacheCausewaySecuritySimple>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
-skinparam rectangle<<Security>> {
-  BorderColor #9a9a9a
-  FontColor #9a9a9a
-  shadowing false
-}
-
-rectangle "Security\n<size:10>[Software System]</size>" <<Security>> {
-  rectangle "==Apache Causeway Security - Simple\n<size:10>[Container: packaging: jar]</size>" <<Security.ApacheCausewaySecuritySimple>> as Security.ApacheCausewaySecuritySimple
-}
-
-@enduml
-----
-
-.Projects/Modules (Security)
-[cols="3a,5a", options="header"]
-|===
-|Coordinates |Description
-
-|Apache Causeway Security - Simple
-[source,yaml]
-----
-Group: org.apache.causeway.security
-Artifact: causeway-security-simple
-Type: jar
-Directory: /security/simple
-----
-|.Components
-****
-o.a.i.security.simple.authentication.SimpleAuthenticator +
-o.a.i.security.simple.authorization.SimpleAuthorizor +
-o.a.i.security.simple.realm.SimpleRealm +
-****
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
-org.springframework.security:spring-security-crypto:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:security:index/simple/CausewayModuleSecuritySimple.adoc[CausewayModuleSecuritySimple], xref:refguide:security:index/simple/authentication/SimpleAuthenticator.adoc[SimpleAuthenticator], xref:refguide:security:index/simple/authorization/SimpleAuthorizor.adoc[SimpleAuthorizor]
-****
-|===
-
 === Bypass
 
 [plantuml,Bypass,svg]
@@ -2151,7 +2095,7 @@
 .Projects/Modules (Bypass)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Bypass
 [source,yaml]
@@ -2219,7 +2163,7 @@
 .Projects/Modules (Keycloak)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Keycloak
 [source,yaml]
@@ -2243,6 +2187,7 @@
 org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
 org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
 org.apache.causeway.security:causeway-security-spring:jar:<managed> +
+org.springframework.boot:spring-boot-security-oauth2-client:jar:<managed> +
 org.springframework.boot:spring-boot-starter-security:jar:<managed> +
 org.springframework.security:spring-security-oauth2-client:jar:<managed> +
 org.springframework.security:spring-security-oauth2-core:jar:<managed> +
@@ -2255,13 +2200,13 @@
 ****
 |===
 
-=== Shiro
+=== Simple
 
-[plantuml,Shiro,svg]
+[plantuml,Simple,svg]
 ----
 @startuml
 set separator none
-title Shiro - Containers
+title Simple - Containers
 
 left to right direction
 
@@ -2274,60 +2219,55 @@
 
 hide stereotype
 
-skinparam rectangle<<Shiro.ApacheCausewaySecurityShiro>> {
+skinparam rectangle<<Simple.ApacheCausewaySecuritySimple>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Shiro>> {
+skinparam rectangle<<Simple>> {
   BorderColor #9a9a9a
   FontColor #9a9a9a
   shadowing false
 }
 
-rectangle "Shiro\n<size:10>[Software System]</size>" <<Shiro>> {
-  rectangle "==Apache Causeway Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<Shiro.ApacheCausewaySecurityShiro>> as Shiro.ApacheCausewaySecurityShiro
+rectangle "Simple\n<size:10>[Software System]</size>" <<Simple>> {
+  rectangle "==Apache Causeway Security - Simple\n<size:10>[Container: packaging: jar]</size>" <<Simple.ApacheCausewaySecuritySimple>> as Simple.ApacheCausewaySecuritySimple
 }
 
 @enduml
 ----
 
-.Projects/Modules (Shiro)
+.Projects/Modules (Simple)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
-|Apache Causeway Security - Shiro
+|Apache Causeway Security - Simple
 [source,yaml]
 ----
 Group: org.apache.causeway.security
-Artifact: causeway-security-shiro
+Artifact: causeway-security-simple
 Type: jar
-Directory: /retired/shiro/security/shiro
+Directory: /security/simple
 ----
-|Authentication and Authorization using Apache Shiro.
-
-.Components
+|.Components
 ****
-o.a.i.security.shiro.authentication.AuthenticatorShiro +
-o.a.i.security.shiro.authorization.AuthorizorShiro +
-o.a.i.security.shiro.webmodule.WebModuleShiro +
+o.a.i.security.simple.authentication.SimpleAuthenticator +
+o.a.i.security.simple.authorization.SimpleAuthorizor +
+o.a.i.security.simple.realm.SimpleRealm +
 ****
 
 .Dependencies
 ****
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
-org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
-org.apache.shiro:shiro-core:jar:2.0.2 +
-org.apache.shiro:shiro-web:jar:2.0.2 +
+org.springframework.security:spring-security-crypto:jar:<managed> +
 ****
 
 .Document Index Entries
 ****
-xref:refguide:security:index/shiro/CausewayModuleSecurityShiro.adoc[CausewayModuleSecurityShiro], xref:refguide:security:index/shiro/authentication/AuthenticatorShiro.adoc[AuthenticatorShiro], xref:refguide:security:index/shiro/authorization/AuthorizorShiro.adoc[AuthorizorShiro], xref:refguide:security:index/shiro/authorization/CausewayPermission.adoc[CausewayPermission], xref:refguide:security:index/shiro/authorization/CausewayPermissionResolver.adoc[CausewayPermissionResolver], xref:refguide:security:index/shiro/webmodule/WebModuleShiro.adoc[WebModuleShiro]
+xref:refguide:security:index/simple/CausewayModuleSecuritySimple.adoc[CausewayModuleSecuritySimple], xref:refguide:security:index/simple/authentication/SimpleAuthenticator.adoc[SimpleAuthenticator], xref:refguide:security:index/simple/authorization/SimpleAuthorizor.adoc[SimpleAuthorizor]
 ****
 |===
 
@@ -2372,7 +2312,7 @@
 .Projects/Modules (Spring)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Spring
 [source,yaml]
@@ -2482,7 +2422,7 @@
 .Projects/Modules (Viewer Commons)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - Commons
 [source,yaml]
@@ -2524,7 +2464,7 @@
 ****
 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.7.2 +
+org.webjars:font-awesome:jar:7.0.1 +
 ****
 
 |Apache Causeway Commons - Prism
@@ -2664,7 +2604,7 @@
 .Projects/Modules (GraphQL)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - GraphQL
 [source,yaml]
@@ -2686,7 +2626,6 @@
 ----
 |.Dependencies
 ****
-com.graphql-java:graphql-java:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
 org.springframework.boot:spring-boot-autoconfigure:jar:<managed> +
@@ -2728,9 +2667,6 @@
 o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerJdk8OffsetDateTime +
 o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerJdk8OffsetTime +
 o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerJdk8ZonedDateTime +
-o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerJodaDateTime +
-o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerJodaLocalDate +
-o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerJodaLocalTime +
 o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerLongPrimitive +
 o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerLongWrapper +
 o.a.i.viewer.graphql.model.marshallers.ScalarMarshallerObject +
@@ -2814,6 +2750,7 @@
 org.apache.causeway.viewer:causeway-viewer-graphql-viewer:jar:<managed> +
 org.springframework:spring-context-support:jar:<managed> +
 org.springframework.boot:spring-boot-test-autoconfigure:jar:<managed> +
+org.springframework.graphql:spring-graphql:jar:<managed> +
 org.springframework.graphql:spring-graphql-test:jar:<managed> +
 ****
 
@@ -2844,6 +2781,7 @@
 org.assertj:assertj-core:jar:<managed> +
 org.junit.jupiter:junit-jupiter-api:jar:<managed> +
 org.springframework.boot:spring-boot:jar:<managed> +
+org.springframework.boot:spring-boot-graphql:jar:<managed> +
 org.springframework.boot:spring-boot-starter-websocket:jar:<managed> +
 ****
 |===
@@ -2897,12 +2835,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROTesting>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROViewer>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -2921,23 +2853,21 @@
   rectangle "==Apache Causeway Viewer - RO (Client)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROClient>> as RestfulObjects.ApacheCausewayViewerROClient
   rectangle "==Apache Causeway Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerRORendering>> as RestfulObjects.ApacheCausewayViewerRORendering
   rectangle "==Apache Causeway Viewer - RO (Test)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROTest>> as RestfulObjects.ApacheCausewayViewerROTest
-  rectangle "==Apache Causeway Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROTesting>> as RestfulObjects.ApacheCausewayViewerROTesting
   rectangle "==Apache Causeway Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROViewer>> as RestfulObjects.ApacheCausewayViewerROViewer
 }
 
-RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROAppLib : "<color:#707070>"
-RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROClient : "<color:#707070>"
 RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerRORendering : "<color:#707070>"
 RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROTest : "<color:#707070>"
-RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROTesting : "<color:#707070>"
 RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROViewer : "<color:#707070>"
+RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROAppLib : "<color:#707070>"
+RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROClient : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Restful Objects)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - RO
 [source,yaml]
@@ -2960,14 +2890,16 @@
 |.Dependencies
 ****
 com.fasterxml.jackson.core:jackson-databind:jar:<managed> +
+jakarta.ws.rs:jakarta.ws.rs-api:jar:<managed> +
 org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-applib:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+org.springframework:spring-web:jar:<managed> +
 ****
 
 .Document Index Entries
 ****
-xref:refguide:viewer:index/restfulobjects/applib/CausewayModuleViewerRestfulObjectsApplib.adoc[CausewayModuleViewerRestfulObjectsApplib], xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation], xref:refguide:viewer:index/restfulobjects/applib/LinkRepresentation.adoc[LinkRepresentation], xref:refguide:viewer:index/restfulobjects/applib/Rel.adoc[Rel], xref:refguide:viewer:index/restfulobjects/applib/RelDefinition.adoc[RelDefinition], xref:refguide:viewer:index/restfulobjects/applib/RepresentationType.adoc[RepresentationType], xref:refguide:viewer:index/restfulobjects/applib/RestfulHttpMethod.adoc[RestfulHttpMethod], xref:refguide:viewer:index/restfulobjects/applib/RestfulMediaType.adoc[RestfulMediaType], xref:refguide:viewer:index/restfulobjects/applib/RestfulRequest.adoc[RestfulRequest], xref:refguide:viewer:index/restfulobjects/applib/RestfulResponse.adoc[RestfulResponse], xref:refguide:viewer:index/restfulobjects/applib/boot/BootstrapResource.adoc[BootstrapResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/AbstractObjectMemberRepresentation.adoc[AbstractObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ActionResultRepresentation.adoc[ActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectMemberRepresentation.adoc[DomainObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectRepresentation.adoc[DomainObjectRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc[DomainObjectResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainRepresentation.adoc[DomainRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc[DomainServiceResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ListRepresentation.adoc[ListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectActionRepresentation.adoc[ObjectActionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectCollectionRepresentation.adoc[ObjectCollectionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectPropertyRepresentation.adoc[ObjectPropertyRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ScalarValueRepresentation.adoc[ScalarValueRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/AbstractTypeMemberRepresentation.adoc[AbstractTypeMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionDescriptionRepresentation.adoc[ActionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionParameterDescriptionRepresentation.adoc[ActionParameterDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/CollectionDescriptionRepresentation.adoc[CollectionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeRepresentation.adoc[DomainTypeRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc[DomainTypeResource], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/PropertyDescriptionRepresentation.adoc[PropertyDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeActionResultRepresentation.adoc[TypeActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeListRepresentation.adoc[TypeListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/dtos/ScalarValueDtoV2.adoc[ScalarValueDtoV2], xref:refguide:viewer:index/restfulobjects/applib/errors/ErrorRepresentation.adoc[ErrorRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthRepresentation.adoc[HealthRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthResource.adoc[HealthResource], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageRepresentation.adoc[HomePageRepresentation], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageResource.adoc[HomePageResource], xref:refguide:viewer:index/restfulobjects/applib/menubars/MenuBarsResource.adoc[MenuBarsResource], xref:refguide:viewer:index/restfulobjects/applib/user/UserRepresentation.adoc[UserRepresentation], xref:refguide:viewer:index/restfulobjects/applib/user/UserResource.adoc[UserResource], xref:refguide:viewer:index/restfulobjects/applib/util/JsonMapper.adoc[JsonMapper], xref:refguide:viewer:index/restfulobjects/applib/util/JsonNodeUtils.adoc[JsonNodeUtils], xref:refguide:viewer:index/restfulobjects/applib/util/MediaTypes.adoc[MediaTypes], xref:refguide:viewer:index/restfulobjects/applib/util/Parser.adoc[Parser], xref:refguide:viewer:index/restfulobjects/applib/util/PathNode.adoc[PathNode], xref:refguide:viewer:index/restfulobjects/applib/util/UrlEncodingUtils.adoc[UrlEncodingUtils], xref:refguide:viewer:index/restfulobjects/applib/version/VersionRepresentation.adoc[VersionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/version/VersionResource.adoc[VersionResource]
+xref:refguide:viewer:index/restfulobjects/applib/CausewayModuleViewerRestfulObjectsApplib.adoc[CausewayModuleViewerRestfulObjectsApplib], xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation], xref:refguide:viewer:index/restfulobjects/applib/LinkRepresentation.adoc[LinkRepresentation], xref:refguide:viewer:index/restfulobjects/applib/Rel.adoc[Rel], xref:refguide:viewer:index/restfulobjects/applib/RelDefinition.adoc[RelDefinition], xref:refguide:viewer:index/restfulobjects/applib/RepresentationType.adoc[RepresentationType], xref:refguide:viewer:index/restfulobjects/applib/RestfulHttpMethod.adoc[RestfulHttpMethod], xref:refguide:viewer:index/restfulobjects/applib/RestfulMediaType.adoc[RestfulMediaType], xref:refguide:viewer:index/restfulobjects/applib/RestfulRequest.adoc[RestfulRequest], xref:refguide:viewer:index/restfulobjects/applib/RestfulResponse.adoc[RestfulResponse], xref:refguide:viewer:index/restfulobjects/applib/boot/BootstrapResource.adoc[BootstrapResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/AbstractObjectMemberRepresentation.adoc[AbstractObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ActionResultRepresentation.adoc[ActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectMemberRepresentation.adoc[DomainObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectRepresentation.adoc[DomainObjectRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc[DomainObjectResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainRepresentation.adoc[DomainRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc[DomainServiceResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ListRepresentation.adoc[ListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectActionRepresentation.adoc[ObjectActionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectCollectionRepresentation.adoc[ObjectCollectionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectPropertyRepresentation.adoc[ObjectPropertyRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ScalarValueRepresentation.adoc[ScalarValueRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/AbstractTypeMemberRepresentation.adoc[AbstractTypeMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionDescriptionRepresentation.adoc[ActionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionParameterDescriptionRepresentation.adoc[ActionParameterDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/CollectionDescriptionRepresentation.adoc[CollectionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeRepresentation.adoc[DomainTypeRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc[DomainTypeResource], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/PropertyDescriptionRepresentation.adoc[PropertyDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeActionResultRepresentation.adoc[TypeActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeListRepresentation.adoc[TypeListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/dtos/ScalarValueDtoV2.adoc[ScalarValueDtoV2], xref:refguide:viewer:index/restfulobjects/applib/errors/ErrorRepresentation.adoc[ErrorRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthRepresentation.adoc[HealthRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthResource.adoc[HealthResource], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageRepresentation.adoc[HomePageRepresentation], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageResource.adoc[HomePageResource], xref:refguide:viewer:index/restfulobjects/applib/menubars/MenuBarsResource.adoc[MenuBarsResource], xref:refguide:viewer:index/restfulobjects/applib/user/UserRepresentation.adoc[UserRepresentation], xref:refguide:viewer:index/restfulobjects/applib/user/UserResource.adoc[UserResource], xref:refguide:viewer:index/restfulobjects/applib/util/JsonMapper.adoc[JsonMapper], xref:refguide:viewer:index/restfulobjects/applib/util/Parser.adoc[Parser], xref:refguide:viewer:index/restfulobjects/applib/util/PathNode.adoc[PathNode], xref:refguide:viewer:index/restfulobjects/applib/version/VersionRepresentation.adoc[VersionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/version/VersionResource.adoc[VersionResource]
 ****
 
 |Apache Causeway Viewer - RO (Client)
@@ -2985,6 +2917,7 @@
 org.eclipse.parsson:parsson:jar:1.1.7 +
 org.eclipse.persistence:org.eclipse.persistence.asm:jar:<managed> +
 org.eclipse.persistence:org.eclipse.persistence.moxy:jar:<managed> +
+org.jboss.resteasy:resteasy-client:jar:7.0.0.Final +
 org.springframework:spring-context:jar:<managed> +
 ****
 
@@ -2993,28 +2926,6 @@
 xref:refguide:viewer:index/restfulobjects/client/ActionParameterListBuilder.adoc[ActionParameterListBuilder], xref:refguide:viewer:index/restfulobjects/client/RestfulClient.adoc[RestfulClient], xref:refguide:viewer:index/restfulobjects/client/RestfulClientConfig.adoc[RestfulClientConfig], xref:refguide:viewer:index/restfulobjects/client/auth/AuthFilter.adoc[AuthFilter], xref:refguide:viewer:index/restfulobjects/client/log/ClientConversationFilter.adoc[ClientConversationFilter], xref:refguide:viewer:index/restfulobjects/client/log/ClientConversationLogger.adoc[ClientConversationLogger]
 ****
 
-|Apache Causeway Viewer - RO
-[source,yaml]
-----
-Group: org.apache.causeway.viewer
-Artifact: causeway-viewer-restfulobjects-viewer
-Type: jar
-Directory: /viewers/restfulobjects/viewer
-----
-|JAX-RS plugin using Spring REST API.
-
-
-.Dependencies
-****
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-rendering:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-testing:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-viewer:jar:<managed> +
-****
-
-.Document Index Entries
-****
-****
-
 |Apache Causeway Viewer - RO (Rendering)
 [source,yaml]
 ----
@@ -3026,12 +2937,8 @@
 |.Components
 ****
 o.a.i.viewer.restfulobjects.rendering.service.RepresentationService +
-o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest +
-o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest$RequestFilter +
-o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest$ResponseFilter +
 o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceForRestfulObjectsV1_0 +
 o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheCausewayV2 +
-o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV1 +
 o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceXRoDomainType +
 o.a.i.viewer.restfulobjects.rendering.service.swagger.SwaggerServiceDefault +
 o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.ClassExcluderDefault +
@@ -3043,14 +2950,15 @@
 
 .Dependencies
 ****
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+jakarta.servlet:jakarta.servlet-api:jar:<managed> +
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-restfulobjects-applib:jar:<managed> +
 ****
 
 .Document Index Entries
 ****
-xref:refguide:viewer:index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc[CausewayModuleRestfulObjectsRendering], xref:refguide:viewer:index/restfulobjects/rendering/IResourceContext.adoc[IResourceContext], xref:refguide:viewer:index/restfulobjects/rendering/service/RepresentationService.adoc[RepresentationService], xref:refguide:viewer:index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc[AcceptHeaderServiceForRest], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc[ContentNegotiationServiceAbstract], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc[ContentNegotiationServiceForRestfulObjectsV1_0], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc[ContentNegotiationServiceOrgApacheCausewayV2], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc[ContentNegotiationServiceOrgApacheIsisV1], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc[ContentNegotiationServiceXRoDomainType], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.adoc[SwaggerServiceDefault], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc[SwaggerServiceMenu], xref:refguide:viewer:index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc[JsonValueEncoderService]
+xref:refguide:viewer:index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc[CausewayModuleRestfulObjectsRendering], xref:refguide:viewer:index/restfulobjects/rendering/IResourceContext.adoc[IResourceContext], xref:refguide:viewer:index/restfulobjects/rendering/service/RepresentationService.adoc[RepresentationService], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc[ContentNegotiationServiceAbstract], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc[ContentNegotiationServiceForRestfulObjectsV1_0], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc[ContentNegotiationServiceOrgApacheCausewayV2], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc[ContentNegotiationServiceXRoDomainType], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceDefault.adoc[SwaggerServiceDefault], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc[SwaggerServiceMenu], xref:refguide:viewer:index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc[JsonValueEncoderService]
 ****
 
 |Apache Causeway Viewer - RO (Test)
@@ -3067,7 +2975,6 @@
 com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:<managed> +
 com.github.gavlyukovskiy:datasource-proxy-spring-boot-starter:jar:<managed> +
 com.github.vertical-blank:sql-formatter:jar:<managed> +
-com.google.code.gson:gson:jar:<managed> +
 com.h2database:h2:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
@@ -3076,30 +2983,14 @@
 org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-commons-services:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-restfulobjects-rendering:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-restfulobjects-viewer:jar:<managed> +
-org.glassfish.jersey.core:jersey-client:jar:<managed> +
-org.glassfish.jersey.inject:jersey-hk2:jar:<managed> +
+org.glassfish.jersey.core:jersey-client:jar:4.0.0-M4 +
+org.glassfish.jersey.inject:jersey-hk2:jar:4.0.0-M4 +
 org.springframework.boot:spring-boot-starter-web:jar:<managed> +
 org.springframework.boot:spring-boot-test-autoconfigure:jar:<managed> +
 ****
 
-|Apache Causeway Viewer - RO (Testing)
-[source,yaml]
-----
-Group: org.apache.causeway.viewer
-Artifact: causeway-viewer-restfulobjects-testing
-Type: jar
-Directory: /viewers/restfulobjects/testing
-----
-|.Dependencies
-****
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-viewer:jar:<managed> +
-****
-
 |Apache Causeway Viewer - RO (Viewer)
 [source,yaml]
 ----
@@ -3110,24 +3001,14 @@
 ----
 |.Components
 ****
-o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForObjectNotFound +
-o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForRestfulObjectsApplication +
-o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForRuntimeException +
-o.a.i.viewer.restfulobjects.viewer.resources.DomainObjectResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.DomainServiceResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.DomainTypeResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.HomePageResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.ImageResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.MenuBarsResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.SwaggerSpecResource +
-o.a.i.viewer.restfulobjects.viewer.resources.UserResourceServerside +
-o.a.i.viewer.restfulobjects.viewer.resources.VersionResourceServerside +
+o.a.i.viewer.restfulobjects.viewer.webmodule.CausewayRestfulObjectsInteractionFilter2 +
+o.a.i.viewer.restfulobjects.viewer.webmodule.WebModuleRestfulObjects +
 ****
 
 .Dependencies
 ****
 com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:jar:<managed> +
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-commons-services:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-restfulobjects-rendering:jar:<managed> +
@@ -3135,7 +3016,7 @@
 
 .Document Index Entries
 ****
-xref:refguide:viewer:index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc[CausewayModuleViewerRestfulObjectsViewer], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategy.adoc[AuthenticationStrategy], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyAbstract.adoc[AuthenticationStrategyAbstract], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyBasicAuth.adoc[AuthenticationStrategyBasicAuth], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyUsingSession.adoc[AuthenticationStrategyUsingSession]
+xref:refguide:viewer:index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc[CausewayModuleViewerRestfulObjectsViewer], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.adoc[WebModuleRestfulObjects], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategy.adoc[AuthenticationStrategy], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyAbstract.adoc[AuthenticationStrategyAbstract], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyBasicAuth.adoc[AuthenticationStrategyBasicAuth], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyUsingSession.adoc[AuthenticationStrategyUsingSession]
 ****
 |===
 
@@ -3220,7 +3101,7 @@
 .Projects/Modules (Wicket)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - Wicket
 [source,yaml]
@@ -3332,9 +3213,8 @@
 
 .Dependencies
 ****
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
-org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-integration:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
 ****
 
@@ -3351,6 +3231,8 @@
 o.a.i.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault +
 o.a.i.viewer.wicket.viewer.services.BookmarkUiServiceWicket +
 o.a.i.viewer.wicket.viewer.services.DeepLinkServiceWicket +
+o.a.i.viewer.wicket.viewer.services.IconResourceReferenceFactoryDefault +
+o.a.i.viewer.wicket.viewer.services.ObjectRenderServiceWicket +
 o.a.i.viewer.wicket.viewer.webmodule.WebModuleWicket +
 o.a.i.viewer.wicket.viewer.wicketapp.CausewayWicketApplication$ServiceInjectorHolder +
 ****
@@ -3359,11 +3241,12 @@
 ****
 commons-io:commons-io:jar:<managed> +
 de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
 org.apache.wicket:wicket-auth-roles:jar:<managed> +
 org.apache.wicket:wicket-spring:jar:<managed> +
 org.springframework:spring-web:jar:<managed> +
+org.springframework.boot:spring-boot-web-server:jar:<managed> +
 ****
 
 .Document Index Entries
@@ -3391,24 +3274,6 @@
 
 hide stereotype
 
-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.ApacheCausewayValuetypes>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -3423,21 +3288,15 @@
 
 rectangle "Valuetypes\n<size:10>[Software System]</size>" <<Valuetypes>> {
   rectangle "==Apache Causeway Value types\n<size:10>[Container: packaging: pom]</size>" <<Valuetypes.ApacheCausewayValuetypes>> as Valuetypes.ApacheCausewayValuetypes
-  rectangle "==Apache Causeway Val - Joda Time (parent)\n<size:10>[Container: packaging: pom]</size>" <<Valuetypes.ApacheCausewayValJodaTimeparent>> as Valuetypes.ApacheCausewayValJodaTimeparent
-  rectangle "==Apache Causeway Val - Joda Time (applib)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValJodaTimeapplib>> as Valuetypes.ApacheCausewayValJodaTimeapplib
-  rectangle "==Apache Causeway Val - Joda Time (integration)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValJodaTimeintegration>> as Valuetypes.ApacheCausewayValJodaTimeintegration
 }
 
-Valuetypes.ApacheCausewayValuetypes .[#707070,thickness=2].> Valuetypes.ApacheCausewayValJodaTimeparent : "<color:#707070>"
-Valuetypes.ApacheCausewayValJodaTimeparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValJodaTimeapplib : "<color:#707070>"
-Valuetypes.ApacheCausewayValJodaTimeparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValJodaTimeintegration : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Valuetypes)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Value types
 [source,yaml]
@@ -3448,70 +3307,6 @@
 Directory: /valuetypes
 ----
 |Value types for use within Apache Causeway applications.
-
-.Dependencies
-****
-org.projectlombok:lombok:jar:<managed> +
-****
-
-|Apache Causeway Val - Joda Time (parent)
-[source,yaml]
-----
-Group: org.apache.causeway.valuetypes
-Artifact: causeway-valuetypes-jodatime
-Type: pom
-Directory: /valuetypes/jodatime
-----
-|Joda Time Library
-
-|Apache Causeway Val - Joda Time (applib)
-[source,yaml]
-----
-Group: org.apache.causeway.valuetypes
-Artifact: causeway-valuetypes-jodatime-applib
-Type: jar
-Directory: /valuetypes/jodatime/applib
-----
-|.Dependencies
-****
-joda-time:joda-time:jar:<managed> +
-org.apache.causeway.commons:causeway-commons:jar:<managed> +
-org.apache.causeway.core:causeway-applib:jar:<managed> +
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:valuetypes:index/jodatime/applib/CausewayModuleValJodatimeApplib.adoc[CausewayModuleValJodatimeApplib], xref:refguide:valuetypes:index/jodatime/applib/jaxb/JodaTimeJaxbAdapters.adoc[JodaTimeJaxbAdapters], xref:refguide:valuetypes:index/jodatime/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc[JodaTimeXMLGregorianCalendarMarshalling], xref:refguide:valuetypes:index/jodatime/applib/value/JodaTimeConverters.adoc[JodaTimeConverters]
-****
-
-|Apache Causeway Val - Joda Time (integration)
-[source,yaml]
-----
-Group: org.apache.causeway.valuetypes
-Artifact: causeway-valuetypes-jodatime-integration
-Type: jar
-Directory: /valuetypes/jodatime/integration
-----
-|.Components
-****
-o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaDateTimeValueSemantics +
-o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaLocalDateTimeValueSemantics +
-o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaLocalDateValueSemantics +
-o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaLocalTimeValueSemantics +
-****
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
-org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:valuetypes:index/jodatime/integration/CausewayModuleValJodatimeIntegration.adoc[CausewayModuleValJodatimeIntegration]
-****
 |===
 
 === Asciidoc
@@ -3545,12 +3340,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -3592,26 +3381,24 @@
   rectangle "==Apache Causeway Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorapplib>> as Asciidoc.ApacheCausewayValAsciidoctorapplib
   rectangle "==Apache Causeway Val - Asciidoctor (Builder)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorBuilder>> as Asciidoc.ApacheCausewayValAsciidoctorBuilder
   rectangle "==Apache Causeway Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorMetaModel>> as Asciidoc.ApacheCausewayValAsciidoctorMetaModel
-  rectangle "==Apache Causeway Val - Asciidoctor (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO>> as Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO
   rectangle "==Apache Causeway Val - Asciidoctor (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA>> as Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA
   rectangle "==Apache Causeway Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorui>> as Asciidoc.ApacheCausewayValAsciidoctorui
   rectangle "==Apache Causeway Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctoruiwicket>> as Asciidoc.ApacheCausewayValAsciidoctoruiwicket
 }
 
-Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorapplib : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorBuilder : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorMetaModel : "<color:#707070>"
-Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorui : "<color:#707070>"
 Asciidoc.ApacheCausewayValAsciidoctorui .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctoruiwicket : "<color:#707070>"
+Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorapplib : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Asciidoc)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Val - Asciidoctor (parent)
 [source,yaml]
@@ -3636,7 +3423,7 @@
 org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-applib:jar:<managed> +
 org.apache.causeway.core:causeway-core-config:jar:<managed> +
-org.asciidoctor:asciidoctorj-api:jar:${asciidoctorj.version} +
+org.asciidoctor:asciidoctorj-api:jar:<managed> +
 ****
 
 .Document Index Entries
@@ -3654,19 +3441,29 @@
 ----
 |Library for programmatic AsciiDoc generation.
 
-The AsciiDoc name is trademarked by the Eclipse Foundation (https://www.eclipse.org/).
-This project is *not* part of the specification effort for _AsciiDoc_ under the
-AsciiDoc Working Group. See https://projects.eclipse.org/proposals/asciidoc-language
-and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to
-help with transfer of source code, if any project (under the umbrella of the
+The AsciiDoc name is trademarked by the Eclipse Foundation
+(https://www.eclipse.org/).
+This project is *not* part of the specification effort for _AsciiDoc_
+under the
+AsciiDoc Working Group. See
+https://projects.eclipse.org/proposals/asciidoc-language
+and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we
+are happy to
+help with transfer of source code, if any project (under the umbrella of
+the
 AsciiDoc Working Group) is willing to take over.
 
 .Dependencies
 ****
+com.github.jnr:jnr-constants:jar:<managed> +
+com.github.jnr:jnr-enxio:jar:<managed> +
+com.github.jnr:jnr-ffi:jar:<managed> +
+com.github.jnr:jnr-posix:jar:<managed> +
 org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-applib:jar:<managed> +
-org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version} +
+org.asciidoctor:asciidoctorj:jar:<managed> +
+org.jruby:jruby:jar:<managed> +
 ****
 
 |Apache Causeway Val - Asciidoctor (MetaModel)
@@ -3696,25 +3493,6 @@
 xref:refguide:valuetypes:index/asciidoc/metamodel/CausewayModuleValAsciidocMetaModel.adoc[CausewayModuleValAsciidocMetaModel]
 ****
 
-|Apache Causeway Val - Asciidoctor (Persistence JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.valuetypes
-Artifact: causeway-valuetypes-asciidoc-persistence-jdo
-Type: jar
-Directory: /valuetypes/asciidoc/persistence-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
-org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:valuetypes:index/asciidoc/persistence/jdo/CausewayModuleValAsciidocPersistenceJdo.adoc[CausewayModuleValAsciidocPersistenceJdo], xref:refguide:valuetypes:index/asciidoc/persistence/jdo/converters/CausewayAsciiDocConverter.adoc[CausewayAsciiDocConverter]
-****
-
 |Apache Causeway Val - Asciidoctor (persistence JPA)
 [source,yaml]
 ----
@@ -3726,6 +3504,7 @@
 |.Dependencies
 ****
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
+org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
 org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-applib:jar:<managed> +
 ****
 
@@ -3744,13 +3523,14 @@
 ----
 |.Dependencies
 ****
-com.github.jnr:jnr-constants:jar:0.10.4 +
-com.github.jnr:jnr-enxio:jar:0.32.18 +
-com.github.jnr:jnr-ffi:jar:2.2.17 +
-com.github.jnr:jnr-posix:jar:3.1.20 +
+com.github.jnr:jnr-constants:jar:<managed> +
+com.github.jnr:jnr-enxio:jar:<managed> +
+com.github.jnr:jnr-ffi:jar:<managed> +
+com.github.jnr:jnr-posix:jar:<managed> +
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
 org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-applib:jar:<managed> +
-org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version} +
+org.asciidoctor:asciidoctorj:jar:<managed> +
+org.jruby:jruby:jar:<managed> +
 ****
 
 |Apache Causeway Val - Asciidoctor (ui wicket)
@@ -3804,12 +3584,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Markdown.ApacheCausewayValMarkdownPersistenceJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Markdown.ApacheCausewayValMarkdownapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -3850,25 +3624,23 @@
   rectangle "==Apache Causeway Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<Markdown.ApacheCausewayValMarkdownparent>> as Markdown.ApacheCausewayValMarkdownparent
   rectangle "==Apache Causeway Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownapplib>> as Markdown.ApacheCausewayValMarkdownapplib
   rectangle "==Apache Causeway Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownMetaModel>> as Markdown.ApacheCausewayValMarkdownMetaModel
-  rectangle "==Apache Causeway Val - Markdown (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownPersistenceJDO>> as Markdown.ApacheCausewayValMarkdownPersistenceJDO
   rectangle "==Apache Causeway Val - Markdown (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownpersistenceJPA>> as Markdown.ApacheCausewayValMarkdownpersistenceJPA
   rectangle "==Apache Causeway Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<Markdown.ApacheCausewayValMarkdownui>> as Markdown.ApacheCausewayValMarkdownui
   rectangle "==Apache Causeway Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownuiwicket>> as Markdown.ApacheCausewayValMarkdownuiwicket
 }
 
-Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownMetaModel : "<color:#707070>"
-Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownPersistenceJDO : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownpersistenceJPA : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownui : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownui .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownuiwicket : "<color:#707070>"
 Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownapplib : "<color:#707070>"
+Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownMetaModel : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Markdown)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Val - Markdown (parent)
 [source,yaml]
@@ -3924,25 +3696,6 @@
 xref:refguide:valuetypes:index/markdown/metamodel/CausewayModuleValMarkdownMetaModel.adoc[CausewayModuleValMarkdownMetaModel]
 ****
 
-|Apache Causeway Val - Markdown (Persistence JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.valuetypes
-Artifact: causeway-valuetypes-markdown-persistence-jdo
-Type: jar
-Directory: /valuetypes/markdown/persistence-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
-org.apache.causeway.valuetypes:causeway-valuetypes-markdown-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:valuetypes:index/markdown/persistence/jdo/CausewayModuleValMarkdownPersistenceJdo.adoc[CausewayModuleValMarkdownPersistenceJdo], xref:refguide:valuetypes:index/markdown/persistence/jdo/converters/CausewayMarkdownConverter.adoc[CausewayMarkdownConverter]
-****
-
 |Apache Causeway Val - Markdown (persistence JPA)
 [source,yaml]
 ----
@@ -3954,6 +3707,7 @@
 |.Dependencies
 ****
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
+org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
 org.apache.causeway.valuetypes:causeway-valuetypes-markdown-applib:jar:<managed> +
 ****
 
@@ -4029,12 +3783,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Vega.ApacheCausewayValVegaPersistenceJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Vega.ApacheCausewayValVegaapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -4075,25 +3823,23 @@
   rectangle "==Apache Causeway Val - Vega (parent)\n<size:10>[Container: packaging: pom]</size>" <<Vega.ApacheCausewayValVegaparent>> as Vega.ApacheCausewayValVegaparent
   rectangle "==Apache Causeway Val - Vega (applib)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegaapplib>> as Vega.ApacheCausewayValVegaapplib
   rectangle "==Apache Causeway Val - Vega (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegaMetaModel>> as Vega.ApacheCausewayValVegaMetaModel
-  rectangle "==Apache Causeway Val - Vega (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegaPersistenceJDO>> as Vega.ApacheCausewayValVegaPersistenceJDO
   rectangle "==Apache Causeway Val - Vega (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegapersistenceJPA>> as Vega.ApacheCausewayValVegapersistenceJPA
   rectangle "==Apache Causeway Val - Vega (ui)\n<size:10>[Container: packaging: pom]</size>" <<Vega.ApacheCausewayValVegaui>> as Vega.ApacheCausewayValVegaui
   rectangle "==Apache Causeway Val - Vega (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegauiwicket>> as Vega.ApacheCausewayValVegauiwicket
 }
 
-Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaMetaModel : "<color:#707070>"
-Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaPersistenceJDO : "<color:#707070>"
 Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegapersistenceJPA : "<color:#707070>"
 Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaui : "<color:#707070>"
 Vega.ApacheCausewayValVegaui .[#707070,thickness=2].> Vega.ApacheCausewayValVegauiwicket : "<color:#707070>"
 Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaapplib : "<color:#707070>"
+Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaMetaModel : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Vega)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Val - Vega (parent)
 [source,yaml]
@@ -4148,25 +3894,6 @@
 xref:refguide:valuetypes:index/vega/metamodel/CausewayModuleValVegaMetaModel.adoc[CausewayModuleValVegaMetaModel]
 ****
 
-|Apache Causeway Val - Vega (Persistence JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.valuetypes
-Artifact: causeway-valuetypes-vega-persistence-jdo
-Type: jar
-Directory: /valuetypes/vega/persistence-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
-org.apache.causeway.valuetypes:causeway-valuetypes-vega-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:valuetypes:index/vega/persistence/jdo/dn/CausewayModuleValVegaPersistenceJdo.adoc[CausewayModuleValVegaPersistenceJdo], xref:refguide:valuetypes:index/vega/persistence/jdo/dn/converters/CausewayVegaConverter.adoc[CausewayVegaConverter]
-****
-
 |Apache Causeway Val - Vega (persistence JPA)
 [source,yaml]
 ----
@@ -4178,6 +3905,7 @@
 |.Dependencies
 ****
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
+org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
 org.apache.causeway.valuetypes:causeway-valuetypes-vega-applib:jar:<managed> +
 ****
 
@@ -4257,12 +3985,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -4335,12 +4057,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Extensions.ApacheCausewayExtSecManDelegatedUsingShiro>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -4365,12 +4081,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Extensions.ApacheCausewayExtSecManPersistenceUsingJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Extensions.ApacheCausewayExtSecManPersistenceUsingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -4419,12 +4129,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -4498,7 +4202,6 @@
 }
 
 rectangle "Extensions\n<size:10>[Software System]</size>" <<Extensions>> {
-  rectangle "==Apache Causeway Ext - FullCalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarapplib>> as Extensions.ApacheCausewayExtFullCalendarapplib
   rectangle "==Apache Causeway Ext - FullCalendar Wicket\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtFullCalendarWicket>> as Extensions.ApacheCausewayExtFullCalendarWicket
   rectangle "==Apache Causeway Ext - FullCalendar Wicket (Integration)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarWicketIntegration>> as Extensions.ApacheCausewayExtFullCalendarWicketIntegration
   rectangle "==Apache Causeway Ext - FullCalendar Wicket (UI)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarWicketUI>> as Extensions.ApacheCausewayExtFullCalendarWicketUI
@@ -4508,37 +4211,34 @@
   rectangle "==Apache Causeway Ext - pdf.js - Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsApplib>> as Extensions.ApacheCausewayExtpdfjsApplib
   rectangle "==Apache Causeway Ext - pdf.js - Metamodel\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsMetamodel>> as Extensions.ApacheCausewayExtpdfjsMetamodel
   rectangle "==Apache Causeway Ext - pdf.js Wicket\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtpdfjsWicket>> as Extensions.ApacheCausewayExtpdfjsWicket
-  rectangle "==Apache Causeway Extensions\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtensions>> as Extensions.ApacheCausewayExtensions
   rectangle "==Apache Causeway Ext - pdf.js - Wicket (Integration)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsWicketIntegration>> as Extensions.ApacheCausewayExtpdfjsWicketIntegration
+  rectangle "==Apache Causeway Extensions\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtensions>> as Extensions.ApacheCausewayExtensions
   rectangle "==Apache Causeway Ext - pdf.js - Wicket (UI)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsWicketUI>> as Extensions.ApacheCausewayExtpdfjsWicketUI
   rectangle "==Apache Causeway Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtSecMan>> as Extensions.ApacheCausewayExtSecMan
   rectangle "==Apache Causeway Ext - Sec Man Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManApplib>> as Extensions.ApacheCausewayExtSecManApplib
-  rectangle "==Apache Causeway Ext - Sec Man Delegated (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManDelegatedUsingShiro>> as Extensions.ApacheCausewayExtSecManDelegatedUsingShiro
   rectangle "==Apache Causeway Ext - Sec Man Delegated (using Spring Oauth2)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2>> as Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2
   rectangle "==Apache Causeway Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt>> as Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt
   rectangle "==Apache Causeway Ext - Sec Man Encryption (Using Spring)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManEncryptionUsingSpring>> as Extensions.ApacheCausewayExtSecManEncryptionUsingSpring
   rectangle "==Apache Causeway Ext - Sec Man Integration\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManIntegration>> as Extensions.ApacheCausewayExtSecManIntegration
-  rectangle "==Apache Causeway Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManPersistenceUsingJDO>> as Extensions.ApacheCausewayExtSecManPersistenceUsingJDO
-  rectangle "==Apache Causeway Ext - Audit Trail\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtAuditTrail>> as Extensions.ApacheCausewayExtAuditTrail
   rectangle "==Apache Causeway Ext - Sec Man Persistence (Using JPA)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManPersistenceUsingJPA>> as Extensions.ApacheCausewayExtSecManPersistenceUsingJPA
   rectangle "==Apache Causeway Ext - Session Log\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtSessionLog>> as Extensions.ApacheCausewayExtSessionLog
   rectangle "==Apache Causeway Ext - Session Log Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSessionLogApplib>> as Extensions.ApacheCausewayExtSessionLogApplib
-  rectangle "==Apache Causeway Ext - Session Log Persistence (using JDO)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO>> as Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO
+  rectangle "==Apache Causeway Ext - Audit Trail\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtAuditTrail>> as Extensions.ApacheCausewayExtAuditTrail
   rectangle "==Apache Causeway Ext - Session Log Persistence (using JPA)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA>> as Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA
   rectangle "==Apache Causeway Ext - Security - Spring Oauth2\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecuritySpringOauth2>> as Extensions.ApacheCausewayExtSecuritySpringOauth2
   rectangle "==Apache Causeway Ext - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtServerSentEventsparent>> as Extensions.ApacheCausewayExtServerSentEventsparent
   rectangle "==Apache Causeway Ext - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtServerSentEvents>> as Extensions.ApacheCausewayExtServerSentEvents
   rectangle "==Apache Causeway Ext - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtServerSentEventsmetamodel>> as Extensions.ApacheCausewayExtServerSentEventsmetamodel
   rectangle "==Apache Causeway Ext - Server Sent Events (Wicket)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtServerSentEventsWicket>> as Extensions.ApacheCausewayExtServerSentEventsWicket
-  rectangle "==Apache Causeway Ext - Audit Trail Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailApplib>> as Extensions.ApacheCausewayExtAuditTrailApplib
   rectangle "==Apache Causeway Ext - Title Cache\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtTitleCache>> as Extensions.ApacheCausewayExtTitleCache
   rectangle "==Apache Causeway Ext - Titlecache Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtTitlecacheApplib>> as Extensions.ApacheCausewayExtTitlecacheApplib
   rectangle "==Apache Causeway Ext - Titlecache Caffeine\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtTitlecacheCaffeine>> as Extensions.ApacheCausewayExtTitlecacheCaffeine
-  rectangle "==Apache Causeway Ext - Audit Trail Persistence (using JDO)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO>> as Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO
+  rectangle "==Apache Causeway Ext - Audit Trail Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailApplib>> as Extensions.ApacheCausewayExtAuditTrailApplib
   rectangle "==Apache Causeway Ext - Audit Trail Persistence (using JPA)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA>> as Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA
   rectangle "==Apache Causeway Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtCORSparent>> as Extensions.ApacheCausewayExtCORSparent
   rectangle "==Apache Causeway Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtCORSimpl>> as Extensions.ApacheCausewayExtCORSimpl
   rectangle "==Apache Causeway Ext - FullCalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtFullCalendarparent>> as Extensions.ApacheCausewayExtFullCalendarparent
+  rectangle "==Apache Causeway Ext - FullCalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarapplib>> as Extensions.ApacheCausewayExtFullCalendarapplib
 }
 
 Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrail : "<color:#707070>"
@@ -4552,7 +4252,6 @@
 Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEventsparent : "<color:#707070>"
 Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtTitleCache : "<color:#707070>"
 Extensions.ApacheCausewayExtAuditTrail .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrailApplib : "<color:#707070>"
-Extensions.ApacheCausewayExtAuditTrail .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO : "<color:#707070>"
 Extensions.ApacheCausewayExtAuditTrail .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA : "<color:#707070>"
 Extensions.ApacheCausewayExtCORSparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtCORSimpl : "<color:#707070>"
 Extensions.ApacheCausewayExtFullCalendarparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtFullCalendarapplib : "<color:#707070>"
@@ -4570,10 +4269,8 @@
 Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt : "<color:#707070>"
 Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManEncryptionUsingSpring : "<color:#707070>"
 Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManIntegration : "<color:#707070>"
-Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManPersistenceUsingJDO : "<color:#707070>"
 Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManPersistenceUsingJPA : "<color:#707070>"
 Extensions.ApacheCausewayExtSessionLog .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLogApplib : "<color:#707070>"
-Extensions.ApacheCausewayExtSessionLog .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO : "<color:#707070>"
 Extensions.ApacheCausewayExtSessionLog .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA : "<color:#707070>"
 Extensions.ApacheCausewayExtServerSentEventsparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEvents : "<color:#707070>"
 Extensions.ApacheCausewayExtServerSentEventsparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEventsmetamodel : "<color:#707070>"
@@ -4586,7 +4283,7 @@
 .Projects/Modules (Extensions)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Extensions
 [source,yaml]
@@ -4637,28 +4334,6 @@
 xref:refguide:extensions:index/audittrail/applib/app/AuditTrailMenu.adoc[AuditTrailMenu], xref:refguide:extensions:index/audittrail/applib/contributions/HasInteractionId_auditTrailEntries.adoc[HasInteractionId_auditTrailEntries], xref:refguide:extensions:index/audittrail/applib/contributions/Object_createdByCommand.adoc[Object_createdByCommand], xref:refguide:extensions:index/audittrail/applib/contributions/Object_recentAuditTrailEntries.adoc[Object_recentAuditTrailEntries], xref:refguide:extensions:index/audittrail/applib/dom/AuditTrailEntry.adoc[AuditTrailEntry], xref:refguide:extensions:index/audittrail/applib/dom/AuditTrailEntryRepository.adoc[AuditTrailEntryRepository], xref:refguide:extensions:index/audittrail/applib/dom/AuditTrailEntryRepositoryAbstract.adoc[AuditTrailEntryRepositoryAbstract], xref:refguide:extensions:index/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.adoc[EntityPropertyChangeSubscriberForAuditTrail]
 ****
 
-|Apache Causeway Ext - Audit Trail Persistence (using JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-audittrail-persistence-jdo
-Type: jar
-Directory: /extensions/security/audittrail/persistence-jdo
-----
-|.Components
-****
-o.a.i.extensions.audittrail.jdo.dom.AuditTrailEntryRepository +
-****
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-audittrail-applib:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-audittrail-applib:test-jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-****
-
 |Apache Causeway Ext - Audit Trail Persistence (using JPA)
 [source,yaml]
 ----
@@ -4702,8 +4377,8 @@
 ----
 |.Dependencies
 ****
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
 org.springframework:spring-web:jar:<managed> +
 ****
@@ -4844,6 +4519,7 @@
 org.assertj:assertj-core:jar:<managed> +
 org.junit.jupiter:junit-jupiter:jar:<managed> +
 org.springframework:spring-web:jar:<managed> +
+org.springframework.boot:spring-boot-restclient:jar:<managed> +
 ****
 
 .Document Index Entries
@@ -4930,7 +4606,7 @@
 ****
 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:5.2.133 +
+org.webjars.npm:pdfjs-dist:jar:5.4.149 +
 ****
 
 .Document Index Entries
@@ -4995,6 +4671,7 @@
 
 .Dependencies
 ****
+org.apache.causeway.core:causeway-core-mmtestsupport:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
 org.springframework.security:spring-security-crypto:jar:<managed> +
@@ -5002,29 +4679,7 @@
 
 .Document Index Entries
 ****
-xref:refguide:extensions:index/secman/applib/CausewayModuleExtSecmanApplib.adoc[CausewayModuleExtSecmanApplib], xref:refguide:extensions:index/secman/applib/feature/api/ApplicationFeatureChoices.adoc[ApplicationFeatureChoices], xref:refguide:extensions:index/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.adoc[ApplicationFeatureViewModel_permissions], xref:refguide:extensions:index/secman/applib/permission/app/ApplicationOrphanedPermissionManager.adoc[ApplicationOrphanedPermissionManager], xref:refguide:extensions:index/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.adoc[ApplicationOrphanedPermissionManager_relocateSelected], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRepository.adoc[ApplicationPermissionRepository], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.adoc[ApplicationPermissionRepositoryAbstract], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRule.adoc[ApplicationPermissionRule], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionValue.adoc[ApplicationPermissionValue], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionValueSet.adoc[ApplicationPermissionValueSet], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_allow.adoc[ApplicationPermission_allow], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_changing.adoc[ApplicationPermission_changing], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_delete.adoc[ApplicationPermission_delete], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_feature.adoc[ApplicationPermission_feature], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.adoc[ApplicationPermission_updateRole], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_veto.adoc[ApplicationPermission_veto], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.adoc[ApplicationPermission_viewing], xref:refguide:extensions:index/secman/applib/permission/menu/ApplicationPermissionMenu.adoc[ApplicationPermissionMenu], xref:refguide:extensions:index/secman/applib/permission/spi/PermissionsEvaluationService.adoc[PermissionsEvaluationService], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRole.adoc[ApplicationRole], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepository.adoc[ApplicationRoleRepository], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.adoc[ApplicationRoleRepositoryAbstract], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_addPermission.adoc[ApplicationRole_addPermission], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_addUser.adoc[ApplicationRole_addUser], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_delete.adoc[ApplicationRole_delete], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.adoc[ApplicationRole_removePermissions], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.adoc[ApplicationRole_removeUsers], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.adoc[ApplicationRole_updateDescription], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_updateName.adoc[ApplicationRole_updateName], xref:refguide:extensions:index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc[AbstractRoleAndPermissionsFixtureScript], xref:refguide:extensions:index/secman/applib/role/man/ApplicationRoleManager.adoc[ApplicationRoleManager], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.adoc[ApplicationRoleManager_allRoles], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.adoc[ApplicationRoleManager_exportAsYaml], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.adoc[ApplicationRoleManager_newRole], xref:refguide:extensions:index/secman/applib/role/menu/ApplicationRoleMenu.adoc[ApplicationRoleMenu], xref:refguide:extensions:index/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.adoc[CausewayAppFeatureRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.adoc[CausewayConfigurationRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.adoc[CausewayExtAuditTrailRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.adoc[CausewayExtCommandLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtDocgenRoleAndPermissions.adoc[CausewayExtDocgenRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.adoc[CausewayExtExecutionLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.adoc[CausewayExtExecutionOutboxRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.adoc[CausewayExtH2ConsoleRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtLayoutLoadersRoleAndPermissions.adoc[CausewayExtLayoutLoadersRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc[CausewayExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.adoc[CausewayExtSecmanRegularUserRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.adoc[CausewayExtSessionLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayPersistenceJdoMetaModelRoleAndPermissions.adoc[CausewayPersistenceJdoMetaModelRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.adoc[CausewaySudoImpersonateRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.adoc[CausewayViewerRestfulObjectsSwaggerRoleAndPermissions], xref:refguide:extensions:index/secman/applib/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancy.adoc[ApplicationTenancy], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancyRepository.adoc[ApplicationTenancyRepository], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.adoc[ApplicationTenancyRepositoryAbstract], xref:refguide:extensions:index/secman/applib/tenancy/dom/HasAtPath.adoc[HasAtPath], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.adoc[ApplicationTenancy_addChild], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.adoc[ApplicationTenancy_addUser], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.adoc[ApplicationTenancy_delete], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.adoc[ApplicationTenancy_removeChild], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.adoc[ApplicationTenancy_removeUser], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.adoc[ApplicationTenancy_updateName], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.adoc[ApplicationTenancy_users], xref:refguide:extensions:index/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.adoc[AbstractTenancyFixtureScript], xref:refguide:extensions:index/secman/applib/tenancy/man/ApplicationTenancyManager.adoc[ApplicationTenancyManager], xref:refguide:extensions:index/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.adoc[ApplicationTenancyManager_allTenancies], xref:refguide:extensions:index/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.adoc[ApplicationTenancyManager_newTenancy], xref:refguide:extensions:index/secman/applib/tenancy/menu/ApplicationTenancyMenu.adoc[ApplicationTenancyMenu], xref:refguide:extensions:index/secman/applib/tenancy/seed/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/applib/tenancy/spi/ApplicationTenancyEvaluator.adoc[ApplicationTenancyEvaluator], xref:refguide:extensions:index/secman/applib/user/contributions/HasUsername_associatedUser.adoc[HasUsername_associatedUser], xref:refguide:extensions:index/secman/applib/user/dom/AccountType.adoc[AccountType], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepository.adoc[ApplicationUserRepository], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepositoryAbstract.adoc[ApplicationUserRepositoryAbstract], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserStatus.adoc[ApplicationUserStatus], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_addRole.adoc[ApplicationUser_addRole], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_delete.adoc[ApplicationUser_delete], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_duplicate.adoc[ApplicationUser_duplicate], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_lock.adoc[ApplicationUser_lock], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.adoc[ApplicationUser_removeRoles], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.adoc[ApplicationUser_resetPassword], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_timeZone.adoc[ApplicationUser_timeZone], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_unlock.adoc[ApplicationUser_unlock], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.adoc[ApplicationUser_updateAccountType], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.adoc[ApplicationUser_updateAtPath], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.adoc[ApplicationUser_updateEmailAddress], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.adoc[ApplicationUser_updateFaxNumber], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.adoc[ApplicationUser_updateLocale], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateName.adoc[ApplicationUser_updateName], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.adoc[ApplicationUser_updatePassword], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.adoc[ApplicationUser_updatePhoneNumber], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.adoc[ApplicationUser_updateUsername], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.adoc[ApplicationUser_effectiveMemberPermissions], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.adoc[ApplicationUser_filterEffectiveMemberPermissions], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.adoc[UserPermissionViewModel], xref:refguide:extensions:index/secman/applib/user/events/UserCreatedEvent.adoc[UserCreatedEvent], xref:refguide:extensions:index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc[AbstractUserAndRolesFixtureScript], xref:refguide:extensions:index/secman/applib/user/man/ApplicationUserManager.adoc[ApplicationUserManager], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.adoc[ApplicationUserManager_allUsers], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.adoc[ApplicationUserManager_newDelegateUser], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.adoc[ApplicationUserManager_newLocalUser], xref:refguide:extensions:index/secman/applib/user/menu/ApplicationUserMenu.adoc[ApplicationUserMenu], xref:refguide:extensions:index/secman/applib/user/menu/MeService.adoc[MeService], xref:refguide:extensions:index/secman/applib/user/seed/CausewayExtSecmanAdminUser.adoc[CausewayExtSecmanAdminUser], xref:refguide:extensions:index/secman/applib/util/RegexReplacer.adoc[RegexReplacer]
-****
-
-|Apache Causeway Ext - Sec Man Delegated (Using Shiro)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-secman-delegated-shiro
-Type: jar
-Directory: /retired/shiro/extensions/secman/delegated-shiro
-----
-|Provides an implementation of a Shiro Realm that will automatically created delegated ApplicationUsers for any users externally authenticated in a delegate realm
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-secman-applib:jar:3.4.0-SNAPSHOT +
-org.apache.causeway.security:causeway-security-shiro:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/secman/delegated/shiro/CausewayModuleExtSecmanDelegatedShiro.adoc[CausewayModuleExtSecmanDelegatedShiro], xref:refguide:extensions:index/secman/delegated/shiro/realm/CausewayModuleExtSecmanShiroRealm.adoc[CausewayModuleExtSecmanShiroRealm], xref:refguide:extensions:index/secman/delegated/shiro/util/ShiroUtils.adoc[ShiroUtils]
+xref:refguide:extensions:index/secman/applib/CausewayModuleExtSecmanApplib.adoc[CausewayModuleExtSecmanApplib], xref:refguide:extensions:index/secman/applib/feature/api/ApplicationFeatureChoices.adoc[ApplicationFeatureChoices], xref:refguide:extensions:index/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.adoc[ApplicationFeatureViewModel_permissions], xref:refguide:extensions:index/secman/applib/permission/app/ApplicationOrphanedPermissionManager.adoc[ApplicationOrphanedPermissionManager], xref:refguide:extensions:index/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.adoc[ApplicationOrphanedPermissionManager_relocateSelected], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRepository.adoc[ApplicationPermissionRepository], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.adoc[ApplicationPermissionRepositoryAbstract], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRule.adoc[ApplicationPermissionRule], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionValue.adoc[ApplicationPermissionValue], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionValueSet.adoc[ApplicationPermissionValueSet], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_allow.adoc[ApplicationPermission_allow], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_changing.adoc[ApplicationPermission_changing], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_delete.adoc[ApplicationPermission_delete], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_feature.adoc[ApplicationPermission_feature], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.adoc[ApplicationPermission_updateRole], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_veto.adoc[ApplicationPermission_veto], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.adoc[ApplicationPermission_viewing], xref:refguide:extensions:index/secman/applib/permission/menu/ApplicationPermissionMenu.adoc[ApplicationPermissionMenu], xref:refguide:extensions:index/secman/applib/permission/spi/PermissionsEvaluationService.adoc[PermissionsEvaluationService], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRole.adoc[ApplicationRole], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepository.adoc[ApplicationRoleRepository], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.adoc[ApplicationRoleRepositoryAbstract], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_addPermission.adoc[ApplicationRole_addPermission], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_addUser.adoc[ApplicationRole_addUser], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_delete.adoc[ApplicationRole_delete], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.adoc[ApplicationRole_removePermissions], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.adoc[ApplicationRole_removeUsers], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.adoc[ApplicationRole_updateDescription], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_updateName.adoc[ApplicationRole_updateName], xref:refguide:extensions:index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc[AbstractRoleAndPermissionsFixtureScript], xref:refguide:extensions:index/secman/applib/role/man/ApplicationRoleManager.adoc[ApplicationRoleManager], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.adoc[ApplicationRoleManager_allRoles], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.adoc[ApplicationRoleManager_exportAsYaml], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.adoc[ApplicationRoleManager_newRole], xref:refguide:extensions:index/secman/applib/role/menu/ApplicationRoleMenu.adoc[ApplicationRoleMenu], xref:refguide:extensions:index/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.adoc[CausewayAppFeatureRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.adoc[CausewayConfigurationRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.adoc[CausewayExtAuditTrailRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.adoc[CausewayExtCommandLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtDocgenRoleAndPermissions.adoc[CausewayExtDocgenRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.adoc[CausewayExtExecutionLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.adoc[CausewayExtExecutionOutboxRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.adoc[CausewayExtH2ConsoleRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtLayoutLoadersRoleAndPermissions.adoc[CausewayExtLayoutLoadersRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc[CausewayExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.adoc[CausewayExtSecmanRegularUserRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.adoc[CausewayExtSessionLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayPersistenceJpaMetaModelRoleAndPermissions.adoc[CausewayPersistenceJpaMetaModelRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.adoc[CausewaySudoImpersonateRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.adoc[CausewayViewerRestfulObjectsSwaggerRoleAndPermissions], xref:refguide:extensions:index/secman/applib/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancy.adoc[ApplicationTenancy], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancyRepository.adoc[ApplicationTenancyRepository], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.adoc[ApplicationTenancyRepositoryAbstract], xref:refguide:extensions:index/secman/applib/tenancy/dom/HasAtPath.adoc[HasAtPath], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.adoc[ApplicationTenancy_addChild], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.adoc[ApplicationTenancy_addUser], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.adoc[ApplicationTenancy_delete], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.adoc[ApplicationTenancy_removeChild], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.adoc[ApplicationTenancy_removeUser], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.adoc[ApplicationTenancy_updateName], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.adoc[ApplicationTenancy_users], xref:refguide:extensions:index/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.adoc[AbstractTenancyFixtureScript], xref:refguide:extensions:index/secman/applib/tenancy/man/ApplicationTenancyManager.adoc[ApplicationTenancyManager], xref:refguide:extensions:index/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.adoc[ApplicationTenancyManager_allTenancies], xref:refguide:extensions:index/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.adoc[ApplicationTenancyManager_newTenancy], xref:refguide:extensions:index/secman/applib/tenancy/menu/ApplicationTenancyMenu.adoc[ApplicationTenancyMenu], xref:refguide:extensions:index/secman/applib/tenancy/seed/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/applib/tenancy/spi/ApplicationTenancyEvaluator.adoc[ApplicationTenancyEvaluator], xref:refguide:extensions:index/secman/applib/user/contributions/HasUsername_associatedUser.adoc[HasUsername_associatedUser], xref:refguide:extensions:index/secman/applib/user/dom/AccountType.adoc[AccountType], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepository.adoc[ApplicationUserRepository], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepositoryAbstract.adoc[ApplicationUserRepositoryAbstract], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserStatus.adoc[ApplicationUserStatus], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_addRole.adoc[ApplicationUser_addRole], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_delete.adoc[ApplicationUser_delete], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_duplicate.adoc[ApplicationUser_duplicate], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_lock.adoc[ApplicationUser_lock], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.adoc[ApplicationUser_removeRoles], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.adoc[ApplicationUser_resetPassword], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_timeZone.adoc[ApplicationUser_timeZone], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_unlock.adoc[ApplicationUser_unlock], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.adoc[ApplicationUser_updateAccountType], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.adoc[ApplicationUser_updateAtPath], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.adoc[ApplicationUser_updateEmailAddress], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.adoc[ApplicationUser_updateFaxNumber], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.adoc[ApplicationUser_updateLocale], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateName.adoc[ApplicationUser_updateName], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.adoc[ApplicationUser_updatePassword], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.adoc[ApplicationUser_updatePhoneNumber], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.adoc[ApplicationUser_updateUsername], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.adoc[ApplicationUser_effectiveMemberPermissions], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.adoc[ApplicationUser_filterEffectiveMemberPermissions], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.adoc[UserPermissionViewModel], xref:refguide:extensions:index/secman/applib/user/events/UserCreatedEvent.adoc[UserCreatedEvent], xref:refguide:extensions:index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc[AbstractUserAndRolesFixtureScript], xref:refguide:extensions:index/secman/applib/user/man/ApplicationUserManager.adoc[ApplicationUserManager], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.adoc[ApplicationUserManager_allUsers], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.adoc[ApplicationUserManager_newDelegateUser], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.adoc[ApplicationUserManager_newLocalUser], xref:refguide:extensions:index/secman/applib/user/menu/ApplicationUserMenu.adoc[ApplicationUserMenu], xref:refguide:extensions:index/secman/applib/user/menu/MeService.adoc[MeService], xref:refguide:extensions:index/secman/applib/user/seed/CausewayExtSecmanAdminUser.adoc[CausewayExtSecmanAdminUser], xref:refguide:extensions:index/secman/applib/util/RegexReplacer.adoc[RegexReplacer]
 ****
 
 |Apache Causeway Ext - Sec Man Delegated (using Spring Oauth2)
@@ -5131,37 +4786,6 @@
 xref:refguide:extensions:index/secman/integration/CausewayModuleExtSecmanIntegration.adoc[CausewayModuleExtSecmanIntegration], xref:refguide:extensions:index/secman/integration/authenticator/AuthenticatorSecman.adoc[AuthenticatorSecman], xref:refguide:extensions:index/secman/integration/authenticator/AuthenticatorSecmanAutoConfiguration.adoc[AuthenticatorSecmanAutoConfiguration], xref:refguide:extensions:index/secman/integration/authorizor/AuthorizorSecman.adoc[AuthorizorSecman], xref:refguide:extensions:index/secman/integration/permissions/ApplicationFeatureIdTransformerIdentity.adoc[ApplicationFeatureIdTransformerIdentity], xref:refguide:extensions:index/secman/integration/permissions/PermissionsEvaluationServiceForSecman.adoc[PermissionsEvaluationServiceForSecman], xref:refguide:extensions:index/secman/integration/userreg/UserRegistrationServiceForSecman.adoc[UserRegistrationServiceForSecman]
 ****
 
-|Apache Causeway Ext - Sec Man Persistence (Using JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-secman-persistence-jdo
-Type: jar
-Directory: /extensions/security/secman/persistence-jdo
-----
-|.Components
-****
-o.a.i.extensions.secman.jdo.permission.dom.ApplicationPermissionRepository +
-o.a.i.extensions.secman.jdo.role.dom.ApplicationRoleRepository +
-o.a.i.extensions.secman.jdo.tenancy.dom.ApplicationTenancyRepository +
-o.a.i.extensions.secman.jdo.user.dom.ApplicationUserRepository +
-o.a.i.extensions.secman.jdo.util.RegexReplacer +
-****
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-secman-applib:test-jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-secman-integration:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/secman/jdo/CausewayModuleExtSecmanPersistenceJdo.adoc[CausewayModuleExtSecmanPersistenceJdo]
-****
-
 |Apache Causeway Ext - Sec Man Persistence (Using JPA)
 [source,yaml]
 ----
@@ -5232,28 +4856,6 @@
 xref:refguide:extensions:index/sessionlog/applib/app/SessionLogMenu.adoc[SessionLogMenu], xref:refguide:extensions:index/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.adoc[HasUsername_recentSessionsForUser], xref:refguide:extensions:index/sessionlog/applib/dom/SessionLogEntry.adoc[SessionLogEntry], xref:refguide:extensions:index/sessionlog/applib/dom/SessionLogEntryRepository.adoc[SessionLogEntryRepository], xref:refguide:extensions:index/sessionlog/applib/dom/SessionLogEntryRepositoryAbstract.adoc[SessionLogEntryRepositoryAbstract], xref:refguide:extensions:index/sessionlog/applib/spiimpl/SessionLogServiceInitializer.adoc[SessionLogServiceInitializer], xref:refguide:extensions:index/sessionlog/applib/spiimpl/SessionSubscriberForSessionLog.adoc[SessionSubscriberForSessionLog]
 ****
 
-|Apache Causeway Ext - Session Log Persistence (using JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-sessionlog-persistence-jdo
-Type: jar
-Directory: /extensions/security/sessionlog/persistence-jdo
-----
-|.Components
-****
-o.a.i.extensions.sessionlog.jdo.dom.SessionLogEntryRepository +
-****
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:test-jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-****
-
 |Apache Causeway Ext - Session Log Persistence (using JPA)
 [source,yaml]
 ----
@@ -5468,12 +5070,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelIntegTests>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelapplib>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -5502,21 +5098,19 @@
   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
-  rectangle "==Apache Causeway Ext - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtExcelIntegTests>> as ApplibExcel.ApacheCausewayExtExcelIntegTests
   rectangle "==Apache Causeway Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewaySubExceltestingsupport>> as ApplibExcel.ApacheCausewaySubExceltestingsupport
 }
 
-ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewaySubExceltestingsupport : "<color:#707070>"
 ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtExcelapplib : "<color:#707070>"
 ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtExcelFixtures : "<color:#707070>"
-ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtExcelIntegTests : "<color:#707070>"
+ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewaySubExceltestingsupport : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Applib: Excel)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Excel (parent)
 [source,yaml]
@@ -5567,27 +5161,13 @@
 ----
 |.Dependencies
 ****
+org.apache.causeway.commons:causeway-commons:jar:<managed> +
 org.apache.causeway.core:causeway-applib:jar:<managed> +
 org.apache.causeway.extensions:causeway-extensions-excel-applib:jar:<managed> +
 org.apache.causeway.extensions:causeway-extensions-excel-testing:jar:<managed> +
+org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-****
-
-|Apache Causeway Ext - Excel (Integ Tests)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-excel-integtests
-Type: jar
-Directory: /extensions/core/excel/integtests
-----
-|.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-excel-fixtures:jar:<managed> +
-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> +
-org.hsqldb:hsqldb:jar:<managed> +
+org.jspecify:jspecify:jar:<managed> +
 ****
 
 |Apache Causeway Sub - Excel (testing support)
@@ -5643,12 +5223,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -5664,12 +5238,10 @@
 rectangle "Core: Command Log\n<size:10>[Software System]</size>" <<CoreCommandLog>> {
   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
   rectangle "==Apache Causeway Ext - Command Log Implementation (JPA)\n<size:10>[Container: packaging: jar]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA>> as CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA
 }
 
 CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandLog.ApacheCausewayExtCommandLogAPI : "<color:#707070>"
-CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO : "<color:#707070>"
 CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA : "<color:#707070>"
 @enduml
 ----
@@ -5677,7 +5249,7 @@
 .Projects/Modules (Core: Command Log)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Command Log
 [source,yaml]
@@ -5724,32 +5296,6 @@
 xref:refguide:extensions:index/commandlog/applib/app/CommandLogMenu.adoc[CommandLogMenu], xref:refguide:extensions:index/commandlog/applib/contributions/HasInteractionId_commandLogEntry.adoc[HasInteractionId_commandLogEntry], xref:refguide:extensions:index/commandlog/applib/contributions/HasUsername_recentCommandsByUser.adoc[HasUsername_recentCommandsByUser], xref:refguide:extensions:index/commandlog/applib/contributions/Object_recentCommands.adoc[Object_recentCommands], xref:refguide:extensions:index/commandlog/applib/contributions/T_recentBackgroundCommands.adoc[T_recentBackgroundCommands], xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService.adoc[BackgroundService], xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntry.adoc[CommandLogEntry], xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntryRepository.adoc[CommandLogEntryRepository], xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntryRepositoryAbstract.adoc[CommandLogEntryRepositoryAbstract], xref:refguide:extensions:index/commandlog/applib/dom/ExecuteIn.adoc[ExecuteIn], xref:refguide:extensions:index/commandlog/applib/dom/ReplayState.adoc[ReplayState], xref:refguide:extensions:index/commandlog/applib/dom/mixins/CommandLogEntry_childCommands.adoc[CommandLogEntry_childCommands], xref:refguide:extensions:index/commandlog/applib/dom/mixins/CommandLogEntry_openResultObject.adoc[CommandLogEntry_openResultObject], xref:refguide:extensions:index/commandlog/applib/dom/mixins/CommandLogEntry_siblingCommands.adoc[CommandLogEntry_siblingCommands], xref:refguide:extensions:index/commandlog/applib/fakescheduler/FakeScheduler.adoc[FakeScheduler], xref:refguide:extensions:index/commandlog/applib/job/RunBackgroundCommandsJob.adoc[RunBackgroundCommandsJob], xref:refguide:extensions:index/commandlog/applib/spi/RunBackgroundCommandsJobListener.adoc[RunBackgroundCommandsJobListener], xref:refguide:extensions:index/commandlog/applib/subscriber/CommandSubscriberForCommandLog.adoc[CommandSubscriberForCommandLog]
 ****
 
-|Apache Causeway Ext - Command Log Implementation (JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-commandlog-persistence-jdo
-Type: jar
-Directory: /extensions/core/commandlog/persistence-jdo
-----
-|.Components
-****
-o.a.i.extensions.commandlog.jdo.dom.CommandLogEntryRepository +
-****
-
-.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-commandlog-applib:test-jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/commandlog/jdo/CausewayModuleExtCommandLogPersistenceJdo.adoc[CausewayModuleExtCommandLogPersistenceJdo]
-****
-
 |Apache Causeway Ext - Command Log Implementation (JPA)
 [source,yaml]
 ----
@@ -5829,7 +5375,7 @@
 .Projects/Modules (Core: DocGen)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Docgen
 [source,yaml]
@@ -5904,12 +5450,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -5925,12 +5465,10 @@
 rectangle "Core: Execution Log\n<size:10>[Software System]</size>" <<CoreExecutionLog>> {
   rectangle "==Apache Causeway Ext - Execution Log\n<size:10>[Container: packaging: pom]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLog>> as CoreExecutionLog.ApacheCausewayExtExecutionLog
   rectangle "==Apache Causeway Ext - Execution Log API\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLogAPI>> as CoreExecutionLog.ApacheCausewayExtExecutionLogAPI
-  rectangle "==Apache Causeway Ext - Execution Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO>> as CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO
   rectangle "==Apache Causeway Ext - Execution Log Implementation (JPA)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA>> as CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA
 }
 
 CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExecutionLog.ApacheCausewayExtExecutionLogAPI : "<color:#707070>"
-CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO : "<color:#707070>"
 CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA : "<color:#707070>"
 @enduml
 ----
@@ -5938,7 +5476,7 @@
 .Projects/Modules (Core: Execution Log)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Execution Log
 [source,yaml]
@@ -5979,33 +5517,6 @@
 xref:refguide:extensions:index/executionlog/applib/CausewayModuleExtExecutionLogApplib.adoc[CausewayModuleExtExecutionLogApplib], xref:refguide:extensions:index/executionlog/applib/app/ExecutionLogMenu.adoc[ExecutionLogMenu], xref:refguide:extensions:index/executionlog/applib/contributions/HasInteractionId_executionLogEntries.adoc[HasInteractionId_executionLogEntries], xref:refguide:extensions:index/executionlog/applib/contributions/HasUsername_recentExecutionsByUser.adoc[HasUsername_recentExecutionsByUser], xref:refguide:extensions:index/executionlog/applib/contributions/Object_recentExecutions.adoc[Object_recentExecutions], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntry.adoc[ExecutionLogEntry], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntryRepository.adoc[ExecutionLogEntryRepository], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntryRepositoryAbstract.adoc[ExecutionLogEntryRepositoryAbstract], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntryType.adoc[ExecutionLogEntryType], xref:refguide:extensions:index/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.adoc[ExecutionLogEntry_siblingExecutions], xref:refguide:extensions:index/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.adoc[ExecutionSubscriberForExecutionLog]
 ****
 
-|Apache Causeway Ext - Execution Log Implementation (JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-executionlog-persistence-jdo
-Type: jar
-Directory: /extensions/core/executionlog/persistence-jdo
-----
-|.Components
-****
-o.a.i.extensions.executionlog.jdo.dom.ExecutionLogEntryPK$Semantics +
-o.a.i.extensions.executionlog.jdo.dom.ExecutionLogEntryRepository +
-****
-
-.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-executionlog-applib:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-executionlog-applib:test-jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/executionlog/jdo/CausewayModuleExtExecutionLogPersistenceJdo.adoc[CausewayModuleExtExecutionLogPersistenceJdo]
-****
-
 |Apache Causeway Ext - Execution Log Implementation (JPA)
 [source,yaml]
 ----
@@ -6066,12 +5577,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -6093,22 +5598,20 @@
 rectangle "Core: Execution Outbox\n<size:10>[Software System]</size>" <<CoreExecutionOutbox>> {
   rectangle "==Apache Causeway Ext - Execution Outbox\n<size:10>[Container: packaging: pom]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox
   rectangle "==Apache Causeway Ext - Execution Outbox API\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI
-  rectangle "==Apache Causeway Ext - Execution Outbox Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO
   rectangle "==Apache Causeway Ext - Execution Outbox Implementation (JPA)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA
   rectangle "==Apache Causeway Ext - Execution Outbox REST Client\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient
 }
 
-CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient : "<color:#707070>"
 CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI : "<color:#707070>"
-CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO : "<color:#707070>"
 CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA : "<color:#707070>"
+CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient : "<color:#707070>"
 @enduml
 ----
 
 .Projects/Modules (Core: Execution Outbox)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Execution Outbox
 [source,yaml]
@@ -6150,33 +5653,6 @@
 xref:refguide:extensions:index/executionoutbox/applib/CausewayModuleExtExecutionOutboxApplib.adoc[CausewayModuleExtExecutionOutboxApplib], xref:refguide:extensions:index/executionoutbox/applib/app/ExecutionOutboxMenu.adoc[ExecutionOutboxMenu], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntry.adoc[ExecutionOutboxEntry], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntryRepository.adoc[ExecutionOutboxEntryRepository], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntryRepositoryAbstract.adoc[ExecutionOutboxEntryRepositoryAbstract], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntryType.adoc[ExecutionOutboxEntryType], xref:refguide:extensions:index/executionoutbox/applib/restapi/OutboxEvents.adoc[OutboxEvents], xref:refguide:extensions:index/executionoutbox/applib/restapi/OutboxRestApi.adoc[OutboxRestApi], xref:refguide:extensions:index/executionoutbox/applib/spiimpl/ContentMappingServiceForOutboxEvents.adoc[ContentMappingServiceForOutboxEvents], xref:refguide:extensions:index/executionoutbox/applib/spiimpl/ExecutionSubscriberForExecutionOutbox.adoc[ExecutionSubscriberForExecutionOutbox]
 ****
 
-|Apache Causeway Ext - Execution Outbox Implementation (JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.extensions
-Artifact: causeway-extensions-executionoutbox-persistence-jdo
-Type: jar
-Directory: /extensions/core/executionoutbox/persistence-jdo
-----
-|.Components
-****
-o.a.i.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntryPK$Semantics +
-o.a.i.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntryRepository +
-****
-
-.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:test-jar:<managed> +
-org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/executionoutbox/jdo/CausewayModuleExtExecutionOutboxPersistenceJdo.adoc[CausewayModuleExtExecutionOutboxPersistenceJdo]
-****
-
 |Apache Causeway Ext - Execution Outbox Implementation (JPA)
 [source,yaml]
 ----
@@ -6283,7 +5759,7 @@
 .Projects/Modules (Core: Execution Republisher)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Execution Republisher
 [source,yaml]
@@ -6367,7 +5843,7 @@
 .Projects/Modules (Core: Flyway)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Flyway
 [source,yaml]
@@ -6462,7 +5938,7 @@
 .Projects/Modules (Core: Tabular)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Tabular (parent)
 [source,yaml]
@@ -6574,6 +6050,12 @@
 
 hide stereotype
 
+skinparam rectangle<<RegressionTests.ApacheCausewayExtExcelIntegTests>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2e6295
+  shadowing false
+}
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTests>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -6586,12 +6068,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsBaseJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsBaseJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -6616,12 +6092,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -6670,18 +6140,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsLayouts>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsPersistenceJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsPersistenceJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -6694,12 +6152,6 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsRestJDO>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
 skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsRestJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -6718,13 +6170,13 @@
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsViewersJDO>> {
+skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsViewersJPA>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
   shadowing false
 }
-skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsViewersJPA>> {
+skinparam rectangle<<RegressionTests.ApacheCausewayTstFakeDataintegtests>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2e6295
@@ -6737,7 +6189,6 @@
 }
 
 rectangle "Regression Tests\n<size:10>[Software System]</size>" <<RegressionTests>> {
-  rectangle "==Apache Causeway Regression Tests - Cmd/Exec/Audit/Session - JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJPA>> as RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJPA
   rectangle "==Apache Causeway Regression Tests - Config\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsConfig>> as RegressionTests.ApacheCausewayRegressionTestsConfig
   rectangle "==Apache Causeway Regression Tests - Core WrapperFactory\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCoreWrapperFactory>> as RegressionTests.ApacheCausewayRegressionTestsCoreWrapperFactory
   rectangle "==Apache Causeway Regression Tests - Cucumber\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCucumber>> as RegressionTests.ApacheCausewayRegressionTestsCucumber
@@ -6745,28 +6196,24 @@
   rectangle "==Apache Causeway Regression Tests - Event Handling\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsEventHandling>> as RegressionTests.ApacheCausewayRegressionTestsEventHandling
   rectangle "==Apache Causeway Regression Tests - Factory\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsFactory>> as RegressionTests.ApacheCausewayRegressionTestsFactory
   rectangle "==Apache Causeway Regression Tests - Interact\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsInteract>> as RegressionTests.ApacheCausewayRegressionTestsInteract
-  rectangle "==Apache Causeway Regression Tests - Layouts\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsLayouts>> as RegressionTests.ApacheCausewayRegressionTestsLayouts
-  rectangle "==Apache Causeway Regression Tests - Persistence (JDO)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsPersistenceJDO>> as RegressionTests.ApacheCausewayRegressionTestsPersistenceJDO
-  rectangle "==Apache Causeway Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<RegressionTests.ApacheCausewayRegressionTests>> as RegressionTests.ApacheCausewayRegressionTests
   rectangle "==Apache Causeway Regression Tests - Persistence (JPA)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsPersistenceJPA>> as RegressionTests.ApacheCausewayRegressionTestsPersistenceJPA
   rectangle "==Apache Causeway Regression Tests - Publishing (JPA)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsPublishingJPA>> as RegressionTests.ApacheCausewayRegressionTestsPublishingJPA
-  rectangle "==Apache Causeway Regression Tests - Rest JDO\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsRestJDO>> as RegressionTests.ApacheCausewayRegressionTestsRestJDO
   rectangle "==Apache Causeway Regression Tests - Rest JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsRestJPA>> as RegressionTests.ApacheCausewayRegressionTestsRestJPA
+  rectangle "==Apache Causeway Ext - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayExtExcelIntegTests>> as RegressionTests.ApacheCausewayExtExcelIntegTests
   rectangle "==Apache Causeway Regression Tests - Value Types\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsValueTypes>> as RegressionTests.ApacheCausewayRegressionTestsValueTypes
   rectangle "==Apache Causeway Regression Tests - Viewers Common\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsViewersCommon>> as RegressionTests.ApacheCausewayRegressionTestsViewersCommon
-  rectangle "==Apache Causeway Regression Tests - Viewers JDO\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsViewersJDO>> as RegressionTests.ApacheCausewayRegressionTestsViewersJDO
   rectangle "==Apache Causeway Regression Tests - Viewers JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsViewersJPA>> as RegressionTests.ApacheCausewayRegressionTestsViewersJPA
+  rectangle "==Apache Causeway Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayTstFakeDataintegtests>> as RegressionTests.ApacheCausewayTstFakeDataintegtests
+  rectangle "==Apache Causeway Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<RegressionTests.ApacheCausewayRegressionTests>> as RegressionTests.ApacheCausewayRegressionTests
   rectangle "==Apache Causeway Regression Tests - Base\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsBase>> as RegressionTests.ApacheCausewayRegressionTestsBase
-  rectangle "==Apache Causeway Regression Tests - Base JDO\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsBaseJDO>> as RegressionTests.ApacheCausewayRegressionTestsBaseJDO
   rectangle "==Apache Causeway Regression Tests - Base JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsBaseJPA>> as RegressionTests.ApacheCausewayRegressionTestsBaseJPA
   rectangle "==Apache Causeway Regression Tests - Bootstrapping\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsBootstrapping>> as RegressionTests.ApacheCausewayRegressionTestsBootstrapping
   rectangle "==Apache Causeway Regression Tests - Cmd/Exec/Audit/Session\n<size:10>[Container: packaging: pom]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession>> as RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession
   rectangle "==Apache Causeway Regression Tests - Cmd/Exec/Audit/Session - Generic\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionGeneric>> as RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionGeneric
-  rectangle "==Apache Causeway Regression Tests - Cmd/Exec/Audit/Session - JDO\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJDO>> as RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJDO
+  rectangle "==Apache Causeway Regression Tests - Cmd/Exec/Audit/Session - JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJPA>> as RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJPA
 }
 
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsBase : "<color:#707070>"
-RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsBaseJDO : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsBaseJPA : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsBootstrapping : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession : "<color:#707070>"
@@ -6777,18 +6224,13 @@
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsEventHandling : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsFactory : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsInteract : "<color:#707070>"
-RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsLayouts : "<color:#707070>"
-RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsPersistenceJDO : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsPersistenceJPA : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsPublishingJPA : "<color:#707070>"
-RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsRestJDO : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsRestJPA : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsValueTypes : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsViewersCommon : "<color:#707070>"
-RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsViewersJDO : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsViewersJPA : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionGeneric : "<color:#707070>"
-RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJDO : "<color:#707070>"
 RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSessionJPA : "<color:#707070>"
 @enduml
 ----
@@ -6796,7 +6238,25 @@
 .Projects/Modules (Regression Tests)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
+
+|Apache Causeway Ext - Excel (Integ Tests)
+[source,yaml]
+----
+Group: org.apache.causeway.regressiontests
+Artifact: causeway-extensions-excel-integtests
+Type: jar
+Directory: /extensions/core/excel/integtests
+----
+|.Dependencies
+****
+org.apache.causeway.extensions:causeway-extensions-excel-fixtures:jar:<managed> +
+org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
+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> +
+org.hsqldb:hsqldb:jar:<managed> +
+****
 
 |Apache Causeway Regression Tests
 [source,yaml]
@@ -6813,7 +6273,6 @@
 ****
 org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
-org.projectlombok:lombok:jar:<managed> +
 ****
 
 |Apache Causeway Regression Tests - Base
@@ -6842,23 +6301,6 @@
 org.apache.wicket:wicket-tester:jar:<managed> +
 ****
 
-|Apache Causeway Regression Tests - Base JDO
-[source,yaml]
-----
-Group: org.apache.causeway.regressiontests
-Artifact: causeway-regressiontests-base-jdo
-Type: jar
-Directory: /regressiontests/base-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-secman-persistence-jdo:jar:<managed> +
-org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
-org.apache.causeway.regressiontests:causeway-regressiontests-base:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
-****
-
 |Apache Causeway Regression Tests - Base JPA
 [source,yaml]
 ----
@@ -6874,7 +6316,7 @@
 org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
 org.apache.causeway.regressiontests:causeway-regressiontests-base: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-applib:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
 
@@ -6922,25 +6364,6 @@
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 ****
 
-|Apache Causeway Regression Tests - Cmd/Exec/Audit/Session - JDO
-[source,yaml]
-----
-Group: org.apache.causeway.regressiontests
-Artifact: causeway-regressiontests-cmdexecauditsess-persistence-jdo
-Type: jar
-Directory: /regressiontests/cmdexecauditsess/persistence-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-audittrail-persistence-jdo:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-commandlog-persistence-jdo:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-executionlog-persistence-jdo:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-jdo:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-sessionlog-persistence-jdo:jar:<managed> +
-org.apache.causeway.regressiontests:causeway-regressiontests-cmdexecauditsess-generic:jar:<managed> +
-org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
-****
-
 |Apache Causeway Regression Tests - Cmd/Exec/Audit/Session - JPA
 [source,yaml]
 ----
@@ -6971,7 +6394,7 @@
 ----
 |.Dependencies
 ****
-com.icegreen:greenmail-junit5:jar:2.1.3 +
+com.icegreen:greenmail-junit5:jar:2.1.7 +
 org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
 org.apache.causeway.regressiontests:causeway-regressiontests-base:jar:<managed> +
 ****
@@ -6986,6 +6409,7 @@
 ----
 |.Dependencies
 ****
+org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
 org.apache.causeway.regressiontests:causeway-regressiontests-base:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 ****
@@ -7058,38 +6482,6 @@
 org.apache.causeway.regressiontests:causeway-regressiontests-base:jar:<managed> +
 ****
 
-|Apache Causeway Regression Tests - Layouts
-[source,yaml]
-----
-Group: org.apache.causeway.regressiontests
-Artifact: causeway-regressiontests-layouts
-Type: jar
-Directory: /regressiontests/layouts
-----
-|.Dependencies
-****
-org.apache.causeway.core:causeway-applib:jar:<managed> +
-org.apache.causeway.core:causeway-core-config:jar:<managed> +
-org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
-org.apache.causeway.regressiontests:causeway-regressiontests-base:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-wicket-applib:jar:<managed> +
-****
-
-|Apache Causeway Regression Tests - Persistence (JDO)
-[source,yaml]
-----
-Group: org.apache.causeway.regressiontests
-Artifact: causeway-regressiontests-persistence-jdo
-Type: jar
-Directory: /regressiontests/persistence-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.regressiontests:causeway-regressiontests-base-jdo:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-****
-
 |Apache Causeway Regression Tests - Persistence (JPA)
 [source,yaml]
 ----
@@ -7120,23 +6512,6 @@
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 ****
 
-|Apache Causeway Regression Tests - Rest JDO
-[source,yaml]
-----
-Group: org.apache.causeway.regressiontests
-Artifact: causeway-regressiontests-rest-jdo
-Type: jar
-Directory: /regressiontests/rest-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.extensions:causeway-extensions-cors-impl:jar:<managed> +
-org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
-org.apache.causeway.regressiontests:causeway-regressiontests-base-jdo:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
-****
-
 |Apache Causeway Regression Tests - Rest JPA
 [source,yaml]
 ----
@@ -7152,7 +6527,6 @@
 org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
 org.apache.causeway.regressiontests:causeway-regressiontests-base-jpa:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
 ****
 
 |Apache Causeway Regression Tests - Value Types
@@ -7183,22 +6557,6 @@
 org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
 
-|Apache Causeway Regression Tests - Viewers JDO
-[source,yaml]
-----
-Group: org.apache.causeway.regressiontests
-Artifact: causeway-regressiontests-viewers-jdo
-Type: jar
-Directory: /regressiontests/viewers-jdo
-----
-|.Dependencies
-****
-org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
-org.apache.causeway.regressiontests:causeway-regressiontests-base-jdo: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 - Viewers JPA
 [source,yaml]
 ----
@@ -7214,183 +6572,27 @@
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
 ****
+
+|Apache Causeway Tst - FakeData (integ tests)
+[source,yaml]
+----
+Group: org.apache.causeway.regressiontests
+Artifact: causeway-testing-fakedata-integtests
+Type: jar
+Directory: /testing/fakedata/integtests
+----
+|.Dependencies
+****
+org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
+org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
+org.apache.causeway.testing:causeway-testing-fakedata-fixtures:jar:<managed> +
+org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
+org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
+****
 |===
 
 == Incubator
 
 === Kroviz Client
 
-[plantuml,Kroviz Client,svg]
-----
-@startuml
-set separator none
-title Kroviz Client - Containers
-
-left to right direction
-
-skinparam {
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
-}
-
-hide stereotype
-
-skinparam rectangle<<KrovizClient.ApacheCausewayIncubatorClientkroViz>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
-skinparam rectangle<<KrovizClient>> {
-  BorderColor #9a9a9a
-  FontColor #9a9a9a
-  shadowing false
-}
-
-rectangle "Kroviz Client\n<size:10>[Software System]</size>" <<KrovizClient>> {
-  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
-|===
-
 === Command Replay
-
-[plantuml,Command Replay,svg]
-----
-@startuml
-set separator none
-title Command Replay - Containers
-
-left to right direction
-
-skinparam {
-  arrowFontSize 10
-  defaultTextAlignment center
-  wrapWidth 200
-  maxMessageSize 100
-}
-
-hide stereotype
-
-skinparam rectangle<<CommandReplay.ApacheCausewayIncCoreCommandReplay>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
-skinparam rectangle<<CommandReplay.ApacheCausewayIncCoreCommandReplayforPrimary>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
-skinparam rectangle<<CommandReplay.ApacheCausewayIncCoreCommandReplayforSecondary>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2e6295
-  shadowing false
-}
-skinparam rectangle<<CommandReplay>> {
-  BorderColor #9a9a9a
-  FontColor #9a9a9a
-  shadowing false
-}
-
-rectangle "Command Replay\n<size:10>[Software System]</size>" <<CommandReplay>> {
-  rectangle "==Apache Causeway Inc - Core Command Replay\n<size:10>[Container: packaging: pom]</size>" <<CommandReplay.ApacheCausewayIncCoreCommandReplay>> as CommandReplay.ApacheCausewayIncCoreCommandReplay
-  rectangle "==Apache Causeway Inc - Core Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<CommandReplay.ApacheCausewayIncCoreCommandReplayforPrimary>> as CommandReplay.ApacheCausewayIncCoreCommandReplayforPrimary
-  rectangle "==Apache Causeway Inc - Core Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<CommandReplay.ApacheCausewayIncCoreCommandReplayforSecondary>> as CommandReplay.ApacheCausewayIncCoreCommandReplayforSecondary
-}
-
-CommandReplay.ApacheCausewayIncCoreCommandReplay .[#707070,thickness=2].> CommandReplay.ApacheCausewayIncCoreCommandReplayforPrimary : "<color:#707070>"
-CommandReplay.ApacheCausewayIncCoreCommandReplay .[#707070,thickness=2].> CommandReplay.ApacheCausewayIncCoreCommandReplayforSecondary : "<color:#707070>"
-@enduml
-----
-
-.Projects/Modules (Command Replay)
-[cols="3a,5a", options="header"]
-|===
-|Coordinates |Description
-
-|Apache Causeway Inc - Core Command Replay
-[source,yaml]
-----
-Group: org.apache.causeway.incubator.extensions
-Artifact: causeway-extensions-commandreplay
-Type: pom
-Directory: /incubator/extensions/core/commandreplay
-----
-|Replays commands to secondary system
-
-|Apache Causeway Inc - Core Command Replay for Primary
-[source,yaml]
-----
-Group: org.apache.causeway.incubator.extensions
-Artifact: causeway-extensions-commandreplay-primary
-Type: jar
-Directory: /incubator/extensions/core/commandreplay/primary
-----
-|A module for obtaining commands from a primary
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-config:jar:<managed> +
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.core:causeway-schema:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/commandreplay/primary/CausewayModuleExtCommandReplayPrimary.adoc[CausewayModuleExtCommandReplayPrimary], xref:refguide:extensions:index/commandreplay/primary/config/PrimaryConfig.adoc[PrimaryConfig], xref:refguide:extensions:index/commandreplay/primary/mixins/Object_openOnSecondary.adoc[Object_openOnSecondary], xref:refguide:extensions:index/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.adoc[CommandRetrievalOnPrimaryService], xref:refguide:extensions:index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc[CommandReplayOnPrimaryService]
-****
-
-|Apache Causeway Inc - Core Command Replay for Secondary
-[source,yaml]
-----
-Group: org.apache.causeway.incubator.extensions
-Artifact: causeway-extensions-commandreplay-secondary
-Type: jar
-Directory: /incubator/extensions/core/commandreplay/secondary
-----
-|A module providing a Quartz Job to run on a secondary system,
-for obtaining commands from a primary and saving them so that they are replayed.
-
-.Dependencies
-****
-org.apache.causeway.core:causeway-core-config:jar:<managed> +
-org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
-org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
-org.apache.causeway.core:causeway-schema:jar:<managed> +
-org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
-org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
-org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
-org.glassfish.jersey.ext:jersey-spring6:jar:<managed> +
-org.springframework.boot:spring-boot-starter-quartz:jar:<managed> +
-****
-
-.Document Index Entries
-****
-xref:refguide:extensions:index/commandreplay/secondary/CausewayModuleExtCommandReplaySecondary.adoc[CausewayModuleExtCommandReplaySecondary], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc[CommandReplayAnalyser], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyserException.adoc[CommandReplayAnalyserException], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyserResult.adoc[CommandReplayAnalyserResult], xref:refguide:extensions:index/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc[CommandReplayAnalysisService], xref:refguide:extensions:index/commandreplay/secondary/config/SecondaryConfig.adoc[SecondaryConfig], xref:refguide:extensions:index/commandreplay/secondary/fetch/CommandFetcher.adoc[CommandFetcher], xref:refguide:extensions:index/commandreplay/secondary/job/JobExecutionData.adoc[JobExecutionData], xref:refguide:extensions:index/commandreplay/secondary/job/ReplicateAndReplayJob.adoc[ReplicateAndReplayJob], xref:refguide:extensions:index/commandreplay/secondary/job/SecondaryStatusData.adoc[SecondaryStatusData], xref:refguide:extensions:index/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.adoc[ReplicateAndRunCommands], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandLogEntry_exclude.adoc[CommandLogEntry_exclude], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.adoc[CommandLogEntry_replayQueue], xref:refguide:extensions:index/commandreplay/secondary/mixins/Object_openOnPrimary.adoc[Object_openOnPrimary], xref:refguide:extensions:index/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc[ReplayCommandExecutionController], xref:refguide:extensions:index/commandreplay/secondary/status/SecondaryStatus.adoc[SecondaryStatus], xref:refguide:extensions:index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc[CommandReplayOnSecondaryService]
-****
-|===
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
index b0f472f..6c4bd47 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
@@ -16,10 +16,8 @@
 causeway.schema.command. +
 param-identifier-strategy
 
-|  by-id
-| Whether the `ParamDto#getName()` field - which uniquely identifies a parameter within the action's of parameters - is populated with the parameter's formal Id (eg "firstName") or instead using the parameter's friendly name (eg "First Name").
-
-The default is to use the Id, but the name is provided as an alternative for compatibility with v1. Note that the name is potentially translated, so this could also cause issues within integration scenarios.
+|  BY_ID
+| null
 
 
 |
@@ -29,9 +27,7 @@
 require-only-viewing-permission
 
 | 
-| If set, allows _Actions_ with SAFE Semantics to be invoked with only VIEWING permissions.
-
-default: false @see org.apache.causeway.applib.annotation.Action#semantics() @see SemanticsOf
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.applib.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.applib.adoc
index c52f063..4d2024e 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.applib.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.applib.adoc
@@ -99,20 +99,6 @@
 *:fa-shuffle, view. +
 *:fa-regular fa-eye, wizard. +
 *:fa-solid fa-wand-magic-sparkles]
-| Provides a mapping of patterns to font-awesome CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's menu icon if rendered by the Wicket viewer.
-
-Providing a default set of patterns encourages a common set of verbs to be used.
-
-The font awesome class for individual actions can be overridden using `ActionLayout#cssClassFa()`.
-
-
-|
-[[causeway.applib.annotation.action-layout.css-class-fa.patterns-as-map]]
-causeway.applib.annotation. +
-action-layout.css-class-fa. +
-patterns-as-map
-
-|
 | null
 
 
@@ -133,20 +119,6 @@
 *:btn-danger, save. +
 *:btn-success, approve. +
 *:btn-success, reject.*:btn-danger]
-| Provides a mapping of patterns to CSS classes, where the pattern is used to match against the name of the action method in order to determine a CSS class to use, for example on the action's button if rendered by the Wicket viewer.
-
-Providing a default set of patterns encourages a common set of verbs to be used.
-
-The CSS class for individual actions can be overridden using `ActionLayout#cssClass()`.
-
-
-|
-[[causeway.applib.annotation.action-layout.css-class.patterns-as-map]]
-causeway.applib.annotation. +
-action-layout.css-class. +
-patterns-as-map
-
-|
 | null
 
 
@@ -155,10 +127,8 @@
 causeway.applib.annotation.action. +
 command-publishing
 
-|  none
-| The default for whether action invocations should be reified as a `Command`, to be sent to any registered `CommandSubscriber`s, typically for auditing purposes.
-
-This setting can be overridden on a case-by-case basis using `Action#commandPublishing()`.
+|  NONE
+| null
 
 
 |
@@ -167,15 +137,7 @@
 domain-event.post-for-default
 
 |  true
-| Influences whether an `ActionDomainEvent` should be published (on the internal `EventBusService`) whenever an action is being interacted with.
-
-Up to five different events can be fired during an interaction, with the event's phase determining which (hide, disable, validate, executing and executed). Subscribers can influence the behaviour at each of these phases.
-
-The algorithm for determining whether (and what type of) an event is actually sent depends on the value of the `Action#domainEvent()` for the action in question
-
-* If set to some subtype of ActionDomainEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ActionDomainEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -183,12 +145,8 @@
 causeway.applib.annotation.action. +
 execution-publishing
 
-|  none
-| The default for whether action invocations should be sent through to the `ExecutionSubscriber` for publishing.
-
-The service's onExecution method is called only once per transaction, with `Execution` collecting details of the identity of the target object, the action invoked, the action arguments and the returned object (if any).
-
-This setting can be overridden on a case-by-case basis using `Action#executionPublishing() Action#executionPublishing()`.
+|  NONE
+| null
 
 
 |
@@ -196,10 +154,8 @@
 causeway.applib.annotation. +
 collection-layout.default-view
 
-|  table
-| Defines the initial view to display collections when rendered.
-
-The value of this can be overridden on a case-by-case basis using `CollectionLayout#defaultView()`. Note that this default configuration property is an enum and so defines only a fixed number of values, whereas the annotation returns a string; this is to allow for flexibility that individual viewers might support their own additional types. For example, the Wicket viewer supports which can render objects that have a date on top of a calendar view.
+|  TABLE
+| null
 
 
 |
@@ -208,9 +164,7 @@
 collection-layout.paged
 
 |  12
-| Defines the default number of objects that are shown in a "parented" collection of a domain object, result of invoking an action.
-
-This can be overridden on a case-by-case basis using `CollectionLayout#paged()`.
+| null
 
 
 |
@@ -219,10 +173,8 @@
 collection-layout. +
 sequence-policy-if-unreferenced
 
-|
-| How `CollectionLayout#sequence()` should be handled when calculating the slot-in order for unreferenced _Collections_. ++{++@code AS++_++PER++_++SEQUENCE} will use Dewey order based on available 'sequence' attributes, whereas ++{++@code ALPHABETICALLY} will use alphabetical order based on member names.
-
-default: ++{++@code AS++_++PER++_++SEQUENCE}
+|  AS_PER_SEQUENCE
+| null
 
 
 |
@@ -230,8 +182,9 @@
 causeway.applib.annotation. +
 collection-layout.table-decorator
 
-|
-| Defines whether the table representation of a collection should be decorated using a client-side Javascript library, eg for client-side paging and filtering.
+|  org.apache.causeway.applib. +
+annotation.TableDecorator.Default
+| null
 
 
 |
@@ -241,15 +194,7 @@
 post-for-default
 
 |  true
-| Influences whether an `CollectionDomainEvent` should be published (on the internal `EventBusService`) whenever a collection is being interacted with.
-
-Up to two different events can be fired during an interaction, with the event's phase determining which (hide, disable)Subscribers can influence the behaviour at each of these phases.
-
-The algorithm for determining whether (and what type of) an event is actually sent depends on the value of the `Collection#domainEvent()` for the collection action in question:
-
-* If set to some subtype of CollectionDomainEvent.Noop, then _no_ event is sent.
-* If set to some subtype of CollectionDomainEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -259,16 +204,8 @@
 css-class-ui-event. +
 post-for-default
 
-|
-| Influences whether an `CssClassUiEvent` should be published (on the internal `EventBusService`) whenever a domain object is about to be rendered in the UI - thereby allowing subscribers to optionally `CssClassUiEvent#setCssClass(String)` change) the CSS classes that are used.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `DomainObjectLayout#cssClassUiEvent()` @DomainObjectLayout(cssClassEvent=...)} for the domain object in question.
-
-* If set to some subtype of CssClassUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of CssClassUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-The default is `false`, because otherwise the mere presence of `@DomainObjectLayout` (perhaps for some attribute other than this one) will cause any imperative `cssClass()` method to be ignored.
+| 
+| null
 
 
 |
@@ -277,16 +214,8 @@
 domain-object-layout.icon-ui-event. +
 post-for-default
 
-|
-| Influences whether an `IconUiEvent` should be published (on the internal `EventBusService`) whenever a domain object is about to be rendered in the UI - thereby allowing subscribers to optionally `IconUiEvent#setIconName(String)` change) the icon that is used.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `DomainObjectLayout#iconUiEvent()` @DomainObjectLayout(iconEvent=...)} for the domain object in question.
-
-* If set to some subtype of IconUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of IconUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-The default is `false`, because otherwise the mere presence of `@DomainObjectLayout` (perhaps for some attribute other than this one) will cause any imperative `iconName()` method to be ignored.
+| 
+| null
 
 
 |
@@ -295,18 +224,8 @@
 domain-object-layout. +
 layout-ui-event.post-for-default
 
-|
-| Influences whether an `LayoutUiEvent` should be published (on the internal `EventBusService`) whenever a domain object is about to be rendered in the UI - thereby allowing subscribers to optionally `LayoutUiEvent#setLayout(String)` change) the layout that is used.
-
-If a different layout value has been set, then a layout in the form `xml` use used (where `zzz` is the name of the layout).
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `DomainObjectLayout#layoutUiEvent()` @DomainObjectLayout(layoutEvent=...)} for the domain object in question.
-
-* If set to some subtype of LayoutUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of LayoutUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-The default is `false`, because otherwise the mere presence of `@DomainObjectLayout` (perhaps for some attribute other than this one) will cause any imperative `layout()` method to be ignored.
+| 
+| null
 
 
 |
@@ -315,9 +234,7 @@
 domain-object-layout.paged
 
 |  25
-| Defines the default number of objects that are shown in a "standalone" collection obtained as the result of invoking an action.
-
-This can be overridden on a case-by-case basis using `DomainObjectLayout#paged()`.
+| null
 
 
 |
@@ -326,8 +243,9 @@
 domain-object-layout. +
 table-decorator
 
-|
-| Defines whether the table representation of a standalone collection of this domain class should be decorated using a client-side Javascript library, eg for client-side paging and filtering.
+|  org.apache.causeway.applib. +
+annotation.TableDecorator.Default
+| null
 
 
 |
@@ -336,16 +254,8 @@
 domain-object-layout. +
 title-ui-event.post-for-default
 
-|
-| Influences whether an `TitleUiEvent` should be published (on the internal `EventBusService`) whenever a domain object is about to be rendered in the UI - thereby allowing subscribers to optionally `TitleUiEvent#setTitle(String)` change) the title that is used.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `DomainObjectLayout#titleUiEvent()` @DomainObjectLayout(titleEvent=...)} for the domain object in question.
-
-* If set to some subtype of TitleUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of TitleUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-The default is `false`, because otherwise the mere presence of `@DomainObjectLayout` (perhaps for some attribute other than this one) will cause any imperative `title()` method to be ignored.
+| 
+| null
 
 
 |
@@ -356,13 +266,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectCreatedEvent` should be published (on the internal `EventBusService`) whenever a domain object has been created using `FactoryService`.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectCreatedEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -370,10 +274,8 @@
 causeway.applib.annotation. +
 domain-object.editing
 
-|  false
-| The default for whether the properties of domain objects can be edited, or whether instead they can be modified only using actions (or programmatically as a side-effect of actions on other objects).
-
-This setting can be overridden on a case-by-case basis using `DomainObject#getEditing() DomainObject#getEditing()`
+|  FALSE
+| null
 
 
 |
@@ -382,12 +284,8 @@
 domain-object. +
 entity-change-publishing
 
-|  none
-| The default for whether _domain entities_ should be audited or not (meaning that any changes are sent through to `EntityChangesSubscriber`s and sent through to `EntityPropertyChangeSubscriber`.
-
-This setting can be overridden on a case-by-case basis using `DomainObject#entityChangePublishing()`
-
-Note: this applies only to domain entities, not view models.
+|  NONE
+| null
 
 
 |
@@ -398,15 +296,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectLoadedEvent` should be published (on the internal `EventBusService`) whenever a domain _entity_ has been loaded from the persistence store.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectLoadedEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-Note: this applies only to domain entities, not to view models.
+| null
 
 
 |
@@ -417,15 +307,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectPersistedEvent` should be published (on the internal `EventBusService`) whenever a domain _entity_ has been persisted (for the first time) to the persistence store.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectPersistedEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-Note: this applies only to domain entities, not to view models.
+| null
 
 
 |
@@ -436,15 +318,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectPersistingEvent` should be published (on the internal `EventBusService`) whenever a domain _entity_ is about to be persisting (for the first time) to the persistence store.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectPersistingEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-Note: this applies only to domain entities, not to view models.
+| null
 
 
 |
@@ -455,17 +329,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectRemovingEvent` should be published (on the internal `EventBusService`) whenever a persistent domain _entity_ is about to be removed (that is, deleted) from the persistence store.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectRemovingEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-Note: this applies only to domain entities, not to view models.
-
-Note: There is no corresponding `removed` callback, because it is not possible to interact with a domain entity once it has been deleted.
+| null
 
 
 |
@@ -476,15 +340,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectUpdatedEvent` should be published (on the internal `EventBusService`) whenever a persistent domain _entity_ has been updated in the persistence store.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectUpdatedEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-Note: this applies only to domain entities, not to view models.
+| null
 
 
 |
@@ -495,28 +351,7 @@
 post-for-default
 
 |  true
-| Influences whether an `ObjectUpdatingEvent` should be published (on the internal `EventBusService`) whenever a persistent domain _entity_ is about to be updated in the persistence store.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question.
-
-* If set to some subtype of ObjectUpdatingEvent.Noop, then _no_ event is sent.
-* If set to some subtype of ObjectCreatedEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
-
-Note: this applies only to domain entities, not to view models.
-
-
-|
-[[causeway.applib.annotation.parameter-layout.label-position]]
-causeway.applib.annotation. +
-parameter-layout.label-position
-
-|  not-specified
-| Defines the default position for the label for an action parameter.
-
-Can be overridden on a case-by-case basis using `ParameterLayout#labelPosition()`.
-
-If left as `LabelPosition#NOT++_++SPECIFIED` and not overridden, then the position depends upon the viewer implementation.
+| null
 
 
 |
@@ -525,23 +360,8 @@
 parameter. +
 preceding-parameters-policy
 
-|  reset
-| Whether parameters should be reset to their default if an earlier parameter changes its value, or whether instead a parameter value, once changed by the end-user, should never be overwritten even if the end-user changes an earlier parameter value.
-
-This setting can be overridden on a case-by-case basis using `Parameter#precedingParamsPolicy() Parameter#precedingParametersPolicy()`.
-
-
-|
-[[causeway.applib.annotation.property-layout.label-position]]
-causeway.applib.annotation. +
-property-layout.label-position
-
-|  not-specified
-| Defines the default position for the label for a domain object property.
-
-Can be overridden on a case-by-case basis using `ParameterLayout#labelPosition()`.
-
-If left as `LabelPosition#NOT++_++SPECIFIED` and not overridden, then the position depends upon the viewer implementation.
+|  RESET
+| null
 
 
 |
@@ -550,10 +370,8 @@
 property-layout. +
 sequence-policy-if-unreferenced
 
-|
-| How `PropertyLayout#sequence()` should be handled when calculating the slot-in order for unreferenced _Properties_. ++{++@code AS++_++PER++_++SEQUENCE} will use Dewey order based on available 'sequence' attributes, whereas ++{++@code ALPHABETICALLY} will use alphabetical order based on member names.
-
-default: ++{++@code AS++_++PER++_++SEQUENCE}
+|  AS_PER_SEQUENCE
+| null
 
 
 |
@@ -561,10 +379,8 @@
 causeway.applib.annotation. +
 property.command-publishing
 
-|  none
-| The default for whether property edits should be reified as a `Command`, to be sent to any registered `CommandSubscriber`s, either for auditing or for replayed against a secondary system, eg for regression testing.
-
-This setting can be overridden on a case-by-case basis using `Property#commandPublishing()`.
+|  NONE
+| null
 
 
 |
@@ -574,15 +390,7 @@
 post-for-default
 
 |  true
-| Influences whether an `PropertyDomainEvent` should be published (on the internal `EventBusService`) whenever an property is being interacted with.
-
-Up to five different events can be fired during an interaction, with the event's phase determining which (hide, disable, validate, executing and executed). Subscribers can influence the behaviour at each of these phases.
-
-The algorithm for determining whether (and what type of) an event is actually sent depends on the value of the `Property#domainEvent()` for the property in question:
-
-* If set to some subtype of propertyDomainEvent.Noop, then _no_ event is sent.
-* If set to some subtype of propertyDomainEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -590,12 +398,8 @@
 causeway.applib.annotation. +
 property.execution-publishing
 
-|  none
-| The default for whether property edits should be sent through to the `ExecutionSubscriber` for publishing.
-
-The service's `ExecutionSubscriber#onExecution(Execution)` publish} method is called only once per transaction, with `Execution` collecting details of the identity of the target object, the property edited, and the new value of the property.
-
-This setting can be overridden on a case-by-case basis using `Property#executionPublishing()`.
+|  NONE
+| null
 
 
 |
@@ -606,13 +410,7 @@
 post-for-default
 
 |  true
-| Influences whether an `CssClassUiEvent` should be published (on the internal `EventBusService`) whenever a view model (annotated with @DomainObject#nature of `Nature#VIEW++_++MODEL`) is about to be rendered in the UI - thereby allowing subscribers to optionally `CssClassUiEvent#setCssClass(String)` change) the CSS classes that are used.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question:
-
-* If set to some subtype of CssClassUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of CssClassUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -622,13 +420,7 @@
 post-for-default
 
 |  true
-| Influences whether an `IconUiEvent` should be published (on the internal `EventBusService`) whenever a view model (annotated with @DomainObject#nature of `Nature#VIEW++_++MODEL`) is about to be rendered in the UI - thereby allowing subscribers to optionally `IconUiEvent#setIconName(String)` change) the icon that is used.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question:
-
-* If set to some subtype of IconUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of IconUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -638,15 +430,7 @@
 post-for-default
 
 |  true
-| Influences whether an `LayoutUiEvent` should be published (on the internal `EventBusService`) whenever a view model (annotated with @DomainObject#nature of `Nature#VIEW++_++MODEL`) is about to be rendered in the UI - thereby allowing subscribers to optionally `LayoutUiEvent#setLayout(String)` change) the layout that is used.
-
-If a different layout value has been set, then a layout in the form `xml` use used (where `zzz` is the name of the layout).
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question:
-
-* If set to some subtype of LayoutUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of LayoutUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -656,13 +440,7 @@
 post-for-default
 
 |  true
-| Influences whether an `TitleUiEvent` should be published (on the internal `EventBusService`) whenever a view model (annotated with @DomainObject#nature of `Nature#VIEW++_++MODEL`) is about to be rendered in the UI - thereby allowing subscribers to optionally `TitleUiEvent#setTitle(String)` change) the title that is used.
-
-The algorithm for determining whether (and what type of) an event is sent depends on the value of the `)` for the domain object in question:
-
-* If set to some subtype of TitleUiEvent.Noop, then _no_ event is sent.
-* If set to some subtype of TitleUiEvent.Default, then an event is sent _if and only if_ this configuration setting is set.
-* If set to any other subtype, then an event _is_ sent.
+| null
 
 
 |
@@ -671,8 +449,8 @@
 view-model.validation. +
 semantic-checking.enable
 
-|
-| Whether to check for inconsistencies between the usage of `DomainObject` and `DomainObjectLayout`.
+| 
+| null
 
 
 |
@@ -680,8 +458,26 @@
 causeway.applib.service. +
 metrics-service.level
 
-|  counters-only
-| What level of detail the MetricsService should capture.
+|  COUNTERS_ONLY
+| null
+
+
+|
+[[causeway.applib.annotation.parameter-layout.label-position]]
+causeway.applib.annotation. +
+parameter-layout.label-position
+
+|  NOT_SPECIFIED
+| null
+
+
+|
+[[causeway.applib.annotation.property-layout.label-position]]
+causeway.applib.annotation. +
+property-layout.label-position
+
+|  NOT_SPECIFIED
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.config.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.config.adoc
index bf08c1d..65a8e4c 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.config.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.config.adoc
@@ -17,12 +17,8 @@
 configuration-property-visibility- +
 policy
 
-|  show-only-in-prototype
-| Configuration values might contain sensitive data, hence per default, configuration properties are only visible with the configuration-page when _prototyping_.
-
-Alternatively this policy can be set to either *always* show or *never* show.
-
-@see ConfigurationPropertyVisibilityPolicy
+|  SHOW_ONLY_IN_PROTOTYPE
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.adoc
index 11a4a72..00cafd4 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.adoc
@@ -17,9 +17,7 @@
 filter-visibility
 
 |  true
-| Whether domain objects to which the current user does not have visibility access should be rendered within collections or drop-down choices/autocompletes.
-
-One reason this filtering may be necessary is for multi-tenanted applications, whereby an end-user should only be able to "see" what data that they own. For efficiency, the application should only query for objects that the end-user owns. This configuration property acts as a safety net to prevent the end-user from viewing domain objects _even if_ those domain objects were rehydrated from the persistence store.
+| null
 
 
 |
@@ -29,7 +27,7 @@
 ignore-deprecated
 
 | 
-| If set, then any aspects of the programming model (as implemented by `FacetFactory`s that have been indicated as deprecated will simply be ignored/excluded from the metamodel.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.introspector.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.introspector.adoc
index 2551241..44b97bf 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.introspector.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.introspector.adoc
@@ -18,9 +18,7 @@
 lock-after-full-introspection
 
 |  true
-| If true, then no new specifications will be allowed to be loaded once introspection has been complete.
-
-Only applies if the introspector is configured to perform full introspection up-front (either because of `IntrospectionMode#FULL` or `IntrospectionMode#LAZY++_++UNLESS++_++PRODUCTION` when in production); otherwise is ignored.
+| null
 
 
 |
@@ -28,10 +26,8 @@
 causeway.core.meta-model. +
 introspector.mode
 
-|  lazy-unless-production
-| Whether all known types should be fully introspected as part of the bootstrapping, or should only be partially introspected initially.
-
-Leaving this as lazy means that there's a chance that metamodel validation errors will not be discovered during bootstrap. That said, metamodel validation is still run incrementally for any classes introspected lazily after initial bootstrapping (unless `#isValidateIncrementally()` is disabled.
+|  LAZY_UNLESS_PRODUCTION
+| null
 
 
 |
@@ -40,9 +36,7 @@
 introspector.parallelize
 
 | 
-| Whether to perform metamodel introspection in parallel, intended to speed up bootstrapping.
-
-For now this is _experimental_. We recommend this is left as disabled (the default).
+| null
 
 
 |
@@ -50,10 +44,8 @@
 causeway.core.meta-model. +
 introspector.policy
 
-| 
-| Policy as to how introspection should process class members and supporting methods.
-
-Default is to only introspect public class members, while annotating these is optional.
+|  ANNOTATION_OPTIONAL
+| null
 
 
 |
@@ -63,11 +55,7 @@
 validate-incrementally
 
 |  true
-| If true, then metamodel validation is performed after any new specification has been loaded (after the initial bootstrapping).
-
-This does _not_ apply if the introspector is configured to perform full introspection up-front AND when the metamodel is locked after initial bootstrapping (because in that case the lock check will simply prevent any new specs from being loaded). But it will apply otherwise.
-
-In particular, this setting _can_ still apply even if the mode is set to full, because that in itself does not preclude some code from attempting to load some previously unknown type. For example, a fixture script could attempt to invoke an action on some new type using the `WrapperFactory` - this will cause introspection of that new type to be performed.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.validator.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.validator.adoc
index d554a32..e088952 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.validator.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.meta-model.validator.adoc
@@ -18,7 +18,7 @@
 choices
 
 |  true
-| Whether to validate that any actions that accept action parameters have either a corresponding choices or auto-complete for that action parameter, or are associated with a collection of the appropriate type.
+| null
 
 
 |
@@ -27,11 +27,7 @@
 allow-deprecated
 
 |  true
-| This setting is used to determine whether the use of such deprecated features is allowed.
-
-If not allowed, then metamodel validation errors will be flagged.
-
-Note that this settings has no effect if the programming model has been configured to deprecated features (because in this case the programming model facets simply won't be included in the introspection process.
+| null
 
 
 |
@@ -39,10 +35,8 @@
 causeway.core.meta-model.validator. +
 allow-logical-type-name-as-alias
 
-|
-| Allows logical type name in `Named` also be included in the list of `DomainObject#aliased()` or `DomainService#aliased()`.
-
-It is _highly advisable_ to leave this disabled. This option is meant as a practical way to enable to transition from old names to new logical type names. Especially when you have a large number of files that have to migrated and you want to do the migration in incremental steps.
+| 
+| null
 
 
 |
@@ -50,10 +44,8 @@
 causeway.core.meta-model.validator. +
 explicit-logical-type-names
 
-|
-| Whether to ensure that the logical-type-name of all objects must be specified explicitly, using either `Named`.
-
-It is _highly advisable_ to leave this set as enabled (the default). These logical-type-names should also (of course) be unique - among non-abstract types.
+| 
+| null
 
 
 |
@@ -63,7 +55,7 @@
 date-time-type-adapter
 
 |  true
-| If set, then ensures that for all properties of JAXB-style view models where the property's type is a date or time, then that property has been correctly annotated with @`XmlJavaTypeAdapter` (so that the property's value can be converted into a serializable form).
+| null
 
 
 |
@@ -71,8 +63,8 @@
 causeway.core.meta-model.validator. +
 jaxb-view-model.no-arg-constructor
 
-|
-| If set, then ensures that all JAXB-style view models have a no-arg constructor.
+| 
+| null
 
 
 |
@@ -81,7 +73,7 @@
 jaxb-view-model.not-abstract
 
 |  true
-| If set, then ensures that all JAXB-style view models are concrete classes, not abstract.
+| null
 
 
 |
@@ -90,7 +82,7 @@
 jaxb-view-model.not-inner-class
 
 |  true
-| If set, then ensures that all JAXB-style view models are either top-level classes or nested static classes (in other words, checks that they are not anonymous, local nor nested non-static classes).
+| null
 
 
 |
@@ -100,8 +92,7 @@
 reference-type-adapter
 
 |  true
-| If set, then ensures that for all properties of JAXB-style view models where the property's type is an entity, then that entity's type has been correctly annotated with @`XmlJavaTypeAdapter` (so that the property's value can be converted into a serializable form).
-
+| null
 
 
 |
@@ -110,7 +101,7 @@
 parallelize
 
 |  true
-| Whether to perform metamodel validation in parallel.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime-services.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime-services.adoc
index 827ea71..b8808e2 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime-services.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime-services.adoc
@@ -16,8 +16,8 @@
 causeway.core.runtime-services. +
 application-features.init
 
-|  not-specified
-| Whether the `ApplicationFeatureRepository` (or the default implementation of that service, at least) should compute the set of `ApplicationFeature` that describe the metamodel eagerly, or lazily.
+|  NOT_SPECIFIED
+| null
 
 
 |
@@ -26,7 +26,7 @@
 email.override.bcc
 
 | 
-| Intended for testing purposes only, if set then the requested `bcc:` of the email will be ignored, and instead sent to this email address instead.
+| null
 
 
 |
@@ -35,7 +35,7 @@
 email.override.cc
 
 | 
-| Intended for testing purposes only, if set then the requested `cc:` of the email will be ignored, and instead sent to this email address instead.
+| null
 
 
 |
@@ -44,7 +44,7 @@
 email.override.to
 
 | 
-| Intended for testing purposes only, if set then the requested `to:` of the email will be ignored, and instead sent to this email address instead.
+| null
 
 
 |
@@ -53,11 +53,7 @@
 email.sender.address
 
 | 
-| Specifies the email address of the user sending the email.
-
-If the username is not specified, is also used as the username to connect to the SMTP service.
-
-This configuration property is mandatory (for the default implementation of the `EmailService`, at least).
+| null
 
 
 |
@@ -66,7 +62,7 @@
 email.throw-exception-on-fail
 
 |  true
-| If an email fails to send, whether to propagate the exception (meaning that potentially the end-user might see the exception), or whether instead to just indicate failure through the return value of the method (`)` that's being called.
+| null
 
 
 |
@@ -76,9 +72,7 @@
 bulk.threshold
 
 |  1
-| Determines the threshold as to whether to execute a set of entity changes in blk, in other words without a transaction flush in between.
-
-If the threshold is passed (by default, anything more than 1 entity to persist), then the `RepositoryService#execInBulk(Callable)` API is used.
+| null
 
 
 |
@@ -87,7 +81,7 @@
 exception-recognizer.dae.disable
 
 | 
-| Whether the `ExceptionRecognizer` implementation for Spring's DataAccessException - which attempts to sanitize any exceptions arising from object stores - should be disabled (meaning that exceptions will potentially propagate as more serious to the end user).
+| null
 
 
 |
@@ -95,14 +89,8 @@
 causeway.core.runtime-services. +
 translation.po.mode
 
-|  write
-| Specifies the initial mode for obtaining/discovering translations.
-
-There are three modes:
-
-* The default mode of write is appropriate for integration testing or prototyping, meaning that the service records any requests made of it but just returns the string unaltered. This is a good way to discover new strings that require translation.
-* The read mode is appropriate for production; the service looks up translations that have previously been captured.
-* The disabled performs no translation and simply returns the original string unchanged. Unlike the write mode, it does _not_ keep track of translation requests.
+|  WRITE
+| null
 
 
 |
@@ -111,83 +99,6 @@
 translation.resource-location
 
 | 
-| Specifies the relative resource path to look for translation files.
-
-If ++{++@code null} uses ++{++@code servletContext.getResource("/WEB-INF/")}.
-
-Replaces the former Servlet context parameter 'causeway.config.dir';
-
-
-|
-[[causeway.core.runtime-services.email.port]]
-causeway.core.runtime-services. +
-email.port
-
-|  587
-| null
-
-
-|
-[[causeway.core.runtime-services.email.sender.hostname]]
-causeway.core.runtime-services. +
-email.sender.hostname
-
-| 
-| null
-
-
-|
-[[causeway.core.runtime-services.email.sender.password]]
-causeway.core.runtime-services. +
-email.sender.password
-
-| 
-| null
-
-
-|
-[[causeway.core.runtime-services.email.sender.username]]
-causeway.core.runtime-services. +
-email.sender.username
-
-| 
-| null
-
-
-|
-[[causeway.core.runtime-services.email.socket-connection-timeout]]
-causeway.core.runtime-services. +
-email.socket-connection-timeout
-
-|  2000
-| null
-
-
-|
-[[causeway.core.runtime-services.email.socket-timeout]]
-causeway.core.runtime-services. +
-email.socket-timeout
-
-|  2000
-| null
-
-
-|
-[[causeway.core.runtime-services.email.tls.enabled]]
-causeway.core.runtime-services. +
-email.tls.enabled
-
-|  true
-| null
-
-
-|
-[[causeway.core.runtime-services.repository-service.disable-auto-flush]]
-causeway.core.runtime-services. +
-repository-service. +
-disable-auto-flush
-
-| 
 | null
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime.adoc
index a0a5ec2..6b4795d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.core.runtime.adoc
@@ -16,7 +16,7 @@
 causeway.core.runtime.locale
 
 | 
-| If set, then overrides the application's `Locale#getDefault()`
+| null
 
 
 |
@@ -24,7 +24,7 @@
 causeway.core.runtime.timezone
 
 | 
-| If set, then override's the application's timezone.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.extensions.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.extensions.adoc
index 55f30b5..18a0d81 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.extensions.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.extensions.adoc
@@ -16,10 +16,8 @@
 causeway.extensions.audit-trail. +
 persist
 
-|  enabled
-| Whether the `EntityPropertyChangeSubscriber` implementation provided by this extension (which persists property changes to the audit trail) is enabled or not.
-
-One reason to use this option is if you wish to provide your own implementation that wraps or delegates to the default implementation of `EntityPropertyChangeSubscriber` that is provided by the _audittrail_ extension. Because entity property changes are published to _all_ subscribers on the class path, you can disable the default implementation from doing anything using this setting.
+|  ENABLED
+| null
 
 
 |
@@ -27,10 +25,8 @@
 causeway.extensions.command-log. +
 persist
 
-|  enabled
-| Whether the `CommandSubscriber` implementation provided by this extension (which persists commands to the command log) is enabled or not.
-
-One reason to use this option is if you wish to provide your own implementation that wraps or delegates to the default implementation of `CommandSubscriber` that is provided by the _commandlog_ extension. Because commands are published to _all_ subscribers on the class path, you can disable the default implementation from doing anything using this setting.
+|  ENABLED
+| null
 
 
 |
@@ -39,9 +35,7 @@
 run-background-commands.batch-size
 
 |  25
-| Limits the number of pending commands that the `RunBackgroundCommandsJob` will execute. After these have been executed, any `RunBackgroundCommandsJobListener`s are called.
-
-By default, quartz runs this command every 10 seconds, so the size should be proportion to that.
+| null
 
 
 |
@@ -50,8 +44,8 @@
 run-background-commands. +
 on-failure-policy
 
-|  stop-the-line
-| If there is an exception executing one of the commands, what should be done?
+|  STOP_THE_LINE
+| null
 
 
 |
@@ -124,7 +118,7 @@
 repeat-interval
 
 |  10000
-| Number of milliseconds before running again.
+| null
 
 
 |
@@ -134,7 +128,7 @@
 start-delay
 
 |  15000
-| Number of milliseconds before starting the job.
+| null
 
 
 |
@@ -154,7 +148,7 @@
 
 |  causewayModuleExtCommandReplaySeco +
 ndaryUser
-| The user that runs the replay session secondary.
+| null
 
 
 |
@@ -172,13 +166,7 @@
 allow-credentials
 
 | 
-| Whether the resource supports user credentials.
-
-This flag is exposed as part of 'Access-Control-Allow-Credentials' header in a pre-flight response. It helps browser determine whether or not an actual request can be made using credentials.
-
-By default this is not set (i.e. user credentials are not supported).
-
-For more information, check the usage of the `credentials` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
+| null
 
 
 |
@@ -186,12 +174,13 @@
 causeway.extensions.cors. +
 allowed-headers
 
-| 
-| Which HTTP headers can be allowed in a CORS request.
-
-These header will also be returned as part of 'Access-Control-Allow-Headers' header in a pre-flight response.
-
-For more information, check the usage of the `headers` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
+|  [Content- +
+Type, Accept, Origin, Access- +
+Control-Request-Method, Access- +
+Control-Request- +
+Headers, Authorization, Cache- +
+Control, If-Modified-Since, Pragma]
+| null
 
 
 |
@@ -199,14 +188,8 @@
 causeway.extensions.cors. +
 allowed-methods
 
-| 
-| Which HTTP methods are permitted in a CORS request.
-
-A comma separated list of HTTP methods that can be used to access the resource, using cross-origin requests. These are the methods which will also be included as part of 'Access-Control-Allow-Methods' header in a pre-flight response.
-
-Default is `GET`, `POST`, `HEAD`, `OPTIONS`.
-
-For more information, check the usage of the `methods` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
+|  [GET, PUT, DELETE, POST, OPTIONS]
+| null
 
 
 |
@@ -215,13 +198,7 @@
 allowed-origins
 
 |  *
-| Which origins are allowed to make CORS requests.
-
-The default is the wildcard ("++*++"), meaning any origin is allowed to access the resource, but this can be made more restrictive if necessary using a whitelist of comma separated origins eg:
-
-`org`
-
-For more information, check the usage of the `origins` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
+| null
 
 
 |
@@ -230,13 +207,7 @@
 exposed-headers
 
 |  Authorization
-| Which HTTP headers are exposed in a CORS request.
-
-A comma separated list of headers other than the simple response headers that browsers are allowed to access. These are the headers which will also be included as part of 'Access-Control-Expose-Headers' header in the pre-flight response.
-
-Default is none.
-
-For more information, check the usage of the `headers` init parameter for https://github.com/eBay/cors-filter[EBay CORSFilter].
+| null
 
 
 |
@@ -244,10 +215,8 @@
 causeway.extensions.execution-log. +
 persist
 
-|  enabled
-| Whether the `ExecutionSubscriber` implementation provided by this extension (which persists executions to the execution log) is enabled or not.
-
-One reason to use this option is if you wish to provide your own implementation that wraps or delegates to the default implementation of `ExecutionSubscriber` that is provided by the _executionLog_ extension. Because executions are published to _all_ subscribers on the class path, you can disable the default implementation from doing anything using this setting.
+|  ENABLED
+| null
 
 
 |
@@ -255,10 +224,8 @@
 causeway.extensions. +
 execution-outbox.persist
 
-|  enabled
-| Whether the `ExecutionSubscriber` implementation provided by this extension (which persists executions to the outbox) is enabled or not.
-
-One reason to use this option is if you wish to provide your own implementation that wraps or delegates to the outbox implementation of `ExecutionSubscriber` that is provided by the _executionOutbox_ extension. Because executions are published to _all_ subscribers on the class path, you can disable the outbox implementation from doing anything using this setting.
+|  ENABLED
+| null
 
 
 |
@@ -268,7 +235,7 @@
 max-pending
 
 |  100
-| The maximum number of interactions that will be returned when the REST API is polled.
+| null
 
 
 |
@@ -277,7 +244,7 @@
 github.api-key
 
 | 
-| As per https://github.com/settings/tokens, must have permissions to the `/search` and `/contents` APIs for the specified repository.
+| null
 
 
 |
@@ -286,7 +253,7 @@
 github.repository
 
 | 
-| eg `apache/causeway-app-simpleapp`
+| null
 
 
 |
@@ -294,12 +261,8 @@
 causeway.extensions.secman. +
 delegated-users.auto-create-policy
 
-|  auto-create-as-locked
-| Whether delegated users should be autocreated as locked (the default) or unlocked.
-
-BE AWARE THAT if any users are auto-created as unlocked, then the set of roles that they are given should be highly restricted !!!
-
-NOTE also that this configuration policy is ignored if running secman with Spring OAuth2 or Keycloak as the authenticator; users are always auto-created.
+|  AUTO_CREATE_AS_LOCKED
+| null
 
 
 |
@@ -308,9 +271,7 @@
 delegated-users.initial-role-names
 
 | 
-| The set of roles that users that have been automatically created are granted automatically.
-
-Typically the regular user role (as per `role-name`, default value of `causeway-ext-secman-user`) will be one of the roles listed here, to provide the ability for the end-user to logout, among other things (!).
+| null
 
 
 |
@@ -321,8 +282,8 @@
 fixture-script. +
 unknown-feature-id-checking-policy
 
-|  ignore
-| Whether to check if every featureId passed in exists or not.
+|  IGNORE
+| null
 
 
 |
@@ -330,31 +291,7 @@
 causeway.extensions.secman. +
 permissions-evaluation-policy
 
-|  allow-beats-veto
-| If there are conflicting (allow vs veto) permissions at the same scope, then this policy determines whether to prefer to allow the permission or to veto it.
-
-This is only used an implementation of secman's `PermissionsEvaluationService` SPI has not been provided explicitly.
-
-
-|
-[[causeway.extensions.secman.seed.a-d-m-i-n-a-d-d-i-t-i-o-n-a-l-n-a-m-e-s-p-a-c-e-p-e-r-m-i-s-s-i-o-n-s]]
-causeway.extensions.secman.seed. +
-a-d-m-i-n-a-d-d-i-t-i-o-n-a-l-n-a- +
-m-e-s-p-a-c-e-p-e-r-m-i-s-s-i-o-n- +
-s
-
-| 
-| null
-
-
-|
-[[causeway.extensions.secman.seed.a-d-m-i-n-s-t-i-c-k-y-n-a-m-e-s-p-a-c-e-p-e-r-m-i-s-s-i-o-n-s-d-e-f-a-u-l-t]]
-causeway.extensions.secman.seed. +
-a-d-m-i-n-s-t-i-c-k-y-n-a-m-e-s-p- +
-a-c-e-p-e-r-m-i-s-s-i-o-n-s-d-e-f- +
-a-u-l-t
-
-| 
+|  ALLOW_BEATS_VETO
 | null
 
 
@@ -364,12 +301,8 @@
 admin.namespace-permissions. +
 additional
 
-| 
-| An (optional) additional set of namespaces that the role is granted.
-
-These are in addition to the main namespaces granted.
-
-@see NamespacePermissions#getSticky()
+|  []
+| null
 
 
 |
@@ -377,16 +310,12 @@
 causeway.extensions.secman.seed. +
 admin.namespace-permissions.sticky
 
-| 
-| The set of namespaces to which the role is granted.
-
-These namespaces are intended to be sufficient to allow users with this admin role to be able to administer the security module itself, for example to manage users and roles. The security user is not necessarily able to use the main business logic within the domain application itself, though.
-
-These roles cannot be removed via user interface
-
-WARNING: normally these should not be overridden. Instead, specify additional namespaces using `NamespacePermissions#getAdditional()`.
-
-@see NamespacePermissions#getAdditional()
+|  [causeway.applib, causeway. +
+sudo, causeway.conf, causeway. +
+feat, causeway.security, causeway. +
+ext.h2Console, causeway.ext. +
+secman, causeway.ext.layoutLoaders]
+| null
 
 
 |
@@ -394,8 +323,8 @@
 causeway.extensions.secman.seed. +
 admin.password
 
-| 
-| The corresponding password for user. @see #getUserName()
+|  pass
+| null
 
 
 |
@@ -403,12 +332,8 @@
 causeway.extensions.secman.seed. +
 admin.role-name
 
-| 
-| The name of security admin role.
-
-Users with this role (in particular, the default user are granted access to a set of namespaces (`NamespacePermissions#getSticky()` and `NamespacePermissions#getAdditional()`) which are intended to be sufficient to allow users with this admin role to be able to administer the security module itself, for example to manage users and roles.
-
-@see Admin#getUserName() @see NamespacePermissions#getSticky() @see NamespacePermissions#getAdditional()
+|  causeway-ext-secman-admin
+| null
 
 
 |
@@ -416,14 +341,8 @@
 causeway.extensions.secman.seed. +
 admin.user-name
 
-| 
-| The name of the security super user.
-
-This user is automatically made a member of the role, from which it is granted permissions to administer other users.
-
-The password for this user is set in `Admin#getPassword()`.
-
-@see #getPassword() @see #getRoleName()
+|  secman-admin
+| null
 
 
 |
@@ -431,10 +350,8 @@
 causeway.extensions.secman.seed. +
 regular-user.role-name
 
-| 
-| The role name for regular users of the application, granting them access to basic security features.
-
-The exact set of permissions is hard-wired in the `CausewayExtSecmanRegularUserRoleAndPermissions` fixture.
+|  causeway-ext-secman-user
+| null
 
 
 |
@@ -443,9 +360,7 @@
 yaml-file
 
 | 
-| Path to local YAML file, if present, to use as an alternative seeding strategy.
-
-Eg. seed from a YAML file, that was previously exported by SecMan's ApplicationRoleManager++_++exportAsYaml mixin.
+| null
 
 
 |
@@ -453,10 +368,8 @@
 causeway.extensions.secman. +
 user-menu-me-action-policy
 
-|  hide
-| Whether the presence of SecMan should result in the automatic suppression of the `UserMenu`'s `me#act() me()` action.
-
-This is normally what is required as SecMan's `ApplicationUser` is a more comprehensive representation of the current user. If the default `me#act() me()` action is not suppressed, then the end-user will see two actions with the name "me" in the tertiary menu.
+|  HIDE
+| null
 
 
 |
@@ -466,9 +379,7 @@
 initial-role-names
 
 | 
-| The set of roles that users registering with the app are granted automatically.
-
-If using the wicket viewer, also requires causeway.viewer.wicket.suppress-signup to be set `false`, along with any other of its other prereqs.
+| null
 
 
 |
@@ -487,9 +398,7 @@
 expiry-duration-in-minutes
 
 |  20
-| Default duration that entries remain in the cache (for a given logical type name), in minutes.
-
-Default is 20 mins.
+| null
 
 
 |
@@ -498,9 +407,7 @@
 caffeine.max-size-in-entries
 
 |  1000
-| Default maximum number of entries in the cache (for a given logical type name)
-
-Default is 1000
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.commons.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.commons.adoc
index 06bd665..b17394c 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.commons.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.commons.adoc
@@ -17,9 +17,7 @@
 entity-change-tracker.enabled
 
 |  true
-| Provides a mechanism to globally enable or disable this service.
-
-By default this service is enabled (if added to the classpath as a module).
+| null
 
 
 |
@@ -29,11 +27,7 @@
 suppress-auto-flush
 
 |  true
-| Normally any query submitted to `RepositoryService#allMatches(Query)` will trigger a flush first, unless auto-flush has been disabled.
-
-However, this auto-flush behaviour can be troublesome if the query occurs as a side effect of the evaluation of a derived property, whose value in turn is enlisted by an implementation of a subscriber (in particular `EntityPropertyChangeSubscriber`) which captures the value of all properties (both persisted and derived). However, this behaviour may result in a `ConcurrentModificationException`.
-
-By default, `EntityChangeTracker` will therefore temporarily suppress any auto-flushing while this is ongoing. The purpose of this configuration property is to never suppress, ie always autoflush.
+| null
 
 
 |
@@ -42,12 +36,8 @@
 repository-service. +
 disable-auto-flush
 
-|
-| Normally any queries are automatically preceded by flushing pending executions.
-
-This key allows this behaviour to be disabled.
-
-NOTE: this key is redundant for JPA/EclipseLink, which supports its own auto-flush using https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABDHEEB[eclipselink.persistence-context.flush-mode]
+| 
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.schema.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.schema.adoc
index e4f9654..64f8f4b 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.schema.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.persistence.schema.adoc
@@ -16,20 +16,17 @@
 causeway.persistence.schema. +
 additional-orm-files
 
-|
-| Does lookup additional "mapping-files" in META-INF/orm-_name_.xml (equivalent to "mapping-file" entries in persistence.xml) and adds these to those that are already configured the _Spring Data_ way (if any).
+| 
+| null
+
 
 |
 [[causeway.persistence.schema.auto-create-schemas]]
 causeway.persistence.schema. +
 auto-create-schemas
 
-|
-| List of additional schemas to be auto-created.
-
-Explicitly creates given list of schemas by using the specified `#getCreateSchemaSqlTemplate()` to generate the actual SQL statement against the configured data-source.
-
-This configuration mechanism does not consider any schema-auto-creation configuration (if any), that independently is provided the standard JPA way.
+| 
+| null
 
 
 |
@@ -38,13 +35,7 @@
 create-schema-sql-template
 
 |  CREATE SCHEMA IF NOT EXISTS %S
-| Vendor specific SQL syntax to create a DB schema.
-
-This template is passed through `)` to make the actual SQL statement thats to be used against the configured data-source.
-
-Default template is ++{++@literal CREATE SCHEMA IF NOT EXISTS %S} with the schema name converted to upper-case.
-
-For MYSQL/MARIADB use escape like ++{++@code ++`++%S++`++}
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc
index 334aef2..2c896e6 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc
@@ -16,12 +16,8 @@
 causeway.prototyping.h2-console. +
 generate-random-web-admin-password
 
-|  true
-| Whether to generate a random password for access to the H2 Web-Console advanced features.
-
-If a password is generated, it is logged to the logging subsystem (Log4j2).
-
-Recommended (`true`) when `#isWebAllowRemoteAccess()` is also `true`.
+| 
+| null
 
 
 |
@@ -30,9 +26,7 @@
 web-allow-remote-access
 
 | 
-| Whether to allow remote access to the H2 Web-Console, which is a potential security risk when no web-admin password is set.
-
-Corresponds to Spring Boot's "spring.h2.console.settings.web-allow-others" config property.
+| null
 
 
 |
@@ -40,12 +34,8 @@
 causeway.prototyping. +
 if-disabled-policy
 
-|  disable
-| Whether and how to display any properties, actions and collections whose usability has been vetoed.
-
-By default, such object members are shown as disabled, with the tooltip indicating why. Setting the property to SHOW++_++AS++_++DISABLED++_++WITH++_++DIAGNOSTICS shows additional detail in the tooltip.
-
-This config property only applies in prototyping mode.
+|  DISABLE
+| null
 
 
 |
@@ -53,12 +43,8 @@
 causeway.prototyping. +
 if-hidden-policy
 
-|  hide
-| Whether and how to display any properties, actions and collections whose visibility has been vetoed.
-
-By default, such object members are of course hidden. However, this config property can be used to instead show these objects as disabled, with the tooltip indicating why the object member has been vetoed. Setting the property to SHOW++_++AS++_++DISABLED++_++WITH++_++DIAGNOSTICS shows additional detail in the tooltip.
-
-This config property only applies in prototyping mode.
+|  HIDE
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.keycloak.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.keycloak.adoc
index c59fb06..7e225ca 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.keycloak.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.keycloak.adoc
@@ -17,15 +17,7 @@
 base-url
 
 | 
-| The base URL for the keycloak server.
-
-For example, if running a keycloak using Docker container, such as:
-
-....
- docker run -p 9090:8080 \ -e KEYCLOAK_USER=admin \ -e KEYCLOAK_PASSWORD=admin \ quay.io/keycloak/keycloak:19.0.1 
-....
-
-, then the URL would be "http://localhost:9090/auth".
+| null
 
 
 |
@@ -34,7 +26,7 @@
 client-role-prefix
 
 | 
-| If `#isExtractClientRoles()` client roles are to be extracted}, this allows the resultant role to be optionally prefixed.
+| null
 
 
 |
@@ -43,11 +35,7 @@
 extract-client-roles
 
 |  true
-| Whether to (attempt to) extract client roles and copy into the `DefaultOidcUser`.
-
-By default, client roles are extracted using the "User Client Role" mapping type, into a token claim name "resource++_++access.$++{++client++_++id}.roles"
-
-This has been made a configuration option because some versions of Keycloak seemingly do not correctly extract these roles, see for example https://keycloak.discourse.group/t/resource-access-claim-missing-from-userinfo-until-i-change-the-name/1238/3[this discussion] and https://issues.redhat.com/browse/KEYCLOAK-9874[KEYCLOAK-9874].
+| null
 
 
 |
@@ -56,11 +44,7 @@
 extract-realm-roles
 
 |  true
-| Whether to (attempt to) extract realm roles and copy into the `DefaultOidcUser`.
-
-By default, realm roles are obtained from the token claims using the "User Realm Role" mapping type, into a token claim name "realm++_++access.roles"
-
-This has been made a configuration option because some versions of Keycloak seemingly do not correctly extract these roles, see for example https://keycloak.discourse.group/t/resource-access-claim-missing-from-userinfo-until-i-change-the-name/1238/3[this discussion] and https://issues.redhat.com/browse/KEYCLOAK-9874[KEYCLOAK-9874].
+| null
 
 
 |
@@ -69,11 +53,7 @@
 extract-roles
 
 | 
-| Whether to (attempt to) extract any available roles and into the `DefaultOidcUser`.
-
-This is to support any custom mapping type which maps into a token claim name called simply "roles"
-
-This has been made a configuration option so that the workaround described in https://keycloak.discourse.group/t/resource-access-claim-missing-from-userinfo-until-i-change-the-name/1238/3[this discussion] and https://issues.redhat.com/browse/KEYCLOAK-9874[KEYCLOAK-9874] can be implemented.
+| null
 
 
 |
@@ -82,7 +62,7 @@
 login-success-url
 
 |  /wicket
-| Specifies where users will be redirected after authenticating successfully if they have not visited a secured page prior to authenticating or ++{++@code alwaysUse} is true.
+| null
 
 
 |
@@ -90,7 +70,7 @@
 causeway.security.keycloak.realm
 
 | 
-| The name of the realm for the Apache Causeway application, as configured in Keycloak.
+| null
 
 
 |
@@ -99,7 +79,7 @@
 realm-role-prefix
 
 | 
-| If roles are to be extracted, this allows the resultant role to be optionally prefixed.
+| null
 
 
 |
@@ -108,7 +88,7 @@
 role-prefix
 
 | 
-| If `#isExtractRoles()` roles are to be extracted}, this allows the resultant role to be optionally prefixed.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.spring.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.spring.adoc
index 4c3c6a2..a40f57e 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.spring.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.security.spring.adoc
@@ -17,9 +17,7 @@
 allow-csrf-filters
 
 | 
-| The framework on initialization by default disables any ++{++@code CsrfFilter}(s) it finds with _Spring Security_ registered filters.
-
-Setting this option to ++{++@literal true} allows ++{++@code CsrfFilter}(s) to be configured. Yet EXPERIMENTAL. @see org.springframework.security.web.csrf.CsrfFilter @see https://www.baeldung.com/spring-security-registered-filters[baeldung]
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.testing.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.testing.adoc
index 701eefc..90ab15a 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.testing.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.testing.adoc
@@ -18,11 +18,7 @@
 context-class
 
 | 
-| Specifies the base package from which to search for fixture scripts.
-
-Either this or packagePrefix must be specified. This property is used by preference.
-
-@see #getPackagePrefix()
+| null
 
 
 |
@@ -31,12 +27,8 @@
 fixture-scripts-specification. +
 multiple-execution-strategy
 
-|  execute-once-by-class
-| Indicates whether, if a fixture script (or more precisely any other fixture scripts of the same class) is encountered more than once in a graph of dependencies, it should be executed again or skipped.
-
-The default is to fixture scripts are executed only once per class.
-
-Note that this policy can be overridden on a fixture-by-fixture basis if the fixture implements `FixtureScriptWithExecutionStrategy`.
+|  EXECUTE_ONCE_BY_CLASS
+| null
 
 
 |
@@ -45,8 +37,8 @@
 fixture-scripts-specification. +
 non-persisted-objects-strategy
 
-|  persist
-| Indicates whether objects that are returned as a fixture result should be automatically persisted if required (the default) or not.
+|  PERSIST
+| null
 
 
 |
@@ -56,11 +48,7 @@
 package-prefix
 
 | 
-| Specifies the base package from which to search for fixture scripts.
-
-Either this or `#getContextClass()` must be specified; `#getContextClass()` is used by preference.
-
-@see #getContextClass()
+| null
 
 
 |
@@ -89,9 +77,7 @@
 initial-script
 
 | 
-| Indicates the fixture script class to run initially.
-
-Intended for use when prototyping against an in-memory database (but will run in production mode as well if required).
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.value-types.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.value-types.adoc
index 876749e..a0e5b7d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.value-types.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.value-types.adoc
@@ -17,9 +17,7 @@
 display.min-scale
 
 | 
-| The minimum scale to use for all `BigDecimal`s.
-
-Is only used if the minimum scale has not been specified explicitly by some other means, typically either `Digits#fraction()` or an ORM semantic such as the (JPA) `Column#scale()`.
+| null
 
 
 |
@@ -28,7 +26,7 @@
 display.use-grouping-separator
 
 |  true
-| Whether to use a grouping (thousands) separator (eg the "," (comma) in the English locale) when rendering a big decimal. @see Editing#isUseGroupingSeparator()
+| null
 
 
 |
@@ -37,7 +35,7 @@
 editing.preserve-scale
 
 | 
-| When a BigDecimal is presented for editing, whether it should enforce the scale, possibly meaning trailing '0's to pad). This is probably appropriate for BigDecimals that represent a money amount.
+| null
 
 
 |
@@ -46,17 +44,7 @@
 editing.use-grouping-separator
 
 | 
-| A common use of `BigDecimal` is as a money value. In some locales (eg English), the "," (comma) is the grouping (thousands) separator wihle the "." (period) acts as a decimal point, but in others (eg France, Italy) it is the other way around.
-
-Surprisingly perhaps, a string such as "123,99", when parsed ((by `DecimalFormat`) in an English locale, is not rejected but instead is evaluated as the value 12399L. That's almost certainly not what the end-user would have expected, and results in a money value 100x too large.
-
-The purpose of this configuration property is to remove the confusion by simply disallowing the thousands separator from being part of the input string.
-
-For maximum safety, allowing the grouping separator is disallowed, but the alternate (original) behaviour can be reinstated by setting this config property back to `true`.
-
-The same configuration property is also used for rendering the value.
-
-@see Display#isUseGroupingSeparator()
+| null
 
 
 |
@@ -65,15 +53,7 @@
 use-scale-for-min-fractional-facet
 
 |  true
-| Indicates how to derive the min fractional facet (the minimum number of digits after the decimal point).
-
-If this flag is set, then the `Digits#fraction()` annotation or ORM equivalent (the JDO `@Column#scale` or the JPA `Column#scale()`) should be used for the `MinFractionalFacet` as well as the `MaxFractionalFacet`.
-
-What this means in practice is that a numeric values will be rendered to the same number of fractional digits, irrespective of whether they are whole numbers or fractional. For example, with a scale of 2, then "123.4532" will be rendered as "123.45", while "123" will be rendered as "123.00".
-
-If this flag is NOT set, or if it is set but there is no annotation, then the `#minScale` config property is used as a fallback.
-
-If there is no fallback, then it means that a big decimal such as "123.00" will be presented as just "123" (that is, the shortest possible textual representation).
+| null
 
 
 |
@@ -82,9 +62,7 @@
 backend-url
 
 | 
-| If set, adds plantuml support to the AsciiDoc value type.
-
-Eg. via docker instance like ++{++@literal yuzutech/kroki}.
+| null
 
 
 |
@@ -92,8 +70,26 @@
 causeway.value-types.kroki. +
 request-timeout
 
-|  5000ms
-| Max time for requests to the `#getBackendUrl()`, when waiting for a response. (default: 5 seconds)
+|  5000
+| null
+
+
+|
+[[causeway.value-types.temporal.display]]
+causeway.value-types.temporal. +
+display
+
+| 
+| null
+
+
+|
+[[causeway.value-types.temporal.editing]]
+causeway.value-types.temporal. +
+editing
+
+| 
+| null
 
 
 |
@@ -213,36 +209,6 @@
 | null
 
 
-|
-[[causeway.value-types.big-decimal.min-scale]]
-causeway.value-types.big-decimal. +
-min-scale
-
-| 
-| The minimum scale to use for all `BigDecimal`s.
-
-Is only used if the minimum scale has not been specified explicitly by some other means, typically either `Digits#fraction()` or an ORM semantic such as the (JPA) `Column#scale()`. @deprecated - use `Display#getMinScale()` instead
-
-
-|
-[[causeway.value-types.big-decimal.use-grouping-separator]]
-causeway.value-types.big-decimal. +
-use-grouping-separator
-
-| 
-| A common use of `BigDecimal` is as a money value. In some locales (eg English), the "," (comma) is the grouping (thousands) separator wihle the "." (period) acts as a decimal point, but in others (eg France, Italy) it is the other way around.
-
-Surprisingly perhaps, a string such as "123,99", when parsed ((by `DecimalFormat`) in an English locale, is not rejected but instead is evaluated as the value 12399L. That's almost certainly not what the end-user would have expected, and results in a money value 100x too large.
-
-The purpose of this configuration property is to remove the confusion by simply disallowing the thousands separator from being part of the input string.
-
-For maximum safety, allowing the grouping separator is disallowed, but the alternate (original) behaviour can be reinstated by setting this config property back to `true`.
-
-The same configuration property is also used for rendering the value.
-
-@deprecated - use `Editing#isUseGroupingSeparator()` instead.
-
-
 
 |===
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.common.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.common.adoc
index 5f4b9ac..8c707cd 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.common.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.common.adoc
@@ -17,7 +17,7 @@
 about
 
 | 
-| Label used on the about page.
+| null
 
 
 |
@@ -26,9 +26,7 @@
 brand-logo-header
 
 | 
-| Either the location of the image file (relative to the class-path resource root), or an absolute URL.
-
-This is rendered on the header panel. An image with a size of 160x40 works well. If not specified, the application.name is used instead.
+| null
 
 
 |
@@ -37,9 +35,7 @@
 brand-logo-signin
 
 | 
-| Either the location of the image file (relative to the class-path resource root), or an absolute URL.
-
-This is rendered on the sign-in page. An image with a size of 400x40 works well. If not specified, the name is used instead.
+| null
 
 
 |
@@ -48,9 +44,7 @@
 favicon-url
 
 | 
-| Specifies the URL to use of the favIcon.
-
-This is expected to be a local resource.
+| null
 
 
 |
@@ -59,9 +53,7 @@
 menubars-layout-file
 
 |  menubars.layout.xml
-| Specifies the file name containing the menubars.
-
-This is expected to be a local resource.
+| null
 
 
 |
@@ -70,7 +62,7 @@
 name
 
 |  Apache Causeway ™
-| Identifies the application on the sign-in page (unless a sign-in image is configured) and on top-left in the header (unless a header image is configured).
+| null
 
 
 |
@@ -79,9 +71,7 @@
 version
 
 | 
-| The version of the application, eg 1.0, 1.1, etc.
-
-If present, then this will be shown in the footer on every page as well as on the about page.
+| null
 
 
 |
@@ -89,11 +79,7 @@
 causeway.viewer.common.credit
 
 | 
-| List of organisations or individuals to give credit to, shown as links and icons in the footer. A maximum of 3 credits can be specified.
-
-IntelliJ unfortunately does not provide IDE completion for lists of classes; YMMV.
-
-NOTE: For further discussion, see for example https://stackoverflow.com/questions/41417933/spring-configuration-properties-metadata-json-for-nested-list-of-objects[this stackoverflow question] and https://github.com/spring-projects/spring-boot/wiki/IDE-binding-features#simple-pojo[this wiki page].
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.graphql.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.graphql.adoc
index e29a9db..64a42a8 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.graphql.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.graphql.adoc
@@ -15,8 +15,8 @@
 [[causeway.viewer.graphql.api-scope]]
 causeway.viewer.graphql.api-scope
 
-|  all
-| Which domain objects to include the GraphQL schema. By default, all domain objects are exposed (entities and view models).
+|  ALL
+| null
 
 
 |
@@ -24,8 +24,8 @@
 causeway.viewer.graphql. +
 api-variant
 
-|  query-and-mutations
-| Which variant of API to expose: `ApiVariant#QUERY++_++ONLY` (which suppresses any actions that mutate the state of the system), or as `ApiVariant#QUERY++_++AND++_++MUTATIONS` (which additionally exposes actions that mutate the system as mutations) or alternatively as `ApiVariant#QUERY++_++WITH++_++MUTATIONS++_++NON++_++SPEC++_++COMPLIANT`, a query-only schema that relaxes the read-only rule by exposing actions that mutate the system; it is therefore not compliant with the GraphQL spec),
+|  QUERY_AND_MUTATIONS
+| null
 
 
 |
@@ -33,8 +33,8 @@
 causeway.viewer.graphql. +
 authentication.fallback.roles
 
-|
-| Used as the set of roles for the default username (if not provided by other means).
+| 
+| null
 
 
 |
@@ -42,8 +42,8 @@
 causeway.viewer.graphql. +
 authentication.fallback.username
 
-|
-| Used as the default username (if not provided by other means).
+| 
+| null
 
 
 |
@@ -52,7 +52,7 @@
 arg-name
 
 |  object
-| This is the name of the synthetic first argument used to locate the object to be looked up.
+| null
 
 
 |
@@ -60,8 +60,8 @@
 causeway.viewer.graphql.lookup. +
 field-name-prefix
 
-|
-| Lookup field prefix
+| 
+| null
 
 
 |
@@ -69,8 +69,8 @@
 causeway.viewer.graphql.lookup. +
 field-name-suffix
 
-|
-| Lookup field suffix
+| 
+| null
 
 
 |
@@ -79,7 +79,7 @@
 field-name
 
 |  _meta
-| Note that field names _cannot_ being with "++__++", as that is reserved by the underlying GraphQL implementation.
+| null
 
 
 |
@@ -88,7 +88,7 @@
 target-arg-name
 
 |  _target
-| The name of the synthetic argument of mutators representing the target domain object.
+| null
 
 
 |
@@ -96,10 +96,8 @@
 causeway.viewer.graphql.resources. +
 response-type
 
-|  forbidden
-| How resources (`Blob` bytes, `Clob` chars, grids and icons) can be downloaded from the resource controller.
-
-By default the download of these resources if `ResponseType#FORBIDDEN`, but alternatively they can be enabled to download either `ResponseType#DIRECT`ly or as an `ResponseType#ATTACHMENT`.
+|  FORBIDDEN
+| null
 
 
 |
@@ -109,7 +107,7 @@
 local-date-format
 
 |  yyyy-MM-dd
-| For JDK8's `LocalDate`
+| null
 
 
 |
@@ -119,7 +117,7 @@
 local-time-format
 
 |  HH:mm:ss
-| For JDK8's `LocalTime`
+| null
 
 
 |
@@ -129,7 +127,7 @@
 zoned-date-time-format
 
 |  yyyy-MM-dd'T'HH:mm:ssXXX
-| for JDK8's `ZonedDateTime`
+| null
 
 
 |
@@ -137,8 +135,8 @@
 causeway.viewer.graphql. +
 schema-style
 
-|  rich-and-simple
-| Which `SchemaStyle` to expose, "simple" or "rich". By default both are exposed under top-level field names. @see Schema.Rich#getTopLevelFieldName() @see Schema.Simple#getTopLevelFieldName()
+|  RICH_AND_SIMPLE
+| null
 
 
 |
@@ -146,10 +144,8 @@
 causeway.viewer.graphql.schema. +
 rich.enable-scenario-testing
 
-|
-| If the `#getSchemaStyle()` is set to either `SchemaStyle#RICH++_++ONLY` or `SchemaStyle#SIMPLE++_++AND++_++RICH`, then determines whether the "Scenario" field is included in order to allow given/when/then tests to be expressed.
-
-Ignored if the `#getSchemaStyle()` is `SchemaStyle#SIMPLE++_++ONLY`.
+| 
+| null
 
 
 |
@@ -158,9 +154,7 @@
 rich.top-level-field-name
 
 |  rich
-| If the `#getSchemaStyle()` is set to `SchemaStyle#SIMPLE++_++AND++_++RICH`, defines the name of the top-level field under which the "rich" schema resides.
-
-Ignored for any other `#getSchemaStyle()`.
+| null
 
 
 |
@@ -169,9 +163,7 @@
 simple.top-level-field-name
 
 |  simple
-| If the `#getSchemaStyle()` is set to `SchemaStyle#SIMPLE++_++AND++_++RICH`, defines the name of the top-level field under which the "simple" schema resides.
-
-Ignored for any other `#getSchemaStyle()`.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.restfulobjects.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.restfulobjects.adoc
index 3a72298..9ebd53d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.restfulobjects.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.restfulobjects.adoc
@@ -20,7 +20,16 @@
 restfulobjects.viewer.webmodule. +
 auth. +
 AuthenticationStrategyBasicAuth
-| Defaults to `AuthenticationStrategyBasicAuth`.
+| null
+
+
+|
+[[causeway.viewer.restfulobjects.base-path]]
+causeway.viewer.restfulobjects. +
+base-path
+
+|  /restful
+| null
 
 
 |
@@ -29,11 +38,7 @@
 base-uri
 
 | 
-| If left unset (the default), then the RO viewer will use the `UriInfo` (injected using `Context`) to figure out the base Uri (used to render `href`s).
-
-This will be correct much of the time, but will almost certainly be wrong if there is a reverse proxy.
-
-If set, eg `com/`, then this value will be used instead.
+| null
 
 
 |
@@ -42,11 +47,7 @@
 honor-ui-hints
 
 | 
-| Whether to enable the `x-ro-follow-links` support, to minimize round trips.
-
-The RO viewer provides the capability for the client to set the optional `x-ro-follow-links` query parameter, as described in section 34.4 of the RO spec v1.0. If used, the resultant representation includes the result of following the associated link, but through a server-side "join", somewhat akin to GraphQL.
-
-By default this functionality is disabled, this configuration property enables the feature. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 |
@@ -55,9 +56,7 @@
 object-property-values-only
 
 | 
-| When rendering domain objects, if set the representation returned is stripped back to a minimal set, excluding links to actions and collections and with a simplified representation of an object's properties.
-
-This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 |
@@ -66,7 +65,7 @@
 strict-accept-checking
 
 | 
-| If set, then any unrecognised `Accept` headers will result in an HTTP _Not Acceptable_ response code (406).
+| null
 
 
 |
@@ -75,7 +74,7 @@
 suppress-described-by-links
 
 | 
-| If set, then the representations returned will omit any links to the formal domain-type representations.
+| null
 
 
 |
@@ -84,9 +83,7 @@
 suppress-member-disabled-reason
 
 | 
-| If set, then - should there be an interaction with an action, property or collection that is disabled - then this will prevent the `disabledReason` reason from being added to the returned representation.
-
-This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 |
@@ -95,9 +92,7 @@
 suppress-member-extensions
 
 | 
-| If set, then the `x-causeway-format` key (under `extensions`) for properties will be suppressed.
-
-This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 |
@@ -106,9 +101,7 @@
 suppress-member-id
 
 | 
-| If set, then the `id` key for all members will be suppressed.
-
-This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 |
@@ -117,9 +110,7 @@
 suppress-member-links
 
 | 
-| If set, then the detail link (in other words `++]++`) for all members will be suppressed.
-
-This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 |
@@ -128,9 +119,7 @@
 suppress-update-link
 
 | 
-| If set, then the update link (in other words ` ++]++` to perform a bulk update of an object) will be suppressed.
-
-This is disabled by default. If enabled, then the representations returned are non-standard with respect to the RO Spec v1.0.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc
index 373f71c..bf0aa75 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc
@@ -17,7 +17,7 @@
 action-column-enabled
 
 |  true
-| Whether actions, that have explicit `hidden = Where` semantics to enable them in tables, should be gathered into an action column. That is, collections of domain objects are presented in the UI as tables, where corresponding domain object actions are gathered into an additional (typically trailing) column (labeled 'action-column').
+| null
 
 
 |
@@ -27,9 +27,7 @@
 dialog
 
 |  true
-| Whether actions, that on click will show a dialog, should be indicated by a trailing ellipsis on the action's label.
-
-Applies to both, action buttons and action menu items.
+| null
 
 
 |
@@ -38,7 +36,7 @@
 ajax-debug-mode
 
 | 
-| Whether the Ajax debug should be shown, by default this is disabled.
+| null
 
 
 |
@@ -48,9 +46,7 @@
 |  org.apache.causeway.viewer.wicket. +
 viewer.wicketapp. +
 CausewayWicketApplication
-| Specifies the subclass of `CausewayWicketApplication` that is used to bootstrap Wicket.
-
-There is usually very little reason to change this from its default.
+| null
 
 
 |
@@ -58,7 +54,7 @@
 causeway.viewer.wicket.base-path
 
 |  /wicket/
-| The base path at which the Wicket viewer is mounted.
+| null
 
 
 |
@@ -67,9 +63,7 @@
 bookmarked-pages.max-size
 
 |  15
-| Specifies the maximum number of bookmarks to show.
-
-These are aged out on an MRU-LRU basis.
+| null
 
 
 |
@@ -78,7 +72,7 @@
 bookmarked-pages.show-chooser
 
 |  true
-| Whether the panel providing linsk to previously visited object should be accessible from the top-left of the header.
+| null
 
 
 |
@@ -88,7 +82,7 @@
 show-drop-down-on-footer
 
 |  true
-| Whether the drop-down list of previously visited objects should be shown in the footer.
+| null
 
 
 |
@@ -97,7 +91,7 @@
 enabled
 
 |  true
-| Whether to enable the 'where am i' feature, in other words the breadcrumbs.
+| null
 
 
 |
@@ -115,9 +109,7 @@
 clear-field-button-enabled
 
 |  true
-| Whether the clear-field-button, that allows to clear a null-able (optional) field (a property or a dialog argument) is enabled for rendering or not.
-
-The default is to enable (show) the clear-field-button.
+| null
 
 
 |
@@ -126,9 +118,7 @@
 clear-original-destination
 
 | 
-| If the end user uses a deep link to access the Wicket viewer, but is not authenticated, then this configuration property determines whether to continue through to that original destination once authenticated, or simply to go to the home page.
-
-The default behaviour is to honour the original destination requested.
+| null
 
 
 |
@@ -136,9 +126,7 @@
 causeway.viewer.wicket.css
 
 | 
-| URL of file to read any custom CSS, relative to `static` package on the class path.
-
-A typical value is `css`. This will result in this file being read from the `static/css` directory (because static resources such as CSS are mounted by Spring by default under `static` package).
+| null
 
 
 |
@@ -147,11 +135,7 @@
 max-date
 
 |  2100-01-01T00:00:00.000Z
-| Defines the first date available in the date picker.
-
-As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).
-
-Use time zone 'Z', as the date/time picker UI component is not wired up to support time-zones.
+| null
 
 
 |
@@ -160,11 +144,7 @@
 min-date
 
 |  1900-01-01T00:00:00.000Z
-| Defines the first date available in the date picker.
-
-As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).
-
-Use time zone 'Z', as the date/time picker UI component is not wired up to support time-zones.
+| null
 
 
 |
@@ -173,11 +153,7 @@
 popup-on-focus
 
 | 
-| Whether the date picker should automatically be shown when the field gains focus.
-
-The default is to show the picker when the user clicks into the field.
-
-Corresponds to the `allowInputToggle` config property of the underlying library, (TempusDominus).
+| null
 
 
 |
@@ -186,19 +162,15 @@
 development-utilities.enable
 
 | 
-| Determines whether debug bar and other stuff influenced by `DebugSettings#isDevelopmentUtilitiesEnabled()` is enabled or not.
-
-By default, depends on the mode (prototyping = enabled, server = disabled). This property acts as an override.
+| null
 
 
 |
 [[causeway.viewer.wicket.dialog-mode]]
 causeway.viewer.wicket.dialog-mode
 
-|  sidebar
-| Whether the dialog mode rendered when invoking actions on domain objects should be to use the sidebar (the default) or to use a modal dialog.
-
-This can be overridden on a case-by-case basis using `ActionLayout#promptStyle()`.
+|  SIDEBAR
+| null
 
 
 |
@@ -206,10 +178,8 @@
 causeway.viewer.wicket. +
 dialog-mode-for-menu
 
-|  modal
-| Whether the dialog mode rendered when invoking actions on domain services (that is, menus) should be to use a modal dialog (the default) or to use the sidebar panel.
-
-This can be overridden on a case-by-case basis using `ActionLayout#promptStyle()`.
+|  MODAL
+| null
 
 
 |
@@ -219,9 +189,7 @@
 prototyping-mode-enabled
 
 |  true
-| In prototyping mode, a text icon is appended to any property that is disabled, with its tool-tip explaining why the property is disabled. This configuration property can be used to suppress the icon, even in prototyping mode, if desired.
-
-The default is to enable (show) the text icon (if in prototyping mode).
+| null
 
 
 |
@@ -229,9 +197,7 @@
 causeway.viewer.wicket.js
 
 | 
-| URL of file to read any custom JavaScript, relative to `static` package on the class path.
-
-A typical value is `js`. This will result in this file being read from the `static/js` directory (because static resources such as CSS are mounted by Spring by default under `static` package).
+| null
 
 
 |
@@ -240,9 +206,7 @@
 live-reload-url
 
 | 
-| If specified, then is rendered on each page to enable live reload.
-
-Configuring live reload also requires an appropriate plugin to the web browser (eg see http://livereload.com/[livereload.com] and a mechanism to trigger changes, eg by watching `xml` files.
+| null
 
 
 |
@@ -271,9 +235,7 @@
 max-title-length-in-tables
 
 |  12
-| The maximum number of characters to use to render the title of a domain object (alongside the icon) in any table, if not otherwise overridden by either `#getMaxTitleLengthInParentedTables()` or `#getMaxTitleLengthInStandaloneTables()`.
-
-If truncated, then the remainder of the title will be replaced with ellipses (...).
+| null
 
 
 |
@@ -283,9 +245,7 @@
 having-any-property-column
 
 |  80
-| If a table has no property columns, for the title column this value is used, to determine how many characters to render for the table element titles.
-
-Introduced for the case when max-title-length is set to zero for tables in general, that if a table has no property columns an exception to that title suppression can be made.
+| null
 
 
 |
@@ -293,10 +253,8 @@
 causeway.viewer.wicket. +
 message-popups.error-delay
 
-|  0ms
-| How long the error popup should display before disappearing.
-
-A value of 0 (the default) means do not disappear automatically.
+|  0
+| null
 
 
 |
@@ -304,10 +262,8 @@
 causeway.viewer.wicket. +
 message-popups.info-delay
 
-|  3500ms
-| How long the info popup should display before disappearing.
-
-A value of 0 means do not disappear automatically.
+|  3500
+| null
 
 
 |
@@ -316,7 +272,7 @@
 message-popups.offset
 
 |  100
-| How far in from the edge the popup should display
+| null
 
 
 |
@@ -325,10 +281,8 @@
 message-popups.placement. +
 horizontal
 
-|  right
-| Whether to display popups aligned ot the left or right of the page.
-
-The default is to show them aligned to the right
+|  RIGHT
+| null
 
 
 |
@@ -336,10 +290,8 @@
 causeway.viewer.wicket. +
 message-popups.placement.vertical
 
-|  top
-| Whether to display popups at the top or the bottom of the page.
-
-The default is to show them at the top.
+|  TOP
+| null
 
 
 |
@@ -347,10 +299,8 @@
 causeway.viewer.wicket. +
 message-popups.warning-delay
 
-|  0ms
-| How long the warning popup should display before disappearing.
-
-A value of 0 (the default) means do not disappear automatically.
+|  0
+| null
 
 
 |
@@ -360,7 +310,7 @@
 submit
 
 |  true
-| Whether to disable a form submit button after it has been clicked, to prevent users causing an error if they do a double click. This behaviour is enabled by default, but can be disabled using this flag.
+| null
 
 
 |
@@ -370,9 +320,7 @@
 action
 
 |  true
-| Whether to disable a no-arg action button after it has been clicked, to prevent users causing an error if they do a double click.
-
-This behaviour is enabled by default, but can be disabled using this flag.
+| null
 
 
 |
@@ -380,12 +328,8 @@
 causeway.viewer.wicket. +
 prompt-style
 
-|  inline
-| Whether to use a modal dialog for property edits and for actions associated with properties.
-
-This can be overridden on a case-by-case basis using `@PropertyLayout#promptStyle` and `@ActionLayout#promptStyle`.
-
-This behaviour is disabled by default; the viewer will use an inline prompt in these cases, making for a smoother user experience.
+|  INLINE
+| null
 
 
 |
@@ -394,9 +338,7 @@
 redirect-even-if-same-object
 
 | 
-| Whether to redirect to a new page, even if the object being shown (after an action invocation or a property edit) is the same as the previous page.
-
-This behaviour is disabled by default; the viewer will update the existing page if it can, making for a smoother user experience. If enabled then this reinstates the pre-1.15.0 behaviour of redirecting in all cases.
+| null
 
 
 |
@@ -405,7 +347,7 @@
 cookie-key
 
 |  causewayWicketRememberMe
-| If the "remember me" feature is available, specifies the key to hold the encrypted credentials in the cookie.
+| null
 
 
 |
@@ -414,13 +356,7 @@
 encryption-key
 
 | 
-| If the "remember me" feature is available, optionally specifies an encryption key (a complex string acting as salt to the encryption algorithm) for computing the encrypted credentials.
-
-If not set, then (in production mode) the Wicket viewer will compute a random key each time it is started. This will mean that any credentials stored between sessions will become invalid.
-
-Conversely, if set then (in production mode) then the same salt will be used each time the app is started, meaning that cached credentials can continue to be used across restarts.
-
-In prototype mode this setting is effectively ignored, because the same key will always be provided (either as set, or a fixed literal otherwise).
+| null
 
 
 |
@@ -429,9 +365,7 @@
 suppress
 
 | 
-| Whether the sign-in page should have a "remember me" link (the default), or if it should be suppressed.
-
-If "remember me" is available and checked, then the viewer will allow users to login based on encrypted credentials stored in a cookie. An key can optionally be specified.
+| null
 
 
 |
@@ -441,9 +375,16 @@
 tag
 
 |  true
-| In Firefox and more recent versions of Chrome 54{plus}, cannot copy out of disabled fields; instead we use the readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute)
+| null
 
-This behaviour is enabled by default but can be disabled using this flag
+
+|
+[[causeway.viewer.wicket.select2-ajax-delay]]
+causeway.viewer.wicket. +
+select2-ajax-delay
+
+|  250
+| null
 
 
 |
@@ -451,9 +392,7 @@
 causeway.viewer.wicket.show-footer
 
 |  true
-| Whether to show the footer menu bar.
-
-This is enabled by default.
+| null
 
 
 |
@@ -462,9 +401,7 @@
 strip-wicket-tags
 
 |  true
-| Whether Wicket tags should be stripped from the markup.
-
-By default this is enabled, in other words Wicket tags are stripped. Please be aware that if tags are _not_ stripped, then this may break CSS rules on some browsers.
+| null
 
 
 |
@@ -473,9 +410,7 @@
 suppress-password-reset
 
 | 
-| Whether to suppress the password reset link on the sign-in page.
-
-Although this is disabled by default (in other words the 'reset password' link is not suppressed), note that in addition the application must provide an implementation of the `UserRegistrationService` as well as a configured `EmailNotificationService` (same conditions as for the `#isSuppressSignUp()` sign-up link).
+| null
 
 
 |
@@ -484,9 +419,7 @@
 suppress-sign-up
 
 | 
-| Whether to suppress the sign-up link on the sign-in page.
-
-Although this is disabled by default (in other words the sign-up link is not suppressed), note that in addition the application must provide an implementation of the `UserRegistrationService` as well as a configured `EmailNotificationService` (same conditions as for the `#isSuppressPasswordReset()` password reset link).
+| null
 
 
 |
@@ -494,8 +427,9 @@
 causeway.viewer.wicket.themes. +
 enabled
 
-| 
-| A comma separated list of enabled theme names, as defined by https://bootswatch.com.
+|  [Cosmo, Flatly, Darkly, Sandstone, +
+ United]
+| null
 
 
 |
@@ -504,9 +438,7 @@
 initial
 
 |  Flatly
-| The initial theme to use.
-
-Expected to be in the list of `#getEnabled()` themes.
+| null
 
 
 |
@@ -515,7 +447,7 @@
 show-chooser
 
 | 
-| Whether the theme chooser widget should be available in the footer.
+| null
 
 
 |
@@ -523,8 +455,8 @@
 causeway.viewer.wicket. +
 tooltip-text-mode
 
-| 
-| How to interpret tooltip content, e.g. as HTML or TEXT. default = TEXT
+|  TEXT
+| null
 
 
 |
@@ -533,9 +465,7 @@
 use-indicator-for-form-submit
 
 |  true
-| Whether to show an indicator for a form submit button that it has been clicked.
-
-This behaviour is enabled by default.
+| null
 
 
 |
@@ -544,9 +474,7 @@
 use-indicator-for-no-arg-action
 
 |  true
-| Whether to show an indicator for a no-arg action button that it has been clicked.
-
-This behaviour is enabled by default.
+| null
 
 
 |
@@ -555,9 +483,7 @@
 use-indicator-for-sortable-column
 
 | 
-| Whether to show an indicator for a sortable column (that is an up-down arrow icon).
-
-This behaviour is disabled by default.
+| null
 
 
 |
@@ -566,7 +492,7 @@
 text
 
 | 
-| Text to be displayed on the application’s home page, used as a fallback if welcome.file is not specified. If a @HomePage action exists, then that will take precedence.
+| null
 
 
 |
@@ -575,9 +501,7 @@
 wicket-source-plugin
 
 | 
-| Whether the Wicket source plugin should be enabled; if so, the markup includes links to the Wicket source.
-
-This behaviour is disabled by default. Please be aware that enabling it can substantially impact performance.
+| null
 
 
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/eclipselink.adoc b/core/config/src/main/adoc/modules/config/pages/sections/eclipselink.adoc
index cf5f3ba..4e2a5b7 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/eclipselink.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/eclipselink.adoc
@@ -17,7 +17,7 @@
 database-event-listener
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CCHEEFGA[eclipselink.cache.database-event-listener]
+| null
 
 
 |
@@ -25,7 +25,7 @@
 eclipselink.cache.shared
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDEJCJJ[eclipselink.cache.shared]
+| null
 
 
 |
@@ -33,15 +33,15 @@
 eclipselink.cache.size
 
 |  100
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDIGIEC[eclipselink.cache.size]
+| null
 
 
 |
 [[eclipselink.cache.type]]
 eclipselink.cache.type
 
-|  softweak
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDGDIEI[eclipselink.cache.type]
+|  SoftWeak
+| null
 
 
 |
@@ -50,7 +50,7 @@
 allow.concurrencyexception
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.allow.concurrencyexception[eclipselink.concurrency.manager.allow.concurrencyexception]
+| null
 
 
 |
@@ -59,7 +59,7 @@
 allow.interruptedexception
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.allow.interruptedexception[eclipselink.concurrency.manager.allow.interruptedexception]
+| null
 
 
 |
@@ -68,7 +68,7 @@
 allow.readlockstacktrace
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.allow.readlockstacktrace[eclipselink.concurrency.manager.allow.readlockstacktrace]
+| null
 
 
 |
@@ -77,7 +77,7 @@
 maxfrequencytodumpmassivemessage
 
 |  60000
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.maxfrequencytodumptinymessage[eclipselink.concurrency.manager.maxfrequencytodumpmassivemessage]
+| null
 
 
 |
@@ -86,7 +86,7 @@
 maxfrequencytodumptinymessage
 
 |  40000
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.maxfrequencytodumptinymessage[eclipselink.concurrency.manager.maxfrequencytodumptinymessage]
+| null
 
 
 |
@@ -95,7 +95,7 @@
 maxsleeptime
 
 |  40000
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.maxsleeptime[eclipselink.concurrency.manager.maxsleeptime]
+| null
 
 
 |
@@ -104,7 +104,7 @@
 waittime
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#concurrency.manager.waittime[eclipselink.concurrency.manager.waittime]
+| null
 
 
 |
@@ -113,7 +113,7 @@
 create-ddl-jdbc-file-name
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#createddljdbcfilename[eclipselink.create-ddl-jdbc-file-name]
+| null
 
 
 |
@@ -121,7 +121,7 @@
 eclipselink.ddl-generation
 
 |  none
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABHEJJI[eclipselink.ddl-generation]
+| null
 
 
 |
@@ -130,7 +130,7 @@
 output-mode
 
 |  database
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABCDHBB[eclipselink.ddl-generation.output-mode]
+| null
 
 
 |
@@ -139,7 +139,7 @@
 table-creation-suffix
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BEHBIEJG[eclipselink.ddl.table-creation-suffix]
+| null
 
 
 |
@@ -147,7 +147,7 @@
 eclipselink.deploy-on-startup
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#delayonstartup[eclipselink.deploy-on-startup]
+| null
 
 
 |
@@ -155,7 +155,7 @@
 eclipselink.descriptor.customizer
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CCHIEAIA[eclipselink.descriptor.customizer]
+| null
 
 
 |
@@ -164,7 +164,7 @@
 drop-ddl-jdbc-file-name
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABFEBCG[eclipselink.drop-ddl-jdbc-file-name]
+| null
 
 
 |
@@ -172,23 +172,23 @@
 eclipselink.exception-handler
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CCHCJCDJ[eclipselink.exception-handler]
+| null
 
 
 |
 [[eclipselink.flush-clear.cache]]
 eclipselink.flush-clear.cache
 
-|  dropinvalidate
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CDEJGBEI[eclipselink.flush-clear.cache]
+|  DropInvalidate
+| null
 
 
 |
 [[eclipselink.id-validation]]
 eclipselink.id-validation
 
-|  none
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CACEEGCC[eclipselink.id-validation]
+|  None
+| null
 
 
 |
@@ -197,7 +197,7 @@
 allow-native-sql-queries
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CIHHJBFB[eclipselink.jdbc.allow-native-sql-queries]
+| null
 
 
 |
@@ -205,7 +205,7 @@
 eclipselink.jdbc.batch-writing
 
 |  none
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CIHIAGAF[eclipselink.jdbc.batch-writing]
+| null
 
 
 |
@@ -214,7 +214,7 @@
 size
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CIHJADHF[eclipse.jdbc.batchwriting.size]
+| null
 
 
 |
@@ -222,7 +222,7 @@
 eclipselink.jdbc.cache-statements
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDHAFAA[eclipselink.jdbc.cache-statements]
+| null
 
 
 |
@@ -231,7 +231,7 @@
 size
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CACBICGG[eclipse.jdbc.cache-statements.size]
+| null
 
 
 |
@@ -239,7 +239,7 @@
 eclipselink.jdbc.native-sql
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm[eclipselink.jdbc.native-sql]
+| null
 
 
 |
@@ -248,7 +248,7 @@
 upper-case-column-names
 
 | 
-| Specify JPA processing to uppercase all column name definitions (simulating case insensitivity). @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDJGCBD[eclipselink.jpa.uppercase-column-names]
+| null
 
 
 |
@@ -264,7 +264,7 @@
 eclipselink.logging.connection
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDJCBIF[eclipselink.logging.connection]
+| null
 
 
 |
@@ -272,7 +272,7 @@
 eclipselink.logging.exceptions
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BEIFJBIE[eclipselink.logging.exceptions]
+| null
 
 
 |
@@ -280,15 +280,15 @@
 eclipselink.logging.file
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BEIHGBBC[eclipselink.logging.file]
+| null
 
 
 |
 [[eclipselink.logging.level]]
 eclipselink.logging.level
 
-|  info
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDGFDDH[eclipselink.logging.level]
+|  INFO
+| null
 
 
 |
@@ -296,7 +296,7 @@
 eclipselink.logging.session
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BEIHGGHH[eclipselink.logging.session]
+| null
 
 
 |
@@ -304,7 +304,7 @@
 eclipselink.logging.thread
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BEIFFGGB[eclipselink.logging.thread]
+| null
 
 
 |
@@ -312,7 +312,7 @@
 eclipselink.logging.timestamp
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BEIJCEBJ[eclipselink.logging.timestamp]
+| null
 
 
 |
@@ -320,18 +320,7 @@
 eclipselink.profiler
 
 |  NoProfiler
-| The "`profiler`" property configures the type of profiler used to capture runtime statistics.
-
-*Allowed Values:*
-
-* "`NoProfiler`" (DEFAULT)
-* "`PerformanceMonitor`" - use `PerformanceMonitor`
-* "`PerformanceProfiler`" - use `PerformanceProfiler`
-* "`QueryMonitor`" - use `QueryMonitor`
-* "`DMSProfiler`" - use `DMSPerformanceProfiler`
-* the fully qualified name for a class that implements `SessionProfiler` interface
-
-@see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#profiler[eclipselink.profiler]
+| null
 
 
 |
@@ -339,7 +328,7 @@
 eclipselink.session-event-listener
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#session-event-listener[eclipselink.session-event-listener]
+| null
 
 
 |
@@ -347,7 +336,7 @@
 eclipselink.session.customizer
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#session.customizer[eclipselink.session.customizer]
+| null
 
 
 |
@@ -356,7 +345,7 @@
 descriptor.queries
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDFDJJD[eclipselink.session.include.descriptor.queries]
+| null
 
 
 |
@@ -364,7 +353,7 @@
 eclipselink.tenant-id
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDHBGIE[eclipselink.tenant-id]
+| null
 
 
 |
@@ -372,7 +361,7 @@
 eclipselink.validate-existence
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#validate-existence[eclipselink.validate-existence]
+| null
 
 
 |
@@ -380,7 +369,7 @@
 eclipselink.validation-only
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#validation-only[eclipselink.validation-only]
+| null
 
 
 |
@@ -388,13 +377,7 @@
 eclipselink.weaving
 
 |  false
-| Options are
-
-* true: Weave the entity classes dynamically.
-* false: Do not weave the entity classes.
-* static: Weave the entity classes statically.
-
-@see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#weaving[eclipse.weaving]
+| null
 
 
 |
@@ -402,7 +385,7 @@
 eclipselink.weaving.changetracking
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDCEEFC[eclipse.weaving.changetracking]
+| null
 
 
 |
@@ -410,7 +393,7 @@
 eclipselink.weaving.eager
 
 | 
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABGGCGC[eclipse.weaving.eager]
+| null
 
 
 |
@@ -418,7 +401,7 @@
 eclipselink.weaving.fetchgroups
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#CHDDIFGE[eclipse.weaving.fetchgroups]
+| null
 
 
 |
@@ -426,7 +409,7 @@
 eclipselink.weaving.internal
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABJICDJ[eclipse.weaving.internal]
+| null
 
 
 |
@@ -434,7 +417,7 @@
 eclipselink.weaving.lazy
 
 |  true
-| @see https://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#BABDBIFE[eclipse.weaving.lazy]
+| null
 
 
 
diff --git a/core/interaction/src/main/adoc/modules/interaction/pages/interactions-commands-and-executions.adoc b/core/interaction/src/main/adoc/modules/interaction/pages/interactions-commands-and-executions.adoc
index bca198e..8da03e8 100644
--- a/core/interaction/src/main/adoc/modules/interaction/pages/interactions-commands-and-executions.adoc
+++ b/core/interaction/src/main/adoc/modules/interaction/pages/interactions-commands-and-executions.adoc
@@ -124,8 +124,7 @@
 The `WrapperFactory` allows wrapped actions to be invoked synchronously or asynchronously.
 The former is more common, and is the process described above.
 
-If the wrapper is created for asynchronous invocation (using xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc#asyncWrap_T_AsyncControl[WrapperFactory#asyncWrap()] or similar), then the framework passes an xref:refguide:applib:index/services/wrapper/callable/AsyncCallable.adoc[] (a subtype of `Callable`) to the configured `ExecutorService`.
-(The default `ExecutorService` is the simple `ForkJoinPool`, though this can be replaced if required).
+If the wrapper is created for asynchronous invocation (using xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc#asyncWrap_T_AsyncControl[WrapperFactory#asyncWrap()] or similar), then the framework passes an xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc[].
 
 The `AsyncCallable` interface is implemented by an internal framework class (`AsyncTask`).
 It's worth understanding the data that it holds and its behaviour:
@@ -175,11 +174,10 @@
 If any of those commands fail, there is at least a record as to how they might have failed.
 This is the philosophy behind the xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService.adoc[], part of the xref:userguide:commandlog:about.adoc[Command Log] extension.
 
-Under the covers the `BackgroundService` calls `WrapperFactory`, but with a custom `ExecutorService` (the xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService_PersistCommandExecutorService.adoc[BackgroundService.PersistCommandExecutorService] class) which simply persists the implied command as a xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntry.adoc[].
+Under the covers the `BackgroundService` calls `WrapperFactory`, using a custom  xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl.CommandListener] which simply persists the implied command as a xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntry.adoc[].
 Its xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntry.adoc#getExecuteIn_[executeIn] field indicates that the command is to be executed "in the background".
 
-The xref:userguide:commandlog:about.adoc[Command Log] extension also provides the xref:refguide:extensions:index/commandlog/applib/job/RunBackgroundCommandsJob.adoc[], which is a Quartz `Job` implementation.
-Conceptually this is similar to the `AsyncCallable` described xref:asynchronous-commands[previously], but will run (the ``CommandDto``s of) all queued ``CommandLogEntry``s, rather than just a single `CommandDto`.
+The xref:userguide:commandlog:about.adoc[Command Log] extension also provides the xref:refguide:extensions:index/commandlog/applib/job/RunBackgroundCommandsJob.adoc[], which is a Quartz `Job` implementation that runs each of the (``CommandDto``s of all) queued ``CommandLogEntry``s, rather than just a single `CommandDto`.
 
 To use the `RunBackgroundCommandsJob`, we configure Quartz to run it periodically, eg every 10 seconds.
 When run by Quartz, it performs these steps:
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index a5022ab..7475711 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@ -89,6 +89,8 @@
 
 /**
  * Default implementation of {@link WrapperFactory}.
+ *
+ * @since 1.x {@index}
  */
 @Service
 @Named(WrapperFactoryDefault.LOGICAL_TYPE_NAME)
diff --git a/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc b/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc
index cb4ccd8..84af43b 100644
--- a/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc
+++ b/extensions/core/commandlog/adoc/modules/commandlog/pages/about.adoc
@@ -212,9 +212,7 @@
 
 Behind the scenes this service uses xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc#asyncWrap_T_AsyncControl[WrapperFactory#asyncWrap(...)] using xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc#with_ExecutorService[AsyncControl#with(ExecutorService)] to pass an implementation of `ExecutorService` that persists the command as a `CommandLogEntry` instance.
 
-If you require more fine-grained control, you can always just use the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] async method yourself.
-The `ExecutorService` to use is xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService_PersistCommandExecutorService.adoc[BackgroundService.PersistCommandExecutorService].
-This is a Spring `@Service` and so can be obtained through injection.
+If you require more fine-grained control, you can always just use the xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory] async method yourself, specifying an implementation of the xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl.CommandListener].
 
 === Executing Actions using the Quartz scheduler
 
diff --git a/retired/scripts/ln-tooling-jar.sh b/ln-tooling-jar.sh
similarity index 100%
rename from retired/scripts/ln-tooling-jar.sh
rename to ln-tooling-jar.sh
diff --git a/retired/scripts/preview.sh b/preview.sh
similarity index 100%
rename from retired/scripts/preview.sh
rename to preview.sh
diff --git a/starters/adoc/modules/starters/pages/helloworld.adoc b/starters/adoc/modules/starters/pages/helloworld.adoc
index 228992c..a934a8f 100644
--- a/starters/adoc/modules/starters/pages/helloworld.adoc
+++ b/starters/adoc/modules/starters/pages/helloworld.adoc
@@ -10,7 +10,7 @@
 
 [source,bash,subs="attributes+"]
 ----
-docker run -d -p 8080:8080 apache/causeway-app-helloworld:v{fwk-version}-jpa-SNAPSHOT
+docker run -p 8080:8080 apache/causeway-app-helloworld:latest
 ----
 
 
@@ -40,7 +40,7 @@
 
 Create a new directory, and `cd` into that directory.
 
-To build the app from the latest stable release:
+To build the app from the latest release:
 
 include::helloworld-script-jpa.adoc[]
 
diff --git a/starters/adoc/modules/starters/pages/simpleapp.adoc b/starters/adoc/modules/starters/pages/simpleapp.adoc
index cde1ec7..3ebb0b1 100644
--- a/starters/adoc/modules/starters/pages/simpleapp.adoc
+++ b/starters/adoc/modules/starters/pages/simpleapp.adoc
@@ -9,7 +9,7 @@
 
 [source,bash,subs="attributes+"]
 ----
-docker run -d -p 8080:8080 apache/causeway-app-simpleapp:v{fwk-version}-jpa-SNAPSHOT
+docker run -p 8080:8080 apache/causeway-app-simpleapp:latest
 ----
 
 As with the xref:docs:starters:helloworld.adoc[HelloWorld] starter app, the instructions <<Downloading & Running,below>> will download a minimal Apache Causeway app consisting of a single entity (`SimpleObject`) with supporting domain services.
@@ -44,7 +44,7 @@
 
 Create a new directory, and `cd` into that directory.
 
-To build the app from the latest stable release:
+To build the app from the latest release:
 
 include::simpleapp-script-jpa.adoc[]
 
diff --git a/testing/fakedata/adoc/modules/fakedata/pages/about.adoc b/testing/fakedata/adoc/modules/fakedata/pages/about.adoc
index 7ffee20..aa48cb6 100644
--- a/testing/fakedata/adoc/modules/fakedata/pages/about.adoc
+++ b/testing/fakedata/adoc/modules/fakedata/pages/about.adoc
@@ -122,9 +122,10 @@
 
 * xref:refguide:testing:index/fakedata/applib/services/JavaSqlDates.adoc[JavaSqlDates]
 * xref:refguide:testing:index/fakedata/applib/services/JavaSqlTimestamps.adoc[JavaSqlTimestamps]
-* xref:refguide:testing:index/fakedata/applib/services/JavaTimeDateTimes.adoc[JavaTimeDateTimes]
-* xref:refguide:testing:index/fakedata/applib/services/JavaTimeLocalDates.adoc[JavaTimeLocalDates]
-* xref:refguide:testing:index/fakedata/applib/services/JavaTimePeriods.adoc[JavaTimePeriods]
+* xref:refguide:testing:index/fakedata/applib/services/LocalDates.adoc[LocalDates] (`java.time`)
+* xref:refguide:testing:index/fakedata/applib/services/ZonedDateTimes.adoc[ZonedDateTimes] (`java.time`)
+* xref:refguide:testing:index/fakedata/applib/services/OffsetDateTimes.adoc[OffsetDateTimes] (`java.time`)
+* xref:refguide:testing:index/fakedata/applib/services/Periods.adoc[Periods] (`java.time`)
 * xref:refguide:testing:index/fakedata/applib/services/JavaUtilDates.adoc[JavaUtilDates]
 
 
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/content-negotiation.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/content-negotiation.adoc
index 0dadb81..ea34946 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/content-negotiation.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/content-negotiation.adoc
@@ -102,5 +102,4 @@
 * xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService]
 * xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc[ContentNegotiationServiceForRestfulObjectsV1_0]
 * xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc[ContentNegotiationServiceXRoDomainType]
-* xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc[ContentNegotiationServiceOrgApacheIsisV1]
 * xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheCausewayV2.adoc[ContentNegotiationServiceOrgApacheCausewayV2]