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

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

commit b4c15781e9c6a02849fb8b21e4cf684502bb9906
Author: Dan Haywood <[email protected]>
AuthorDate: Tue Jun 4 08:35:19 2024 +0100

    recreates refguide docs
---
 .../applib/pages/index/annotation/Action.adoc      |  1 -
 .../applib/pages/index/annotation/Collection.adoc  |  1 -
 .../pages/index/annotation/DomainObject.adoc       |  3 -
 .../pages/index/annotation/ParameterTuple.adoc     |  1 -
 .../applib/pages/index/annotation/Property.adoc    |  1 -
 .../pages/index/annotation/ValueSemantics.adoc     |  1 -
 .../applib/pages/index/graph/tree/TreeNode.adoc    |  1 -
 .../pages/index/jaxb/JavaSqlJaxbAdapters.adoc      |  1 -
 .../pages/index/jaxb/JavaTimeJaxbAdapters.adoc     |  1 -
 .../pages/index/jaxb/JavaUtilJaxbAdapters.adoc     |  1 -
 .../applib/pages/index/spec/SpecificationAnd.adoc  |  1 -
 .../applib/pages/index/spec/SpecificationNot.adoc  |  1 -
 .../applib/pages/index/spec/SpecificationOr.adoc   |  1 -
 .../commons/pages/index/collections/Can.adoc       |  1 -
 .../pages/index/functional/ThrowingConsumer.adoc   |  2 -
 .../pages/index/functional/ThrowingSupplier.adoc   |  2 -
 .../modules/commons/pages/index/io/DataSink.adoc   |  1 -
 .../bookmarks/BookmarkServiceDefault.adoc}         | 22 ++++----
 .../command/CommandDtoFactoryDefault.adoc}         | 20 +++----
 .../command/CommandExecutorServiceDefault.adoc}    | 20 +++----
 .../command/SchemaValueMarshallerDefault.adoc}     | 16 +-----
 .../email/EmailServiceDefault.adoc}                | 42 ++++++--------
 .../eventbus/EventBusServiceSpring.adoc}           | 17 ++----
 .../executor/MemberExecutorServiceDefault.adoc     | 28 ++++++++++
 .../factory/FactoryServiceDefault.adoc}            | 24 ++++----
 .../homepage/HomePageResolverServiceDefault.adoc}  | 19 ++-----
 .../runtimeservices/i18n/po/ContextAndMsgId.adoc   | 48 ++++++++++++++++
 .../i18n/po/TranslationServicePo.adoc              | 64 ++++++++++++++++++++++
 .../i18n/po/TranslationServicePoMenu.adoc}         | 26 ++++-----
 .../icons/ObjectIconServiceDefault.adoc}           | 17 ++----
 .../interaction/InteractionDtoFactoryDefault.adoc} | 19 +++----
 .../runtimeservices/jaxb/JaxbServiceDefault.adoc}  | 16 +-----
 .../locale/LanguageProviderDefault.adoc}           | 17 ++----
 .../locale/LocaleChoiceProviderDefault.adoc}       | 17 ++----
 .../menubars/MenuBarsLoaderServiceDefault.adoc}    | 20 +++----
 .../MenuBarsMarshallerServiceBootstrap.adoc}       | 20 +++----
 .../bootstrap/MenuBarsServiceBootstrap.adoc}       | 23 ++++----
 .../message/MessageServiceDefault.adoc}            | 27 ++++-----
 .../publish/CommandPublisherDefault.adoc}          | 20 +++----
 .../publish/EntityChangesPublisherDefault.adoc}    | 18 ++----
 .../EntityPropertyChangePublisherDefault.adoc}     | 18 ++----
 .../publish/ExecutionPublisherDefault.adoc}        | 21 +++----
 ...ExceptionRecognizerForDataAccessException.adoc} | 18 ++----
 .../routing/RoutingServiceDefault.adoc}            | 18 ++----
 .../scratchpad/ScratchpadDefault.adoc}             | 50 +++++++++--------
 .../serializing/SerializingAdapterDefault.adoc}    | 18 ++----
 .../session/InteractionIdGenerator.adoc}           | 17 ++----
 .../session/InteractionIdGeneratorDefault.adoc}    | 17 ++----
 .../session/InteractionServiceDefault.adoc         | 50 +++++++++++++++++
 .../sitemap/SitemapServiceDefault.adoc}            | 17 ++----
 .../user/ImpersonateMenuAdvisorDefault.adoc}       | 20 +++----
 .../UserCurrentSessionTimeZoneHolderDefault.adoc}  | 19 ++-----
 .../userreg/EmailNotificationServiceDefault.adoc}  | 32 ++++++-----
 .../wrapper/WrapperFactoryDefault.adoc             | 27 +++++++++
 .../xmlsnapshot/XmlSnapshotBuilder.adoc}           | 23 +++++---
 .../xmlsnapshot/XmlSnapshotServiceDefault.adoc     | 38 +++++++++++++
 .../CausewayModuleExtLayoutLoadersGithub.adoc      |  1 -
 .../applib/user/events/UserCreatedEvent.adoc       |  1 -
 .../jdo/applib/services/JdoSupportService.adoc     |  2 -
 .../index/jpa/applib/types/BlobJpaEmbeddable.adoc  |  1 -
 .../index/jpa/applib/types/ClobJpaEmbeddable.adoc  |  1 -
 .../applib/annotation/InteractAs.adoc              |  1 -
 .../applib/jmocking/JUnitRuleMockery2.adoc         |  1 -
 .../CausewayViewerGraphqlIntegTestAbstract.adoc    |  1 -
 .../schema/PrintSchemaIntegTestAbstract.adoc       |  1 -
 .../restfulobjects/applib/util/JsonNodeUtils.adoc  |  1 -
 .../index/restfulobjects/client/RestfulClient.adoc |  1 -
 core/adoc/modules/_overview/pages/about.adoc       |  5 +-
 68 files changed, 527 insertions(+), 474 deletions(-)

diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
index d365729b78..c16e5f3e80 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Action.adoc
@@ -101,7 +101,6 @@ Subscribers of this event can interact with the business 
rule checking (hide, di
 For example:
 
 ----
-
 public class SomeObject{
     public static class ChangeStartDateDomainEvent extends 
ActionDomainEvent<SomeObject> { ... }
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
index bdfa1e5993..935a394ed6 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/Collection.adoc
@@ -38,7 +38,6 @@ Subscribers of this event can interact with the business rule 
checking (hide, di
 For example:
 
 ----
-
 public class Order {
   public static class OrderLineItems extends CollectionDomainEvent { ... }
 
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 b8b28117ae..e827d71d46 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
@@ -266,7 +266,6 @@ Indicates that an invocation of _any_ action of the domain 
object (that do not t
 For example:
 
 ----
-
 @DomainObject(actionDomainEvent=SomeObject.GenericActionDomainEvent.class)
 public class SomeObject{
     public static class GenericActionDomainEvent extends 
ActionDomainEvent<Object> { ... }
@@ -288,7 +287,6 @@ Indicates that changes to _any_ property of the domain 
object (that do not thems
 For example:
 
 ----
-
 @DomainObject(propertyDomainEvent=SomeObject.GenericPropertyDomainEvent.class)
 public class SomeObject{
 
@@ -306,7 +304,6 @@ Indicates that changes to _any_ collection of the domain 
object (that do not the
 For example:
 
 ----
-
 @DomainObject(collectionDomainEvent=Order.GenericCollectionDomainEvent.class)
 public class Order {
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/ParameterTuple.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/ParameterTuple.adoc
index 4d3336da51..777c90185f 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/ParameterTuple.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/ParameterTuple.adoc
@@ -6,7 +6,6 @@ Indicates that a mixed-in action's parameter follows the 
parameters-as-tuple (PA
 Example mixin code:
 
 ----
-
 // java record as a parameters tuple
 record Params(@Parameter String key, @Parameter String name) {}
 
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 6793a7beeb..1873ad2376 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
@@ -136,7 +136,6 @@ Subscribers of this event can interact with the business 
rule checking (hide, di
 For example:
 
 ----
-
 public static class StartDateChanged extends PropertyDomainEvent { ... }
 
 @Property(domainEvent=StartDateChanged.class)
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/ValueSemantics.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/ValueSemantics.adoc
index 036ab08352..eb5e31d48d 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/annotation/ValueSemantics.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/annotation/ValueSemantics.adoc
@@ -141,7 +141,6 @@ This is intended to be used so that an exclusive end date 
of an interval can be
 For example:
 
 ----
-
 public LocalDate getStartDate() { ... }
 
 @ValueSemantics(dateRenderAdjustDays = ValueSemantics.AS_DAY_BEFORE)
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/graph/tree/TreeNode.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/graph/tree/TreeNode.adoc
index 817d989709..9b168f933b 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/graph/tree/TreeNode.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/graph/tree/TreeNode.adoc
@@ -116,7 +116,6 @@ Select nodes by their corresponding 
xref:refguide:applib:index/graph/tree/TreePa
 With the _Wicket Viewer_ corresponds to expressing CSS class 
_tree-node-selected_ on the rendered tree node, which has default bg-color 
_lightgrey_ . Color can be customized by setting CSS var __
 
 ----
-
 .tree-theme-bootstrap .tree-node-selected {
     background-color: var(--tree-node-selected-bg-color, lightgrey);
 }
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
index a05dd2e89e..a9dc525149 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
@@ -6,7 +6,6 @@ Provides JAXB XmlAdapters for java sql temporal types.
 Example:
 
 ----
-
 @XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
 @Getter @Setter private java.sql.Date date;
 ----
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaTimeJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaTimeJaxbAdapters.adoc
index 96882c868d..69e3ddf6c5 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaTimeJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaTimeJaxbAdapters.adoc
@@ -6,7 +6,6 @@ Provides JAXB XmlAdapters for Java time temporal types.
 Example:
 
 ----
-
 @XmlElement @XmlJavaTypeAdapter(JavaTimeJaxbAdapters.LocalDateAdapter.class)
 @Getter @Setter private java.time.LocalDate localDate;
 ----
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaUtilJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaUtilJaxbAdapters.adoc
index c236c253fe..fdf04abfb9 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaUtilJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaUtilJaxbAdapters.adoc
@@ -6,7 +6,6 @@ Provides JAXB XmlAdapters for Java util temporal types.
 Example:
 
 ----
-
 @XmlElement @XmlJavaTypeAdapter(JavaUtilJaxbAdapters.DateAdapter.class)
 @Getter @Setter private java.utilDate javaLocalDate;
 ----
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationAnd.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationAnd.adoc
index edf16f4250..03882acedd 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationAnd.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationAnd.adoc
@@ -8,7 +8,6 @@ Subclasses represent the intersection of multiple 
xref:refguide:applib:index/spe
 For example:
 
 ----
-
 public class MilkAndSugarSpec extends SpecificationAnd {
     public MilkAndSugarSpec() {
         super(new MustBeMilkySpec(), new TwoLumpsOfSugarSpec());
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationNot.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationNot.adoc
index 38a0693f32..0c6e9fd70a 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationNot.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationNot.adoc
@@ -8,7 +8,6 @@ Subclasses represent the logical inverse of a 
xref:refguide:applib:index/spec/Sp
 For example:
 
 ----
-
 public class NoSugarThanksSpec extends SpecificationNot {
     public NoSugarThanksSpec() {
         super(
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationOr.adoc
 
b/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationOr.adoc
index 14b2d12e2e..aa2e3a2806 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationOr.adoc
+++ 
b/antora/components/refguide-index/modules/applib/pages/index/spec/SpecificationOr.adoc
@@ -8,7 +8,6 @@ Subclasses represent the conjunction of multiple 
xref:refguide:applib:index/spec
 For example:
 
 ----
-
 public class TeaOrCoffeeSpec extends SpecificationOr {
     public TeaOrCoffeeSpec() {
         super(new MustBeTeaSpec(), new MustBeCoffeeSpec());
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
 
b/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
index 6a96281652..7437189246 100644
--- 
a/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
@@ -469,7 +469,6 @@ Removes the element at the specified position in this list 
(optional operation).
 Given _n_ indices, returns an equivalent of(where nulls are being ignored)
 
 ----
-
 Can.of(
     this.get(indices[0]).orElse(null),
     this.get(indices[1]).orElse(null),
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingConsumer.adoc
 
b/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingConsumer.adoc
index d1470655c9..a6ab7b9b47 100644
--- 
a/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingConsumer.adoc
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingConsumer.adoc
@@ -81,7 +81,6 @@ This method can be especially useful when working with method 
references. It all
 For example:
 
 ----
-
 list.forEach(ThrowingConsumer.of(Example::methodThatCanThrowCheckedException));
 ----
 
@@ -95,6 +94,5 @@ This method can be especially useful when working with method 
references. It all
 For example:
 
 ----
-
 list.forEach(ThrowingConsumer.of(Example::methodThatCanThrowCheckedException, 
IllegalStateException::new));
 ----
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingSupplier.adoc
 
b/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingSupplier.adoc
index 53d69dc489..a1bbcc4586 100644
--- 
a/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingSupplier.adoc
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/functional/ThrowingSupplier.adoc
@@ -81,7 +81,6 @@ This method can be especially useful when working with method 
references. It all
 For example:
 
 ----
-
 
optional.orElseGet(ThrowingSupplier.of(Example::methodThatCanThrowCheckedException));
 ----
 
@@ -95,6 +94,5 @@ This method can be especially useful when working with method 
references. It all
 For example:
 
 ----
-
 
optional.orElseGet(ThrowingSupplier.of(Example::methodThatCanThrowCheckedException,
 IllegalStateException::new));
 ----
diff --git 
a/antora/components/refguide-index/modules/commons/pages/index/io/DataSink.adoc 
b/antora/components/refguide-index/modules/commons/pages/index/io/DataSink.adoc
index f54fa8efe7..4bda81c37a 100644
--- 
a/antora/components/refguide-index/modules/commons/pages/index/io/DataSink.adoc
+++ 
b/antora/components/refguide-index/modules/commons/pages/index/io/DataSink.adoc
@@ -56,7 +56,6 @@ Acts as a no-op.
 Example:
 
 ----
-
 var sb = new StringBuffer();
 var dataSink = DataSink.ofStringUtf8Consumer(sb);
 //... write to dataSink
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc
similarity index 62%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc
index a05dd2e89e..dbbcc980c9 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc
@@ -1,22 +1,20 @@
-= JavaSqlJaxbAdapters
+= BookmarkServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
+This service enables a serializable 'bookmark' to be created for an entity.
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.BookmarkServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class BookmarkServiceDefault {
+  Optional<Object> lookup(BookmarkHolder bookmarkHolder)
+  List<Bookmark> bookmarksFor(Object domainObject)
+  Optional<Object> lookup(Bookmark bookmark)
+  Optional<Bookmark> bookmarkFor(Object domainObject)
+  Optional<Bookmark> bookmarkFor(Class<?> cls, String identifier)
+  Bookmark bookmarkForElseFail(Object domainObject)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/CommandDtoFactoryDefault.adoc
similarity index 51%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/CommandDtoFactoryDefault.adoc
index a05dd2e89e..b851b86881 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/CommandDtoFactoryDefault.adoc
@@ -1,22 +1,18 @@
-= JavaSqlJaxbAdapters
+= CommandDtoFactoryDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
+The design of this service is similar to 
_org.apache.causeway.core.runtimeservices.interaction.InteractionDtoFactoryDefault_
 .
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.CommandDtoFactoryDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class CommandDtoFactoryDefault {
+  CommandDto asCommandDto(UUID interactionId, InteractionHead targetHead, 
ObjectAction objectAction, Can<ManagedObject> argAdapters)
+  CommandDto asCommandDto(UUID interactionId, InteractionHead targetHead, 
OneToOneAssociation property, ManagedObject valueAdapter)
+  void addActionArgs(InteractionHead head, ObjectAction objectAction, 
ActionDto actionDto, Can<ManagedObject> argAdapters)
+  void addPropertyValue(InteractionHead interactionHead, OneToOneAssociation 
property, PropertyDto propertyDto, ManagedObject valueAdapter)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/CommandExecutorServiceDefault.adoc
similarity index 66%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/CommandExecutorServiceDefault.adoc
index a05dd2e89e..08b546d4a4 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/CommandExecutorServiceDefault.adoc
@@ -1,22 +1,16 @@
-= JavaSqlJaxbAdapters
+= CommandExecutorServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.CommandExecutorServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class CommandExecutorServiceDefault {
+  Try<Bookmark> executeCommand(Command command)
+  Try<Bookmark> executeCommand(InteractionContextPolicy 
interactionContextPolicy, Command command)
+  Try<Bookmark> executeCommand(CommandDto dto)
+  Try<Bookmark> executeCommand(InteractionContextPolicy 
interactionContextPolicy, CommandDto dto)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/SchemaValueMarshallerDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/SchemaValueMarshallerDefault.adoc
index a05dd2e89e..60abf83ac2 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/command/SchemaValueMarshallerDefault.adoc
@@ -1,22 +1,12 @@
-= JavaSqlJaxbAdapters
+= SchemaValueMarshallerDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.SchemaValueMarshallerDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class SchemaValueMarshallerDefault {
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc
similarity index 51%
copy from 
antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc
index 11ff0e040f..ffd6a53758 100644
--- 
a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/email/EmailServiceDefault.adoc
@@ -1,41 +1,33 @@
-= JsonNodeUtils
+= EmailServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
+A service that sends email notifications when specific events occur
+
+Note that this default implementation requires that an implementation of 
Spring's _JavaMailSender_ is configured.
+
 == API
 
 [source,java]
-.JsonNodeUtils.java
+.EmailServiceDefault.java
 ----
-class JsonNodeUtils {
-  InputStream asInputStream(JsonNode jsonNode)
-  InputStream asInputStream(JsonRepresentation jsonRepresentation)
-  ObjectNode walkNodeUpTo(ObjectNode node, List<String> keys)     // <.>
+class EmailServiceDefault {
+  void init()     // <.>
+  boolean isConfigured()
+  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:#walkNodeUpTo_ObjectNode_List[walkNodeUpTo(ObjectNode, List)]
+<.> xref:#init_[init()]
 +
 --
-Walks the path, ensuring keys exist and are maps, or creating required maps as 
it goes.
+Loads responsive email templates borrowed from 
http://zurb.com/ink/templates.php (Basic)
 --
 
 == 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:
+[#init_]
+=== init()
 
-----
-
-{
-  "a": {
-    "b: {
-      "c": {
-      }
-    }
-  }
-}
-----
+Loads responsive email templates borrowed from 
http://zurb.com/ink/templates.php (Basic)
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/eventbus/EventBusServiceSpring.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/eventbus/EventBusServiceSpring.adoc
index a05dd2e89e..325a2e8290 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/eventbus/EventBusServiceSpring.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= EventBusServiceSpring
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.EventBusServiceSpring.java
 ----
-class JavaSqlJaxbAdapters {
+class EventBusServiceSpring {
+  void post(Object event)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/executor/MemberExecutorServiceDefault.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/executor/MemberExecutorServiceDefault.adoc
new file mode 100644
index 0000000000..41a00d134b
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/executor/MemberExecutorServiceDefault.adoc
@@ -0,0 +1,28 @@
+= MemberExecutorServiceDefault
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+== API
+
+[source,java]
+.MemberExecutorServiceDefault.java
+----
+class MemberExecutorServiceDefault {
+  Optional<InteractionInternal> getInteraction()
+  ManagedObject invokeAction(ActionExecutor actionExecutor)
+  ManagedObject setOrClearProperty(PropertyModifier propertyExecutor)
+  void prepareCommandForPublishing(Command command, InteractionHead 
interactionHead, ObjectMember objectMember, FacetHolder facetHolder)     // <.>
+}
+----
+
+<.> 
xref:#prepareCommandForPublishing_Command_InteractionHead_ObjectMember_FacetHolder[prepareCommandForPublishing(Command,
 InteractionHead, ObjectMember, FacetHolder)]
++
+--
+Will set the command's CommandPublishingPhase to READY, if command and 
objectMember have a matching member-id and if the facetHolder has a 
CommandPublishingFacet (has commandPublishing=ENABLED).
+--
+
+== Members
+
+[#prepareCommandForPublishing_Command_InteractionHead_ObjectMember_FacetHolder]
+=== prepareCommandForPublishing(Command, InteractionHead, ObjectMember, 
FacetHolder)
+
+Will set the command's CommandPublishingPhase to READY, if command and 
objectMember have a matching member-id and if the facetHolder has a 
CommandPublishingFacet (has commandPublishing=ENABLED).
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc
similarity index 66%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc
index a05dd2e89e..19a240a9fd 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/factory/FactoryServiceDefault.adoc
@@ -1,22 +1,20 @@
-= JavaSqlJaxbAdapters
+= FactoryServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.FactoryServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class FactoryServiceDefault {
+  T getOrCreate(Class<T> requiredType)
+  T get(Class<T> requiredType)
+  T detachedEntity(Class<T> domainClass)
+  T detachedEntity(T entityPojo)
+  T mixin(Class<T> mixinClass, Object mixee)
+  T viewModel(T viewModelPojo)
+  T viewModel(Class<T> viewModelClass, Bookmark bookmark)
+  T create(Class<T> domainClass)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/homepage/HomePageResolverServiceDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/homepage/HomePageResolverServiceDefault.adoc
index a05dd2e89e..e2aafa8b5d 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/homepage/HomePageResolverServiceDefault.adoc
@@ -1,22 +1,15 @@
-= JavaSqlJaxbAdapters
+= HomePageResolverServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.HomePageResolverServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class HomePageResolverServiceDefault {
+  HomePageResolverServiceDefault(FactoryService factoryService, 
CausewayBeanTypeRegistry causewayBeanTypeRegistry)
+  void init()
+  Object getHomePage()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/ContextAndMsgId.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/ContextAndMsgId.adoc
new file mode 100644
index 0000000000..7e83f325c5
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/ContextAndMsgId.adoc
@@ -0,0 +1,48 @@
+= ContextAndMsgId
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+The combination of a `msgId` and context (optionally null) that represents a 
key to a translatable resource.
+
+For example, with this _.pot_ file:
+
+----
+#: 
org.causewayaddons.module.sessionlogger.dom.SessionLoggingServiceMenu#activeSessions()
+ msgid: "Active Sessions"
+
+ #: org.causewayaddons.module.audit.dom.AuditingServiceMenu
+ #: org.causewayaddons.module.command.dom.CommandServiceMenu
+ #: org.causewayaddons.module.publishing.dom.PublishingServiceMenu
+ msgid: "Activity"
+----
+
+the combination of 
`{org.causewayaddons.module.sessionlogger.dom.SessionLoggingServiceMenu#activeSessions(),
 "Active Sessions"}` represents such a key, as does 
`{org.causewayaddons.module.audit.dom.AuditingServiceMenu, "Activity"}` 
+
+== API
+
+[source,java]
+.ContextAndMsgId.java
+----
+class ContextAndMsgId {
+  ContextAndMsgId(String context, String msgId, Type type)
+  String getMsgId()
+  String getContext()
+  Type getType()     // <.>
+  boolean equals(Object o)
+  int hashCode()
+  int compareTo(ContextAndMsgId o)
+  String toString()
+}
+----
+
+<.> xref:#getType_[getType()]
++
+--
+Not part of equals/hashCode impl.
+--
+
+== Members
+
+[#getType_]
+=== getType()
+
+Not part of equals/hashCode impl.
diff --git 
a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/TranslationServicePo.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/TranslationServicePo.adoc
new file mode 100644
index 0000000000..1f6cbd3a8a
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/TranslationServicePo.adoc
@@ -0,0 +1,64 @@
+= TranslationServicePo
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+== API
+
+[source,java]
+.TranslationServicePo.java
+----
+class TranslationServicePo {
+  TranslationServicePo()     // <.>
+  void init()
+  void shutdown()
+  String translate(TranslationContext context, String text)
+  String translate(TranslationContext context, String singularText, String 
pluralText, int num)
+  Mode getMode()
+  Optional<String> toPot()     // <.>
+  void clearCache()     // <.>
+  void toggleMode()     // <.>
+  Can<TranslationsResolver> getTranslationsResolver()
+}
+----
+
+<.> xref:#TranslationServicePo_[TranslationServicePo()]
++
+--
+Defaults to writer mode because the service won't have been init'd while the 
metamodel is bring instantiated, and we want to ensure that we capture all 
requests for translation.
+--
+<.> xref:#toPot_[toPot()]
++
+--
+Not API
+--
+<.> xref:#clearCache_[clearCache()]
++
+--
+Not API
+--
+<.> xref:#toggleMode_[toggleMode()]
++
+--
+Not API
+--
+
+== Members
+
+[#TranslationServicePo_]
+=== TranslationServicePo()
+
+Defaults to writer mode because the service won't have been init'd while the 
metamodel is bring instantiated, and we want to ensure that we capture all 
requests for translation.
+
+[#toPot_]
+=== toPot()
+
+Not API
+
+[#clearCache_]
+=== clearCache()
+
+Not API
+
+[#toggleMode_]
+=== toggleMode()
+
+Not API
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/TranslationServicePoMenu.adoc
similarity index 61%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/TranslationServicePoMenu.adoc
index a05dd2e89e..734b8143b7 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/i18n/po/TranslationServicePoMenu.adoc
@@ -1,22 +1,22 @@
-= JavaSqlJaxbAdapters
+= TranslationServicePoMenu
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.TranslationServicePoMenu.java
 ----
-class JavaSqlJaxbAdapters {
+class TranslationServicePoMenu {
+  public static final String LOGICAL_TYPE_NAME;
+  Clob downloadTranslations(String potFileName)
+  String default0DownloadTranslations()
+  String disableDownloadTranslations()
+  void resetTranslationCache()
+  String disableResetTranslationCache()
+  void switchToReadingTranslations()
+  String disableSwitchToReadingTranslations()
+  void switchToWritingTranslations()
+  String disableSwitchToWritingTranslations()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc
index a05dd2e89e..a2c7febce7 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/icons/ObjectIconServiceDefault.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= ObjectIconServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.ObjectIconServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class ObjectIconServiceDefault {
+  ObjectIcon getObjectIcon(ObjectSpecification spec, String iconNameModifier)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/interaction/InteractionDtoFactoryDefault.adoc
similarity index 56%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/interaction/InteractionDtoFactoryDefault.adoc
index a05dd2e89e..34aa8b4699 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/interaction/InteractionDtoFactoryDefault.adoc
@@ -1,22 +1,17 @@
-= JavaSqlJaxbAdapters
+= InteractionDtoFactoryDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
+The design of this service is similar to 
_org.apache.causeway.core.runtimeservices.command.CommandDtoFactoryDefault_
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.InteractionDtoFactoryDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class InteractionDtoFactoryDefault {
+  ActionInvocationDto asActionInvocationDto(ObjectAction objectAction, 
InteractionHead head, Can<ManagedObject> argumentAdapters)
+  ActionInvocationDto updateResult(ActionInvocationDto actionInvocationDto, 
ObjectAction objectAction, ManagedObject resultObject)
+  PropertyEditDto asPropertyEditDto(OneToOneAssociation property, 
InteractionHead interactionHead, ManagedObject newValueAdapterIfAny)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc
index a05dd2e89e..42b3116a38 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/jaxb/JaxbServiceDefault.adoc
@@ -1,22 +1,12 @@
-= JavaSqlJaxbAdapters
+= JaxbServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.JaxbServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class JaxbServiceDefault {
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/locale/LanguageProviderDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/locale/LanguageProviderDefault.adoc
index a05dd2e89e..2e2a8352d6 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/locale/LanguageProviderDefault.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= LanguageProviderDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.LanguageProviderDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class LanguageProviderDefault {
+  Optional<Locale> getPreferredLanguage()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/locale/LocaleChoiceProviderDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/locale/LocaleChoiceProviderDefault.adoc
index a05dd2e89e..4f6ea08694 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/locale/LocaleChoiceProviderDefault.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= LocaleChoiceProviderDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.LocaleChoiceProviderDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class LocaleChoiceProviderDefault {
+  List<Locale> getAvailableLocales()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/MenuBarsLoaderServiceDefault.adoc
similarity index 68%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/MenuBarsLoaderServiceDefault.adoc
index a05dd2e89e..de46086c2f 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/MenuBarsLoaderServiceDefault.adoc
@@ -1,22 +1,16 @@
-= JavaSqlJaxbAdapters
+= MenuBarsLoaderServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.MenuBarsLoaderServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class MenuBarsLoaderServiceDefault {
+  MenuBarsLoaderServiceDefault(MetaModelContext mmc)
+  MenuBarsLoaderServiceDefault(AtomicReference<AbstractResource> 
menubarsLayoutResourceRef, CommonMimeType formatUnderTest)
+  boolean supportsReloading()
+  Optional<T> menuBars(MenuBarsMarshallerService<T> marshaller)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/bootstrap/MenuBarsMarshallerServiceBootstrap.adoc
similarity index 68%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/bootstrap/MenuBarsMarshallerServiceBootstrap.adoc
index a05dd2e89e..1bcc16e249 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/bootstrap/MenuBarsMarshallerServiceBootstrap.adoc
@@ -1,22 +1,16 @@
-= JavaSqlJaxbAdapters
+= MenuBarsMarshallerServiceBootstrap
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.MenuBarsMarshallerServiceBootstrap.java
 ----
-class JavaSqlJaxbAdapters {
+class MenuBarsMarshallerServiceBootstrap {
+  MenuBarsMarshallerServiceBootstrap(JaxbService jaxbService)
+  Class<BSMenuBars> supportedClass()
+  String marshal(BSMenuBars menuBars, CommonMimeType format)
+  Try<BSMenuBars> unmarshal(String layoutFileContent, CommonMimeType format)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.adoc
similarity index 66%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.adoc
index a05dd2e89e..de131c09ba 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/menubars/bootstrap/MenuBarsServiceBootstrap.adoc
@@ -1,22 +1,19 @@
-= JavaSqlJaxbAdapters
+= MenuBarsServiceBootstrap
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.MenuBarsServiceBootstrap.java
 ----
-class JavaSqlJaxbAdapters {
+class MenuBarsServiceBootstrap {
+  public static final String MB3_TNS;
+  public static final String MB3_SCHEMA_LOCATION;
+  public static final String COMPONENT_TNS;
+  public static final String COMPONENT_SCHEMA_LOCATION;
+  public static final String LINKS_TNS;
+  public static final String LINKS_SCHEMA_LOCATION;
+  BSMenuBars menuBars(Type type)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/message/MessageServiceDefault.adoc
similarity index 50%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/message/MessageServiceDefault.adoc
index a05dd2e89e..c4b69b9e6c 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/message/MessageServiceDefault.adoc
@@ -1,22 +1,23 @@
-= JavaSqlJaxbAdapters
+= MessageServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.MessageServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class MessageServiceDefault {
+  void onMetamodelLoaded()
+  void informUser(String message)
+  String informUser(TranslatableString message, Class<?> contextClass, String 
contextMethod)
+  String informUser(TranslatableString message, TranslationContext 
translationContext)
+  void warnUser(String message)
+  String warnUser(TranslatableString message, Class<?> contextClass, String 
contextMethod)
+  String warnUser(TranslatableString message, TranslationContext 
translationContext)
+  void raiseError(String message)
+  void setError(String message)
+  String raiseError(TranslatableString message, Class<?> contextClass, String 
contextMethod)
+  String raiseError(TranslatableString message, TranslationContext 
translationContext)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/CommandPublisherDefault.adoc
similarity index 72%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/CommandPublisherDefault.adoc
index a05dd2e89e..2f05e94186 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/CommandPublisherDefault.adoc
@@ -1,22 +1,16 @@
-= JavaSqlJaxbAdapters
+= CommandPublisherDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.CommandPublisherDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class CommandPublisherDefault {
+  CommandPublisherDefault(List<CommandSubscriber> subscribers, 
Provider<InteractionLayerTracker> interactionServiceProvider)
+  void ready(Command command)
+  void start(Command command)
+  void complete(Command command)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/EntityChangesPublisherDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/EntityChangesPublisherDefault.adoc
index a05dd2e89e..0ac5392e9f 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/EntityChangesPublisherDefault.adoc
@@ -1,22 +1,14 @@
-= JavaSqlJaxbAdapters
+= EntityChangesPublisherDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.EntityChangesPublisherDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class EntityChangesPublisherDefault {
+  void init()
+  void publishChangingEntities(HasEnlistedEntityChanges 
hasEnlistedEntityChanges)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/EntityPropertyChangePublisherDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/EntityPropertyChangePublisherDefault.adoc
index a05dd2e89e..9a77078466 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/EntityPropertyChangePublisherDefault.adoc
@@ -1,22 +1,14 @@
-= JavaSqlJaxbAdapters
+= EntityPropertyChangePublisherDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.EntityPropertyChangePublisherDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class EntityPropertyChangePublisherDefault {
+  void init()
+  void publishChangedProperties()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/ExecutionPublisherDefault.adoc
similarity index 73%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/ExecutionPublisherDefault.adoc
index a05dd2e89e..ddbaf91242 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/publish/ExecutionPublisherDefault.adoc
@@ -1,22 +1,17 @@
-= JavaSqlJaxbAdapters
+= ExecutionPublisherDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.ExecutionPublisherDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class ExecutionPublisherDefault {
+  void init()
+  void destroy()
+  void publishActionInvocation(Execution<?, ?> execution)
+  void publishPropertyEdit(Execution<?, ?> execution)
+  T withPublishingSuppressed(Supplier<T> block)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.adoc
similarity index 64%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.adoc
index a05dd2e89e..6045ecce42 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.adoc
@@ -1,22 +1,16 @@
-= JavaSqlJaxbAdapters
+= ExceptionRecognizerForDataAccessException
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
+Translates _DataAccessException_ (s) to 
xref:refguide:applib:index/services/exceprecog/Recognition.adoc[Recognition] 
(s), unless disabled via _CausewayConfiguration_ .
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.ExceptionRecognizerForDataAccessException.java
 ----
-class JavaSqlJaxbAdapters {
+class ExceptionRecognizerForDataAccessException {
+  ExceptionRecognizerForDataAccessException(CausewayConfiguration conf)
+  Optional<Recognition> recognize(Throwable ex)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/routing/RoutingServiceDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/routing/RoutingServiceDefault.adoc
index a05dd2e89e..97d3d016e2 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/routing/RoutingServiceDefault.adoc
@@ -1,22 +1,14 @@
-= JavaSqlJaxbAdapters
+= RoutingServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.RoutingServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class RoutingServiceDefault {
+  boolean canRoute(Object original)
+  Object route(Object original)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/scratchpad/ScratchpadDefault.adoc
similarity index 53%
copy from 
antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/scratchpad/ScratchpadDefault.adoc
index 11ff0e040f..dd5de02d82 100644
--- 
a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/applib/util/JsonNodeUtils.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/scratchpad/ScratchpadDefault.adoc
@@ -1,41 +1,47 @@
-= JsonNodeUtils
+= ScratchpadDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
 == API
 
 [source,java]
-.JsonNodeUtils.java
+.ScratchpadDefault.java
 ----
-class JsonNodeUtils {
-  InputStream asInputStream(JsonNode jsonNode)
-  InputStream asInputStream(JsonRepresentation jsonRepresentation)
-  ObjectNode walkNodeUpTo(ObjectNode node, List<String> keys)     // <.>
+class ScratchpadDefault {
+  Object get(Object key)     // <.>
+  void put(Object key, Object value)     // <.>
+  void destroy()     // <.>
 }
 ----
 
-<.> xref:#walkNodeUpTo_ObjectNode_List[walkNodeUpTo(ObjectNode, List)]
+<.> xref:#get_Object[get(Object)]
 +
 --
-Walks the path, ensuring keys exist and are maps, or creating required maps as 
it goes.
+Obtain user-data, as set by a previous object being acted upon.
+--
+<.> xref:#put_Object_Object[put(Object, Object)]
++
+--
+Set user-data, for the use of a subsequent object being acted upon.
+--
+<.> xref:#destroy_[destroy()]
++
+--
+Clear any user data.
 --
 
 == Members
 
-[#walkNodeUpTo_ObjectNode_List]
-=== walkNodeUpTo(ObjectNode, List)
+[#get_Object]
+=== get(Object)
 
-Walks the path, ensuring keys exist and are maps, or creating required maps as 
it goes.
+Obtain user-data, as set by a previous object being acted upon.
 
-For example, if given a list ("a", "b", "c") and starting with an empty map, 
then will create:
+[#put_Object_Object]
+=== put(Object, Object)
 
-----
+Set user-data, for the use of a subsequent object being acted upon.
 
-{
-  "a": {
-    "b: {
-      "c": {
-      }
-    }
-  }
-}
-----
+[#destroy_]
+=== destroy()
+
+Clear any user data.
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/serializing/SerializingAdapterDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/serializing/SerializingAdapterDefault.adoc
index a05dd2e89e..943fa4cfd5 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/serializing/SerializingAdapterDefault.adoc
@@ -1,22 +1,16 @@
-= JavaSqlJaxbAdapters
+= SerializingAdapterDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
+Default implementation of _SerializingAdapter_ , intended as an 'internal' 
service.
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.SerializingAdapterDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class SerializingAdapterDefault {
+  Serializable write(Object value)
+  T read(Class<T> valueClass, Serializable value)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionIdGenerator.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionIdGenerator.adoc
index a05dd2e89e..9b10ecad5d 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionIdGenerator.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= InteractionIdGenerator
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.InteractionIdGenerator.java
 ----
-class JavaSqlJaxbAdapters {
+interface InteractionIdGenerator {
+  UUID interactionId()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionIdGeneratorDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionIdGeneratorDefault.adoc
index a05dd2e89e..518f897dda 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionIdGeneratorDefault.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= InteractionIdGeneratorDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.InteractionIdGeneratorDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class InteractionIdGeneratorDefault {
+  UUID interactionId()
 }
 ----
 
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
new file mode 100644
index 0000000000..da44175f55
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/session/InteractionServiceDefault.adoc
@@ -0,0 +1,50 @@
+= InteractionServiceDefault
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+Is the factory of 
xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction] s.
+
+== API
+
+[source,java]
+.InteractionServiceDefault.java
+----
+class InteractionServiceDefault {
+  InteractionServiceDefault(MetamodelEventService runtimeEventService, 
SpecificationLoader specificationLoader, ServiceInjector serviceInjector, 
TransactionServiceSpring transactionServiceSpring, ClockService clockService, 
Provider<CommandPublisher> commandPublisherProvider, ConfigurableBeanFactory 
beanFactory, InteractionIdGenerator interactionIdGenerator)
+  void init(ContextRefreshedEvent event)
+  int getInteractionLayerCount()
+  InteractionLayer openInteraction()
+  InteractionLayer openInteraction(InteractionContext interactionContextToUse)
+  void closeInteractionLayers()
+  Optional<InteractionLayer> currentInteractionLayer()
+  boolean isInInteraction()
+  R call(InteractionContext interactionContext, Callable<R> callable)
+  void run(InteractionContext interactionContext, ThrowingRunnable runnable)
+  R callAnonymous(Callable<R> callable)
+  void runAnonymous(ThrowingRunnable runnable)     // <.>
+  Optional<UUID> getInteractionId()
+  void completeAndPublishCurrentCommand()     // <.>
+}
+----
+
+<.> xref:#runAnonymous_ThrowingRunnable[runAnonymous(ThrowingRunnable)]
++
+--
+Variant of _#callAnonymous(Callable)_ that takes a runnable.
+--
+<.> xref:#completeAndPublishCurrentCommand_[completeAndPublishCurrentCommand()]
++
+--
+called by 
xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring]
 , but to be moved.
+--
+
+== Members
+
+[#runAnonymous_ThrowingRunnable]
+=== runAnonymous(ThrowingRunnable)
+
+Variant of _#callAnonymous(Callable)_ that takes a runnable.
+
+[#completeAndPublishCurrentCommand_]
+=== completeAndPublishCurrentCommand()
+
+called by 
xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring]
 , but to be moved.
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/sitemap/SitemapServiceDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/sitemap/SitemapServiceDefault.adoc
index a05dd2e89e..bb02ce27cc 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/sitemap/SitemapServiceDefault.adoc
@@ -1,22 +1,13 @@
-= JavaSqlJaxbAdapters
+= SitemapServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.SitemapServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class SitemapServiceDefault {
+  String toSitemapAdoc(String title)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/user/ImpersonateMenuAdvisorDefault.adoc
similarity index 58%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/user/ImpersonateMenuAdvisorDefault.adoc
index a05dd2e89e..b3211e9b2a 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/user/ImpersonateMenuAdvisorDefault.adoc
@@ -1,22 +1,20 @@
-= JavaSqlJaxbAdapters
+= ImpersonateMenuAdvisorDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
+This default implementation simply returns empty lists.
 
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
+This has the effect that the 
_org.apache.causeway.applib.services.user.ImpersonateMenu_ 's 
_org.apache.causeway.applib.services.user.ImpersonateMenu.impersonateWithRoles#act(String,
 List, String) impersonateWithRoles_ action will be hidden.
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.ImpersonateMenuAdvisorDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class ImpersonateMenuAdvisorDefault {
+  List<String> allUserNames()
+  List<String> allRoleNames()
+  List<String> roleNamesFor(String username)
+  String multiTenancyTokenFor(String username)
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.adoc
similarity index 74%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.adoc
index a05dd2e89e..2708e1a530 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/user/UserCurrentSessionTimeZoneHolderDefault.adoc
@@ -1,22 +1,15 @@
-= JavaSqlJaxbAdapters
+= UserCurrentSessionTimeZoneHolderDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.UserCurrentSessionTimeZoneHolderDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class UserCurrentSessionTimeZoneHolderDefault {
+  void setUserTimeZone(ZoneId zoneId)
+  Optional<ZoneId> getUserTimeZone()
+  void clearUserTimeZone()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/userreg/EmailNotificationServiceDefault.adoc
similarity index 60%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/userreg/EmailNotificationServiceDefault.adoc
index a05dd2e89e..f8ef81a722 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/userreg/EmailNotificationServiceDefault.adoc
@@ -1,22 +1,28 @@
-= JavaSqlJaxbAdapters
+= EmailNotificationServiceDefault
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
-
-----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
-----
-
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.EmailNotificationServiceDefault.java
 ----
-class JavaSqlJaxbAdapters {
+class EmailNotificationServiceDefault {
+  void init()     // <.>
+  boolean isConfigured()
+  boolean send(EmailRegistrationEvent emailRegistrationEvent)
+  boolean send(PasswordResetEvent passwordResetEvent)
 }
 ----
 
+<.> 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/wrapper/WrapperFactoryDefault.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/wrapper/WrapperFactoryDefault.adoc
new file mode 100644
index 0000000000..fe252231be
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/wrapper/WrapperFactoryDefault.adoc
@@ -0,0 +1,27 @@
+= WrapperFactoryDefault
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+== API
+
+[source,java]
+.WrapperFactoryDefault.java
+----
+class WrapperFactoryDefault {
+  void init()
+  void close()
+  T wrap(T domainObject)
+  T wrap(T domainObject, SyncControl syncControl)
+  T wrapMixin(Class<T> mixinClass, Object mixee)
+  T wrapMixin(Class<T> mixinClass, Object mixee, SyncControl syncControl)
+  boolean isWrapper(Object obj)
+  T unwrap(T possibleWrappedDomainObject)
+  T asyncWrap(T domainObject, AsyncControl<R> asyncControl)
+  T asyncWrapMixin(Class<T> mixinClass, Object mixee, AsyncControl<R> 
asyncControl)
+  List<InteractionListener> getListeners()
+  boolean addInteractionListener(InteractionListener listener)
+  boolean removeInteractionListener(InteractionListener listener)
+  void notifyListeners(InteractionEvent interactionEvent)
+  R execute(AsyncCallable<R> asyncCallable)
+}
+----
+
diff --git 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/xmlsnapshot/XmlSnapshotBuilder.adoc
similarity index 61%
copy from 
antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
copy to 
antora/components/refguide-index/modules/core/pages/index/runtimeservices/xmlsnapshot/XmlSnapshotBuilder.adoc
index a05dd2e89e..93819e4374 100644
--- 
a/antora/components/refguide-index/modules/applib/pages/index/jaxb/JavaSqlJaxbAdapters.adoc
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/xmlsnapshot/XmlSnapshotBuilder.adoc
@@ -1,22 +1,27 @@
-= JavaSqlJaxbAdapters
+= XmlSnapshotBuilder
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-Provides JAXB XmlAdapters for java sql temporal types.
-
-Example:
+Builds a _XmlSnapshot_ fluently with a builder:
 
 ----
-
-@XmlElement @XmlJavaTypeAdapter(JavaSqlJaxbAdapters.DateAdapter.class)
-@Getter @Setter private java.sql.Date date;
+XmlSnapshot snapshot = XmlSnapshotBuilder
+    .create(customer)
+    .includePath("placeOfBirth")
+    .includePath("orders/product")
+    .build();
+Element customerAsXml = snapshot.toXml();
 ----
 
 == API
 
 [source,java]
-.JavaSqlJaxbAdapters.java
+.XmlSnapshotBuilder.java
 ----
-class JavaSqlJaxbAdapters {
+class XmlSnapshotBuilder {
+  XmlSnapshotBuilder usingSchema(XmlSchema schema)
+  XmlSnapshotBuilder includePath(String path)
+  XmlSnapshotBuilder includePathAndAnnotation(String path, String annotation)
+  XmlSnapshot build()
 }
 ----
 
diff --git 
a/antora/components/refguide-index/modules/core/pages/index/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.adoc
 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.adoc
new file mode 100644
index 0000000000..3d18de9bb6
--- /dev/null
+++ 
b/antora/components/refguide-index/modules/core/pages/index/runtimeservices/xmlsnapshot/XmlSnapshotServiceDefault.adoc
@@ -0,0 +1,38 @@
+= XmlSnapshotServiceDefault
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
+
+== API
+
+[source,java]
+.XmlSnapshotServiceDefault.java
+----
+class XmlSnapshotServiceDefault {
+  XmlSnapshotServiceDefault(XmlService xmlService, SpecificationLoader 
specificationLoader)
+  XmlSnapshotService.Snapshot snapshotFor(Object domainObject)     // <.>
+  Snapshot.Builder builderFor(Object domainObject)     // <.>
+  T getChildElementValue(Element el, String tagname, Class<T> expectedCls)
+}
+----
+
+<.> xref:#snapshotFor_Object[snapshotFor(Object)]
++
+--
+Creates a simple snapshot of the domain object.
+--
+<.> xref:#builderFor_Object[builderFor(Object)]
++
+--
+Creates a builder that allows a custom snapshot - traversing additional 
associated properties or collections (using 
_org.apache.causeway.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot.Builder#includePath(String)_
 and 
_org.apache.causeway.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot.Builder#includePathAndAnnotation(String,
 String)_ ) - to be created.
+--
+
+== Members
+
+[#snapshotFor_Object]
+=== snapshotFor(Object)
+
+Creates a simple snapshot of the domain object.
+
+[#builderFor_Object]
+=== builderFor(Object)
+
+Creates a builder that allows a custom snapshot - traversing additional 
associated properties or collections (using 
_org.apache.causeway.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot.Builder#includePath(String)_
 and 
_org.apache.causeway.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot.Builder#includePathAndAnnotation(String,
 String)_ ) - to be created.
diff --git 
a/antora/components/refguide-index/modules/extensions/pages/index/layoutloaders/github/CausewayModuleExtLayoutLoadersGithub.adoc
 
b/antora/components/refguide-index/modules/extensions/pages/index/layoutloaders/github/CausewayModuleExtLayoutLoadersGithub.adoc
index 8212c67a35..894dbb8c73 100644
--- 
a/antora/components/refguide-index/modules/extensions/pages/index/layoutloaders/github/CausewayModuleExtLayoutLoadersGithub.adoc
+++ 
b/antora/components/refguide-index/modules/extensions/pages/index/layoutloaders/github/CausewayModuleExtLayoutLoadersGithub.adoc
@@ -42,7 +42,6 @@ Append for example:
 Returns for example:
 
 ----
-
 {
   "total_count": 1,
   "incomplete_results": false,
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 08d6d5104b..109182910c 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
@@ -6,7 +6,6 @@ SecMan fires this event when a new user entity just got 
persisted.
 Users may subscribe to this event in order to apply business logic to the 
newly created user. eg. add default roles
 
 ----
-
 @Component
 public class Listener {
     @EventListener(UserCreatedEvent.class)
diff --git 
a/antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/JdoSupportService.adoc
 
b/antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/JdoSupportService.adoc
index 6151a5a570..e6b8c94f43 100644
--- 
a/antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/JdoSupportService.adoc
+++ 
b/antora/components/refguide-index/modules/persistence/pages/index/jdo/applib/services/JdoSupportService.adoc
@@ -90,7 +90,6 @@ To perform the most common use-case of executing a 
(type-safe) query against the
 Typical usage:
 
 ----
-
          final QToDoItem q = QToDoItem.candidate();
          return executeQuery(ToDoItem.class,
                              q.atPath.eq(atPath).and(
@@ -107,7 +106,6 @@ To perform a common use-case of executing a (type-safe) 
query against the specif
 Typical usage:
 
 ----
-
          final QToDoItem q = QToDoItem.candidate();
          return executeQueryUnique(ToDoItem.class,
                              q.atPath.eq(atPath).and(
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 1d982f98d1..e1735384b6 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,7 +12,6 @@ This class provides support for an alternative approach, 
where the Causeway xref
 Example usage:
 
 ----
-
     @Embedded
     private BlobJpaEmbeddable pdf;
 
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 18df8ffaf9..f9b5ea534a 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,7 +12,6 @@ This class provides support for an alternative approach, 
where the Causeway xref
 Example usage:
 
 ----
-
     @Embedded
     private ClobJpaEmbeddable xml;
 
diff --git 
a/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/annotation/InteractAs.adoc
 
b/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/annotation/InteractAs.adoc
index 9e3a9e0a5c..561fdc1ee6 100644
--- 
a/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/annotation/InteractAs.adoc
+++ 
b/antora/components/refguide-index/modules/testing/pages/index/integtestsupport/applib/annotation/InteractAs.adoc
@@ -6,7 +6,6 @@ Offers an alternative to 
xref:refguide:applib:index/services/iactnlayer/Interact
 Example:
 
 ----
-
 @Test
 @InteractAs(
     userName = "sven",
diff --git 
a/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/jmocking/JUnitRuleMockery2.adoc
 
b/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/jmocking/JUnitRuleMockery2.adoc
index c6a10cf6b6..495c93adb4 100644
--- 
a/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/jmocking/JUnitRuleMockery2.adoc
+++ 
b/antora/components/refguide-index/modules/testing/pages/index/unittestsupport/applib/jmocking/JUnitRuleMockery2.adoc
@@ -4,7 +4,6 @@
 Use as a `@Rule` , meaning that the `@RunWith(JMock.class)` can be ignored.
 
 ----
-
 public class MyTest {
 
     @Rule
diff --git 
a/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/CausewayViewerGraphqlIntegTestAbstract.adoc
 
b/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/CausewayViewerGraphqlIntegTestAbstract.adoc
index d8220694b0..16e03f6ae0 100644
--- 
a/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/CausewayViewerGraphqlIntegTestAbstract.adoc
+++ 
b/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/CausewayViewerGraphqlIntegTestAbstract.adoc
@@ -8,7 +8,6 @@ Subclass and _Import_ the Spring 
_org.springframework.context.annotation.Configu
 Write tests as queries with a `._.gql` suffix (or specify a different suffix 
through the constructor). Then override the _#each()_ method trivially:
 
 ----
-
     _@_ TestFactory
     public Iterable each() throws IOException, URISyntaxException {
         return super.each();
diff --git 
a/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/schema/PrintSchemaIntegTestAbstract.adoc
 
b/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/schema/PrintSchemaIntegTestAbstract.adoc
index 7d1e1b4bae..c9716086d2 100644
--- 
a/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/schema/PrintSchemaIntegTestAbstract.adoc
+++ 
b/antora/components/refguide-index/modules/viewer/pages/index/graphql/viewer/testsupport/schema/PrintSchemaIntegTestAbstract.adoc
@@ -10,7 +10,6 @@ If the 
_org.apache.causeway.core.config.CausewayConfiguration.Viewer.Graphql.Api
 For example:
 
 ----
-
 import static 
org.apache.causeway.core.config.CausewayConfiguration.Viewer.Graphql;
 
 public class PrintSchemaIntegTest extends PrintSchemaIntegTestAbstract {
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
index 11ff0e040f..7956df9a68 100644
--- 
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
@@ -29,7 +29,6 @@ Walks the path, ensuring keys exist and are maps, or creating 
required maps as i
 For example, if given a list ("a", "b", "c") and starting with an empty map, 
then will create:
 
 ----
-
 {
   "a": {
     "b: {
diff --git 
a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/RestfulClient.adoc
 
b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/RestfulClient.adoc
index 100923f195..62ec2b2e68 100644
--- 
a/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/RestfulClient.adoc
+++ 
b/antora/components/refguide-index/modules/viewer/pages/index/restfulobjects/client/RestfulClient.adoc
@@ -6,7 +6,6 @@ Setup the Restful Client with Basic-Auth:Make a Request and 
then digest the Resp
 For example:
 
 ----
-
 val clientConfig = RestfulClientConfig.builder();
     .restfulBaseUrl("http://localhost:8080/helloworld/restful/";)
         .authenticationMode(AuthenticationMode.BASIC)
diff --git a/core/adoc/modules/_overview/pages/about.adoc 
b/core/adoc/modules/_overview/pages/about.adoc
index dc79e2242d..a59bdc205e 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -1220,7 +1220,6 @@ 
o.a.i.core.metamodel.specloader.SpecificationLoaderDefault +
 o.a.i.core.metamodel.valuesemantics.ApplicationFeatureIdValueSemantics +
 o.a.i.core.metamodel.valuesemantics.BigDecimalValueSemantics +
 o.a.i.core.metamodel.valuesemantics.BigIntegerValueSemantics +
-o.a.i.core.metamodel.valuesemantics.BlobValueSemantics +
 o.a.i.core.metamodel.valuesemantics.BookmarkValueSemantics +
 o.a.i.core.metamodel.valuesemantics.BooleanValueSemantics +
 o.a.i.core.metamodel.valuesemantics.BufferedImageValueSemantics +
@@ -1243,6 +1242,7 @@ 
o.a.i.core.metamodel.valuesemantics.PasswordValueSemantics +
 o.a.i.core.metamodel.valuesemantics.ShortValueSemantics +
 o.a.i.core.metamodel.valuesemantics.StringValueSemantics +
 o.a.i.core.metamodel.valuesemantics.TreeNodeValueSemantics +
+o.a.i.core.metamodel.valuesemantics.TreePathValueSemantics +
 o.a.i.core.metamodel.valuesemantics.URLValueSemantics +
 o.a.i.core.metamodel.valuesemantics.UUIDValueSemantics +
 o.a.i.core.metamodel.valuesemantics.temporal.LocalDateTimeValueSemantics +
@@ -1366,7 +1366,7 @@ org.springframework:spring-context-support:jar:<managed> +
 
 .Document Index Entries
 ****
-xref:refguide:core:index/runtimeservices/publish/LifecycleCallbackNotifier.adoc[LifecycleCallbackNotifier],
 
xref:refguide:core:index/runtimeservices/publish/ObjectLifecyclePublisherDefault.adoc[ObjectLifecyclePublisherDefault],
 
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: [...]
+xref:refguide:core:index/runtimeservices/bookmarks/BookmarkServiceDefault.adoc[BookmarkServiceDefault],
 
xref:refguide:core:index/runtimeservices/command/CommandDtoFactoryDefault.adoc[CommandDtoFactoryDefault],
 
xref:refguide:core:index/runtimeservices/command/CommandExecutorServiceDefault.adoc[CommandExecutorServiceDefault],
 
xref:refguide:core:index/runtimeservices/command/SchemaValueMarshallerDefault.adoc[SchemaValueMarshallerDefault],
 xref:refguide:core:index/runtimeservices/email/Email [...]
 ****
 
 |Apache Causeway Core - Security
@@ -5622,6 +5622,7 @@ 
o.a.i.extensions.commandlog.applib.dom.CommandLogEntry$TableColumnOrderDefault +
 o.a.i.extensions.commandlog.applib.fakescheduler.FakeScheduler +
 o.a.i.extensions.commandlog.applib.job.BackgroundCommandsJobControl +
 o.a.i.extensions.commandlog.applib.job.RunBackgroundCommandsJob +
+o.a.i.extensions.commandlog.applib.spi.RunBackgroundCommandsJobListener$Noop +
 o.a.i.extensions.commandlog.applib.subscriber.CommandSubscriberForCommandLog +
 ****
 

Reply via email to