You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/08/21 19:55:55 UTC

[isis] 02/04: ISIS-1810: updates for 2.0.0-M1 docs

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

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

commit ee5d74712e71bcdc25fb50511c87d80ae3ed91ea
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Aug 14 00:07:40 2018 +0200

    ISIS-1810: updates for 2.0.0-M1 docs
    
    use absolute links for migration and release notes so that they don't refer to invalid docs in future
    expunge mention of DomainObjectContainer
    go through ISIS-1742, make sure no doc references to removed stuff (DOC, but also AuditingService, PublishingService and a few others)
---
 .../asciidoc/guides/dg/_dg_asciidoc-templates.adoc |   6 +-
 .../guides/rgant/_rgant-Action_command.adoc        |   3 +-
 .../_rgant-DomainObjectLayout_cssClassUiEvent.adoc |  51 +++---
 .../_rgant-DomainObjectLayout_iconUiEvent.adoc     |  48 +++---
 .../_rgant-DomainObject_createdLifecycleEvent.adoc |  50 +++---
 .../asciidoc/guides/rgant/_rgant-HomePage.adoc     |   4 +-
 .../main/asciidoc/guides/rgant/_rgant-Inject.adoc  |  48 +++---
 .../guides/rgant/_rgant-PostConstruct.adoc         |  36 +---
 .../asciidoc/guides/rgant/_rgant-PrimaryKey.adoc   |   8 +-
 ...rgcms_classes_contributee_HasTransactionId.adoc |   2 +-
 ...gcms_classes_domainevent_ActionDomainEvent.adoc |   3 -
 .../rgcms/_rgcms_classes_lifecycleevent.adoc       |  16 +-
 ..._classes_lifecycleevent_ObjectCreatedEvent.adoc |  11 +-
 ...lasses_lifecycleevent_ObjectPersistedEvent.adoc |  10 +-
 ...asses_lifecycleevent_ObjectPersistingEvent.adoc |  11 +-
 ...classes_lifecycleevent_ObjectRemovingEvent.adoc |  10 +-
 ..._classes_lifecycleevent_ObjectUpdatedEvent.adoc |   9 +-
 ...classes_lifecycleevent_ObjectUpdatingEvent.adoc |  10 +-
 .../guides/rgcms/_rgcms_classes_super.adoc         |  29 +---
 ...gcms_classes_super_AbstractContainedObject.adoc |  33 ----
 .../_rgcms_classes_super_AbstractDomainObject.adoc |  12 --
 ...classes_super_AbstractFactoryAndRepository.adoc |  14 --
 .../_rgcms_classes_super_AbstractService.adoc      |   5 +-
 .../_rgcms_classes_super_AbstractViewModel.adoc    |   5 +-
 .../rgcms/_rgcms_classes_super_FixtureScript.adoc  |   3 +-
 .../guides/rgcms/_rgcms_methods_lifecycle.adoc     |  48 +-----
 .../rgcms/_rgcms_methods_lifecycle_created.adoc    |   2 +-
 .../rgcms/_rgcms_methods_prefixes_default.adoc     |  16 +-
 .../rgcms/_rgcms_methods_reserved_disable.adoc     |  12 +-
 ..._persistence-layer_AuditingServiceInternal.adoc |   8 +-
 ...stence-layer_ChangedObjectsServiceInternal.adoc |  16 +-
 ...ersistence-layer_PublishingServiceInternal.adoc |  39 ++---
 ...s_presentation-layer_RepresentationService.adoc |  34 ++--
 .../guides/rgsvc/_rgsvc_application-layer-api.adoc |   6 +-
 ...lication-layer-api_ActionInvocationContext.adoc |  15 +-
 ...vc_application-layer-api_BackgroundService.adoc |   7 +-
 ...rgsvc_application-layer-api_CommandContext.adoc |  59 +++----
 ...svc_application-layer-api_DtoMappingHelper.adoc |   2 +-
 ...rgsvc_application-layer-api_WrapperFactory.adoc |   4 +-
 ...vc_bootstrapping-spi_ClassDiscoveryService.adoc |   2 +-
 .../guides/rgsvc/_rgsvc_core-domain-api.adoc       |  17 +-
 .../rgsvc/_rgsvc_core-domain-api_ClockService.adoc |  19 ++-
 ...gsvc_core-domain-api_DomainObjectContainer.adoc |  34 ----
 ..._DomainObjectContainer_object-creation-api.adoc |  25 ---
 ...mainObjectContainer_object-persistence-api.adoc |  52 ------
 ...n-api_DomainObjectContainer_validation-api.adoc |  28 ---
 .../rgsvc/_rgsvc_core-domain-api_Scratchpad.adoc   |   2 -
 .../_rgsvc_integration-api_BookmarkService.adoc    |   2 +-
 .../rgsvc/_rgsvc_integration-api_JaxbService.adoc  |   2 +-
 .../main/asciidoc/guides/rgsvc/_rgsvc_intro.adoc   |   6 +-
 .../asciidoc/guides/rgsvc/_rgsvc_metadata-api.adoc |   2 +-
 .../guides/rgsvc/_rgsvc_persistence-layer-api.adoc |   2 +-
 ...rgsvc_persistence-layer-api_IsisJdoSupport.adoc |  12 +-
 ...rgsvc_persistence-layer-api_MetricsService.adoc |  19 +--
 ...vc_persistence-layer-api_RepositoryService.adoc |   9 +-
 ...rgsvc_persistence-layer-spi_AuditerService.adoc |  41 ++---
 ...gsvc_persistence-layer-spi_AuditingService.adoc |  82 ---------
 ...gsvc_persistence-layer-spi_EventSerializer.adoc |  67 --------
 ...svc_persistence-layer-spi_PublisherService.adoc |  74 +++-----
 ...vc_persistence-layer-spi_PublishingService.adoc | 190 ---------------------
 ...presentation-layer-spi_ExceptionRecognizer.adoc |  34 +++-
 ..._presentation-layer-spi_UrlEncodingService.adoc |  28 ++-
 .../rgsvc/_rgsvc_testing_FixtureScripts.adoc       |   2 +-
 ...d-tips_how-to-handle-void-and-null-results.adoc |   4 +-
 ..._replacing-default-service-implementations.adoc |   2 +-
 .../main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc    |   4 +-
 ...ailable-domain-services_framework-provided.adoc |  15 +-
 ...ugfun_building-blocks_events_domain-events.adoc |  13 +-
 .../main/asciidoc/guides/ugfun/_ugfun_crud.adoc    |   5 -
 ...rogramming-model_mixins_programmatic-usage.adoc |   9 +-
 .../_ugfun_ui-hints_names-and-descriptions.adoc    |   8 +-
 .../guides/ugsec/_ugsec_api-for-applications.adoc  |  11 +-
 ..._ugtst_bdd-spec-support_writing-a-bdd-spec.adoc |   2 +-
 .../ugtst/_ugtst_fixture-scripts_sudo-service.adoc |   2 +-
 ...gtst_fixture-scripts_ticking-clock-fixture.adoc |   2 +-
 .../_ugtst_integ-test-support_wrapper-factory.adoc |  32 ++--
 .../guides/ugvw/_ugvw_layout_annotation-based.adoc |   8 +-
 .../_migration-notes_1.10.0-to-1.11.0.adoc         |  18 +-
 .../_migration-notes_1.11.0-to-1.12.0.adoc         |  30 ++--
 .../_migration-notes_1.12.0-to-1.13.0.adoc         | 142 ++++++---------
 .../_migration-notes_1.13.0-to-1.14.0.adoc         |   2 +-
 .../_migration-notes_1.14.0-to-1.15.0.adoc         |  20 +--
 ...-notes_1.16.0-to-2.0.0-M1_meta-annotations.adoc |  30 ++--
 ...ion-notes_1.16.0-to-2.0.0-M1_other-changes.adoc |   4 +-
 ...tes_1.16.0-to-2.0.0-M1_removed-annotations.adoc | 144 ++++++++--------
 ...-2.0.0-M1_removed-configuration-properties.adoc |   2 +-
 ...ion-notes_1.16.0-to-2.0.0-M1_removed-types.adoc |   4 +-
 ...tes_1.16.0-to-2.0.0-M1_updated-annotations.adoc |  86 +++++-----
 .../_migration-notes_1.7.0-to-1.8.0.adoc           |   4 +-
 ...0-to-1.9.0_bootstrapping-using-AppManifest.adoc |   4 +-
 ...-notes_1.8.0-to-1.9.0_exception-recognizer.adoc |   6 +-
 ...9.0_fixture-scripts-specification-provider.adoc |   4 +-
 ...es_1.8.0-to-1.9.0_specify-all-dom-packages.adoc |   6 +-
 ...tion-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc |   2 +-
 ...gration-notes_1.8.0-to-1.9.0_war-packaging.adoc |   4 +-
 .../_migration-notes_1.9.0-to-1.10.0.adoc          |  10 +-
 .../src/main/asciidoc/pages/tg/tg.adoc             | 126 +++++++++-----
 .../release-notes/_release-notes_1.11.0.adoc       |   2 +-
 .../release-notes/_release-notes_1.12.0.adoc       |  42 ++---
 .../release-notes/_release-notes_1.13.0.adoc       |  16 +-
 .../release-notes/_release-notes_1.14.0.adoc       |   2 +-
 .../release-notes/_release-notes_1.15.0.adoc       |   2 +-
 .../release-notes/_release-notes_1.9.0.adoc        |   2 +-
 .../main/asciidoc/release-notes/release-notes.adoc |  60 +++----
 todo-deprecation-list.txt                          |  61 ++++---
 105 files changed, 846 insertions(+), 1562 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-templates.adoc b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-templates.adoc
index e2a10a1..69f3108 100644
--- a/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-templates.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/dg/_dg_asciidoc-templates.adoc
@@ -265,13 +265,13 @@ for example:
 
 a hyperlink to the "man page" for an (API) domain service within the reference guide for domain services, where:
 
-* `xxx` is the domain service (eg `DomainObjectContainer`)
+* `xxx` is the domain service (eg `RepositoryService`)
 
 for example:
 
-`\xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]`
+`\xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]`
 
-|xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]
+|xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_command.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_command.adoc
index f03d9a8..769a34e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_command.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_command.adoc
@@ -280,7 +280,8 @@ If `command` is `DISABLED` or does not otherwise apply due to the action's decla
 
 For persisted commands, the `commandExecuteIn()` attribute determines whether the `Command` should be executed in the foreground (the default) or executed in the background.
 
-Background execution means that the command is not executed immediately, but is available for a configured xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`] to execute, eg by way of an in-memory scheduler such as Quartz.  See xref:../ugbtb/ugbtb.adoc#_ugbtb_headless-access_BackgroundCommandExecution[here] for further information on this topic.
+Background execution means that the command is not executed immediately, but is available for a configured xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`] to execute, eg by way of an in-memory scheduler such as Quartz.
+See xref:../ugbtb/ugbtb.adoc#_ugbtb_headless-access_BackgroundCommandExecution[here] for further information on this topic.
 
 For example:
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_cssClassUiEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_cssClassUiEvent.adoc
index e6d40b7..86833c6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_cssClassUiEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_cssClassUiEvent.adoc
@@ -5,23 +5,21 @@
 :_imagesdir: images/
 
 
-Whenever a domain object is to be rendered, the framework fires off an CSS class UI event to obtain a CSS class to use
-in any wrapping ``<div>``s and ``<span>``s that render the domain object.  This is as an alternative to implementing
-xref:../rgcms/rgcms.adoc#_rgcms_methods_reserved_cssClass[`cssClass()`] reserved method.  (If `cssClass()` is present, then
-it will take precedence).
+Whenever a domain object is to be rendered, the framework fires off an CSS class UI event to obtain a CSS class to use in any wrapping ``<div>``s and ``<span>``s that render the domain object.
+This is as an alternative to implementing xref:../rgcms/rgcms.adoc#_rgcms_methods_reserved_cssClass[`cssClass()`] reserved method.
+(If `cssClass()` is present, then it will take precedence).
 
-Subscribers subscribe through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and can
-use obtain a reference to the domain object from the event.  From this they can, if they wish, specify a CSS class for
-the domain object using the event's API.
+Subscribers subscribe through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and can use obtain a reference to the domain object from the event.
+From this they can, if they wish, specify a CSS class for the domain object using the event's API.
 
 [NOTE]
 ====
-The feature was originally introduced so that xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated
-xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_view-models[view model]s could be kept as minimal as possible, just defining the data.
+The feature was originally introduced so that xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_view-models[view model]s could be kept as minimal as possible, just defining the data.
 UI events allow subscribers to provide UI hints, while xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_mixins[mixin]s can be used to provide the behaviour.
 ====
 
-By default the event raised is `CssClassUiEvent.Default`. For example:
+By default the event raised is `CssClassUiEvent.Default`.
+For example:
 
 [source,java]
 ----
@@ -31,8 +29,8 @@ public class ToDoItemDto {
 }
 ----
 
-The purpose of the `cssClassUiEvent()` attribute is to allows a custom subclass to be emitted instead.  A similar
-attribute is available for titles and icons.
+The purpose of the `cssClassUiEvent()` attribute is to allows a custom subclass to be emitted instead.
+A similar attribute is available for titles and icons.
 
 For example:
 
@@ -57,7 +55,8 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API
 or (if the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] has been appropriately configured)
-using the link:http://www.axonframework.org/[Axon Framework] API.  The examples below use the Guava API.
+using the link:http://www.axonframework.org/[Axon Framework] API.
+The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
 
@@ -65,7 +64,8 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 ----
 @DomainService(nature=NatureOfService.DOMAIN)
 public class SomeSubscriber extends AbstractSubscriber {
-    @com.google.common.eventbus.Subscribe
+    @org.axonframework.eventhandling.annotation.EventHandler // if using axon
+    @com.google.common.eventbus.Subscribe                    // if using guava
     public void on(CssClassUiEvent ev) {
         if(ev.getSource() instanceof ToDoItemDto) { ... }
     }
@@ -78,7 +78,8 @@ or can be fine-grained (by subscribing to specific event subtypes):
 ----
 @DomainService(nature=NatureOfService.DOMAIN)
 public class SomeSubscriber extends AbstractSubscriber {
-    @com.google.common.eventbus.Subscribe
+    @org.axonframework.eventhandling.annotation.EventHandler // if using axon
+    @com.google.common.eventbus.Subscribe                    // if using guava
     public void on(ToDoItemDto.CssClassUiEvent ev) {
         ...
     }
@@ -87,26 +88,18 @@ public class SomeSubscriber extends AbstractSubscriber {
 
 The subscriber should then use `CssClassUiEvent#setCssClass(...)` to actually specify the CSS class to be used.
 
-[TIP]
-====
-If the AxonFramework is being used, replace `@com.google.common.eventbus.Subscribe` with `@org.axonframework.eventhandling.annotation.EventHandler`.
-====
-
 
 
 
 
 == Default, Doop and Noop events
 
-If the `cssClassUiEvent` attribute is not explicitly specified (is left as its default value, `CssClassUiEvent.Default`),
-then the framework will, by default, post an event.
+If the `cssClassUiEvent` attribute is not explicitly specified (is left as its default value, `CssClassUiEvent.Default`), then the framework will, by default, post an event.
 
-If this is not required, then the `isis.reflector.facet.domainObjectLayoutAnnotation.cssClassUiEvent.postForDefault`
-configuration property can be set to "false"; this will disable posting.
+If this is not required, then the `isis.reflector.facet.domainObjectLayoutAnnotation.cssClassUiEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
 
 On the other hand, if the `cssClassUiEvent` has been explicitly specified to some subclass, then an event will be posted.
-The framework provides `CssClassUiEvent.Doop` as such a subclass, so setting the `cssClassUiEvent` attribute to this class
-will ensure that the event to be posted, irrespective of the configuration property setting.
+The framework provides `CssClassUiEvent.Doop` as such a subclass, so setting the `cssClassUiEvent` attribute to this class will ensure that the event to be posted, irrespective of the configuration property setting.
 
 And, conversely, the framework also provides `CssClassUiEvent.Noop`; if `cssClassUiEvent` attribute is set to this class,
 then no event will be posted.
@@ -118,9 +111,7 @@ then no event will be posted.
 
 == Raising events programmatically
 
-Normally events are only raised for interactions through the UI. However, events can be raised programmatically either
-by calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] API directly, or as a result
-of calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]'s
-`cssClassOf(...)` method.
+Normally events are only raised for interactions through the UI.
+However, events can be raised programmatically either by calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] API directly.
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_iconUiEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_iconUiEvent.adoc
index 233c317..bb76208 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_iconUiEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObjectLayout_iconUiEvent.adoc
@@ -5,24 +5,22 @@
 :_imagesdir: images/
 
 
-Whenever a domain object is to be rendered, the framework fires off an icon UI event to obtain an icon (name) for the
-object (if possible). This is as an alternative to implementing
-xref:../rgcms/rgcms.adoc#_rgcms_methods_reserved_iconName[`iconName()`] reserved method.  (If `iconName()` is present, then
-it will take precedence).
+Whenever a domain object is to be rendered, the framework fires off an icon UI event to obtain an icon (name) for the object (if possible).
+This is as an alternative to implementing xref:../rgcms/rgcms.adoc#_rgcms_methods_reserved_iconName[`iconName()`] reserved method.
+(If `iconName()` is present, then it will take precedence).
 
-Subscribers subscribe through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and can
-use obtain a reference to the domain object from the event.  From this they can, if they wish, specify an icon name for
-the domain object using the event's API.
+Subscribers subscribe through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and can use obtain a reference to the domain object from the event.
+From this they can, if they wish, specify an icon name for the domain object using the event's API.
 
 
 [NOTE]
 ====
-The feature was originally introduced so that xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated
-xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_view-models[view model]s could be kept as minimal as possible, just defining the data.
+The feature was originally introduced so that xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_view-models[view model]s could be kept as minimal as possible, just defining the data.
 UI events allow subscribers to provide UI hints, while xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_mixins[mixin]s can be used to provide the behaviour.
 ====
 
-By default the event raised is `IconUiEvent.Default`. For example:
+By default the event raised is `IconUiEvent.Default`.
+For example:
 
 [source,java]
 ----
@@ -32,8 +30,8 @@ public class ToDoItemDto {
 }
 ----
 
-The purpose of the `iconUiEvent()` attribute is to allows a custom subclass to be emitted instead.  A similar
-attribute is available for titles and CSS classes.
+The purpose of the `iconUiEvent()` attribute is to allows a custom subclass to be emitted instead.
+A similar attribute is available for titles and CSS classes.
 
 For example:
 
@@ -56,9 +54,8 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API
-or (if the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] has been appropriately configured)
-using the link:http://www.axonframework.org/[Axon Framework] API.  The examples below use the Guava API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
 
@@ -66,7 +63,8 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 ----
 @DomainService(nature=NatureOfService.DOMAIN)
 public class SomeSubscriber extends AbstractSubscriber {
-    @com.google.common.eventbus.Subscribe
+    @org.axonframework.eventhandling.annotation.EventHandler // if using axon
+    @com.google.common.eventbus.Subscribe                    // if using guava
     public void on(IconUiEvent ev) {
         if(ev.getSource() instanceof ToDoItemDto) { ... }
     }
@@ -79,7 +77,8 @@ or can be fine-grained (by subscribing to specific event subtypes):
 ----
 @DomainService(nature=NatureOfService.DOMAIN)
 public class SomeSubscriber extends AbstractSubscriber {
-    @com.google.common.eventbus.Subscribe
+    @org.axonframework.eventhandling.annotation.EventHandler // if using axon
+    @com.google.common.eventbus.Subscribe                    // if using guava
     public void on(ToDoItemDto.IconUiEvent ev) {
         ...
     }
@@ -88,20 +87,14 @@ public class SomeSubscriber extends AbstractSubscriber {
 
 The subscriber should then use `IconUiEvent#setIconName(...)` to actually specify the icon name to be used.
 
-[TIP]
-====
-If the AxonFramework is being used, replace `@com.google.common.eventbus.Subscribe` with `@org.axonframework.eventhandling.annotation.EventHandler`.
-====
 
 
 
 == Default, Doop and Noop events
 
-If the `iconUiEvent` attribute is not explicitly specified (is left as its default value, `IconUiEvent.Default`),
-then the framework will, by default, post an event.
+If the `iconUiEvent` attribute is not explicitly specified (is left as its default value, `IconUiEvent.Default`), then the framework will, by default, post an event.
 
-If this is not required, then the `isis.reflector.facet.domainObjectLayoutAnnotation.iconUiEvent.postForDefault`
-configuration property can be set to "false"; this will disable posting.
+If this is not required, then the `isis.reflector.facet.domainObjectLayoutAnnotation.iconUiEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
 
 On the other hand, if the `iconUiEvent` has been explicitly specified to some subclass, then an event will be posted.
 The framework provides `IconUiEvent.Doop` as such a subclass, so setting the `iconUiEvent` attribute to this class
@@ -114,9 +107,8 @@ then no event will be posted.
 
 == Raising events programmatically
 
-Normally events are only raised for interactions through the UI. However, events can be raised programmatically either
-by calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] API directly, or as a result
-of calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]'s
+Normally events are only raised for interactions through the UI.
+However, events can be raised programmatically either by calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] API directly, or as a result of calling the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_TitleService[`TitleService`]'s
 `iconNameOf(...)` method.
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_createdLifecycleEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_createdLifecycleEvent.adoc
index e59e824..97e3808 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_createdLifecycleEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-DomainObject_createdLifecycleEvent.adoc
@@ -5,16 +5,21 @@
 :_imagesdir: images/
 
 
-Whenever a domain object is instantiated or otherwise becomes known to the framework, a "created" lifecycle event is fired.  This is typically when the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]'s xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api[`newTransientInstance()`] is called;
-it will also happen if the object is simply instantiated with `new(...)`, and then the ``ServiceRegistry``'s
-xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`injectServicesInto(...)`] method is called.
+Whenever a domain object is instantiated or otherwise becomes known to the framework, a "created" lifecycle event is fired.
+This is typically when the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`]'s `instantiate()` method is called.
 
-Subscribers subscribe through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and can
-use the event to obtain a reference to the object just created.  The subscriber could then, for example, update the
-object, eg looking up state from some external datastore.
+Subscribers subscribe through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and can use the event to obtain a reference to the object just created.
+The subscriber could then, for example, update the object, eg looking up state from some external datastore.
 
+[TIP]
+====
+It's possible to instantiate objects without firing this lifecycle; just instantiate using its regular constructor, and then use the ``ServiceRegistry``'s
+xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`injectServicesInto(...)`] to manually inject any required domain services.
+====
 
-By default the event raised is `ObjectCreatedEvent.Default`. For example:
+
+By default the event raised is `ObjectCreatedEvent.Default`.
+For example:
 
 [source,java]
 ----
@@ -24,8 +29,8 @@ public class ToDoItemDto {
 }
 ----
 
-The purpose of the `createdLifecycleEvent()` attribute is to allows a custom subclass to be emitted instead.  A similar
-attribute is available for other lifecycle events.
+The purpose of the `createdLifecycleEvent()` attribute is to allows a custom subclass to be emitted instead.
+A similar attribute is available for other lifecycle events.
 
 For example:
 
@@ -48,9 +53,8 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API
-or (if the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] has been appropriately configured)
-using the link:http://www.axonframework.org/[Axon Framework] API.  The examples below use the Guava API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
 
@@ -58,7 +62,8 @@ Subscribers can be either coarse-grained (if they subscribe to the top-level eve
 ----
 @DomainService(nature=NatureOfService.DOMAIN)
 public class SomeSubscriber extends AbstractSubscriber {
-    @com.google.common.eventbus.Subscribe
+    @org.axonframework.eventhandling.annotation.EventHandler // if using axon
+    @com.google.common.eventbus.Subscribe                    // if using guava
     public void on(ObjectCreatedEvent ev) {
         if(ev.getSource() instanceof ToDoItem) { ... }
     }
@@ -71,7 +76,8 @@ or can be fine-grained (by subscribing to specific event subtypes):
 ----
 @DomainService(nature=NatureOfService.DOMAIN)
 public class SomeSubscriber extends AbstractSubscriber {
-    @com.google.common.eventbus.Subscribe
+    @org.axonframework.eventhandling.annotation.EventHandler // if using axon
+    @com.google.common.eventbus.Subscribe                    // if using guava
     public void on(ToDoItem.ObjectCreatedEvent ev) {
         ...
     }
@@ -79,29 +85,19 @@ public class SomeSubscriber extends AbstractSubscriber {
 ----
 
 
-[TIP]
-====
-If the AxonFramework is being used, replace `@com.google.common.eventbus.Subscribe` with `@org.axonframework.eventhandling.annotation.EventHandler`.
-====
-
-
-
 
 
 == Default, Doop and Noop events
 
-If the `createdLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectCreatedEvent.Default`),
-then the framework will, by default, post an event.
+If the `createdLifecycleEvent` attribute is not explicitly specified (is left as its default value, `ObjectCreatedEvent.Default`), then the framework will, by default, post an event.
 
-If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault`
-configuration property can be set to "false"; this will disable posting.
+If this is not required, then the `isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault` configuration property can be set to "false"; this will disable posting.
 
 On the other hand, if the `createdLifecycleEvent` has been explicitly specified to some subclass, then an event will be posted.
 The framework provides `ObjectCreatedEvent.Doop` as such a subclass, so setting the `createdLifecycleEvent` attribute to this class
 will ensure that the event to be posted, irrespective of the configuration property setting.
 
-And, conversely, the framework also provides `ObjectCreatedEvent.Noop`; if `createdLifecycleEvent` attribute is set to this class,
-then no event will be posted.
+And, conversely, the framework also provides `ObjectCreatedEvent.Noop`; if `createdLifecycleEvent` attribute is set to this class, then no event will be posted.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-HomePage.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-HomePage.adoc
index aa08e8a..e069443 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-HomePage.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-HomePage.adoc
@@ -24,10 +24,10 @@ public class ToDoAppDashboardService  {
     )
     @HomePage
     public ToDoAppDashboard lookup() {
-        return container.injectServicesInto(new ToDoAppDashboard());
+        return serviceRegistry.injectServicesInto(new ToDoAppDashboard());
     }
     @Inject
-    private DomainObjectContainer container;
+    ServiceRegistry serviceRegistry;
 }
 ----
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Inject.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Inject.adoc
index c994540..d30022c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Inject.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Inject.adoc
@@ -6,14 +6,16 @@
 
 
 
-Apache Isis automatically injects domain services into other domain services and also into domain objects and view models.  In fact, it also injects domain services into xref:../ugtst/ugtst.adoc#_ugtst_integ-test-support[integration tests] and xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts[fixture scripts].
+Apache Isis automatically injects domain services into other domain services and also into domain objects and view models.
+In fact, it also injects domain services into xref:../ugtst/ugtst.adoc#_ugtst_integ-test-support[integration tests] and xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts[fixture scripts].
 
 [NOTE]
 ====
 One omission: Apache Isis (currently) does not inject services into `o.a.i.applib.spec.Specification` instances (as used by xref:../rgant/rgant.adoc#_rgant-Property_mustSatisfy[`@Property#mustSatisfy()`] and xref:../rgant/rgant.adoc#_rgant-Parameter_mustSatisfy[`@Parameter#mustSatisfy()`] annotations.
 ====
 
-Isis supports several syntaxes for injecting domain services.  The simplest uses the `@javax.inject.Inject` annotation on the field, as defined in link:https://jcp.org/en/jsr/detail?id=330[JSR-330].
+Apache Isis supports several syntaxes for injecting domain services.
+The simplest uses the `@javax.inject.Inject` annotation on the field, as defined in link:https://jcp.org/en/jsr/detail?id=330[JSR-330].
 
 For example:
 
@@ -34,7 +36,7 @@ public class Customer {
 
 == Alternative syntaxes
 
-Isis also supports setter-based injection:
+Apache Isis also supports setter-based injection:
 
 [source,java]
 ----
@@ -60,9 +62,9 @@ Generally we recommend using `@javax.inject.Inject`; it involves less code, and
 
 == Injecting collection of services
 
-It can sometimes be useful to have declared multiple implementations of a particular domain service.  For example,
-you may have a module that defines an SPI service, where multiple other modules might provide implementations of that SPI
- (akin to the chain of responsibility pattern).  To support these scenarios, it is possible to annotate a `List` or `Collection`.
+It can sometimes be useful to have declared multiple implementations of a particular domain service.
+For example, you may have a module that defines an SPI service, where multiple other modules might provide implementations of that SPI (akin to the chain of responsibility pattern).
+To support these scenarios, it is possible to annotate a `List` or `Collection`.
 
 For example, suppose that we provide an SPI service to veto the placing of ``Order``s for certain ``Customer``s:
 
@@ -94,8 +96,7 @@ public class Customer {
 
 [NOTE]
 ====
-An alternative and almost equivalent design would be to publish an event using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and implement the domain services as subscribers to
-the event.
+An alternative and almost equivalent design would be to publish an event using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] and implement the domain services as subscribers to the event.
 This alternative design is used in the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s poly module, for example.
 ====
 
@@ -105,51 +106,42 @@ This alternative design is used in the (non-ASF) link:http://platform.incode.org
 
 == Manually injecting services
 
-Isis performs dependency injection when domain entities are recreated.  It will also perform dependency injection if an object is created through the `DomainObjectContainer`.
+Apache Isis performs dependency injection when domain entities are recreated.
+It will also perform dependency injection if an object is created through the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`].
 
 For example, to create a new (transient) domain object, the idiom is:
 
 [source,java]
 ----
-Customer cust = container.newTransientInstance(Customer.class);  <1>
+Customer cust = repositoryService.instantiate(Customer.class);  <1>
 // initialize state of "cust"
-container.persist(cust);
+repositoryService.persist(cust);
 ----
-<1> where `container` is an instance of xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
 
-View models are created similarly:
+View models are created identically:
 
 [source,java]
 ----
-ToDoAppDashboard dashboard = container.newViewModelInstance(ToDoAppDashboard.class);
+ToDoAppDashboard dashboard = repositoryService.instantiate(ToDoAppDashboard.class);
 ----
 
 
-If you prefer, though, you can simply instantiate domain objects using "new" and then inject domain services manually:
+If you prefer, though, you can simply instantiate domain objects using "new" and then inject domain services manually using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ServiceRegistry[`ServiceRegistry`]:
 
 
 [source,java]
 ----
 Customer cust = new Customer();
-container.injectServicesInto(cust);
+serviceRegistry.injectServicesInto(cust);
 // initialize state of "cust"
-container.persist(cust);
+repositoryService.persist(cust);
 ----
 
 
-or if you prefer:
-
-[source,java]
-----
-Customer cust = container.injectServicesInto(new Customer());
-// initialize state of "cust"
-container.persist(cust);
-----
-
 
 [NOTE]
 ====
-There is one subtle difference between using `DomainObjectContainer#newTransientInstance(...)` and `DomainObjectContainer#injectServicesInto(...)`, in that with the former Apache Isis will automatically initialize all fields to their default values.
+Note that using either `FactoryService#instantiate(...)` or `RepositoryService#instantiate(...)` will also automatically initialize all fields to their default values, and will also fire a "created" lifecycle event.
 
-This isn't a particular useful feature (and indeed can sometimes be rather confusing) so you may well wish to standardize on using `injectServicesInto(...)` throughout.
+Neither of these are particularly useful (and indeed can sometimes be rather confusing) so you may well wish to standardize on using `injectServicesInto(...)` throughout.
 ====
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PostConstruct.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PostConstruct.adoc
index 6717df7..b8db0d3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PostConstruct.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PostConstruct.adoc
@@ -21,7 +21,8 @@ public void init() { ... }     <2>
 <1> It is not necessary to annotate the method with xref:../rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
 <2> the method can have any name, but must have `public` visibility.
 
-In the form shown above the method accepts no arguments.  Alternatively - for domain services only, not view models - the method can accept a parameter of type `Map<String,String>`:
+In the form shown above the method accepts no arguments.
+Alternatively - for domain services only, not view models - the method can accept a parameter of type `Map<String,String>`:
 
 [source,java]
 ----
@@ -29,40 +30,15 @@ In the form shown above the method accepts no arguments.  Alternatively - for do
 @Programmatic
 public void init(Map<String,String> properties) { ... }
 ----
-Isis uses argument to pass in the configuration properties read from all xref:../rgcfg/rgcfg.adoc#_rgcfg_configuration-files[configuration files]:
+Apache Isis uses argument to pass in the configuration properties read from all xref:../rgcfg/rgcfg.adoc#_rgcfg_configuration-files[configuration files]:
 
 [TIP]
 ====
-Alternatively, you could inject xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] into the service and read configuration properties using `DomainObjectContainer#getProperty(...)` and related methods.  Note that when using this latter API only those configuration properties prefixes `application.` key are provided.
+Alternatively, you could inject xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ConfigurationService[`ConfigurationService`] into the service and read configuration properties using `ConfigurationService#getProperty(...)` and related methods.
+However, be aware when using this latter API that only those configuration properties keys with an `application.` prefix are provided.
 ====
 
-A common use case is for domain services that interact with the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`].  For example:
-
-[source,java]
-----
-@DomainService(nature=NatureOfService.DOMAIN)
-public class MySubscribingService {
-    @PostConstruct
-    public void postConstruct() {
-        eventBusService.register(this);
-    }
-    @PreDestroy
-    public void preDestroy() {
-        eventBusService.unregister(this);
-    }
-    ...
-    @javax.inject.Inject
-    EventBusService eventBusService;
-}
-----
-
-[TIP]
-====
-In this particular use case, it is generally simpler to just subclass from xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[`AbstractSubscriber`].
-====
-
-
-Other use cases include obtaining connections to external datasources, eg subscribing to an ActiveMQ router, say, or initializing/cleaning up a background scheduler such as Quartz.
+Use cases include obtaining connections to external datasources, eg subscribing to an ActiveMQ router, say, or initializing/cleaning up a background scheduler such as Quartz.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PrimaryKey.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PrimaryKey.adoc
index 064c8dc..d8911bb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PrimaryKey.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PrimaryKey.adoc
@@ -8,12 +8,14 @@
 
 The `@javax.jdo.annotation.PrimaryKey` annotation is used by JDO/DataNucleus to indicate that a property is used as the primary key for an entity with application-managed identity.
 
-Apache Isis also uses this annotation in a very minimal way: to ensure that the framework's own logic to initialize newly instantiated objects (eg using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer#newTransientInstance(...)`] does not touch the primary key, and also to ensure that the primary key property is always disabled (read-only).
+Apache Isis also uses this annotation in a very minimal way: to ensure that the framework's own logic to initialize newly instantiated objects (eg using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#instantiate(...)`] does not touch the primary key, and also to ensure that the primary key property is always disabled (read-only).
 
 [NOTE]
 ====
-Isis parses the `@NotPersistent` annotation from the Java source code; it does not query the JDO metamodel.  This means that it the `@NotPersistent` annotation must be used rather than the equivalent `<field>` link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/application_identity.html[XML metadata].
+Isis parses the `@NotPersistent` annotation from the Java source code; it does not query the JDO metamodel.
+This means that it the `@NotPersistent` annotation must be used rather than the equivalent `<field>` link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/application_identity.html[XML metadata].
 
-Moreover, while JDO/DataNucleus will recognize annotations on either the field or the getter method, Apache Isis (currently) only inspects the getter method.  Therefore ensure that the annotation is placed there.
+Moreover, while JDO/DataNucleus will recognize annotations on either the field or the getter method, Apache Isis (currently) only inspects the getter method.
+Therefore ensure that the annotation is placed there.
 ====
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
index 151c13d..44ac2a8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_contributee_HasTransactionId.adoc
@@ -25,7 +25,7 @@ public interface HasTransactionId {
 <1> unique identifier (a GUID) of this request/interaction.
 
 
-Modules in the (non-ASF) link:http://platform.incode.org[Incode Platform^] that either have domain entity that implement and/or services that contribute this interface are:
+Modules in the (non-ASF) link:http://platform.incode.org[Incode Platform^] that have domain entity/ies that implement this interface, and/or services that contribute this interface are:
 
 * audit module: `AuditEntry` entity, `AuditingServiceContributions` service
 * command module: `CommandJdo` entity, `CommandServiceJdoContributions` service
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_domainevent_ActionDomainEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_domainevent_ActionDomainEvent.adoc
index 3a1b1d0..f649c49 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_domainevent_ActionDomainEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_domainevent_ActionDomainEvent.adoc
@@ -10,11 +10,8 @@ Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_domainevent_AbstractDomainEv
 The class has a number of responsibilities (in addition to those it inherits):
 
 * capture the target object being interacted with
-
 * capture the arguments for each of the action's parameters
-
 * provide selected metadata about the action parameters from the metamodel (names, types)
-
 * link back to the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_CommandContext[`CommandContext`] service's `Command` object
 
 The class itself is instantiated automatically by the framework whenever interacting with a rendered object's action.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent.adoc
index e199a97..572eb7a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent.adoc
@@ -38,8 +38,8 @@ Impl'n (g: a:)
 ``isis-core-applib``
 |(abstract class). +
 `ObjectCreatedEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is first instantiated using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api[`DomainObjectContainer`]'s
-`#newTransientInstance(...)` method.
+|Broadcast when an object is first instantiated using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`]'s
+`#instantiate(...)` method.
 
 
 |xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_ObjectLoadedDomainEvent[`o.a.i.applib.` +
@@ -59,7 +59,7 @@ Impl'n (g: a:)
 ``isis-core-applib``
 |(abstract class). +
 `ObjectPersistedEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is first saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+|Broadcast when an object is first saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s
 `#persist(...)` method.
 
 
@@ -70,7 +70,7 @@ Impl'n (g: a:)
 ``isis-core-applib``
 |(abstract class). +
 `ObjectPersistingEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is about to be saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+|Broadcast when an object is about to be saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s
 `#persist(...)` method.
 
 
@@ -81,7 +81,7 @@ Impl'n (g: a:)
 ``isis-core-applib``
 |(abstract class). +
 `ObjectRemovingEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is about to be deleted from the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
+|Broadcast when an object is about to be deleted from the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s
 `#remove(...)` method.
 
 
@@ -93,8 +93,7 @@ Impl'n (g: a:)
 |(abstract class). +
 `ObjectUpdatedEvent.Default` is the concrete implementation that is used.
 |Broadcast when an object has just been updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
-`#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
 
 |xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_ObjectUpdatingDomainEvent[`o.a.i.applib.` +
@@ -105,8 +104,7 @@ This is done either explicitly when the current transaction is flushed using the
 |(abstract class). +
 `ObjectUpdatingEvent.Default` is the concrete implementation that is used.
 |Broadcast when an object is about to be updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
-`#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
 
 |===
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectCreatedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectCreatedEvent.adoc
index 402f8a2..5fb4367 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectCreatedEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectCreatedEvent.adoc
@@ -6,13 +6,10 @@
 
 
 
-Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first instantiated using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api[`DomainObjectContainer`]'s
-`#newTransientInstance(...)` method.
+Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first instantiated using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryServuce`]'s
+`#instantiate(...)` method.
+
+`ObjectCreatedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:../rgant/rgant.adoc#_rgant_DomainObject_createdLifecycleEvent[`@DomainObject#createdLifecycleEvent()`].
 
-`ObjectCreatedEvent.Default` is the concrete implementation that is used.
 
-[NOTE]
-====
-In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
-====
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistedEvent.adoc
index 0d902c4..25c845d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistedEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistedEvent.adoc
@@ -5,13 +5,7 @@
 :_imagesdir: images/
 
 
-Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
-`#persist(...)` method.
+Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#persist(...)` method.
 
 
-`ObjectPersistedEvent.Default` is the concrete implementation that is used.
-
-[NOTE]
-====
-In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
-====
+`ObjectPersistedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:../rgant/rgant.adoc#_rgant_DomainObject_persistedLifecycleEvent[`@DomainObject#persistedLifecycleEvent()`].
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistingEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistingEvent.adoc
index 8788715..3f09109 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistingEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectPersistingEvent.adoc
@@ -5,15 +5,8 @@
 :_imagesdir: images/
 
 
-Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
-`#persist(...)` method.
+Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be saved (inserted) into the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#persist(...)` method.
 
 
-`ObjectPersistingEvent.Default` is the concrete implementation that is used.
-
-[NOTE]
-====
-In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
-====
-
+`ObjectPersistingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:../rgant/rgant.adoc#_rgant_DomainObject_persistingLifecycleEvent[`@DomainObject#persistingLifecycleEvent()`].
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectRemovingEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectRemovingEvent.adoc
index 8449260..fbd5a13 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectRemovingEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectRemovingEvent.adoc
@@ -5,14 +5,8 @@
 :_imagesdir: images/
 
 
-Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be deleted from the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s
-`#remove(...)` method.
+Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be deleted from the database using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#remove(...)` method.
 
 
-`ObjectRemovingEvent.Default` is the concrete implementation that is used.
-
-[NOTE]
-====
-In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
-====
+`ObjectRemovingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:../rgant/rgant.adoc#_rgant_DomainObject_removingLifecycleEvent[`@DomainObject#removingLifecycleEvent()`].
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatedEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatedEvent.adoc
index dc91cbf..8fd1759 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatedEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatedEvent.adoc
@@ -7,12 +7,7 @@
 
 
 Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object has just been updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
-`ObjectUpdatedEvent.Default` is the concrete implementation that is used.
-
-[NOTE]
-====
-In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
-====
+`ObjectUpdatedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:../rgant/rgant.adoc#_rgant_DomainObject_updatedLifecycleEvent[`@DomainObject#updatedLifecycleEvent()`].
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatingEvent.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatingEvent.adoc
index 2d46dba..ed59756 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatingEvent.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_lifecycleevent_ObjectUpdatingEvent.adoc
@@ -7,13 +7,7 @@
 
 
 Subclass of xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent_AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+This is done either explicitly when the current transaction is flushed using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
 
-`ObjectUpdatingEvent.Default` is the concrete implementation that is used.
-
-[NOTE]
-====
-In the future this may be generalized to allow arbitrary subclasses to be broadcast, see ISIS-803.
-====
-
+`ObjectUpdatingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:../rgant/rgant.adoc#_rgant_DomainObject_updatingLifecycleEvent[`@DomainObject#updatingLifecycleEvent()`].
\ No newline at end of file
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super.adoc
index e8e231c..7607998 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super.adoc
@@ -20,30 +20,6 @@ Impl'n (g: a:)
 |Notes
 
 
-|xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractContainedObject[`o.a.i.applib.` +
-`AbstractContainedObject`]
-|``o.a.i.core`` +
-``isis-core-applib``
-|(abstract class)
-|
-
-
-|xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractDomainObject[`o.a.i.applib.` +
-`AbstractDomainObject`]
-|``o.a.i.core`` +
-``isis-core-applib``
-|(abstract class)
-|
-
-
-|xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractFactoryAndRepository[`o.a.i.applib.` +
-`AbstractFactoryAndRepository`]
-|``o.a.i.core`` +
-``isis-core-applib``
-|(abstract class)
-|
-
-
 |xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractService[`o.a.i.applib.` +
 `AbstractService`]
 |``o.a.i.core`` +
@@ -83,7 +59,7 @@ Impl'n (g: a:)
 |``o.a.i.core`` +
 ``isis-core-applib``
 |(abstract class). +
-`FixtureScriptsDefault` is a default implementation that is used when the alternative xref:../rgsvc/rgsvc.adoc#_rgsvc_api_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] is provided
+`FixtureScriptsDefault` is a default implementation that is used when the alternative xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] is provided
   (and no other implementation of `FixtureScripts` was found).
 |depends on: +
 `ClassDiscoveryService`
@@ -94,9 +70,6 @@ Impl'n (g: a:)
 
 
 
-include::_rgcms_classes_super_AbstractContainedObject.adoc[leveloffset=+1]
-include::_rgcms_classes_super_AbstractDomainObject.adoc[leveloffset=+1]
-include::_rgcms_classes_super_AbstractFactoryAndRepository.adoc[leveloffset=+1]
 include::_rgcms_classes_super_AbstractService.adoc[leveloffset=+1]
 include::_rgcms_classes_super_AbstractSubscriber.adoc[leveloffset=+1]
 include::_rgcms_classes_super_AbstractViewModel.adoc[leveloffset=+1]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractContainedObject.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractContainedObject.adoc
deleted file mode 100644
index 33aaa64..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractContainedObject.adoc
+++ /dev/null
@@ -1,33 +0,0 @@
-[[_rgcms_classes_super_AbstractContainedObject]]
-= `AbstractContainedObject`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-This class is a convenience superclass for domain objects and services, providing general purpose methods for interacting with the framework.
-These include:
-
-* `allMatches(Query)` - search for all objects matching the specified `Query`. +
-+
-+ Note that this, and other similar methods (eg `firstMatch(...)`, `uniqueMatch(...)`) will automatically flush the
-current transaction.
-
-* `newTransientInstance(Class)` - to create a new instance of an object, with any services injected into it
-
-* `persistIfNotAlready(Object)` - to persist an object +
-+
-In fact, the object is queued up to be persisted, and is only actually persisted either when the transaction commits, or
-when the transaction is flushed (typically when a query is performed).
-
-* `warnUser(String)` - generate a warning to the user
-
-* `getContainer()` - which returns the `DomainObjectContainer`
-
-Each of these methods simply delegates to an equivalent method in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
-
-[TIP]
-====
-In practice we find that there's little to gain from subclassing; it's easier/less obscure to simply inject xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] into a simple pojo class.
-====
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractDomainObject.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractDomainObject.adoc
deleted file mode 100644
index 5198faa..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractDomainObject.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-[[_rgcms_classes_super_AbstractDomainObject]]
-= `AbstractDomainObject`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-This class extends xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractContainedObject[`AbstractContainedObject`], adding in convenience methods for managing the persistence lifecycle of the object instance.
-
-Each of these methods, eg `isPersistent(...)`, delegates to an equivalent method in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
-
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractFactoryAndRepository.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractFactoryAndRepository.adoc
deleted file mode 100644
index 4c24c57..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractFactoryAndRepository.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-[[_rgcms_classes_super_AbstractFactoryAndRepository]]
-= `AbstractFactoryAndRepository`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-This class extends xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractContainedObject[`AbstractContainedObject`].
-Its intent was to be a convenience subclass for services acting as either a repository or a factory, however note that all of the methods that it defines are now deprecated.
-
-Instead, indicate that a service is repository using the xref:../rgant/rgant.adoc#_rgant-DomainService_repositoryFor[`@DomainService#repositoryFor()`] attribute.
-
-
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractService.adoc
index 85bb95a..829afb6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractService.adoc
@@ -4,6 +4,7 @@
 :_basedir: ../../
 :_imagesdir: images/
 
-This class extends xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractContainedObject[`AbstractContainedObject`], adding in an implementation of `getId()` based upon the classes name.
+This class provides an implementation of the optional `getId()` method for domain services, based upon the classes name.
 
-In practice there is little to gain from subclassing; simply inject xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] for broadly equivalent functionality.
+In practice there is little to gain from subclassing.
+Instead annotated with xref:../rgant/rgant.adoc#_rgant_DomainService[`@DomainService`] and specify its xref:../rgant/rgant.adoc#_rgant_DomainService_objectType[`#objectType()`]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractViewModel.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractViewModel.adoc
index 5655d9f..509a67f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractViewModel.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_AbstractViewModel.adoc
@@ -5,12 +5,11 @@
 :_imagesdir: images/
 
 
-This class extends xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractContainedObject[`AbstractContainedObject`], also
-implementing the xref:../rgcms/rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] interface.
+This class simply implements the xref:../rgcms/rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] interface, however the methods are still abstract.
 In and of itself it provides no new behaviour.
 
 [TIP]
 ====
-As an alternative, consider simply annotating the view model class with {@link org.apache.isis.applib.annotation.ViewModel}.
+As an alternative, consider simply annotating the view model class with {@link org.apache.isis.applib.annotation.ViewModel} annotation.
 ====
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_FixtureScript.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_FixtureScript.adoc
index 9ff7a49..bdef596 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_FixtureScript.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_super_FixtureScript.adoc
@@ -14,8 +14,7 @@ The primary method that subclasses must implement is:
 protected abstract void execute(final ExecutionContext executionContext);
 ----
 
-In this method the fixture script can in theory do anything, but in practice it is recommended that it uses injected
-domain services to set up data.
+In this method the fixture script can in theory do anything, but in practice it is recommended that it uses injected domain services to set up data.
 The provided `ExecutionContext` is used to invoke child fixture scripts, and alsocan be used to store references to any created objects (so that the calling test can access these objects/so that they are rendered in the view model).
 
 See the see the xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts[user guide's testing chapter] for further discussion on the use of fixture scripts, in particular xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts_api-and-usage[fixture scripts' API and usage].
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle.adoc
index 82d8235..935b13d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle.adoc
@@ -7,19 +7,16 @@
 
 
 
-The lifecycle callback methods notify a domain entity about its interaction within the persistence lifecycle.  For example, the entity is notified immediately prior to being persisted, or when it is about to be updated.
+The lifecycle callback methods notify a domain entity about its interaction within the persistence lifecycle.
+For example, the entity is notified immediately prior to being persisted, or when it is about to be updated.
 
 [WARNING]
 ====
-Note that these callbacks are fired by Apache Isis rather than JDO.  In the future we may deprecate them because there are better mechanisms available using listeners/subscribers:
-
-* in Isis 1.9.0 and earlier, you may therefore want to consider using the JDO API directly to set up a lifecycle
-listener; see xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_jdo-api[here] for further discussion.
-
-* alternatively, you can use a subscriber for the xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent[lifecycle event]s fired in Isis.
+Note that these callbacks are fired by Apache Isis rather than JDO.
+In the future we may deprecate them because there are better mechanisms available using a subscriber for the xref:../rgcms/rgcms.adoc#_rgcms_classes_lifecycleevent[lifecycle event]s.
 ====
 
-The lifecycle callback methods supported by Isis are:
+The lifecycle callback methods supported by Apache Isis are:
 
 .Lifecycle methods (partial support)
 [cols="1,4a", options="header"]
@@ -29,7 +26,7 @@ The lifecycle callback methods supported by Isis are:
 |Description
 
 |xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_created[`created()`]
-|called when an object has just been created using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`newTransientInstance()`]
+|called when an object has just been created using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#instantiate(..)`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService#instantiate(...)`]
 
 |xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_loaded[`loaded()`]
 |called when a (persistent) object has just been loaded from the object store.
@@ -56,39 +53,6 @@ The lifecycle callback methods supported by Isis are:
 
 
 
-Some lifecycle methods have been deprecated:
-
-.Deprecated lifecycle methods
-[cols="1,4a", options="header"]
-|===
-
-|Method
-|Notes
-
-|`deleted()`
-|Replaced by xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_removed[`removed()`]
-
-|`deleting()`
-|Replaced by xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_removing[`removing()`]
-
-|`loading()`
-|callback for when the (persistent) object is just about to be loaded from the object store. +
-
-[WARNING]
-====
-This method is never called.
-====
-
-|`saved()`
-|Replaced by xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_persisted[`persisted()`]
-
-|`saving()`
-|Replaced by xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_persisting[`persisting()`]
-
-|===
-
-
-
 
 include::_rgcms_methods_lifecycle_created.adoc[leveloffset=+1]
 include::_rgcms_methods_lifecycle_loaded.adoc[leveloffset=+1]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
index 8edafb6..b4dfd26 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_lifecycle_created.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-The `created()` lifecycle callback method is called when an object has just been created using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`newTransientInstance()`]
+The `created()` lifecycle callback method is called when an object has just been created using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService#instantiate(...)`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#instantiate(...)`]
 
 
 [TIP]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_prefixes_default.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_prefixes_default.adoc
index ff06a8d..145d4fa 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_prefixes_default.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_prefixes_default.adoc
@@ -6,9 +6,12 @@
 
 
 
-The `default...()` supporting method is called for action parameters to return the initial argument value.  This may be some sensible default (eg today's date, or 0 or 1), or -- for an action that is modifying the state of an object -- might default to the current value of a corresponding property.
+The `default...()` supporting method is called for action parameters to return the initial argument value.
+This may be some sensible default (eg today's date, or 0 or 1), or -- for an action that is modifying the state of an object -- might default to the current value of a corresponding property.
 
-The method is _also_ called for properties in the case when an object is newly instantiated using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer#newTransientInstance(...)`].  This is a much less common use case.  If a default is not specified then properties are initialized to a default based on their type (eg 0 or `false`).
+The method is _also_ called for properties in the case when an object is newly instantiated using xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService#instantiate(...)`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#instantiate(...)`].
+This is a much less common use case.
+If a default is not specified then properties are initialized to a default based on their type (eg 0 or `false`).
 
 The signature of the supporting method depends on whether it is for an action parameter or a property.
 
@@ -58,7 +61,8 @@ public class ShoppingCartItem {
 
 
 
-Defaults are also supported (of course) for xref:../ugfun/ugfun.adoc#_ugfun_how-tos_contributed-members[contributed actions].  For example, here is a contributed action for updating category/subcategory of the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
+Defaults are also supported (of course) for xref:../ugfun/ugfun.adoc#_ugfun_how-tos_contributed-members[contributed actions].
+For example, here is a contributed action for updating category/subcategory of the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
 
 [source,java]
 ----
@@ -123,7 +127,9 @@ public class ShoppingCartItem {
 
 There are, in fact, two other ways to set properties of a newly instantiated object to default values.
 
-The first is to use the xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_created[`created()`] callback, called by the framework when xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer#newTransientInstance(...)`] is called.  This method is called after any dependencies have been injected into the service.
+The first is to use the xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_created[`created()`] callback, called by the framework when xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService#instantiate(...)`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#instantiate(...)`] is called.
+This method is called after any services have been injected into the domain object.
 
-The second is more straightforward: simply initialize properties in the constructor.  However, this cannot use any injected services as they will not have been initialized.
+The second is more straightforward: simply initialize properties in the constructor.
+However, this cannot use any injected services as they will not have been initialized.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_reserved_disable.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_reserved_disable.adoc
index 24e81f9..ec031d6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_reserved_disable.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_methods_reserved_disable.adoc
@@ -38,7 +38,8 @@ See also the similar methods to xref:../rgcms/rgcms.adoc#_rgcms_methods_reserved
 
 An alternative design -- and one that could be easily argued is actually more flexible -- is to leverage domain events with vetoing subscribers.
 
-With this approach we define, for a given domain class, a base `PropertyDomainEvent`, `CollectionDomainEvent` and `ActionDomainEvent`.  A good pattern is to make these nested static classes.  For example:
+With this approach we define, for a given domain class, a base `PropertyDomainEvent`, `CollectionDomainEvent` and `ActionDomainEvent`.
+A good pattern is to make these nested static classes.  For example:
 
 [source,java]
 ----
@@ -58,9 +59,7 @@ where in turn:
 public final class ToDoAppDomainModule {
     private ToDoAppDomainModule(){}
     public abstract static class PropertyDomainEvent<S,T>
-            extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> {
-        ...
-    }
+            extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> { }
     ...
 }
 ----
@@ -70,10 +69,7 @@ Then, each property/collection/action emits either these base domain events or t
 [source,java]
 ----
 public class ToDoItem ... {
-    public static class DescriptionDomainEvent
-            extends PropertyDomainEvent<String> {
-        ...
-    }
+    public static class DescriptionDomainEvent extends PropertyDomainEvent<String> { }
     @Property(
         domainEvent = DescriptionDomainEvent.class
     )
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_AuditingServiceInternal.adoc b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_AuditingServiceInternal.adoc
index 8809c21..67e3586 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_AuditingServiceInternal.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_AuditingServiceInternal.adoc
@@ -22,8 +22,7 @@ public class AuditingServiceInternal {
     public void audit();                    // <2>
 }
 ----
-<1> minor performance optimization as to whether any auditing services are actually enabled; checks to see if any
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`] are enabled.
+<1> minor performance optimization as to whether any auditing services are actually enabled; checks to see if any xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`] are enabled.
 <2> uses the xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`] to obtain details of the changed properties, then call the configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`](s).
 
 The service implementation is `o.a.i.c.r.s.auditing.AuditingServiceInternal`.
@@ -32,10 +31,7 @@ The service implementation is `o.a.i.c.r.s.auditing.AuditingServiceInternal`.
 
 == Registering the Service
 
-Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default
-implementation of `AuditingServiceInternal` class is automatically registered (it is annotated with `@DomainService`)
-so no further configuration is required.
+Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the `AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default implementation of `AuditingServiceInternal` class is automatically registered (it is annotated with `@DomainService`) so no further configuration is required.
 
 
 == Related Classes
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_ChangedObjectsServiceInternal.adoc b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_ChangedObjectsServiceInternal.adoc
index 7d42d0f..612b823 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_ChangedObjectsServiceInternal.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_ChangedObjectsServiceInternal.adoc
@@ -5,11 +5,8 @@
 :_imagesdir: images/
 
 
-The `ChangedObjectsServiceInternal` class is an (internal) request-scoped domain service that is
-responsible for collecting the details of all changes to domain objects within an interaction.  This is then used by
-various other  (internal) domain services, notably
-xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_AuditingServiceInternal[`AuditingServiceInternal`] and
-xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_PublishingServiceInternal[`PublishingServiceInternal`].
+The `ChangedObjectsServiceInternal` class is an (internal) request-scoped domain service that is responsible for collecting the details of all changes to domain objects within an interaction.
+This is then used by various other  (internal) domain services, notably xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_AuditingServiceInternal[`AuditingServiceInternal`] and xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_PublishingServiceInternal[`PublishingServiceInternal`].
 
 
 
@@ -55,15 +52,10 @@ The service implementation is `o.a.i.c.r.s.changes.ChangedObjectsServiceInternal
 
 == Registering the Service
 
-Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default
-implementation of `ChangedObjectsServiceInternal` class is automatically registered (it is annotated with `@DomainService`)
-so no further configuration is required.
+Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the `AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default implementation of `ChangedObjectsServiceInternal` class is automatically registered (it is annotated with `@DomainService`) so no further configuration is required.
 
 
 
 == Related Classes
 
-Both the xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_AuditingServiceInternal[`AuditingServiceInternal`] and
-xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_PublishingServiceInternal[`PublishingServiceInternal`] (internal) domain services query
-this object.
+Both the xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_AuditingServiceInternal[`AuditingServiceInternal`] and xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_PublishingServiceInternal[`PublishingServiceInternal`] (internal) domain services query this object.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_PublishingServiceInternal.adoc b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_PublishingServiceInternal.adoc
index 31eba46..d118c6e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_PublishingServiceInternal.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_persistence-layer_PublishingServiceInternal.adoc
@@ -5,17 +5,11 @@
 :_imagesdir: images/
 
 
-The (internal) `PublishingServiceInternal` domain service acts as an internal facade to any
-configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] or (deprecated)
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] domain services.
+The (internal) `PublishingServiceInternal` domain service acts as an internal facade to any configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] domain service(s).
 
 For published action invocations/ property edits, it provides an API for those member executions to call.
 
-For published objects, it provides an API for the framework to call at the end of the interaction; it obtains details
-of the changed objects (from the
-xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`]) and filters them to just
-those objects that are to be published; these are then passed through to any configured `PublisherService` implementations.
-
+For published objects, it provides an API for the framework to call at the end of the interaction; it obtains details of the changed objects (from the xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`]) and filters them to just those objects that are to be published; these are then passed through to any configured `PublisherService` implementations.
 
 
 == SPI and Implementation
@@ -32,16 +26,11 @@ public class PublishingServiceInternal {
     void publishObjects();                          // <3>
 }
 ----
-<1> to publish an action invocation, as represented by the specified member `Execution` parameter and with the
-xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation attribute or equivalent, to any configured
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].  The `Execution` object will be an instance of
-`ActionInvocation` (see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] for details).
-<2> to publish a property edit, as as represented by the specified member `Execution` parameter and with the
-xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] annotation attribute or equivalent, to any
-configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].  The `Execution` object will be an instance
-of `PropertyEdit` (see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] for details).
-<3> to publish all changed objects that are to be published (with the
-xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] annotation attribute or equivalent).
+<1> to publish an action invocation, as represented by the specified member `Execution` parameter and with the xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation attribute or equivalent, to any configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
+The `Execution` object will be an instance of `ActionInvocation` (see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] for details).
+<2> to publish a property edit, as as represented by the specified member `Execution` parameter and with the xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] annotation attribute or equivalent, to any configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
+The `Execution` object will be an instance of `PropertyEdit` (see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] for details).
+<3> to publish all changed objects that are to be published (with the xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] annotation attribute or equivalent).
 
 
 The service implementation is `o.a.i.c.m.s.publishing.PublishingServiceInternal`.
@@ -50,19 +39,11 @@ The service implementation is `o.a.i.c.m.s.publishing.PublishingServiceInternal`
 
 == Registering the Service
 
-Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default
-implementation of `PublishingServiceInternal` class is automatically registered (it is annotated with `@DomainService`)
-so no further configuration is required.
+Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the `AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default implementation of `PublishingServiceInternal` class is automatically registered (it is annotated with `@DomainService`) so no further configuration is required.
 
 
 == Related Classes
 
-The service delegates between the (internal)
-xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`] domain service to the
-configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] and
- xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`].
+The service delegates between the (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`] domain service to the configured xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
 
-The (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_AuditingServiceInternal[`AuditingServiceInternal`] performs a similar
-function for the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`], also collating details of the
-changed objects from `ChangedObjectsServiceInternal`.
+The (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_AuditingServiceInternal[`AuditingServiceInternal`] performs a similar function for the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`], also collating details of the changed objects from `ChangedObjectsServiceInternal`.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_presentation-layer_RepresentationService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_presentation-layer_RepresentationService.adoc
index 0eb19f9..e27e73a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_presentation-layer_RepresentationService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgfis/_rgfis_presentation-layer_RepresentationService.adoc
@@ -9,15 +9,18 @@
 
 The `RepresentationService` is the main plug-in point for the xref:../ugvro/ugvro.adoc#[RestfulObjects viewer] to generate representations.
 
-The default implementation generates representations according to the link:http://restfulobjects.org[Restful Objects spec] v1.0.  However, it also delegates to the xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`] which provides a mechanism for altering representations according to the HTTP `Accept` header.
+The default implementations ultimately generate representations according to the link:http://restfulobjects.org[Restful Objects spec] v1.0.
+However, it also delegates to the xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`] which provides a mechanism for altering representations according to the HTTP `Accept` header.
+This allows more flexible representations to be generated for REST clients that (perhaps through their use of a certain Javascript library, say) expect, or at least works best with, a certain style of representation.
 
-The principal motivation is to allow more flexible representations to be generated for REST clients that (perhaps through their use of a certain Javascript library, say) expect, or at least works best with, a certain style of representation.
-
-In all there are three domain services that can influence the representations generated: this service, xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`]and the xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`].  The diagram below shows how these collaborate:
+In all there are three domain services that can influence the representations generated: this service, xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`] and the xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`].
+The diagram below shows how these collaborate:
 
 image::{_imagesdir}RepresentationService/service-collaborations.png[width="700px",link="{_imagesdir}RepresentationService/service-collaborations.png"]
 
-The `RepresentationServiceForRestfulObjects` is the default implementation of this service; likewise `ContentNegotiationServiceXRoDomainType` is the default implementation of the `ContentNegotiationService`.  If you inspect the source code you'll see that the default implementation of this service's primary responsibility is to generate the default Restful Objects representations.  Therefore, if you what you want to do is to generate a _different _representation then in many cases replac [...]
+The `RepresentationServiceContentNegotiator` is the default implementation of the top-level `RepresentationService`, and it delegates to list of injecting `ContentNegotiationService` services.
+Using a chain of responsibility pattern, it returns the first non-null representation.
+For their part, the implementations of `ContentNegotiationService` use the HTTP Accept header to determine if they should render any representation or just return null.
 
 
 == SPI
@@ -50,11 +53,11 @@ public interface RepresentationService {
     }
 }
 ----
-<1> representation of a single object, as per section 14.4 of the RO spec, v1.0
-<2> representation of a single property of an object, as per section 16.4 of the RO spec v1.0
-<3> representation of a single collection of an object, as per section 17.5 of the RO spec v1.0
-<4> representation of a single action (prompt) of an object, as per section 18.2 of the RO spec v1.0
-<5> representation of the results of a single action invocation, as per section 19.5 of the RO spec v1.0
+<1> representation of a single object, eg as per section 14.4 of the RO spec, v1.0
+<2> representation of a single property of an object, eg as per section 16.4 of the RO spec v1.0
+<3> representation of a single collection of an object, eg as per section 17.5 of the RO spec v1.0
+<4> representation of a single action (prompt) of an object, eg as per section 18.2 of the RO spec v1.0
+<5> representation of the results of a single action invocation, eg as per section 19.5 of the RO spec v1.0
 
 These methods provide:
 
@@ -75,18 +78,15 @@ ie `MemberReprMode`
 
 == Implementation
 
-As discussed in the introduction, the framework provides a default implementation, `o.a.i.v.ro.rendering.service.RepresentationServiceContentNegotiator`.   This delegates to xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`] to generate an alternative representation; but if none is provided then it falls back on generating the representations as defined in the link:http://restfulobjects.org[Restful Objects spec] v1.0.
+As discussed in the introduction, the framework provides a default implementation, `o.a.i.v.ro.rendering.service.RepresentationServiceContentNegotiator`.
+This delegates to xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`] to generate an alternative representation; but if none is provided then it falls back on generating the representations as defined in the link:http://restfulobjects.org[Restful Objects spec] v1.0.
 
-To use an alternative implementation, use
-xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained
-in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
+To use an alternative implementation, use xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
 
 
 == Registering the Services
 
-Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the
-`AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default implementation of `RepresentationService` service is automatically registered and injected (it is annotated with `@DomainService`) so no further configuration is required.
-
+Assuming that the `configuration-and-annotation` services installer is configured (implicit if using the `AppManifest` to xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) then Apache Isis' default implementation of `RepresentationService` service is automatically registered and injected (it is annotated with `@DomainService`) so no further configuration is required.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api.adoc
index 3701e97..e453961 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api.adoc
@@ -100,7 +100,7 @@ represented as the `Interaction` context.
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 |xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_SessionManagementService[`o.a.i.applib.` +
@@ -122,7 +122,7 @@ represented as the `Interaction` context.
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 
@@ -134,7 +134,7 @@ represented as the `Interaction` context.
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_ActionInvocationContext.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_ActionInvocationContext.adoc
index f4404e9..75d5e06 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_ActionInvocationContext.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_ActionInvocationContext.adoc
@@ -5,9 +5,11 @@
 :_imagesdir: images/
 
 
-The `ActionInvocationContext` domain service is a xref:../rgant/rgant.adoc#_rgant-RequestScoped[`@RequestScoped`] service intended to support the implementation of "bulk" actions annotated with xref:../rgant/rgant.adoc#_rgant-Action_invokeOn[`@Action#invokeOn()`].  This allows the user to select multiple objects in a table and then invoke the same action against all of them.
+The `ActionInvocationContext` domain service is a xref:../rgant/rgant.adoc#_rgant-RequestScoped[`@RequestScoped`] service intended to support the implementation of "bulk" actions annotated with xref:../rgant/rgant.adoc#_rgant-Action_invokeOn[`@Action#invokeOn()`].
+This allows the user to select multiple objects in a table and then invoke the same action against all of them.
 
-When an action is invoked in this way, this service allows each object instance to "know where it is" in the collection; it acts a little like an iterator.  In particular, an object can determine if it is the last object to be called, and so can perform special processing, eg to return a summary calculated result.
+When an action is invoked in this way, this service allows each object instance to "know where it is" in the collection; it acts a little like an iterator.
+In particular, an object can determine if it is the last object to be called, and so can perform special processing, eg to return a summary calculated result.
 
 [WARNING]
 ====
@@ -44,11 +46,14 @@ To provide an alternative implementation, subclass and use xref:../rgant/rgant.a
 
 == Usage
 
-For actions that are void or that return null, Apache Isis will return to the list once executed. But for bulk actions that are non-void, Apache Isis will render the returned object/value from the last object invoked (and simply discards the object/value of all actions except the last).
+For actions that are void or that return null, Apache Isis will return to the list once executed.
+But for bulk actions that are non-void, Apache Isis will render the returned object/value from the last object invoked (and simply discards the object/value of all actions except the last).
 
-One idiom is for the domain objects to also use the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_Scratchpad[`Scratchpad`] service to share information, for example to aggregate values. The `ActionInvocationContext#isLast()` method can then be used to determine if all the information has been gathered, and then do something with it (eg derive variance across a range of values, render a graph etc).
+One idiom is for the domain objects to also use the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_Scratchpad[`Scratchpad`] service to share information, for example to aggregate values.
+The `ActionInvocationContext#isLast()` method can then be used to determine if all the information has been gathered, and then do something with it (eg derive variance across a range of values, render a graph etc).
 
-More prosaically, the `ActionInvocationContext` can be used to ensure that the action behaves appropriately depending on how it has been invoked (on a single object and/or a collection) whether it is called in bulk mode or regular mode. Here's a snippet of code from the bulk action in the Isis addon example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF):
+More prosaically, the `ActionInvocationContext` can be used to ensure that the action behaves appropriately depending on how it has been invoked (on a single object and/or a collection) whether it is called in bulk mode or regular mode.
+Here's a snippet of code from the bulk action in the Isis addon example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF):
 
 [source,java]
 ----
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc
index aaa6dfc..318f5c0 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_BackgroundService.adoc
@@ -5,8 +5,7 @@
 :_imagesdir: images/
 
 
-The `BackgroundService2` domain service (and its various supertypes), and also the companion
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService2`] SPI service, enable commands to be persisted such that they may be invoked in the background.
+The `BackgroundService2` domain service (and its various supertypes), and also the companion xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService2`] SPI service, enable commands to be persisted such that they may be invoked in the background.
 
 The `BackgroundService2` is responsible for capturing a memento representing the command in a typesafe way, and persisting it rather than executing it directly.
 
@@ -18,9 +17,7 @@ The persistence delegates the persistence of the memento to an appropriate imple
 One such implementation of `BackgroundCommandService` is provided by (non-ASF) http://github.com/isisaddons/isis-module-command[Isis addons' command] module.
 
 The persisting of commands is only half the story; there needs to be a separate process to read the commands and execute them.
-The `BackgroundCommandExecution` abstract class (discussed
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService_BackgroundCommandExecution[below]) provides infrastructure to do this;
-the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for the persisted (background) ``Command``s.
+The `BackgroundCommandExecution` abstract class (discussed xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService_BackgroundCommandExecution[below]) provides infrastructure to do this; the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for the persisted (background) ``Command``s.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc
index b0d6618..053d1d8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandContext.adoc
@@ -8,20 +8,19 @@
 
 The `CommandContext` service is a xref:../rgant/rgant.adoc#_rgant-RequestScoped[request-scoped] service that reifies the invocation of an action on a domain object into an object itself. This reified information is encapsulated within the `Command` object.
 
-By default, the `Command` is held in-memory only; once the action invocation has completed, the `Command` object is gone. The optional
- supporting xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] enables the implementation of `Command` to be pluggable. With an appropriate implementation (eg as provided by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module's xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`]) the `Command` may then be persisted.
+By default, the `Command` is held in-memory only; once the action invocation has completed, the `Command` object is gone.
+The optional supporting xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] enables the implementation of `Command` to be pluggable.
+With an appropriate implementation (eg as provided by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module's xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`]) the `Command` may then be persisted.
 
 The primary use case for persistent ``Command``s is in support of background commands; they act as a parent to any background commands that can be persisted either explicitly using the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService[`BackgroundService`], or implicitly by way of the xref:../rgant/rgant.adoc#_rgant-Action_command[`@Action#command()`] annotation.
 
 There are a number of related use cases:
 
 * to enable profiling of the running application (which actions are invoked then most often, what is their response time)
-* if a xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] (the latter now deprecated) is configured, they provide better traceability as the `Command` is also correlated with any published events, again through the unique `transactionId` GUID
-* if a xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_AuderService[`AuditerService`] or xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_AuditService[`AuditingService`] (the latter now deprecated) is configured, they provide better audit information, since the `Command` (the 'cause' of an action) can be correlated to the audit records (the "effect" of the action) through the `transactionId` GUID
+* if a xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] is configured, they provide better traceability as the `Command` is also correlated with any published events, again through the unique `transactionId` GUID
+* if a xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_AuderService[`AuditerService`] is configured, they provide better audit information, since the `Command` (the 'cause' of an action) can be correlated to the audit records (the "effect" of the action) through the `transactionId` GUID
 
-However, while persistent ``Command``s _can_ be used for these use cases, it is recommended instead to use the
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] service and persistent implementations of the
-``Interaction`` object, eg as provided by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq module.
+However, while persistent ``Command``s _can_ be used for these use cases, it is recommended instead to use the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] service and persistent implementations of the ``Interaction`` object, eg as provided by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq module.
 
 
 
@@ -31,7 +30,8 @@ xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`Intera
 == Screencast
 
 
-The link:https://www.youtube.com/watch?v=tqXUZkPB3EI[screencast] provides a run-through of the command (profiling) service, auditing service, publishing service. It also shows how commands can be run in the background either explicitly by scheduling through the background service or implicitly by way of a framework annotation.
+The link:https://www.youtube.com/watch?v=tqXUZkPB3EI[screencast] provides a run-through of the command (profiling) service, auditing service, publishing service (note: auditing service has since been replaced by `AuditerService`, and publishing service by `PublisherService`).
+It also shows how commands can be run in the background either explicitly by scheduling through the background service or implicitly by way of a framework annotation.
 
 
 [NOTE]
@@ -153,19 +153,20 @@ public class ToDoItem ... {
 
 When a background command is invoked, the user is returned the command object itself (to provide a handle to the command being invoked).
 
-This requires that an implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] that persists the commands (such as the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module's `CommandService`) is configured. It also requires that a scheduler is configured to execute the background commands, see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`]).
+This requires that an implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] that persists the commands (such as the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module's `CommandService`) is configured.
+It also requires that a scheduler is configured to execute the background commands, see xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`]).
 
 
 
 == Interacting with the services
 
-Typically domain objects will have little need to interact with the `CommandContext` and `Command` directly; what is
-more useful is that these are persisted in support of the various use cases identified above.
+Typically domain objects will have little need to interact with the `CommandContext` and `Command` directly; what is more useful is that these are persisted in support of the various use cases identified above.
 
-One case however where a domain object might want to obtain the `Command` is to determine whether it has been invoked in the foreground, or in the background. It can do this using the `getExecutedIn()` method:
+One case however where a domain object might want to obtain the `Command` is to determine whether it has been invoked in the foreground, or in the background.
+It can do this using the `getExecutedIn()` method:
 
-Although not often needed, this then allows the domain object to access the `Command` object through the
-`CommandContext` service.  To expand th above example:
+Although not often needed, this then allows the domain object to access the `Command` object through the `CommandContext` service.
+To expand th above example:
 
 
 [source,java]
@@ -188,7 +189,8 @@ public class ToDoItem ... {
 
 If run in the background, it might then notify the user (eg by email) if all work is done.
 
-This leads us onto a related point, distinguishing the current effective user vs the originating "real" user. When running in the foreground, the current user can be obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_UserService[`UserService`], using:
+This leads us onto a related point, distinguishing the current effective user vs the originating "real" user.
+When running in the foreground, the current user can be obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_UserService[`UserService`], using:
 
 [source,java]
 ----
@@ -210,21 +212,12 @@ String user = commandContext.getCommand().getUser();
 
 == Related Services
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_CommandContext[`CommandContext`] service is very similar in nature to the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_InteactionContext[`InteactionContext`], in that the
-`Command` object accessed through it is very similar to the `Interaction` object obtained from the `InteractionContext`.
-The principle distinction is that while `Command` represents the __intention__ to invoke an action or edit a property,
-the `Interaction` (and contained ``Execution``s) represents the actual execution.
-
-Most of the time a `Command` will be followed directly by its corresponding `Interaction`.  However, if the `Command`
-is annotated to run in the background (using xref:../rgant/rgant.adoc#_rgant-Action_command[`@Action#commandExecuteIn()`], or
-is explicitly created through the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService[`BackgroundService`], then the actual
-interaction/execution is deferred until some other mechanism invokes the command (eg as described
-xref:../ugbtb/ugbtb.adoc#_ugbtb_headless-access_BackgroundCommandExecution[here]).  The persistence of background commands
-requires a configured xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`]) to actually
-persist such commands for execution.
-
-``Command``s - even if executed in the foreground - can also be persisted by way of the
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`].  Implementations of `CommandService` and
-`BackgroundCommandService` are intended to go together, so that child ``Command``s persistent (to be executed in the
-background) can be associated with their parent ``Command``s (executed in the foreground, with the background `Command`
-created explicitly through the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService[`BackgroundService`]).
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_CommandContext[`CommandContext`] service is very similar in nature to the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`], in that the `Command` object accessed through it is very similar to the `Interaction` object obtained from the `InteractionContext`.
+The principle distinction is that while `Command` represents the __intention__ to invoke an action or edit a property, the `Interaction` (and contained ``Execution``s) represents the actual execution.
+
+Most of the time a `Command` will be followed directly by its corresponding `Interaction`.
+However, if the `Command` is annotated to run in the background (using xref:../rgant/rgant.adoc#_rgant-Action_command[`@Action#commandExecuteIn()`], or is explicitly created through the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService[`BackgroundService`], then the actual interaction/execution is deferred until some other mechanism invokes the command (eg as described xref:../ugbtb/ugbtb.adoc#_ugbtb_headless-access_BackgroundCommandExecution[here]).
+The persistence of background commands requires a configured xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`]) to actually persist such commands for execution.
+
+``Command``s - even if executed in the foreground - can also be persisted by way of the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`].
+Implementations of `CommandService` and `BackgroundCommandService` are intended to go together, so that child ``Command``s persistent (to be executed in the background) can be associated with their parent ``Command``s (executed in the foreground, with the background `Command` created explicitly through the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_BackgroundService[`BackgroundService`]).
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_DtoMappingHelper.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_DtoMappingHelper.adoc
index a52b7b3..6d8f615 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_DtoMappingHelper.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_DtoMappingHelper.adoc
@@ -19,7 +19,7 @@ public class DtoMappingHelper {
     public OidDto oidDtoFor(final Object object) { ... }    // <1>
 }
 ----
-<1> Uses the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BookmarkService[`BookmarkService`] to convert the domain object's internal identifier into a serializable `OidDto`.
+<1> Uses the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_BookmarkService[`BookmarkService`] to convert the domain object's internal identifier into a serializable `OidDto`.
 
 This class (`o.a.i.applib.services.dto.DtoMappingHelper`) is also the implementation.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc
index 0669ee0..9887775 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_WrapperFactory.adoc
@@ -105,7 +105,7 @@ public class CustomerAgent {
         try {
             wrappedOrder.refund();
         } catch(InteractionException ex) {          // <1>
-            container.raiseError(ex.getMessage());  // <2>
+            messageService.raiseError(ex.getMessage());  // <2>
             return;
         }
     }
@@ -113,7 +113,7 @@ public class CustomerAgent {
     @Inject
     WrapperFactory wrapperFactory;
     @Inject
-    DomainObjectContainer container;
+    MessageService messageService;
 }
 ----
 <1> if any constraints on the `Order`'s `refund()` action would be violated, then ...
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
index 208f1f0..14d23e3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_bootstrapping-spi_ClassDiscoveryService.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `ClassDiscoveryService2` service (and its various supertypes) is used to automatically discover subclasses of any given type on the classpath.
+The `ClassDiscoveryService` service (and its various supertypes) is used to automatically discover subclasses of any given type on the classpath.
 The primary use case is to support "convention-over-configuration" designs that work with a minimum of configuration.
 
 This service is used by the xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`] service to automatically locate any xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`] implementations.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc
index f5f5964..0314bec 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api.adoc
@@ -43,18 +43,6 @@ It also lists their corresponding implementation, either a default implementatio
 ``o.a.i.core`` +
 ``isis-core-runtime``
 |The ``ConfigurationServiceMenu`` exposes the ``allConfigurationProperties`` action in the user interface. +
-+
-Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
-
-
-|xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`o.a.i.applib` +
-`DomainObjectContainer`]
-|Miscellaneous functions, eg obtain title of object.
-|`DomainObjectContainer-` +
-`Default` +
-``o.a.i.core`` +
-``isis-core-metamodel``
-|
 
 
 |xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`o.a.i.applib.` +
@@ -78,7 +66,7 @@ Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObje
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 
@@ -103,7 +91,7 @@ Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObje
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 
@@ -122,7 +110,6 @@ Key:
 
 include::_rgsvc_core-domain-api_ClockService.adoc[leveloffset=+1]
 include::_rgsvc_core-domain-api_ConfigurationService.adoc[leveloffset=+1]
-include::_rgsvc_core-domain-api_DomainObjectContainer.adoc[leveloffset=+1]
 include::_rgsvc_core-domain-api_EventBusService.adoc[leveloffset=+1]
 include::_rgsvc_core-domain-api_FactoryService.adoc[leveloffset=+1]
 include::_rgsvc_core-domain-api_Scratchpad.adoc[leveloffset=+1]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_ClockService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_ClockService.adoc
index 1a70ae2..dfcff58 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_ClockService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_ClockService.adoc
@@ -49,14 +49,21 @@ This class (`o.a.i.applib.services.clock.ClockService`) is also the default impl
 
 == Testing Support
 
-The default `ClockService` implementation in fact simply delegates to another class defined in the API, namely the `o.a.i.applib.clock.Clock`, an abstract singleton class.  It is not recommended that your code use the `Clock` directly, but you should understand how this all works:
+The default `ClockService` implementation in fact simply delegates to another class defined in the API, namely the `o.a.i.applib.clock.Clock`, an abstract singleton class.
+It is not recommended that your code use the `Clock` directly, but it's worth understanding how this all works.
 
-* there are two subclasses implementations `Clock`, namely `SystemClock` and `FixtureClock`.
-* the first implementation that is instantiated registers itself as the singleton.
-* if running in xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[production] (server) mode, then (unless another implementation has beaten it to the punch) the framework will instantiate the ``SystemClock`.  Once instantiated this cannot be replaced.
-* if running in xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[prototype] mode, then the framework will instead instantiate `FixtureClock`.  This _can_ be replaced if required.
+If running in xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[production] (server) mode, then the framework will (lazily) instantiate the ``SystemClock` when first required.
+This is a read-only clock that reads from the system time.
+The instance registers itself as the singleton and cannot be replaced.
+
+If running in xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[prototype] mode, though, then the framework will instead instantiate `FixtureClock`.
+This is a read-write clock that will behave as the system clock, unless it is explicitly set using eg, `FixtureClock#setDate(...)` or `FixtureClock#setTime(...)` etc.
+
+Moreover, `FixtureClock` singleton can be replaced with another implementation.
+And, it is sometimes useful to replace it using `TickingFixtureClock`, a subclass that is very similar to `FixtureClock` (in that the time can be changed) but which will continue to tick once set.
+
+To use `TickingFixtureClock` instead of `FixtureClock`, use the `TickingClockFixture` fixture script.
 
-The `FixtureClock` will behave as the system clock, unless its is explicitly set using `FixtureClock#setDate(...)` or `FixtureClock#setTime(...)` and so forth.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer.adoc
deleted file mode 100644
index 0f628ff..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer.adoc
+++ /dev/null
@@ -1,34 +0,0 @@
-[[_rgsvc_core-domain-api_DomainObjectContainer]]
-= `DomainObjectContainer`
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-The `DomainObjectContainer` service provides a set of general purpose functionality for domain objects to call.  Principal amongst these are a generic APIs for querying objects and creating and persisting objects.  In addition, the service provides access to security context (the "current user"), allows information and warning messages to be raised, and various other miscellaneous functions.
-
-
-[NOTE]
-====
-(Almost all of) the methods in this service have been moved out into a number of more fine-grained services: xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`], xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_MessageService[`MessageService`], xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`], xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TitleService[`TitleService`], xref:../rgsvc/rgsvc.adoc#_rgsvc_cor [...]
-====
-
-
-
-
-== APIs
-
-The sections below discuss the functions provided by the service, broken out into categories.
-
-
-include::_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api.adoc[leveloffset=+2]
-include::_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc[leveloffset=+2]
-include::_rgsvc_core-domain-api_DomainObjectContainer_validation-api.adoc[leveloffset=+2]
-
-
-
-
-== Implementation
-
-The core framework provides a default implementation of this service (`o.a.i.core.metamodel.services.container.DomainObjectContainerDefault`).
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api.adoc
deleted file mode 100644
index a4e5413..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api.adoc
+++ /dev/null
@@ -1,25 +0,0 @@
-[[_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api]]
-= Object Creation API
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-The (deprecated) object creation APIs is used to instantiate a view model, specifying its memento.
-
-[source,java]
-----
-public interface DomainObjectContainer {
-
-    <T> T newViewModelInstance(final Class<T> ofType, final String memento);        // <1>
-    ...
-}
-----
-<1> create a new view model, with the specified memento (as per xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AbstractViewModel[ViewModel#viewModelMemento()].
-
-[TIP]
-====
-In general it is easier to just annotate with xref:../rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`], or as a JAXB view model, and let Apache Isis manage the memento automatically.
-====
-
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc
deleted file mode 100644
index e19e637..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc
+++ /dev/null
@@ -1,52 +0,0 @@
-[[_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api]]
-= Object Persistence API
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-
-
-The (deprecated) persistence API is used to persist newly created objects (as per xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api[`#newTransientInstance(...)`], above and to delete (remove) objects that are persistent.
-
-[TIP]
-====
-Instead, use xref:rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] API.
-====
-
-Note that there is no API for updating existing objects; the framework (or rather, JDO/DataNucleus) performs object dirty tracking and so any objects that are modified in the course of a request will be automatically updated).
-
-
-
-[source,java]
-----
-public interface DomainObjectContainer {
-
-    boolean isViewModel(Object domainObject);           // <1>
-    void persist(Object domainObject);                  // <2>
-    void remove(Object persistentDomainObject);         // <3>
-
-    ...
-}
-----
-<1> test whether a particular domain object is a view model or not.
-Note that this includes any domain objects annotated with xref:../rgant/rgant.adoc#_rgant-DomainObject_nature[`@DomainObject#nature=Nature.EXTERNAL_ENTITY)`] or xref:../rgant/rgant.adoc#_rgant-DomainObject_nature[`@DomainObject#nature=Nature.INMEMORY_ENTITY`]
-<2> persist a transient object.
-Note though that this will throw an exception if the object is already persistent; this can happen if JDO/DataNucleus's link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/orm/cascading.html[persistence-by-reachability] is in effect.
-For this reason it is generally better to use xref:rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#persist()`], which is a no-op if the object is persistent.
-<3> remove (ie DELETE) a persistent object.
-However, the object must be persistent already, otherwise an exception will be thrown.
-It is generally therefore better to use use xref:rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#remove()`], which is a no-op if the object is not persistent.
-
-For example:
-
-[source,java]
-----
-Customer cust = container.newTransientInstance(Customer.class);
-cust.setFirstName("Freddie");
-cust.setLastName("Mercury");
-container.persistIfNotAlready(cust);
-----
-
-You should be aware that by default Apache Isis queues up calls to `#persist()` and `#remove()`.  These are then executed either when the request completes (and the transaction commits), or if the queue is flushed.  This can be done either implicitly by the framework, or as the result of a direct call to `TransactionService#flushTransaction()`.
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_validation-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_validation-api.adoc
deleted file mode 100644
index a378e7d..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_DomainObjectContainer_validation-api.adoc
+++ /dev/null
@@ -1,28 +0,0 @@
-[[_rgsvc_core-domain-api_DomainObjectContainer_validation-api]]
-= Validation API
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-The intent of this API is to provide a mechanism where an object can programmatically check the state any class
-invariants.  Specifically, this means the validating the current state of all properties, as well as any object-level
-validation defined by xref:../rgcms/rgcms.adoc#_rgcms_methods_reserved_validate[`validate()`].
-
-[WARNING]
-====
-These methods have been deprecated; this feature should be considered experimental and your mileage may vary.
-====
-
-
-The API provided is:
-
-[source,java]
-----
-public interface DomainObjectContainer {
-    boolean isValid(Object domainObject);
-    String validate(Object domainObject);
-    ...
-}
-----
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_Scratchpad.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_Scratchpad.adoc
index 8740fe3..1ea3a4e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_Scratchpad.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_core-domain-api_Scratchpad.adoc
@@ -112,6 +112,4 @@ If using the xref:../ugvw/ugvw.adoc#[Wicket viewer], the `ToDoItemBulkUpdate` vi
 
 == Related Services
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_ActionInteractionContext[`ActionInteractionContext`] service allows xref:../rgant/rgant.adoc#_rgant-Action_invokeOn[bulk actions] to co-ordinate with each other.
-
 The xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_QueryResultsCache[`QueryResultsCache`] is useful for caching the results of expensive method calls.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_BookmarkService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_BookmarkService.adoc
index 3d89ff6..84bf2d5 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_BookmarkService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_BookmarkService.adoc
@@ -101,7 +101,7 @@ A more sophisticated implementation could look inside the passed `ev` argument a
 
 == Usage by other services
 
-Bookmarks are used by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module's implementation of  xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BackgroundCommandService[`BackgroundCommandService`], which uses a bookmark to capture the target object on which an action will be invoked subsequently.
+Bookmarks are used by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s command module's implementation of  xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`], which uses a bookmark to capture the target object on which an action will be invoked subsequently.
 
 Bookmarks are also used by the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s auditing module's implementation of
 xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`].
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_JaxbService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_JaxbService.adoc
index f519fd7..774f484 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_JaxbService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_integration-api_JaxbService.adoc
@@ -42,7 +42,7 @@ reference multiple other XSD schemas.  In particular, many JAXB domain objects w
 xref:../rgcms/rgcms.adoc#_rgcms_schema[common Isis schemas] (for example the `OidDto` class that represents a reference to
 a persistent entity).  The enum indicates whether these schemas should be included or excluded from the map.
 
-Isis provides a default implementation of the service, `o.a.i.applib.services.jaxb.JaxbServiceDefault`.
+Apache Isis provides a default implementation of the service, `o.a.i.applib.services.jaxb.JaxbServiceDefault`.
 
 To use an alternative implementation, implement `JaxbService` interface and use xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_intro.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_intro.adoc
index b67dfc8..f3416d0 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_intro.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_intro.adoc
@@ -73,9 +73,9 @@ public class Customer {
 For objects that are already persisted, the service is automatically injected just after the object is rehydrated by
 JDO/DataNucleus.
 
-For transient objects (instantiated programmatically), the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`]'s ``instantiate()`` method (or the deprecated xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]'s ``newTransientInstance()`` method) will automatically inject the services.
+For transient objects (instantiated programmatically), the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#instantiate(...)`] or the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService#instantiate(...)`]'s will automatically inject the services.
 
-Alternatively the object can be instantiated simply using `new`, then services injected using xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry`]'s ``injectServicesInto(...)`` method (or the deprecated xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]'s ``injectServicesInto(...)`` method).
+Alternatively the object can be instantiated simply using `new`, then services injected using xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry`]'s ``injectServicesInto(...)`` method.
 
 
 
@@ -98,7 +98,7 @@ xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_GridSystemService[`GridSy
 xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`].
 ====
 
-For example, suppose you wanted to provide your own implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LocaleProvider[`LocaleProvider`].
+For example, suppose you wanted to provide your own implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_LocaleProvider[`LocaleProvider`].
 Here's how:
 
 [source,java]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api.adoc
index 02564ef..72d3d2f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_metadata-api.adoc
@@ -63,7 +63,7 @@ within the metamodel.
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api.adoc
index d484585..ff002fb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api.adoc
@@ -63,7 +63,7 @@ It also lists their corresponding implementation, either a default implementatio
 ``Default`` +
 ``o.a.i.core`` +
 ``isis-core-metamodel``
-|Supercedes methods in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
+|
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
index 868f51e..7086c23 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_IsisJdoSupport.adoc
@@ -6,7 +6,7 @@
 
 
 The `IsisJdoSupport` service provides a number of general purpose methods for working with the JDO/DataNucleus objectstore.
-In general these act at a lower-level of abstraction than the APIs normally used (specifically, those of xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]), but nevertheless deal with some of the most common use cases.
+In general these act at a lower-level of abstraction than the APIs normally used (specifically, those of xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]), but nevertheless deal with some of the most common use cases.
 For service also provides access to the underlying JDO `PersistenceManager` for full control.
 
 The following sections discuss the functionality provided by the service, broken out into categories.
@@ -215,15 +215,13 @@ For example:
 @DomainService(nature=NatureOfService.VIEW_CONTRIBUTIONS_ONLY)
 public class OrderContributions {
     public Order newOrder(final Customer customer) {
-        Order order = newTransientInstance(Order.class);
-        order.setCustomer(customer);
-        container.persist(customer);
-        container.flush();                  // <1>
-        isisJdoSupport.refresh(customer);   // <2>
+        Order order = new Order(customer);
+        repositoryService.persistAndFlush(customer);    // <1>
+        isisJdoSupport.refresh(customer);               // <2>
         return order;
     }
     @Inject
-    DomainObjectContainer container;
+    RepositoryService repositoryService;
     @Inject
     IsisJdoSupport isisJdoSupport;
 }
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_MetricsService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_MetricsService.adoc
index 5124035..7d8379e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_MetricsService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_MetricsService.adoc
@@ -6,11 +6,9 @@
 
 
 
-The `MetricsService` is a request-scoped domain service that hooks into the JDO/DataNucleus
-ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
+The `MetricsService` is a request-scoped domain service that hooks into the JDO/DataNucleus ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
 
-The service is used by the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service (to populate the DTO held by the `Interaction.Execution`) and also by the (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_PublishingServiceInternal[`PublishingServiceInternal`] domain service (to populate
-the `PublishedObjects` class.
+The service is used by the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service (to populate the DTO held by the `Interaction.Execution`) and also by the (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_PublishingServiceInternal[`PublishingServiceInternal`] domain service (to populate the `PublishedObjects` class.
 
 
 == API & Implementation
@@ -26,10 +24,12 @@ public interface MetricsService {
     int numberObjectPropertiesModified();   // <3>
 }
 ----
-<1> The number of objects that have, so far in this request, been loaded from the database. Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)` is fired.
-<2> The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.  Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)` callback is fired.
-<3> The number of individual properties of objects that were modified; a good measure of the amount of work being done in the interaction.  Corresponds to the number of times that the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`]'s `audit(...)` method will be called as the transaction
-completes.
+<1> The number of objects that have, so far in this request, been loaded from the database.
+Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)` is fired.
+<2> The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.
+Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)` callback is fired.
+<3> The number of individual properties of objects that were modified; a good measure of the amount of work being done in the interaction.
+Corresponds to the number of times that the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`]'s `audit(...)` method will be called as the transaction completes.
 
 The framework provides a default implementation of this API, namely `o.a.i.c.r.s.metrics.MetricsServiceDefault`.
 
@@ -37,5 +37,4 @@ The framework provides a default implementation of this API, namely `o.a.i.c.r.s
 
 == Related Services
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] also captures the metrics gathered by the
-`MetricsService` and publishes them as part of the `PublishedObjects` class (part of its SPI).
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] also captures the metrics gathered by the `MetricsService` and publishes them as part of the `PublishedObjects` class (part of its SPI).
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc
index 0b4633f..131ab2d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-api_RepositoryService.adoc
@@ -209,7 +209,7 @@ This JDO query definitions are used in the `ToDoItemRepositoryImplUsingJdoql` se
 public class ToDoItemRepositoryImplUsingJdoql implements ToDoItemRepositoryImpl {
     @Programmatic
     public List<ToDoItem> findByAtPathAndCategory(final String atPath, final Category category) {
-        return container.allMatches(
+        return repositoryService.allMatches(
                 new QueryDefault<>(ToDoItem.class,
                         "findByAtPathAndCategory",                              // <1>
                         "atPath", atPath,                                       // <2>
@@ -217,13 +217,14 @@ public class ToDoItemRepositoryImplUsingJdoql implements ToDoItemRepositoryImpl
     }
     ...
     @javax.inject.Inject
-    DomainObjectContainer container;
+    RepositoryService repositoryService;
 }
 ----
 <1> corresponds to the "findByAtPathAndCategory" JDO named query
 <2> provide argument for the `atPath` parameter.
 The pattern is parameter, argument, parameter, argument, ... and so on.
-<3> provide argument for the `category` parameter.  The pattern is parameter, argument, parameter, argument, ... and so on.
+<3> provide argument for the `category` parameter.
+The pattern is parameter, argument, parameter, argument, ... and so on.
 
 Other JDOQL named queries (not shown) follow the exact same pattern.
 
@@ -259,7 +260,7 @@ The default implementation of this domain service supports the following configu
 `disableAutoFlush`
 |`true`,`false` +
 (`false`)
-|Whether the `RepositoryService` (or `DomainObjectContainer` that delegates to it) should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
+|Whether the `RepositoryService` should automatically flush pending changes prior to querying (via `allMatches()`, `firstMatch()` and so on).
 
 |===
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditerService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditerService.adoc
index 3444220..aa0652d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditerService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditerService.adoc
@@ -7,13 +7,9 @@
 
 
 
-The `AuditerService` auditing service provides a simple mechanism to capture changes to data. It is called for each property that has changed on any domain object, as a set of pre- and post-values.
+The `AuditerService` auditing service provides a simple mechanism to capture changes to data.
+It is called for each property that has changed on any domain object, as a set of pre- and post-values.
 
-[NOTE]
-====
-This service is intended to replace the now-deprecated xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService3`].
-The difference between the two is that this service recognises that the `transactionId` is actually a request/interaction Id, and that an additional `sequence
-====
 
 
 == SPI
@@ -34,15 +30,15 @@ public interface AuditerService {
             String user, java.sql.Timestamp timestamp);     // <6>
   }
 ----
-<1> whether this implementation is enabled.  If all configured implementations are disabled, then auditing is
-suppressed (a minor performance optimization).
+<1> whether this implementation is enabled.
+If all configured implementations are disabled, then auditing is suppressed (a minor performance optimization).
 <2> together the `transactionId` (misnamed; really is the request/interaction Id) and the `sequence` uniquely identify
 the transaction in which the object was changed.
 <3> identifies the object that has changed
-<4> the property of the object that has changed.  The combination of the `transactionId`, `sequence`, `target` and
-`propertyName` is unique.
-<5> the before and after values of the property (in string format).  If the object was created then "[NEW]" is used
-as the pre-value; if the object was deleted then "[DELETED]" is used as the post-value.
+<4> the property of the object that has changed.
+The combination of the `transactionId`, `sequence`, `target` and `propertyName` is unique.
+<5> the before and after values of the property (in string format).
+If the object was created then "[NEW]" is used as the pre-value; if the object was deleted then "[DELETED]" is used as the post-value.
 <6> the user that changed the object, and the date/time that this occurred.
 
 The framework will call this for each and every domain object property that is modified within a transaction.
@@ -51,8 +47,8 @@ The framework will call this for each and every domain object property that is m
 
 == Implementations
 
-The framework allows multiple implementations of this service to be registered; all will be called.  The framework
-provides one implementation of its own, `AuditerServiceLogging` (in `o.a.i.applib.services.audit` package); this
+The framework allows multiple implementations of this service to be registered; all will be called.
+The framework provides one implementation of its own, `AuditerServiceLogging` (in `o.a.i.applib.services.audit` package); this
 logs simple messages to an SLF4J logger.
 
 
@@ -79,13 +75,11 @@ The module also provides:
 * `AuditingServiceMenu` service which provides actions to search for ``AuditEntry``s, underneath an 'Activity' menu on
 the secondary menu bar.
 
-* `AuditingServiceRepository` service to to search for persisted `AuditEntry``s.  None of its actions are visible in
-the user interface (they are all `@Programmatic`).
+* `AuditingServiceRepository` service to to search for persisted `AuditEntry``s.
+None of its actions are visible in the user interface (they are all `@Programmatic`).
 
-* `AuditingServiceContributions` which contrbutes collections to the
-xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[ `HasTransactionId`] interface. This will therefore display all
-audit entries that occurred in a given request/transaction, in other words whenever a command, a published event or
-another audit entry is displayed.
+* `AuditingServiceContributions` which contrbutes collections to the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[ `HasTransactionId`] interface.
+This will therefore display all audit entries that occurred in a given request/transaction, in other words whenever a command, a published event or another audit entry is displayed.
 
 
 These services can be activated by updating the `pom.xml` and updating the `AppManifest#getModules()` method.
@@ -108,11 +102,8 @@ If menu items or contributions are not required in the UI, these can be suppress
 
 == Related Services
 
-The auditing service works very well with implementations of
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] that persist the ``Interaction.Execution`` objects
-obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] service.  The interaction
-execution captures the _cause_ of an interaction (an action was invoked, a property was edited), while the
-`AuditerService` audit entries capture the _effect_ of that interaction in terms of changed state.
+The auditing service works very well with implementations of xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] that persist the ``Interaction.Execution`` objects obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] service.
+The interaction execution captures the _cause_ of an interaction (an action was invoked, a property was edited), while the `AuditerService` audit entries capture the _effect_ of that interaction in terms of changed state.
 
 The xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] can also be combined with the auditer service, however
 ``Command``s are primarily concerned with capture the _intent_ of an action, not the actual action invocation itself.
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditingService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditingService.adoc
deleted file mode 100644
index 9b04d69..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_AuditingService.adoc
+++ /dev/null
@@ -1,82 +0,0 @@
-[[_rgsvc_persistence-layer-spi_AuditingService]]
-= `AuditingService3` (deprecated)
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-
-
-The `AuditingService3` auditing service (and its various supertypes)provides a simple mechanism to capture changes to data.
-It is called for each property that has changed on any domain object, as a set of pre- and post-values.
-
-[NOTE]
-====
-This service is deprecated, replaced by xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`].
-====
-
-
-== SPI
-
-The SPI for the service is:
-
-[source,java]
-----
-public interface AuditingService3 {
-
-    @Programmatic
-    public void audit(
-            final UUID transactionId, String targetClassName, final Bookmark target,
-            String memberIdentifier, final String propertyName,
-            final String preValue, final String postValue,
-            final String user, final java.sql.Timestamp timestamp);
-  }
-----
-
-The framework will call this for each and every domain object property that is modified within a transaction.
-
-
-
-== Implementation
-
-The most full-featured available implementation is the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s audit module.  This creates an audit records for each changed property (ie every time that `AuditingService3#audit(...)` is called.
-The implementation is `org.isisaddons.module.audit.dom.AuditingService`.
-
-The module also provides:
-
-* `AuditingServiceMenu` service which provides actions to search for ``AuditEntry``s, underneath an 'Activity' menu on the secondary menu bar.
-
-* `AuditingServiceRepository` service to to search for persisted `AuditEntry``s.
-None of its actions are visible in the user interface (they are all `@Programmatic`).
-
-* `AuditingServiceContributions` which contrbutes collections to the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[ `HasTransactionId`] interface.
-This will therefore display all audit entries that occurred in a given transaction, in other words whenever a command, a published event or another audit entry is displayed.
-
-
-
-If you just want to debug (writing to stderr), you can instead configure `o.a.i.applib.services.audit.AuditingService3$Stderr`
-
-
-
-== Usage
-
-The typical way to indicate that an object should be audited is to annotate it with the xref:../rgant/rgant.adoc#_rgant-DomainObject_auditing[`@DomainObject#auditing()`] annotation.
-
-
-
-
-== Alternative Implementations
-
-The (non-ASF) http://platform.incode.org/modules/spi/audit/spi-audit.html[Incode Platform's audit module] provides an implementation of this service (`AuditingService`), and also provides a number of related domain services (`AuditingServiceMenu`,
-`AuditingServiceRepository` and `AuditingServiceContributions`).
-
-If menu items or contributions are not required in the UI, these can be suppressed either using security or by implementing a xref:../ugbtb/ugbtb.adoc#_ugbtb_hints-and-tips_vetoing-visibility[vetoing subscriber].
-
-
-
-== Related Services
-
-This service has been deprecated and replaced by the equivalent
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`].
-
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_EventSerializer.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_EventSerializer.adoc
deleted file mode 100644
index e385706..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_EventSerializer.adoc
+++ /dev/null
@@ -1,67 +0,0 @@
-[[_rgsvc_persistence-layer-spi_EventSerializer]]
-= `EventSerializer` (deprecated)
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-The `EmailSerializer` service is a supporting service intended for use by (any implementation of) xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`].  Its responsibility is to combine the `EventMetadata` and the `EventPayload` into some serialized form (such as JSON, XML or a string) that can then be published.
-
-[WARNING]
-====
-This service is deprecated, replaced with xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
-====
-
-See xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] for further discussion.
-
-
-
-
-== SPI
-
-The SPI defined by this service is:
-
-[source,java]
-----
-@Deprecated
-public interface EventSerializer {
-    Object serialize(                   // <1>
-            EventMetadata metadata,     // <2>
-            EventPayload payload);      // <3>
-}
-----
-<1> returns an object for maximum flexibility, which is then handed off to the `PublishingService`.
-<2> standard metadata about the event, such as the user, the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[`transactionId`], date/time etc
-<3> for published actions, will generally be an `EventPayloadForActionInvocation` (or subclass thereof); for published objects, will generally be an `EventPayloadForObjectChanged` (or subclass thereof)
-
-It's important to make sure that the publishing service implementation is able to handle the serialized form.  Strings are a good lowest common denominator, but in some cases a type-safe equivalent, such as a w3c DOM `Document` or JSON node might be passed instead.
-
-
-
-
-
-== Implementation
-
-There is no default implementation of this service provided by the core Apache Isis framework.
-
-The (obsolete) http://github.com/isisaddons-legacy/isis-module-publishing[Isis addons' publishing] module provides an implementation (`org.isisaddons.module.publishing.dom.eventserializer.RestfulObjectsSpecEventSerializer`) that represents the event payload using the representation defined by the link:http://restfulobjects.org[Restful Objects spec] of (transient) objects, grafting on the metadata as additional JSON nodes.
-
-For example, this is the JSON generated on an action invocation:
-
-.JSON representation of a published action invocation
-image::{_imagesdir}reference-services-spi/EventSerializer/action-invocation-published-to-stderr.png[width="750px",link="{_imagesdir}reference-services-spi/EventSerializer/action-invocation-published-to-stderr.png"]
-
-while this is the object change JSON:
-
-.JSON representation of a published changed object
-image::{_imagesdir}reference-services-spi/EventSerializer/changed-object-published-to-stderr.png[width="750px",link="{_imagesdir}reference-services-spi/EventSerializer/changed-object-published-to-stderr.png"]
-
-You could if you wish change the representation by registering your own implementation of this API in `isis.properties`:
-
-
-
-
-== Related Services
-
-This service is intended (though not mandated) to be used by implementations of xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`].  The (non-ASF) http://github.com/isisaddons-legacy/isis-module-publishing[Isis addons' publishing] module does use it (though the (non-ASF) link:http://platform.incode.org[Incode Platform^] publishmq module does not).
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublisherService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublisherService.adoc
index 815310e..553e10e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublisherService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublisherService.adoc
@@ -6,20 +6,15 @@
 
 
 
-The `PublisherService` API is intended for coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system.  Events that can be published are action invocations/property
-edits, and changed objects. A typical use case is to publish onto a pub/sub bus such as
-link:http://activemq.apache.org/[ActiveMQ] with link:http://camel.apache.org[Camel] to keep other systems up to date.
+The `PublisherService` API is intended for coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system.
+Events that can be published are action invocations/property edits, and changed objects.
+A typical use case is to publish onto a pub/sub bus such as link:http://activemq.apache.org/[ActiveMQ] with link:http://camel.apache.org[Camel] to keep other systems up to date.
 
-An alternative use is for profiling: for each execution (action invocation/property edit) the framework captures
-metrics of the number of objects loaded or dirtied as the result of that execution.  If the
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] is used to call other objects then the metrics are captured
-for each sub-execution.  The framework provides a default implementation, `PublisherServiceLogging`, that will log
-these execution graphs (in XML form, per the xref:../rgcms/rgcms.adoc#_rgcms_schema-ixn["ixn" schema]) to an SLF4J logger.
+An alternative use is for profiling: for each execution (action invocation/property edit) the framework captures metrics of the number of objects loaded or dirtied as the result of that execution.
+If the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] is used to call other objects then the metrics are captured for each sub-execution.
+The framework provides a default implementation, `PublisherServiceLogging`, that will log these execution graphs (in XML form, per the xref:../rgcms/rgcms.adoc#_rgcms_schema-ixn["ixn" schema]) to an SLF4J logger.
 
-Only actions/properties/domain objects annotated for publishing (using
-xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`],
-xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] or
-xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]) are published.
+Only actions/properties/domain objects annotated for publishing (using xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`], xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] or xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]) are published.
 
 
 == SPI
@@ -36,12 +31,9 @@ public interface PublisherService {
 <1> to publish an individual action invocation or property edit, as captured within an `Interaction.Execution`.
 <2> to publish a set of changed objects.
 
-Each `Interaction.Execution` has an owning `Interaction`; this is the same object obtainable from
-xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_InteractionContext[`InteractionContext`].  Implementations that publish member executions
-can use `Interaction.Execution#getDto()` method to return a DTO (as per the
-xref:../rgcms/rgcms.adoc#_rgcms_schema-ixn["ixn" schema]) which can be converted into a serializable XML representation using
-the `InteractionDtoUtils` utility class.  The XML can either serialize a single execution, or can be a "deep"
- serialization of an execution and all sub-executions.
+Each `Interaction.Execution` has an owning `Interaction`; this is the same object obtainable from xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_InteractionContext[`InteractionContext`].
+Implementations that publish member executions can use `Interaction.Execution#getDto()` method to return a DTO (as per the xref:../rgcms/rgcms.adoc#_rgcms_schema-ixn["ixn" schema]) which can be converted into a serializable XML representation using the `InteractionDtoUtils` utility class.
+The XML can either serialize a single execution, or can be a "deep" serialization of an execution and all sub-executions.
 
 The full API of `PublishedObjects` itself is:
 
@@ -60,20 +52,17 @@ public interface PublishedObjects extends HasTransactionId, HasUsername {
     int getNumberPropertiesModified();
 }
 ----
-<1> inherited from `HasTransactionId`, correlates back to the unique identifier of the transaction in which these
-objects were changed.
+<1> inherited from `HasTransactionId`, correlates back to the unique identifier of the transaction in which these objects were changed.
 <2> inherited from `HasUsername`, is the user that initiated the transaction causing these objects to change
 <3> the time that this set of objects was collated (just before the completion of the transaction completes)..
-<4> returns a DTO (as per the xref:../rgcms/rgcms.adoc#_rgcms_schema-chg["chg" schema]) which can be converted into a
-serializable XML representation can be obtained using the `ChangesDtoUtils` utility class.
+<4> returns a DTO (as per the xref:../rgcms/rgcms.adoc#_rgcms_schema-chg["chg" schema]) which can be converted into a serializable XML representation can be obtained using the `ChangesDtoUtils` utility class.
 <5> metrics as to the number of objects loaded, created, updated or deleted and the number of object properties modified (in other words the "size" or "weight" of the transaction).
 
 
 == Implementations
 
-The framework allows multiple implementations of this service to be registered; all will be called.  The framework
-provides one implementation of its own, `PublisherServiceLogging` (in `o.a.i.applib.services.publish` package); this
-logs "deep" serializations to an SLF4J logger.
+The framework allows multiple implementations of this service to be registered; all will be called.
+The framework provides one implementation of its own, `PublisherServiceLogging` (in `o.a.i.applib.services.publish` package); this logs "deep" serializations to an SLF4J logger.
 
 For example, this can be configured to write to a separate log file by adding the following to `logging.properties`:
 
@@ -94,9 +83,7 @@ The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq modu
 This implementation:
 
 * publishes each member execution as an event on an link:http://activemq.apache.org[ActiveMQ] message queue.
-
 * persists each execution as a `PublishedEvent` entity, allowing the event to be republished if necessary.
-
 * provides the ability to log additional `StatusMessage` entities, correlated on the transactionId, useful for diagnosing and monitoring the activity of subscribers of said message queues.
 
 
@@ -108,11 +95,11 @@ If contributions are not required in the UI, these can be suppressed either usin
 
 == Usage
 
-To indicate that an action invocation should be published, annotate it with the xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation.
-
-To indicate that an property edit should be published, annotate it with the xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] annotation.
+To indicate that:
 
-To indicate that a changed object should be published is to annotate it with the xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] annotation.
+* an action invocation should be published, annotate it with the xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation.
+* an property edit should be published, annotate it with the xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] annotation.
+* a changed object should be published is to annotate it with the xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] annotation.
 
 
 
@@ -129,31 +116,20 @@ The (non-ASF) link:http://platform.incode.org[Incode Platform^];s publishmq modu
 This service supports two main use cases:
 
 * coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system.
-
-
 * profiling of interactions/transactions, eg to diagnose response/throughput issues.
 
 
 To support these use cases several other services are involved:
 
-* the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] is used to obtain the `Interaction` from which
-the member executions are published.
+* the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] is used to obtain the `Interaction` from which the member executions are published.
 
-* the (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`] domain
-service is used to obtain the set of objects modified throughout the transaction
+* the (internal) xref:../rgfis/rgfis.adoc#_rgfis_persistence-layer_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`] domain service is used to obtain the set of objects modified throughout the transaction
 
-* the (internal) xref:../rgfis/rgfis.adoc#_rgfis_spi_PublisherServiceInternal[`PublisherServiceInternal`] domain service filters
-these down to those changed objects that are also published (as per
-xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]) and delegates to the `PublisherService`.
+* the (internal) xref:../rgfis/rgfis.adoc#_rgfis_spi_PublisherServiceInternal[`PublisherServiceInternal`] domain service filters these down to those changed objects that are also published (as per xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]) and delegates to the `PublisherService`.
 
-* the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_MetricsService[`MetricsService`] is used to obtain the objects that are loaded
-throughout the transaction; this info is used in order to instantiate the `PublishedObjects` object passed through to
-the `PublisherService`.
+* the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_MetricsService[`MetricsService`] is used to obtain the objects that are loaded throughout the transaction; this info is used in order to instantiate the `PublishedObjects` object passed through to the `PublisherService`.
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] differs from the `PublisherService` in that it is
-intended for fine-grained publish/subscribe for object-to-object interactions within an Apache Isis domain object
-model. The event propagation is strictly in-memory, and there are no restrictions on the object acting as the event;
-it need not be serializable, for example.  That said, it is possible to obtain a serialization of the action
-invocation/property edit causing the current event to be raised using
-xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service.
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] differs from the `PublisherService` in that it is intended for fine-grained publish/subscribe for object-to-object interactions within an Apache Isis domain object model.
+The event propagation is strictly in-memory, and there are no restrictions on the object acting as the event; it need not be serializable, for example.
+That said, it is possible to obtain a serialization of the action invocation/property edit causing the current event to be raised using xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc
deleted file mode 100644
index 47e8f2a..0000000
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_persistence-layer-spi_PublishingService.adoc
+++ /dev/null
@@ -1,190 +0,0 @@
-[[_rgsvc_persistence-layer-spi_PublishingService]]
-= `PublishingService` (deprecated)
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:_basedir: ../../
-:_imagesdir: images/
-
-
-
-The `PublishingService` API is intended for coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system.  Here the only events published are those that action invocations and of changed objects.  A typical use case is to publish onto a pub/sub bus such as link:http://activemq.apache.org/[ActiveMQ] with link:http://camel.apache.org[Camel] to keep other systems up to date.
-
-
-[WARNING]
-====
-This service is deprecated, replaced with xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
-====
-
-
-
-== SPI
-
-The SPI defined by the service is:
-
-[source,java]
-----
-@Deprecated
-public interface PublishingService {
-    public void publish(
-        EventMetadata metadata,                                 // <1>
-        EventPayload payload);                                  // <2>
-    void setEventSerializer(EventSerializer eventSerializer);   // <3>
-}
-----
-<1> standard metadata about the event, such as the user, the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[`transactionId`], date/time etc
-<2> for published actions, an `EventPayloadForActionInvocation` (or subclass thereof); for published objects, an `EventPayloadForObjectChanged` (or subclass thereof)
-<3> injects in the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_EventSerializer[`EventSerializer`] service.  This is deprecated because not every implementation is required to use an `EventSerializer` so its inclusion within the SPI of `PublishingService` was in retrospect a mistake.
-
-
-Typically implementations will use the injected `EventSerializer` to convert the metadata and payload into a form to be published:
-
-[source,java]
-----
-public interface EventSerializer {
-    public Object serialize(EventMetadata metadata, EventPayload payload);
-}
-----
-
-The serialized form returned by `EventSerializer` must be in a form that the `PublishingService` implementation is able to handle. Strings are a good lowest common denominator, but (if custom implementations of both `EventSerializer` and `PublishingService` were in use) then it might also be some other type, for example an `org.w3c.dom.Document` or an `org.json.JSONObject` might be returned instead.
-
-
-
-== Implementation
-
-There is no default implementation of this service provided by the core Apache Isis framework.
-
-The (obsolete) http://github.com/isisaddons-legacy/isis-module-publishing[Isis addons' publishing] module provides an implementation (`org.isisaddons.module.publishing.dom.PublishingService`) that persists each event as a `PublishedEvent` entity.
-This holds the serialized form of the event metadata and payload as translated into a string by the injected `EventSerializer`.  The module also provides its own implementation of `EventSerializer`,
-namely `RestfulObjectsSpecEventSerializer`, which represents the event payload using the representation defined by the
-link:http://restfulobjects.org[Restful Objects spec] of (transient) objects, grafting on the metadata as additional
-JSON nodes.
-
-The `PublishedEvent` entity also has a `state` field taking the values either "QUEUED" or "PROCESSED".
-The intention here is that an event bus can poll this table to grab pending events and dispatch them to downstream systems.
-When ``PublishedEvent``s are persisted initially they always take the value "QUEUED".
-
-The framework provides no default implementations of this service.
-
-
-
-
-== Usage
-
-To indicate that an action invocation should be published, annotate it with the xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation.
-
-To indicate that a changed object should be published is to annotate it with the xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] annotation.
-
-
-It is also possible to "fine-tune" the `EventPayload` using the `#publishingFactory()` attribute (for both annotations).  By default the `EventPayload` that is serialized identifies the object(s) being interacted with or changed, and in the case of the action invocation provides details of the action arguments and result (if any) of that action.  However, the payload does not (by default) include any information about the new state of these objects. It is therefore the responsibility of  [...]
-
-[NOTE]
-====
-The replacement xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] does __not__ support the concept of "payload factories" (but is otherwise more flexible).
-====
-
-
-Although the representations (if using the Restful Object serializer and Restful Objects viewer) does include hrefs
-for the objects, this nevertheless requires an additional network call to obtain this information).
-
-In some circumstances, then, it may make more sense to eagerly "push" information about the change to the subscriber by including that state within the payload.
-
-To accomplish this, an implementation of a "`PayloadFactory`" must be specified in the annotation.
-
-For actions, we implement the `PublishingPayloadFactoryForAction` (in `o.a.i.applib.annotation`):
-
-[source,java]
-----
-@Deprecated
-public interface PublishingPayloadFactoryForAction {
-    public EventPayload payloadFor(
-            Identifier actionIdentifier,
-            Object target,
-            List<Object> arguments,
-            Object result);
-}
-}
-----
-The `EventPayloadForActionInvocation` abstract class (in the Isis applib) should be used as the base class for the object instance returned from `payLoadFor(...)`.
-
-For objects, the interface to implement is `PublishingPayloadFactoryForObject`:
-
-[source,java]
-----
-@Deprecated
-public interface PublishingPayloadFactoryForObject {
-    public EventPayload payloadFor(
-        Object changedObject,
-        PublishingChangeKind publishingChangeKind);     // <1>
-}
-----
-<1> an enum taking the values `CREATE`, `UPDATE`, `DELETE`
-
-Similarly, the `EventPayloadForObjectChanged` abstract class should be used as the base class for the object returned from `payLoadFor(...)`.
-
-For example, the following will eagerly include a `ToDoItem`'s `description` property whenever it is changed:
-
-[source,java]
-----
-@DomainObject(publishingPayloadFactory=ToDoItemPayloadFactory.class)
-public class ToDoItem {
-    ...
-}
-----
-
-where `ToDoItemPayloadFactory` is defined as:
-
-[source,java]
-----
-public class ToDoItemChangedPayloadFactory implements PublishingPayloadFactoryForObject {
-    public static class ToDoItemPayload
-        extends EventPayloadForObjectChanged<ToDoItem> {
-      public ToDoItemPayload(ToDoItem changed) { super(changed); }
-      public String getDescription() { return getChanged().getDescription(); }
-    }
-    @Override
-    public EventPayload payloadFor(Object changedObject, PublishingChangeKind kind) {
-        return new ToDoItemPayload((ToDoItem) changedObject);
-    }
-}
-----
-
-
-
-
-
-
-== Related Services
-
-The `PublishingService` is intended for coarse-grained publish/subscribe for system-to-system interactions, from
-Apache Isis to some other system. Here the only events published are those that action invocations (for actions
-annotated with xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`]) and of changed objects (for objects
-annotated with xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`].
-
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] is intended as a replacement for this service.  The
-use case for `PublisherService` is the same: coarse-grained publishing of events for system-to-system interactions.  It
-is in most respects more flexible though: events are published both for action invocations (annotated with
-xref:../rgant/rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`]) and also for property edits (annotated with
-xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`].  It also publishes changed objects (for objects
-annotated with xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]).  However, rather than
-publishing one event for every changed objects, it publishes a single event that identifies all objects created,
-updated or deleted.
-
-Another significant difference between `PublishingService` and `PublisherService` is in the content of the events
-themselves.  While the former uses the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_MementoService[`MementoService`] to create an
-ad-hoc serialization of the action being invoked, the latter uses the xref:../rgcms/rgcms.adoc#_rgcms_schema[DTOs/XML schemas]
-as a formal specification of the nature of the interaction (action invocation, property edit or changed objects).
-
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] meanwhile differs from both `PublishingService` and
-xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] in that it is intended for fine-grained
-publish/subscribe for object-to-object interactions within an Apache Isis domain object model. The event propagation
-is strictly in-memory, and there are no restrictions on the object acting as the event; it need not be serializable,
-for example.  (That said, it is possible to obtain a serialization of the action invocation/property edit causing the
-current event to be raised using xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service).
-
-
-== Design Notes
-
-The following class diagram shows how the above components fit together:
-
-image::{_imagesdir}reference-services-spi/PublishingService/yuml.me-23db58a4.png[width="800px",link="{_imagesdir}reference-services-spi/PublishingService/yuml.me-23db58a4.png"]
-
-This yuml.me diagram was generated at http://yuml.me/edit/23db58a4[yuml.me].
\ No newline at end of file
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc
index fbb1d0c..07587a0 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_ExceptionRecognizer.adoc
@@ -5,11 +5,14 @@
 :_imagesdir: images/
 
 
-The `ExceptionRecognizer` service provides the mechanism for both the domain programmer and also for components to be able to recognize and handle certain exceptions that may be thrown by the system.  Rather than display an obscure error to the end-user, the application can instead display a user-friendly message.
+The `ExceptionRecognizer` service provides the mechanism for both the domain programmer and also for components to be able to recognize and handle certain exceptions that may be thrown by the system.
+Rather than display an obscure error to the end-user, the application can instead display a user-friendly message.
 
-For example, the JDO/DataNucleus Objectstore provides a set of recognizers to recognize and handle SQL constraint exceptions such as uniqueness violations. These can then be rendered back to the user as expected errors, rather than fatal stacktraces.
+For example, the JDO/DataNucleus Objectstore provides a set of recognizers to recognize and handle SQL constraint exceptions such as uniqueness violations.
+These can then be rendered back to the user as expected errors, rather than fatal stacktraces.
 
-It is also possible to provide additional implementations, registered in `isis.properties`.  Unlike other services, where any service registered in `isis.properties` replaces any default implementations, in the case of this service all implementations registered are "consulted" to see if they recognize an exception (the chain-of-responsibility pattern).
+It is also possible to provide additional implementations, registered in `isis.properties`.
+Unlike other services, where any service registered in `isis.properties` replaces any default implementations, in the case of this service all implementations registered are "consulted" to see if they recognize an exception (the chain-of-responsibility pattern).
 
 
 
@@ -41,7 +44,8 @@ public interface ExceptionRecognizer ... {
 <1> an enumeration of varies categories of exceptions that are recognised
 <2> represents the fact that an exception has been recognized as has been converted into a user-friendy message, and has been categorized
 <3> the main API, to attempt to recognize an exception
-<4> deprecated API which converted exceptions into strings (reasons), ie without any categorization.  This is no longer called.
+<4> deprecated API which converted exceptions into strings (reasons), ie without any categorization.
+This is no longer called.
 
 
 The categories are:
@@ -69,10 +73,16 @@ public interface ExceptionRecognizer ... {
 <6> recognized, but uncategorized (typically: a recognizer of the original `ExceptionRecognizer` API).
 
 
-In essence, if an exception is recognized then it is also categorized.  This lets the viewer act accordingly.  For example, if an exception is raised from the loading of an individual object, then this is passed by the registered ``ExceptionRecognizer``s. If any of these recognize the exception as representing a not-found exception, then an Apache Isis `ObjectNotFoundException` is raised. Both the viewers interprets this correctly (the xref:../ugvw/ugvw.adoc#[Wicket viewer] as a suitable [...]
+In essence, if an exception is recognized then it is also categorized.
+This lets the viewer act accordingly.
+For example, if an exception is raised from the loading of an individual object, then this is passed by the registered ``ExceptionRecognizer``s.
+If any of these recognize the exception as representing a not-found exception, then an Apache Isis `ObjectNotFoundException` is raised.
+Both the viewers interprets this correctly (the xref:../ugvw/ugvw.adoc#[Wicket viewer] as a suitable error page, the xref:../ugvro/ugvro.adoc#[Restful Objects viewer] as a 404 status return code).
 
 
-If the implementation recognizes the exception then it returns a user-friendly message to be rendered (by the viewer) back to the user; otherwise it returns `null`. There is no need for the implementation to check for exception causes; the casual chain is unwrapped by Apache Isis core and each exception in the chain will also be passed through to the recognizer (from most specific to least). The recognizer implementation can therefore be as fine-grained or as coarse-grained as it wishes.
+If the implementation recognizes the exception then it returns a user-friendly message to be rendered (by the viewer) back to the user; otherwise it returns `null`.
+There is no need for the implementation to check for exception causes; the casual chain is unwrapped by Apache Isis core and each exception in the chain will also be passed through to the recognizer (from most specific to least).
+The recognizer implementation can therefore be as fine-grained or as coarse-grained as it wishes.
 
 
 
@@ -81,10 +91,16 @@ If the implementation recognizes the exception then it returns a user-friendly m
 
 The framework provides two default implementations:
 
-* `o.a.i.core.metamodel.services.exceprecog.ExceptionRecognizerDocDefault` provided by Apache Isis core is itself an `ExceptionRecognizer`, and will handle ``ConcurrencyException``s.  It will also handle any application exceptions raised by the system (subclasses of `o.a.i.applib.RecoverableException`).
+* `o.a.i.core.metamodel.services.exceprecog.ExceptionRecognizerDocDefault` provided by Apache Isis core is itself an `ExceptionRecognizer`, and will handle ``ConcurrencyException``s.
++
+It will also handle any application exceptions raised by the system (subclasses of `o.a.i.applib.RecoverableException`).
 
-* `o.a.i.applib.services.exceprecog.jdo.ExceptionRecognizerCompositeForJdoObjectStore` bundles up a number of more fine-grained implementations:
-** `ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException`
+* `o.a.i.applib.services.exceprecog.jdo.ExceptionRecognizerCompositeForJdoObjectStore`
++
+which bundles up a number of more fine-grained implementations:
++
+** `ExceptionRecognizerForSQLIntegrityConstraintViolationUnique
+OrIndexException`
 ** `ExceptionRecognizerForJDOObjectNotFoundException`
 ** `ExceptionRecognizerForJDODataStoreException`
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_UrlEncodingService.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_UrlEncodingService.adoc
index 7406f63..f0ce2bf 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_UrlEncodingService.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_presentation-layer-spi_UrlEncodingService.adoc
@@ -6,26 +6,20 @@
 
 
 
-The `UrlEncodingService` defines a consistent way to convert strings to/from a form safe for use
-within a URL.  The service is used by the framework to map xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_view-models[view model]
-mementos (derived from the state of the view model itself) into a form that can be used as a view model.  When the
-framework needs to recreate the view model (for example to invoke an action on it), this URL is converted back into a
-view model memento, from which the view model can then be hydrated.
+The `UrlEncodingService` defines a consistent way to convert strings to/from a form safe for use within a URL.
+The service is used by the framework to map xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_types-of-domain-objects_view-models[view model] mementos (derived from the state of the view model itself) into a form that can be used as a view model.
+When the framework needs to recreate the view model (for example to invoke an action on it), this URL is converted back into a view model memento, from which the view model can then be hydrated.
 
 Defining this functionality as an SPI has two use cases:
 
-* first, (though some browsers support longer strings), there is a limit of 2083 characters for URLs.  For view model
-mementos that correspond to large strings (as might occur when serializing a JAXB
-xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated view model), the service provides a
-hook.  +
+* first, (though some browsers support longer strings), there is a limit of 2083 characters for URLs.
+For view model mementos that correspond to large strings (as might occur when serializing a JAXB xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated view model), the service provides a hook.
 +
 For example, each memento string could be mapped to a GUID held in some cluster-aware cache.
 
-* the service provides the ability, to encrypt the string in order to avoid leakage of potentially sensitive
-state within the URL.
+* the service provides the ability, to encrypt the string in order to avoid leakage of potentially sensitive state within the URL.
 
-The framework provides a default implementation of this service, `UrlEncodingServiceUsingBaseEncoding` (also in the
-applib) that uses `base-64` encoding to `UTF-8` charset.
+The framework provides a default implementation of this service, `UrlEncodingServiceWithCompression`, discussed further in the section below.
 
 
 == SPI
@@ -48,10 +42,10 @@ public interface UrlEncodingService {
 
 == Implementation
 
-The framework provides a default implementation (`UrlEncodingServiceUsingBaseEncoding`) that simply converts the string
-using base-64 encoding and UTF-8 character set.  As already noted, be aware that the maximum length of a URL should not
-exceed 2083 characters.  For large view models, there's the possibility that this limit could be exceeded; in such
-cases register an alternative implementation of this service.
+The framework provides a default implementation (`UrlEncodingServiceWithCompression`) that (also in the applib) that first (gzip) compresses the state and then uses `base-64` encoding of the resulting bytes.
+As already noted, be aware that the maximum length of a URL should not
+exceed 2083 characters.
+For large view models, there's the possibility that this limit could be exceeded; in such cases register an alternative implementation of this service.
 
 To use an alternative implementation, implement the `UrlEncodingService` interface and use xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:../rgsvc/rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this guide).
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc
index 4507407..9fa023e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing_FixtureScripts.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `FixtureScripts` service provides the ability to execute xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts_api-and-usage[fixture scripts] .
+The `FixtureScripts` service provides the ability to execute xref:../ugtst/ugtst.adoc#_ugtst_fixture-scripts_api-and-usage[fixture scripts].
 
 The default implementation of this service, `FixtureScriptsDefault`, uses the associated xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] to obtain a `FixtureScriptsSpecification`.
 This configures this service, for example telling it which package to search for `FixtureScript` classes, how to execute those classes, and hints that influence the UI.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_how-to-handle-void-and-null-results.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_how-to-handle-void-and-null-results.adoc
index 0025a7c..eed1999 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_how-to-handle-void-and-null-results.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_how-to-handle-void-and-null-results.adoc
@@ -36,7 +36,7 @@ public class RoutingServiceUsingBreadcrumbs extends RoutingServiceDefault {
         if(original != null) {                                                  // <2>
             return original;
         }
-        container.flush();                                                      // <3>
+        repositoryService.flush();                                              // <3>
 
         final BreadcrumbModelProvider wicketSession =                           // <4>
             (BreadcrumbModelProvider) AuthenticatedWebSession.get();
@@ -62,7 +62,7 @@ public class RoutingServiceUsingBreadcrumbs extends RoutingServiceDefault {
     @Inject
     HomePageProviderService homePageProviderService;
     @Inject
-    DomainObjectContainer container;
+    RepositoryService repositoryService;
 }
 ----
 <1> override the default imlpementation
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_replacing-default-service-implementations.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_replacing-default-service-implementations.adoc
index e5a866e..178ab55 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_replacing-default-service-implementations.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_hints-and-tips_replacing-default-service-implementations.adoc
@@ -8,7 +8,7 @@
 
 The framework provides default implementations for many of the xref:../rgsvc/rgsvc.adoc#[domain services].  This is convenient, but sometimes you will want to replace the default implementation with your own service implementation.
 
-For example, suppose you wanted to provide your own implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LocaleProvider[`LocaleProvider`].
+For example, suppose you wanted to provide your own implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_LocaleProvider[`LocaleProvider`].
 The trick is to use the xref:../rgant/rgant.adoc#_rgant-DomainService_menuOrder[`@DomainService#menuOrder()`] attribute, specifying a low number (typically `"1"`).
 
 Here's how:
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
index 475f34d..6db178b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
@@ -197,13 +197,13 @@ msgstr "Ich heisse {firstName} {lastName}."
 then the translation would be: "Ich heisse James Bond".
 
 
-The same class is used in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] so that you can raise translatable info, warning and error messages; each of the relevant methods are overloaded.
+The same class is used in xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_MessageService[`MessageService`] so that you can raise translatable info, warning and error messages; each of the relevant methods are overloaded.
 
 For example:
 
 [source,java]
 ----
-public interface DomainObjectContainer {
+public interface MessageService {
     void informUser(String message);
     void informUser(
         TranslatableMessage message,
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_available-domain-services_framework-provided.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_available-domain-services_framework-provided.adoc
index ed334d7..17f277c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_available-domain-services_framework-provided.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_available-domain-services_framework-provided.adoc
@@ -14,14 +14,11 @@ In these cases there is (usually) no default implementation; it is up to the app
 
 General purpose:
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]; mostly deprecated, replaced by:
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ClockService[`ClockService`]
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ConfigurationService[`ConfigurationService`]
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_MessageService[`MessageService`]
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`]
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry`]
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TitleService[`TitleService`]
-** xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_UserService[`UserService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ClockService[`ClockService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ConfigurationService[`ConfigurationService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_UserService[`UserService`]
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_IsisJdoSupport[`IsisJdoSupport`]
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`]
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`]
@@ -67,7 +64,9 @@ Layout and UI Management:
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_HomePageProviderService[`HomePageProviderService`]
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_HintStore[`HintStore`] (SPI)
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_MessageService[`MessageService`]
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`] (SPI)
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TitleService[`TitleService`]
 * xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_UrlEncodingService[`UrlEncodingService`] (SPI)
 
 REST Support:
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_building-blocks_events_domain-events.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_building-blocks_events_domain-events.adoc
index 31089f3..06572e1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_building-blocks_events_domain-events.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_building-blocks_events_domain-events.adoc
@@ -13,22 +13,21 @@ Similarly, rendering a collection causes a `CollectionDomainEvent` to be fired,
 In fact, each event can be fired up to five times, with the event's `getEventPhase()` method indicating to the subscriber the phase:
 
 * *hide* phase allows the subscriber to hide the member
-
-* *disable* phase allows the subscriber to disable the member. +
-
+* *disable* phase allows the subscriber to disable the member.
++
 For a property this makes it read-only; for an action this makes it "greyed out".
 (Collections are implicitly read-only).
 
 * *validate* phase allows the subscriber to validate the proposed change.
-
++
 For a property this means validating the proposed new value of the property; for an action this means validating the action parameter arguments.
 For example, a referential integrity restrict could be implemented here.
 
-* *executing* phase is prior to the actual property edit/action invocation, allowing the subscriber to perform side-effects. +
-
+* *executing* phase is prior to the actual property edit/action invocation, allowing the subscriber to perform side-effects.
++
 For example, a cascade delete could be implemented here.
 
-* *executed* phase is after the actual property edit/action invocation. +
+* *executed* phase is after the actual property edit/action invocation.
 +
 For example, a business audit event could be implemented here.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc
index f9e3df9..9de3765 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc
@@ -12,18 +12,13 @@ It also shows how to instantiate xref:../ugfun/ugfun.adoc#_ugfun_building-blocks
 [NOTE]
 ====
 The main domain services used are xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`].
-These (and some other services) replace the now deprecated xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`].
 ====
 
 
 include::_ugfun_crud_instantiating.adoc[leveloffset=+1]
-
 include::_ugfun_crud_persisting.adoc[leveloffset=+1]
-
 include::_ugfun_crud_finding.adoc[leveloffset=+1]
-
 include::_ugfun_crud_updating.adoc[leveloffset=+1]
-
 include::_ugfun_crud_deleting.adoc[leveloffset=+1]
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_mixins_programmatic-usage.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_mixins_programmatic-usage.adoc
index 5ed96f3..de4d420 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_mixins_programmatic-usage.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_mixins_programmatic-usage.adoc
@@ -10,17 +10,12 @@
 When a domain object is rendered, the framework will automatically instantiate all required mixins and delegate to them dynamically.
 If writing integration tests or fixtures, or (sometimes) just regular domain logic, then you may need to instantiate mixins directly.
 
-For this you can use the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api[`DomainObjectContainer#mixin(...)` method.
+For this you can use the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService#mixin(...)` method.
 
 For example:
 
 [source,java]
 ----
-DocumentHolder_documents mixin = container.mixin(DocumentHolder_documents.class, customer);
+DocumentHolder_documents mixin = factoryService.mixin(DocumentHolder_documents.class, customer);
 ----
 
-The xref:../ugtst/ugtst.adoc#__ugtst_integ-test-support_bootstrapping_IntegrationTestAbstract[`IntegrationTestAbstract`] and xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`] classes both provide a `mixin(...)` convenience method.
-
-
-
-
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_ui-hints_names-and-descriptions.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_ui-hints_names-and-descriptions.adoc
index 48f8680..275b869 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_ui-hints_names-and-descriptions.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_ui-hints_names-and-descriptions.adoc
@@ -51,9 +51,13 @@ The table below summarizes the annotations available:
 
 [TIP]
 ====
-If you're running on Java 8, then note that it's possible to write Isis applications without using `@ParameterLayout(named=...)` annotation.  Support for this can be found in the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s paraname8 metamodel extension (non-ASF).  (In the future we'll fold this into core).  See also our guidance on xref:../../migration-notes/migration-notes.adoc#_migration-notes_1.8.0-to-1.9.0_upgrading-to-java8[upgrading to Java 8].
+If you're running on Java 8, then note that it's possible to write Isis applications without using `@ParameterLayout(named=...)` annotation.
+Support for this can be found in the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s paraname8 metamodel extension (non-ASF).
+(In the future we'll fold this into core).
+
+See also our guidance on xref:../../migration-notes/migration-notes.adoc#_migration-notes_1.8.0-to-1.9.0_upgrading-to-java8[upgrading to Java 8].
 ====
 
 
 The framework also supports i18n: locale-specific names and descriptions.
-for more information, see the xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n[beyond-the-basics] guide.
+For more information, see the xref:../ugbtb/ugbtb.adoc#_ugbtb_i18n[beyond-the-basics] guide.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_api-for-applications.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_api-for-applications.adoc
index 73416c1..fd90eeb 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_api-for-applications.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_api-for-applications.adoc
@@ -8,16 +8,16 @@
 
 Generally speaking your domain objects (or more generally your application) should be agnostic of the user/roles that are interacting with them; applying security permissions is the responsibility of the framework.
 
-Still, on very rare occasion you may have a need, in which case you can either use Apache Isis' `DomainObjectContainer` API or you can reach further down the stack and use the JEE Servlet API.
+Still, on very rare occasion you may have a need, in which case you can either use Apache Isis' `UserService` API or you can reach further down the stack and use the JEE Servlet API.
 
 
-== `DomainObjectContainer` API
+== `UserService` API
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] service exposes the following API:
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_UserService[`UserService`] service exposes the following API:
 
 [source,java]
 ----
-final UserMemento user = container.getUser();
+final UserMemento user = userService.getUser();
 final List<RoleMemento> roles = user.getRoles();
 for (RoleMemento role : roles) {
     String roleName = role.getName();
@@ -44,7 +44,8 @@ If using the Wicket viewer, then note there will also be another role which is u
 
 == Servlet API
 
-On occasion you may find it necessary to reach below Isis and to the underlying servlet API.  For example, the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s togglz module (non-ASF) has a requirement to do this in order to expose its embedded togglz web console.  (
+On occasion you may find it necessary to reach below Apache Isis and to the underlying servlet API.
+For example, the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s togglz module (non-ASF) has a requirement to do this in order to expose its embedded togglz web console.  (
 
 [TIP]
 ====
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
index 3c60d3d..b647ee8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_bdd-spec-support_writing-a-bdd-spec.adoc
@@ -147,7 +147,7 @@ public class SimpleObjectMenuGlue extends CukeGlueAbstract2 {
 
 [TIP]
 ====
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad`] domain service is one way in which glue classes can pass state between each other.
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_Scratchpad[`Scratchpad`] domain service is one way in which glue classes can pass state between each other.
 Or, for more type safety, you could develop your own custom domain services for each scenario, and inject these in as regular services.
 See link:http://www.thinkcode.se/blog/2017/04/01/sharing-state-between-steps-in-cucumberjvm-using-picocontainer[this blog] post for more details.
 ====
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_sudo-service.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_sudo-service.adoc
index c9b746e..a1dc135 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_sudo-service.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_sudo-service.adoc
@@ -57,5 +57,5 @@ toDoItem = sudoService.sudo(username,
         });
 ----
 
-Behind the scenes the `SudoService` simply talks to the `DomainObjectContainer` to override the user returned by the `getUser()` API.
+Behind the scenes the `SudoService` simply talks to the `UserService` to override the user returned by the `getUser()` API.
 It is possible to override both users and roles.
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_ticking-clock-fixture.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_ticking-clock-fixture.adoc
index 3778270..d9af995 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_ticking-clock-fixture.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_ticking-clock-fixture.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `TickingClockFixture` is a pre-built fixture script that resets the date/time returned by the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_ClockService[`ClockService`] to a known value.
+The `TickingClockFixture` is a pre-built fixture script that resets the date/time returned by the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ClockService[`ClockService`] to a known value.
 
 Thereafter the time returned continues to tick forward (as would the real clock) until reset once more.
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_wrapper-factory.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_wrapper-factory.adoc
index dbb26a1..95f9e03 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_wrapper-factory.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_wrapper-factory.adoc
@@ -5,7 +5,8 @@
 :_imagesdir: images/
 
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] service is responsible for wrapping a domain object in a dynamic proxy, of the same type as the object being proxied.  And the role of this wrapper is to simulate the UI.
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] service is responsible for wrapping a domain object in a dynamic proxy, of the same type as the object being proxied.
+And the role of this wrapper is to simulate the UI.
 
 [NOTE]
 ====
@@ -18,7 +19,8 @@ It does this by allowing through method invocations that would be allowed if the
 
 The mechanics are as follows:
 
-. the integration test calls the `WrapperFactory` to obtain a wrapper for the domain object under test.  This is usually done in the test's `setUp()` method.
+. the integration test calls the `WrapperFactory` to obtain a wrapper for the domain object under test.
+This is usually done in the test's `setUp()` method.
 
 . the test calls the methods on the wrapper rather than the domain object itself
 
@@ -26,9 +28,11 @@ The mechanics are as follows:
 
 . (like a viewer), the wrapper then performs the "see it/use it/do it" checks, checking that the member is visible, that it is enabled and (if there are arguments) that the arguments are valid
 
-. if the business rule checks pass, then the underlying member is invoked.  Otherwise an exception is thrown.
+. if the business rule checks pass, then the underlying member is invoked.
+Otherwise an exception is thrown.
 
-The type of exception depends upon what sort of check failed.  It's straightforward enough: if the member is invisible then a `HiddenException` is thrown; if it's not usable then you'll get a `DisabledException`, if the args are not valid then catch an `InvalidException`.
+The type of exception depends upon what sort of check failed.
+It's straightforward enough: if the member is invisible then a `HiddenException` is thrown; if it's not usable then you'll get a `DisabledException`, if the args are not valid then catch an `InvalidException`.
 
 image::{_imagesdir}testing/wrapper-factory.png[width="600px",link="{_imagesdir}testing/wrapper-factory.png"]
 
@@ -76,13 +80,15 @@ We're not sure that's any easier (in fact we're certain it looks rather obscure)
 
 == Using the wrapper
 
-As the wrapper is intended to simulate the UI, only those methods that correspond to the "primary" methods of the domain object's members are allowed to be called.  That means:
+As the wrapper is intended to simulate the UI, only those methods that correspond to the "primary" methods of the domain object's members are allowed to be called.
+That means:
 
 * for *_object properties_* the test can call the getter or setter method
 
-* for *_object collections_* the test can call the getter.  +
+* for *_object collections_* the test can call the getter.
 +
-If there is a supporting `addTo...()` or `removeFrom...()` method, then these can be called.  It can also call `add(...)` or `remove(...)` on the collection (returned by the gettter) itself. +
+If there is a supporting `addTo...()` or `removeFrom...()` method, then these can be called.
+It can also call `add(...)` or `remove(...)` on the collection (returned by the gettter) itself.
 +
 [NOTE]
 ====
@@ -91,11 +97,14 @@ In this respect the wrapper is more functional than the xref:../ugvw/ugvw.adoc#[
 
 * for *_object actions_* the test can call the action method itself.
 
-As a convenience, we also allow the test to call any `default...()`,`choices...()` or `autoComplete...()` method.  These are often useful for obtaining a valid value to use.
+As a convenience, we also allow the test to call any `default...()`,`choices...()` or `autoComplete...()` method.
+These are often useful for obtaining a valid value to use.
 
-What the test can't call is any of the remaining supporting methods, such as `hide...()`, `disable...()` or `validate...()`.  That's because their value is implied by the exception being thrown.
+What the test can't call is any of the remaining supporting methods, such as `hide...()`, `disable...()` or `validate...()`.
+That's because their value is implied by the exception being thrown.
 
-The wrapper _does_ also allow the object's `title()` method or its  `toString()` , however this is little use for objects whose title is built up using the `@Title` annotation.  Instead, we recommend that your test verifies an object's title by calling `DomainObjectContainer#titleOf(...)` method.
+The wrapper _does_ also allow the object's `title()` method or its  `toString()` , however this is little use for objects whose title is built up using the `@Title` annotation.
+Instead, we recommend that your test verifies an object's title by calling `TitleService#titleOf(...)` method.
 
 
 
@@ -118,7 +127,8 @@ public class ToDoItem ... {
 }
 ----
 
-then invoking the action through the proxy will cause the event (`CompletedEvent` above) to be fired to any subscribers.  A test might therefore look like:
+then invoking the action through the proxy will cause the event (`CompletedEvent` above) to be fired to any subscribers.
+A test might therefore look like:
 
 [source,java]
 ----
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_annotation-based.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_annotation-based.adoc
index edd952a..9360ed3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_annotation-based.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_annotation-based.adoc
@@ -174,4 +174,10 @@ image::{_imagesdir}reference-layout/4-0-8-0.png[width="720px",link="{_imagesdir}
 
 == Other Annotations
 
-All the layout annotations (eg `@Regex` and `@Named`) have been deprecated, instead replaced by the various `XxxLayout` annotations: xref:../rgant/rgant.adoc#_rgant-ActionLayout, [`@ActionLayout`] xref:../rgant/rgant.adoc#_rgant-CollectionLayout[`@CollectionLayout`],  xref:../rgant/rgant.adoc#_rgant-DomainObjectLayout[`@DomainObjectLayout`],  xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout[`@DomainServiceLayout`],  xref:../rgant/rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`],  [...]
+Layout semantics can also be specified using the various `XxxLayout` annotations:
+
+* for domain services: xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout[`@DomainServiceLayout`]
+* for domain objects: xref:../rgant/rgant.adoc#_rgant-DomainObjectLayout[`@DomainObjectLayout`] and xref:../rgant/rgant.adoc#_rgant-ViewModelLayout[`@ViewModelLayout`]
+* for actions: xref:../rgant/rgant.adoc#_rgant-ActionLayout, [`@ActionLayout`] and xref:../rgant/rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`]
+* for properties: xref:../rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`]
+* for collections: xref:../rgant/rgant.adoc#_rgant-CollectionLayout[`@CollectionLayout`]
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
index 4d50e96..ac9f772 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
@@ -6,16 +6,16 @@
 
 
 Existing projects written against v1.10.0 should run against v1.11.0 with few if any changes.
-If you *do* encounter any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document issues here.
+If you *do* encounter any difficulties then let us know via the link:https://isis.apache.org/versions/1.11.0/support.html[users mailing list], so we can support you and document issues here.
 
 
 
 == Swagger UI
 
-The new xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_metadata-api_SwaggerService[`SwaggerService`] allows link:http://swagger.io[Swagger] spec files to be generated from the Apache Isis metamodel.
+The new link:https://isis.apache.org/versions/1.11.0/guides/rgsvc/rgsvc.html#_rgsvc_metadata-api_SwaggerService[`SwaggerService`] allows link:http://swagger.io[Swagger] spec files to be generated from the Apache Isis metamodel.
 These can be downloaded directly through the `SwaggerResource` (mapped to `/restful/swagger/public` and `/restful/swagger/private`) as well as from the Wicket UI through the `SwaggerServiceMenu`.
 
-In addition, the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] now bundles link:https://github.com/swagger-api/swagger-ui[Swagger UI], which documents the main features of the REST API and allows it to be explored.
+In addition, the link:https://isis.apache.org/versions/1.11.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] now bundles link:https://github.com/swagger-api/swagger-ui[Swagger UI], which documents the main features of the REST API and allows it to be explored.
 
 To enable this in your application, first update the `web.xml`:
 
@@ -53,21 +53,21 @@ To enable this in your application, first update the `web.xml`:
 <3> provides access to the RESTful resource that generates the Swagger spec.
 
 There is also an HTML page to load the Swagger UI itself; this resides in `src/main/webapp/swagger-ui/index.html`.
-Copy the link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/swagger-ui/index.html[file from Apache Isis' repo], or from the app generated by the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+Copy the link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/swagger-ui/index.html[file from Apache Isis' repo], or from the app generated by the link:https://isis.apache.org/versions/1.11.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
 
 The text of the simple app's `about/index.html` has also changed (the `<li`> for the `/restful` URL has been replaced with a `/swagger-ui` URL).
 If you use link:https://github.com/apache/isis/blob/master/example/application/simpleapp/webapp/src/main/webapp/about/index.html[this file], then update it.
 
-If your application is bootstrapped using an `AppManifest` (recommended; xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[here]) then the default implementation of the `SwaggerService` will automatically be discovered and registered.
+If your application is bootstrapped using an `AppManifest` (recommended; link:https://isis.apache.org/versions/1.11.0/guides/rgcms/rgcms.html#_rgcms_classes_AppManifest-bootstrapping[here]) then the default implementation of the `SwaggerService` will automatically be discovered and registered.
 However, if you are still using the older `isis.properties` configuration file to explicitly register services then you will need to add in this service.
 
 
 
 == `RoutingService`
 
-The new xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`] SPI service provides a plugin point to the xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] so that a different object than that returned from an action invocation can be rendered.
+The new link:https://isis.apache.org/versions/1.11.0/guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`] SPI service provides a plugin point to the link:https://isis.apache.org/versions/1.11.0/guides/ugvw/ugvw.html[Wicket viewer] so that a different object than that returned from an action invocation can be rendered.
 
-The framework provides a default implementation of this service that will - instead of a void or a `null` result - render the home page (as per the xref:../guides/rgant/rgant.adoc#_rgant-HomePage[`@HomePage`] annotation) if there is one.
+The framework provides a default implementation of this service that will - instead of a void or a `null` result - render the home page (as per the link:https://isis.apache.org/versions/1.11.0/guides/rgant/rgant.html#_rgant-HomePage[`@HomePage`] annotation) if there is one.
 This is therefore a subtle change in the UI.
 If you wish to retain the original behaviour (to return the "no results" page instead), then you should implement your own no-op implementation of this service:
 
@@ -84,10 +84,10 @@ public class IdentityRoutingService implements RoutingService {
 
 == Wicket Viewer i18n
 
-The xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] (its labels, buttons, messages etc) can now be internationalized using the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_TranslationService[`TranslationService`].
+The link:https://isis.apache.org/versions/1.11.0/guides/ugvw/html.adoc#[Wicket viewer] (its labels, buttons, messages etc) can now be internationalized using the link:https://isis.apache.org/versions/1.11.0/guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_TranslationService[`TranslationService`].
 
 To enable this, new ``msgId``s and corresponding translations must be added to the `translations.po` file.
-Full details of these ``msgId``s can be found in xref:../guides/ugbtb/ugbtb.adoc#__ugbtb_i18n_wicket-viewer[i18n] section of the "beyond the basics" guide.
+Full details of these ``msgId``s can be found in link:https://isis.apache.org/versions/1.11.0/guides/ugbtb/ugbtb.html#__ugbtb_i18n_wicket-viewer[i18n] section of the "beyond the basics" guide.
 
 If no translations are available, then the fallback is to use the previous mechanism, ie Wicket's original resource bundles.
 This feature can therefore be considered as optional.
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
index 4928c28..6787d95 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
@@ -7,15 +7,15 @@
 
 
 Existing projects written against v1.11.x should run against v1.12.0 with few if any changes.
-If you *do* encounter any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document issues here.
+If you *do* encounter any difficulties then let us know via the link:https://isis.apache.org/versions/1.12.0/support.html#[users mailing list], so we can support you and document issues here.
 
 
 
 == Dynamic XML Layouts
 
-The major new feature in 1.12.0 is xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts], providing much enhanced support for custom layouts.
+The major new feature in 1.12.0 is link:https://isis.apache.org/versions/1.12.0/guides/ugvw/ugvw.html#_ugvw_layout_file-based[dynamic XML layouts], providing much enhanced support for custom layouts.
 
-The new `Xxx.layout.xml` file is optional; without it domain objects will continue to be rendered as before, using metadata from annotations (xref:../guides/rgant/rgant.adoc#_rgant-DomainObjectLayout[`@DomainObjectLayout`], xref:../guides/rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`], xref:../guides/rgant/rgant.adoc#_rgant-CollectionLayout[`@CollectionLayout`], xref:../guides/rgant/rgant.adoc#_rgant-ActionLayout[`@ActionLayout`], xref:../guides/rgant/rgant.adoc#_rgant-MemberO [...]
+The new `Xxx.layout.xml` file is optional; without it domain objects will continue to be rendered as before, using metadata from annotations (link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-DomainObjectLayout[`@DomainObjectLayout`], link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-PropertyLayout[`@PropertyLayout`], link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-CollectionLayout[`@CollectionLayout`], link: [...]
 There is therefore no requirement to move to the new more flexible XML-based layout.
 
 If you do want to start using the new format, then you will find that 1.12.0 provides a mixin action (available in prototype mode only) called "download XML layout".
@@ -31,44 +31,44 @@ This can then be unzipped into the `src/main/java` directory.
 
 (As mentioned above), 1.12.0 provides a number of new mixin actions and properties:
 
-* xref:../guides/rgcms/rgcms.adoc#__rgcms_classes_mixins_Object_clearHints[clear hints] action
+* link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#__rgcms_classes_mixins_Object_clearHints[clear hints] action
 
-* xref:../guides/rgcms/rgcms.adoc#__rgcms_classes_mixins_Object_downloadLayoutXml[download Layout XML] action (prototype mode)
+* link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#__rgcms_classes_mixins_Object_downloadLayoutXml[download Layout XML] action (prototype mode)
 
-* xref:../guides/rgcms/rgcms.adoc#__rgcms_classes_mixins_Object_rebuildMetamodel[rebuild metamodel] action (prototype mode)
+* link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#__rgcms_classes_mixins_Object_rebuildMetamodel[rebuild metamodel] action (prototype mode)
 
-* xref:../guides/rgcms/rgcms.adoc#__rgcms_classes_mixins_Persistable_datanucleusXxx[id and version] properties (for domain entities only)
+* link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#__rgcms_classes_mixins_Persistable_datanucleusXxx[id and version] properties (for domain entities only)
 
-These are in addition to the xref:../guides/rgcms/rgcms.adoc#__rgcms_classes_mixins_Persistable_downloadJdoMetadata[download JDO metadata] mixin action (prototype mode) provided in earlier versions of the framework.
+These are in addition to the link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#__rgcms_classes_mixins_Persistable_downloadJdoMetadata[download JDO metadata] mixin action (prototype mode) provided in earlier versions of the framework.
 
 The properties are grouped in a "metadata" fieldset, and the mixin actions associated with that fieldset.
 If the domain object is a view model rather than an entity (that is, has no id or version) then the actions will instead be rendered as top-level actions.
 
 Most of these mixin object members are visible only in prototype mode, though some are visible in production mode and so potentially visible to end-users.
-If you wish to suppress these members from the view, you can either use xref:../guides/ugsec/ugsec.adoc#[security], or alternatively you can write xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber]s to veto the visibility of these members by subscribing to their respective domain events.
+If you wish to suppress these members from the view, you can either use link:https://isis.apache.org/versions/1.12.0/guides/ugsec/ugsec.html#[security], or alternatively you can write link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber[subscriber]s to veto the visibility of these members by subscribing to their respective domain events.
 
 
 
 == JAXB view models are editable
 
-All xref:../guides/rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`] view models are now implicitly editable.
-Therefore any view models that should be read-only should have editing attribute disabled using xref:../guides/rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`] (or use a xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto editability).
+All link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-XmlRootElement[`@XmlRootElement`] view models are now implicitly editable.
+Therefore any view models that should be read-only should have editing attribute disabled using link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-DomainObject_editing[`@DomainObject#editing()`] (or use a link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto editability).
 
 
 == `DomainObjectContainer` domain service
 
-The xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]domain service has been deprecated, with its methods moved to a new set of more fine-grained domain services, such as xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_MessageService[`MessageService`].
+The link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]domain service has been deprecated, with its methods moved to a new set of more fine-grained domain services, such as link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and
+link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_MessageService[`MessageService`].
 
 The `DomainObjectContainer` service will continue to be supported until Apache Isis v2.0.0, but in the meantime, consider changing existing application code to use these new domain services.
 
-Please note that when migrating from _rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persist()`] to xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#persist()`], no exception will be thrown if the Domain Object is already persisted, so the behavior of xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryS [...]
+Please note that when migrating from _rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persist()`] to link:https://isis.apache.org/versions/1.12.0/../guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#persist()`], no exception will be thrown if the Domain Object is already persisted, so the behavior of link:https://isis.apache.org/versio [...]
 
 
 
 == Removal of the `self-host` profile
 
-The `self-host` profile has been removed from the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+The `self-host` profile has been removed from the link:https://isis.apache.org/versions/1.12.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
 Instead, run the application using either the `org.apache.isis.WebServer` main class, or `mvn jetty:run`, or build the WAR and deploy to a servlet container such as Tomcat.
 
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.12.0-to-1.13.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.12.0-to-1.13.0.adoc
index 8f87ba6..65d7084 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.12.0-to-1.13.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.12.0-to-1.13.0.adoc
@@ -6,103 +6,80 @@
 
 
 
-Most applications written against v1.12.x should run against v1.13.0 with few if any changes.  That said, this release
-has removed a small number of features that were dependent on internal APIs, and some configuration properties are
-now removed/unsupported.  We therefore do recommend that you read and keep in mind these notes when you upgrade your app.
+Most applications written against v1.12.x should run against v1.13.0 with few if any changes.
+That said, this release has removed a small number of features that were dependent on internal APIs, and some configuration properties are
+now removed/unsupported.
+We therefore do recommend that you read and keep in mind these notes when you upgrade your app.
 
-If you *do* encounter any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can
+If you *do* encounter any difficulties then let us know via the link:https://isis.apache.org/versions/1.13.0/support.html#[users mailing list], so we can
 support you and document issues here.
 
 
 == Command changes
 
-The main feature in `1.13.0` is the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service
-to represent an action invocation/property edit, with the re-positioning of
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_CommandContext[`CommandContext`] to represent the _intention_ to invoke an action/edit a
-property.  You can read more about this design in the reference guide on domain services, in the
-xref:../guides/rgsvc/rgsvc.adoc#__rgsvc_intro_commands-and-events[commands and events] section.
-
-This refactoring completely overhauls the structure of the XML mementos passed to
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] (to persist) and to
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`] (to invoke persisted commands in the
-background).  If you are using these services then ensure that there are no pending commands at the point at which you
-cut-over.  If you have any code that makes assumptions on the format of the XML, it will also need to be rewritten.
-Note that the XML which is persisted henceforth is well-defined and any future changes to it will be backward
-compatible; see xref:../guides/rgcms/rgcms.adoc#_rgcms_schema[schema reference guide].  In fact, there are three schema: for commands
-(`cmd.xsd`), inteactions (`ixn.xsd`) and for changes (`chg.xsd`).  These replace the earlier `aim.xsd` schema (which
-was an amalgam of `cmd.xsd` and `ixn.xsd`).
+The main feature in `1.13.0` is the link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] domain service to represent an action invocation/property edit, with the re-positioning of link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_CommandContext[`CommandContext`] to represent the _intention_ to invoke an action/edit a property.
+You can read more about this design in the reference guide on domain services, in the link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#__rgsvc_intro_commands-and-events[commands and events] section.
+
+This refactoring completely overhauls the structure of the XML mementos passed to link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-spi_CommandService[`CommandService`] (to persist) and to link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-spi_BackgroundCommandService[`BackgroundCommandService`] (to invoke persisted commands in the background).
+If you are using these services then ensure that there are no pending commands at the point at which you cut-over.
+If you have any code that makes assumptions on the format of the XML, it will also need to be rewritten.
+Note that the XML which is persisted henceforth is well-defined and any future changes to it will be backward compatible; see link:https://isis.apache.org/versions/1.13.0/guides/rgcms/rgcms.html#_rgcms_schema[schema reference guide].
+In fact, there are three schema: for commands (`cmd.xsd`), inteactions (`ixn.xsd`) and for changes (`chg.xsd`).
+These replace the earlier `aim.xsd` schema (which was an amalgam of `cmd.xsd` and `ixn.xsd`).
 
 The reworked `CommandService` now properly supports property edits in the exact same way as action invocations.
 
 As a side-effect of this work, note also that:
 
 * the `CommandService#startTransaction(...)` SPI is *NO LONGER CALLED* by the framework.
-
-* the `BackgroundService#asActionInvocationMemento(...)` (not formally part of the API) is also no longer called by the
-framework; moreover the default implementation now throws an exception to this effect.
+* the `BackgroundService#asActionInvocationMemento(...)` (not formally part of the API) is also no longer called by the framework; moreover the default implementation now throws an exception to this effect.
 
 
 == Auditing
 
-The xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] SPI service has been deprecated, instead replaced
-by the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`].
+The link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] SPI service has been deprecated, instead replaced by the link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`].
 
-There can be more than one implementation of this new SPI, and a framework-provided implementation
-(`AuditerServiceLogging`) will log to a file.  The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s audit module also implements the new SPI.
+There can be more than one implementation of this new SPI, and a framework-provided implementation (`AuditerServiceLogging`) will log to a file.
+The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s audit module also implements the new SPI.
 
 
 == Publishing
 
-The xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] SPI service and its supporting
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_EventSerializer[`EventSerializer`] domain service, have both deprecated, instead
-replaced by the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
+The link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] SPI service and its supporting link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_EventSerializer[`EventSerializer`] domain service, have both deprecated, instead replaced by the link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublisherService[`Publisher [...]
 
-There can be more than one implementation of this new SPI, and a framework-provided implementation
-(`PublisherServiceLogging`) will log to a file.  The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq module also implements the new SPI.
+There can be more than one implementation of this new SPI, and a framework-provided implementation (`PublisherServiceLogging`) will log to a file.
+The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq module also implements the new SPI.
 
-The new service also supports the notion of published property edits; the new
-xref:../guides/rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] annotation attribute can be used to specify.  The `
-isis.services.publish.properties` configuration property can be used to specify a fallback default for properties where
-the attribute is not set explicitly.
+The new service also supports the notion of published property edits; the new link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-Property_publishing[`@Property#publishing()`] annotation attribute can be used to specify.
+The ` isis.services.publish.properties` configuration property can be used to specify a fallback default for properties where the attribute is not set explicitly.
 
-Conversely, neither the xref:../guides/rgant/rgant.adoc#_rgant-Action_publishingPayloadFactory[`@Action#publishingPayloadFactory()`]
-nor the xref:../guides/rgant/rgant.adoc#_rgant-DomainObject_publishingPayloadFactory[`@DomainObject#publishingPayloadFactory()`] are
-supported by `PublisherService`; instead the consumers of the events are expected to callback for any additional
-information, eg using xref:../guides/ugvro/ugvro.adoc#[Resful Objects] viewer.
+Conversely, neither the link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-Action_publishingPayloadFactory[`@Action#publishingPayloadFactory()`] nor the link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-DomainObject_publishingPayloadFactory[`@DomainObject#publishingPayloadFactory()`] are supported by `PublisherService`; instead the consumers of the events are expected to callback for any additional information, eg using link:https://isis [...]
 
 
 == Auto-logout
 
-The new configuration property `isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated` (documented more fully in
-the  xref:../guides/ugsec/ugsec.adoc#_ugsec_configuring-isis-to-use-shiro[security guide]) is by default set to false, thereby
-disabling auto-logout behaviour that is believed to be the root cause of some exceptions thrown by the
-xref:../guides/ugvro/ugvro.adoc#[Restful Objects viewer] during a race condition.  The *previous behaviour can be re-enabled* by setting
-to `true`.
+The new configuration property `isis.authentication.shiro.autoLogoutIfAlreadyAuthenticated` (documented more fully in the  link:https://isis.apache.org/versions/1.13.0/guides/ugsec/ugsec.html#_ugsec_configuring-isis-to-use-shiro[security guide]) is by default set to false, thereby disabling auto-logout behaviour that is believed to be the root cause of some exceptions thrown by the link:https://isis.apache.org/versions/1.13.0/guides/ugvro/ugvro.html#[Restful Objects viewer] during a race [...]
+The *previous behaviour can be re-enabled* by setting to `true`.
 
 
 == Safe 'rememberMe' cookies
 
-Apache Isis leverages link:http://wicket.apache.org[Apache Wicket]'s rememberMe support which holds remembered
-user/passwords in an encrypted cookie.
+Apache Isis leverages link:http://wicket.apache.org[Apache Wicket]'s rememberMe support which holds remembered user/passwords in an encrypted cookie.
 
-If a hard-coded and publicly known value were to be used (as was the case prior to `1.13.0`), then it would be
-possible for rememberMe user/password to be intercepted and decrypted, possibly compromising access.  The
-`isis.viewer.wicket.rememberMe.encryptionKey` configuration property therefore allows a private key to be specified,
-baked into the application.
+If a hard-coded and publicly known value were to be used (as was the case prior to `1.13.0`), then it would be possible for rememberMe user/password to be intercepted and decrypted, possibly compromising access.
+The `isis.viewer.wicket.rememberMe.encryptionKey` configuration property therefore allows a private key to be specified, baked into the application.
 
-If no value is set then (for safety) a random UUID will be used as the encryption key.  (The net effect of this
-fallback behaviour is that 'rememberMe' will work, but only until the webapp is restarted (after which the end-user
-will have to log in again).
+If no value is set then (for safety) a random UUID will be used as the encryption key.
+(The net effect of this fallback behaviour is that 'rememberMe' will work, but only until the webapp is restarted (after which the end-user will have to log in again).
 
-Related, the `isis.viewer.wicket.suppressRememberMe` configuration property has been replaced by
-`isis.viewer.wicket.rememberMe.suppress` (though the old configuration property is still supported).
+Related, the `isis.viewer.wicket.suppressRememberMe` configuration property has been replaced by `isis.viewer.wicket.rememberMe.suppress` (though the old configuration property is still supported).
 
 
 == Custom programming models
 
 In previous releases the `isis.reflector.facets` configuration property could be used to specify a new implementation
 of the (internal) `ProgrammingModel` API.  This configuration property is no longer supported.  See the
-xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[beyond the basics] guide for an alternative broadly equivalent
+link:https://isis.apache.org/versions/1.13.0/guides/ugbtb/ugbtb.html#_ugbtb_programming-model_finetuning[beyond the basics] guide for an alternative broadly equivalent
 approach.
 
 
@@ -110,7 +87,7 @@ approach.
 == injectXxx() no longer supported
 
 Apache Isis automatically injects domain services into other domain objects, supporting the
-xref:../guides/rgant/rgant.adoc#_rgant-Inject[`@Inject`] annotation, also injection to `set...()` setter methods and finally injection
+link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-Inject[`@Inject`] annotation, also injection to `set...()` setter methods and finally injection
 into `inject...()` methods.  This last method is now no longer supported by default.  It can be re-enabled if necessary
 using the `isis.services.injector.injectPrefix` configuration property.
 
@@ -135,7 +112,7 @@ in use, then the app will fail-fast and refuse to start.
 == ApplicationFeatureRepository
 
 The `isis.services.applicationFeatures.init` configuration property is used to control whether the
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ApplicationFeatureRepository[`ApplicationFeatureRepository`] domain service lazily or
+link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_metadata-api_ApplicationFeatureRepository[`ApplicationFeatureRepository`] domain service lazily or
 eagerly initializes itself based on the framework's internal metamodel.
 
 Previously this service eagerly initialized itself, causing the framework to have to traverse the domain object
@@ -150,7 +127,7 @@ There are two sets of changes relating to integration tests.
 
 === Builder
 
-The `IsisSystemForTest.Builder` class is used to xref:../guides/ugtst/ugtst.adoc#_ugtst_integ-test-support_bootstrapping[bootstrap integration tests].
+The `IsisSystemForTest.Builder` class is used to link:https://isis.apache.org/versions/1.13.0/guides/ugtst/ugtst.html#_ugtst_integ-test-support_bootstrapping[bootstrap integration tests].
 
 A number of the clauses within this class have been removed:
 
@@ -161,11 +138,11 @@ so this builder method is redundant.
 
 * `with(ProgrammingModel programmingModel)` +
 +
-Instead, use `AppManifest#getConfiguration()` to xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_programming-model_finetuning[include/exclude facets]
+Instead, use `AppManifest#getConfiguration()` to link:https://isis.apache.org/versions/1.13.0/guides/ugbtb/ugbtb.html#_ugbtb_programming-model_finetuning[include/exclude facets]
 
 * `with(MetaModelValidator metaModelValidator)` +
 +
-Instead, use `AppManifest#getConfiguration()` to specify a xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_programming-model_custom-validator[custom validator].
+Instead, use `AppManifest#getConfiguration()` to specify a link:https://isis.apache.org/versions/1.13.0/guides/ugbtb/ugbtb.html#_ugbtb_programming-model_custom-validator[custom validator].
 
 * `withServicesIn(String... packagePrefixes)` and `withServices(Object... services)` +
 +
@@ -215,50 +192,41 @@ public class DomainAppSystemInitializer {
 
 == web.xml
 
-In the xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_web-xml[`web.xml`], the "isis.viewers" context-param is now ignored.  Instead the
-`viewer_wicket.properties` and `viewer_restfulobjects.properties` will both be loaded if present (but neither need be present).
+In the link:https://isis.apache.org/versions/1.13.0/guides/ugbtb/ugbtb.html#_ugbtb_web-xml[`web.xml`], the "isis.viewers" context-param is now ignored.
+Instead the `viewer_wicket.properties` and `viewer_restfulobjects.properties` will both be loaded if present (but neither need be present).
 
 
 
 == `HasTransactionId` mixin
 
-The xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[`HasTransactionId`] mixin interface has subtly changed its
-meaning (and is now somewhat mis-named).  Prior to `1.13.0`, this identifier was the GUID of the Isis transaction in
-which the object was created.  As of `1.13.0`, this identifier actually is for the request/interaction (as per the new
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] service) in which the object was created.
+The link:https://isis.apache.org/versions/1.13.0/guides/rgcms/rgcms.html#_rgcms_classes_mixins_HasTransactionId[`HasTransactionId`] mixin interface has subtly changed its meaning (and is now somewhat mis-named).  Prior to `1.13.0`, this identifier was the GUID of the Isis transaction in which the object was created.  As of `1.13.0`, this identifier actually is for the request/interaction (as per the new link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_applicati [...]
 
 
 
 == Notable new features
 
-The following are new features so do not impact in themselves impact any migration effort, but you may wish to start
-taking advantage of once you have upgraded.
+The following are new features so do not impact in themselves impact any migration effort, but you may wish to start taking advantage of once you have upgraded.
 
-* `@Nullable` annotation +
+* `@Nullable` annotation
 +
-The xref:../guides/rgant/rgant.adoc#_rgant-Nullable[`@Nullable`] annotation can now be used to specify the optionality of properties
-and parameters.
+The link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-Nullable[`@Nullable`] annotation can now be used to specify the optionality of properties and parameters.
 
-* `ActionDomainEvent` for mixins +
+* `ActionDomainEvent` for mixins
 +
-Previously it was not possible to discover the mixed-in domain object when an `ActionDomainEvent` was raised by a
-mixin action.  This is now possible, through the xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_domainevent_ActionDomainEvent[`mixedIn()`] method.
+Previously it was not possible to discover the mixed-in domain object when an `ActionDomainEvent` was raised by a mixin action.
+This is now possible, through the link:https://isis.apache.org/versions/1.13.0/guides/rgcms/rgcms.html#_rgcms_classes_domainevent_ActionDomainEvent[`mixedIn()`] method.
 
-* `Blob` and `Clob` file types +
+* `Blob` and `Clob` file types
 +
-The xref:../guides/rgant/rgant.adoc#_rgant-Property_fileAccept[`@Property#fileAccept()`] and
-xref:../guides/rgant/rgant.adoc#_rgant-Parameter-fileAccept[`@Parameter#fileAccept()`] annotation attributes can be used to hint at
-the file type to upload for a blob or clob.
+The link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-Property_fileAccept[`@Property#fileAccept()`] and link:https://isis.apache.org/versions/1.13.0/guides/rgant/rgant.html#_rgant-Parameter-fileAccept[`@Parameter#fileAccept()`] annotation attributes can be used to hint at the file type to upload for a blob or clob.
 
-* Live reloading +
+* Live reloading
 +
-The `isis.viewer.wicket.liveReloadUrl` configuration property allows live reloading of objects if the layout is updated,
-reducing feedback times.  Further guidance on setting this up can be found
-xref:../guides/dg/dg.adoc#__dg_ide_intellij_advanced_gradle-liveReload[here].
+The `isis.viewer.wicket.liveReloadUrl` configuration property allows live reloading of objects if the layout is updated, reducing feedback times.
+Further guidance on setting this up can be found link:https://isis.apache.org/versions/1.13.0/guides/dg/dg.html#__dg_ide_intellij_advanced_gradle-liveReload[here].
 
-* Docker support +
+* Docker support
 +
-The `overrides.properties` configuration file, if present, is loaded last as the configuration property file, with
-its contents overriding any previously defined configuration properties.  This simple idea makes it easy to create Docker
-container images; see xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_deployment_docker[here] for further discussion.
+The `overrides.properties` configuration file, if present, is loaded last as the configuration property file, with its contents overriding any previously defined configuration properties.
+This simple idea makes it easy to create Docker container images; see link:https://isis.apache.org/versions/1.13.0/guides/ugbtb/ugbtb.html#_ugbtb_deployment_docker[here] for further discussion.
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
index 6f3b756..d14a055 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
@@ -32,7 +32,7 @@ This is disabled by default; if enabled, this configuration property will treat
 
 * `isis.reflector.validator.noParamsOnly` +
 +
-When searching for  xref:../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_disable[`disableXxx()`] or xref:../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_hide[`hideXxx()`] supporting methods, whether to search only for the no-param version (or also for supporting methods that match the parameter types of the action). +
+When searching for  link:https://isis.apache.org/versions/1.14.0/guides/rgcms/rgcms.html#_rgcms_methods_prefixes_disable[`disableXxx()`] or link:https://isis.apache.org/versions/1.14.0/guides/rgcms/rgcms.html#_rgcms_methods_prefixes_hide[`hideXxx()`] supporting methods, whether to search only for the no-param version (or also for supporting methods that match the parameter types of the action). +
 +
 This is disabled by default; if enabled then this makes for a simpler programming model.
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
index 53ea7f9..bc9251d 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
@@ -27,13 +27,13 @@ aggregates dependencies for running as a webapp
 brings in a dependency on `isis-core-webserver` (to run the application from the command line using `org.apache.isis.WebServer`).
 This is defined in a profile which is actived only when running under the Intellij IDE.
 
-The xref:../ugfun/ugfun.adoc#_ugfun_getting-started_helloworld-archetype[HelloWorld] and xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes both make use of these new aggregators.
+The link:https://isis.apache.org/versions/1.15.0/ugfun/ugfun.html#_ugfun_getting-started_helloworld-archetype[HelloWorld] and link:https://isis.apache.org/versions/1.15.0/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp] archetypes both make use of these new aggregators.
 
 
 [[_migration-notes_1.14.0-to-1.15.0_ISIS-1528]]
 == Rename of isis-viewer-wicket artifacts (link:https://issues.apache.org/jira/browse/ISIS-1528[ISIS-1528])
 
-The `<groupId>` and `<artifactId>` of the xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] have been made consistent with other artifacts:
+The `<groupId>` and `<artifactId>` of the link:https://isis.apache.org/versions/1.15.0/guides/ugvw/ugvw.html#[Wicket viewer] have been made consistent with other artifacts:
 
 * the `<groupId>` has been changed from `org.apache.isis.viewer` to `org.apache.isis.core`
 * the `<artifactId>` has been changed from `isis-viewer-wicket-???` to `isis-core-viewer-wicket-???`
@@ -66,8 +66,8 @@ Domain services fall into three categories:
 * framework services: defined within the applib with a default implementation provided by the framework itself.
 
 As described
-xref:../guides/ugbtb/ugbtb.adoc#_ugbtb_hints-and-tips_replacing-default-service-implementations[here], it is possible to override framework services so that the framework uses the replacement implementation.
-Previously this required explicitly setting either xref:../guides/rgant/rgant.adoc#_rgant-DomainService_menuOrder[`@DomainService#menuOrder()`] or xref:../guides/rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`].
+link:https://isis.apache.org/versions/1.15.0/guides/ugbtb/ugbtb.html#_ugbtb_hints-and-tips_replacing-default-service-implementations[here], it is possible to override framework services so that the framework uses the replacement implementation.
+Previously this required explicitly setting either link:https://isis.apache.org/versions/1.15.0/guides/rgant/rgant.html#_rgant-DomainService_menuOrder[`@DomainService#menuOrder()`] or link:https://isis.apache.org/versions/1.15.0/guides/rgant/rgant.html#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`].
 
 In 1.15.0, the default value for `menuOrder` has been set to a value lower than that of the framework-provided implementations, and so will a custom implementation will always take precedence over the framework implementations without having to remember to also set `menuOrder`.
 
@@ -78,18 +78,18 @@ A small change (made in (link:https://issues.apache.org/jira/browse/ISIS-1688[IS
 [[_migration-notes_1.14.0-to-1.15.0_ISIS-1504]]
 == Metamodel validators (link:https://issues.apache.org/jira/browse/ISIS-1504[ISIS-1504], link:https://issues.apache.org/jira/browse/ISIS-1622[ISIS-1622], link:https://issues.apache.org/jira/browse/ISIS-1669[ISIS-1669])
 
-The metamodel validator has been extended with several new checks relating to xref:../ugfun.adoc#_ugfun_programming-model_view-models_jaxb[JAXB view models]:
+The metamodel validator has been extended with several new checks relating to link:https://isis.apache.org/versions/1.15.0/ugfun.html#_ugfun_programming-model_view-models_jaxb[JAXB view models]:
 
 * that the view model can be instantiated:
 ** has a public, no-arg constructor
 ** is not abstract
 ** is not a member inner class (nested static class is ok)
-* that JODA datetimes are annotated with the xref:../ugfun/ugfun.adoc#_ugfun_programming-model_view-models_jaxb_joda-datatypes[appropriate implementation] of a JAXB `XmlAdapter`
-* that for references to persistent entities, that those persistent entities are annotated to use xref:../ugfun/ugfun.adoc#_ugfun_programming-model_view-models_jaxb_referencing-domain-entities[`PersistentEntityAdapter`] as their JAXB adapter.
+* that JODA datetimes are annotated with the link:https://isis.apache.org/versions/1.15.0/ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb_joda-datatypes[appropriate implementation] of a JAXB `XmlAdapter`
+* that for references to persistent entities, that those persistent entities are annotated to use link:https://isis.apache.org/versions/1.15.0/ugfun/ugfun.html#_ugfun_programming-model_view-models_jaxb_referencing-domain-entities[`PersistentEntityAdapter`] as their JAXB adapter.
 
 \... in other words, that the view model can be instantiated.
 
-These checks are enabled by default but can be disabled with a xref:../rgcfg.adoc#__rgcfg_configuring-core_metamodel-validation[configuration property] if required.
+These checks are enabled by default but can be disabled with a link:https://isis.apache.org/versions/1.15.0/rgcfg.html#__rgcfg_configuring-core_metamodel-validation[configuration property] if required.
 
 
 [[_migration-notes_1.14.0-to-1.15.0_ISIS-1613]]
@@ -115,7 +115,7 @@ log4j.additivity.org.apache.wicket.page.XmlPartialPageUpdate=false
 
 Bootstrapping the application can now be accomplished with less boilerplate, both for the regular webapp and in integration tests.
 
-For more information, see the xref:../ugtst/ugtst.adoc#_ugtst_integ-test-support_bootstrapping[testing guide] and xref:../rgcms/rgcms.adoc#__rgcms_classes_AppManifest-bootstrapping_bootstrapping_AppManifestAbstract[reference guide for classes/methods/schema].
+For more information, see the link:https://isis.apache.org/versions/1.15.0/ugtst/ugtst.html#_ugtst_integ-test-support_bootstrapping[testing guide] and link:https://isis.apache.org/versions/1.15.0/rgcms/rgcms.html#__rgcms_classes_AppManifest-bootstrapping_bootstrapping_AppManifestAbstract[reference guide for classes/methods/schema].
 
 
 
@@ -134,7 +134,7 @@ You should therefore inspect all properties of your view models and ensure that
 [[_migration-notes_1.14.0-to-1.15.0_ISIS-1595]]
 == Fix to config variable (link:https://issues.apache.org/jira/browse/ISIS-1595[ISIS-1595])
 
-The configuration property xref:../guides/rgcfg/rgcfg.adoc#__rgcfg_configuring-core_metamodel-validation[ `isis.reflector.validator.jdoqlVariablesClause`] was incorrectly named `variablesClause`.
+The configuration property link:https://isis.apache.org/versions/1.15.0/guides/rgcfg/rgcfg.html#__rgcfg_configuring-core_metamodel-validation[ `isis.reflector.validator.jdoqlVariablesClause`] was incorrectly named `variablesClause`.
 This has now been corrected.
 
 Any applications that used this configuration property should be updated.
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_meta-annotations.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_meta-annotations.adoc
index 61b377f..c5cba1a 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_meta-annotations.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_meta-annotations.adoc
@@ -62,34 +62,34 @@ The full list of Apache Isis annotations that can be used in meta-annotations is
 
 
 |domain service
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainService[@DomainService]
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainServiceLayout[@DomainServiceLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainService[@DomainService]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainServiceLayout[@DomainServiceLayout]
 
 |domain object
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject[@DomainObject] +
-link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModel[@ViewModel] +
-link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-MemberGroupLayout[@MemberGroupLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject[@DomainObject] +
+link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModel[@ViewModel] +
+link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-MemberGroupLayout[@MemberGroupLayout]
 
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObjectLayout[@DomainObjectLayout] +
-link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModelLayout[@ViewModelLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObjectLayout[@DomainObjectLayout] +
+link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModelLayout[@ViewModelLayout]
 
 | Action
 
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action[@Action]
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout[@ActionLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action[@Action]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout[@ActionLayout]
 
 |action parameter
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Parameter[@Parameter]
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout[@ParameterLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Parameter[@Parameter]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout[@ParameterLayout]
 
 
 |property
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property[@Property]
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout[@PropertyLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property[@Property]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout[@PropertyLayout]
 
 |collection
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection[@Collection]
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-CollectionLayout[@CollectionLayout]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection[@Collection]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-CollectionLayout[@CollectionLayout]
 
 |===
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc
index 2b37690..20d233b 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_other-changes.adoc
@@ -67,7 +67,7 @@ For example, `o.a.i.commons.internal.resources._Resource` provides utilities for
 This module performs many of the responsibilities that were previously provided by the dependency on guava.
 ====
 
-This module also defines a number of plugin interface types, discussed in the xref:migration-notes.adoc#__migration-notes_1.16.0-to-2.0.0-M1_other-changes_plugins[section below].
+This module also defines a number of plugin interface types, discussed in the link:https://isis.apache.org/versions/2.0.0-M1/migration-notes/migration-notes.html#__migration-notes_1.16.0-to-2.0.0-M1_other-changes_plugins[section below].
 
 
 [__migration-notes_1.16.0-to-2.0.0-M1_other-changes_plugins]
@@ -235,7 +235,7 @@ JAX-RS 2.0 (one of the JavaEE 7.0 specifications) is implemented by RestEasy 3 w
 
 == IsisJdoSupport domain service
 
-In 1.16.x the link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#_rgsvc_api_IsisJdoSupport[`IsisJdoSupport`] domain service exposed the DataNucleus 4 `org.datanucleus.query.typesafe.TypesafeQuery` type in one of its signatures.
+In 1.16.x the link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-api_IsisJdoSupport[`IsisJdoSupport`] domain service exposed the DataNucleus 4 `org.datanucleus.query.typesafe.TypesafeQuery` type in one of its signatures.
 However, in DataNucleus 5 this type was removed and replaced by `javax.jdo.JDOQLTypedQuery`, reflecting the fact that type-safe queries are now part of JDO 3.2.
 
 Consequently in 2.0.0-M1 this API has been split into three:
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-annotations.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-annotations.adoc
index 3c4a1e7..00f2040 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-annotations.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-annotations.adoc
@@ -20,16 +20,16 @@ The following annotations, or attributes of annotations, have been removed
 
 |@Action
 |publishingPayloadFactory()
-|Removed, use the simpler link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
+|Removed, use the simpler link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
 
 
 |@ActionInteraction
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_domainEvent[`@Action#domainEvent()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_domainEvent[`@Action#domainEvent()`]
 
 |@ActionOrder
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_MemberOrder[`@MemberOrder()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_MemberOrder[`@MemberOrder()`]
 
 |@Aggregated
 |
@@ -38,111 +38,111 @@ The following annotations, or attributes of annotations, have been removed
 |@Auditable
 (JDO applib)
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_audited[`@DomainObject#auditing()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_audited[`@DomainObject#auditing()`]
 
 |@Audited
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_audited[`@DomainObject#auditing()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_audited[`@DomainObject#auditing()`]
 
 |@AutoComplete
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_autoComplete[`@DomainObject#autoComplete()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_autoComplete[`@DomainObject#autoComplete()`]
 
 |@ActionSemantics
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_semantics[`@Action#semantics()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_semantics[`@Action#semantics()`]
 
 |@Bookmarkable
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_bookmarking[`@DomainObject#bookmarking()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_bookmarking[`@DomainObject#bookmarking()`]
 
 |@Bounded
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_bounding[`@DomainObject#bounding()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_bounding[`@DomainObject#bounding()`]
 
 |@Bulk
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_invokeOn[`@Action#invokeOn()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_invokeOn[`@Action#invokeOn()`]
 
-Similarly, the `Bulk.InteractionContext` domain service is replaced with the link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#ActionInvocationContext[ActionInvocationContext] domain service.
+Similarly, the `Bulk.InteractionContext` domain service is replaced with the link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#ActionInvocationContext[ActionInvocationContext] domain service.
 
 
 |@Collection
 | notPersisted
-| Removed, replaced with link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_mementoSerialization[`@Collection#mementoSerialization()`]
+| Removed, replaced with link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_mementoSerialization[`@Collection#mementoSerialization()`]
 
 |@CollectionInteraction
 |
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_domainEvent[`@Collection
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_domainEvent[`@Collection
 #domainEvent()`]
 
 |@CollectionLayout
 |render()
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
 
 |@Command
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_command[`@Action#command()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_command[`@Action#command()`]
 
 |@CssClass
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_cssClass[`@ActionLayout#cssClass()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_cssClass[`@PropertyLayout#cssClass()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_cssClass[`@CollectionLayout#cssClass()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_cssClass[`@ParameterLayout#cssClass()`], link:../versions/2.0.0-M1/guides/r [...]
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_cssClass[`@ActionLayout#cssClass()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_cssClass[`@PropertyLayout#cssClass()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_cssClass[`@CollectionLayout#cssClass()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Paramet [...]
 
 |@CssClassFa
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_cssClassFa[`@ActionLayout#cssClassFa()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObjectLayout_cssClassFa[`@DomainObjectLayout#cssClassFa()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ViewModelLayout_cssClassFa[`@ViewModelLayout#cssClassFa()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_cssClassFa[`@ActionLayout#cssClassFa()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObjectLayout_cssClassFa[`@DomainObjectLayout#cssClassFa()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ViewModelLayout_cssClassFa[`@ViewModelLayout#cssClassFa()`].
 
 |@Debug
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_restrictTo[`@Action#restrictTo()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_restrictTo[`@Action#restrictTo()`]
 
 |@DescribedAs
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_describedAs[`@ActionLayout#describedAs()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_describedAs[`@PropertyLayout#describedAs()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_describedAs[`@CollectionLayout#describedAs()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_describedAs[`@ParameterLayout#describedAs()`], link:../ve [...]
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_describedAs[`@ActionLayout#describedAs()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_describedAs[`@PropertyLayout#describedAs()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_describedAs[`@CollectionLayout#describedAs()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.h [...]
 
 |@Disabled
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_editingDisabledReason[`@Property#editingDisabledReason()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_editingDisabledReason[`@Property#editingDisabledReason()`]
 
 .2+|@DomainObject
 |bounded
-|Deleted (was a boolean attribute), replaced by link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_bounding[`@Property#bounding`]
+|Deleted (was a boolean attribute), replaced by link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_bounding[`@Property#bounding`]
 
 |publishingPayloadFactory
-|Removed, use the simpler link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
+|Removed, use the simpler link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
 
 
 
 |@Exploration
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_restrictTo[`@Action#restrictTo()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_restrictTo[`@Action#restrictTo()`]
 
 |@FieldOrder
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_MemberOrder[`@MemberOrder()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_MemberOrder[`@MemberOrder()`]
 
 |@Hidden
 |
-|For actions by either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_hidden[`@Action#hidden()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_hidden[`@ActionLayout#hidden()`], for properties by either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_hidden[`@Property#hidden()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_hidden[`@PropertyLayout#hidden()`], for collections by either link:../versio [...]
+|For actions by either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_hidden[`@Action#hidden()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_hidden[`@ActionLayout#hidden()`], for properties by either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_hidden[`@Property#hidden()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Propert [...]
 
 |@Idempotent
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_semantics[`@Action#semantics()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_semantics[`@Action#semantics()`]
 
 |@Ignore
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Programmatic[`@Programmatic`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Programmatic[`@Programmatic`]
 
 |@Immutable
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_editing[`@DomainObject#editing()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_editing[`@DomainObject#editing()`]
 
 |@Mandatory
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_optionality[`@Property#optionality()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_optionality[`@Parameter#optionality()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_optionality[`@Property#optionality()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_optionality[`@Parameter#optionality()`].
 
-For properties, can also use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Column_allowsNull[`@Column#allowsNull()`]
-Can also use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Nullable[`@Nullable`] for either properties or parameters.
+For properties, can also use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Column_allowsNull[`@Column#allowsNull()`]
+Can also use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Nullable[`@Nullable`] for either properties or parameters.
 
 |@Mask
 |
@@ -150,47 +150,47 @@ Can also use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Nullable[`
 
 |@MaxLength
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_maxLength[`@Property#maxLength()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_maxLength[`@Parameter#maxLength()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_maxLength[`@Property#maxLength()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_maxLength[`@Parameter#maxLength()`].
 
-For properties, can also use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Column_length[`@Column#length()`]
+For properties, can also use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Column_length[`@Column#length()`]
 
 |@MemberGroups
 |
-|link:../versions/2.0.0-M1/guides/ugvw/ugvw.html#_ugvw_layout_file-based[.layout.xml] file instead.
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/ugvw/ugvw.html#_ugvw_layout_file-based[.layout.xml] file instead.
 
 |@MultiLine
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_multiLine[`@PropertyLayout#multiLine()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_multiLine[`@ParameterLayout#multiLine()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_multiLine[`@PropertyLayout#multiLine()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_multiLine[`@ParameterLayout#multiLine()`].
 
 |@MustSatisfy
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_mustSatisfy[`@Property#mustSatisfy()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_mustSatisfy[`@Parameter#mustSatisfy()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_mustSatisfy[`@Property#mustSatisfy()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_mustSatisfy[`@Parameter#mustSatisfy()`].
 
 |@NotPersisted
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_notPersisted[`@Property#notPersisted()`].
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_notPersisted[`@Property#notPersisted()`].
 
 |@Optional
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_optionality[`@Property#optionality()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_optionality[`@Parameter#optionality()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_optionality[`@Property#optionality()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_optionality[`@Parameter#optionality()`].
 
-For properties, can also use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Column_allowsNull[`@Column#allowsNull()`]
-Can also use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Nullable[`@Nullable`] for either properties or parameters.
+For properties, can also use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Column_allowsNull[`@Column#allowsNull()`]
+Can also use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Nullable[`@Nullable`] for either properties or parameters.
 
 |@Named
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_named[`@ActionLayout#named()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_named[`@PropertyLayout#named()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_named[`@CollectionLayout#named()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_named[`@ParameterLayout#named()`], link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_D [...]
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_named[`@ActionLayout#named()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_named[`@PropertyLayout#named()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_named[`@CollectionLayout#named()`], link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_named[`@P [...]
 
 |@NotInServiceMenu
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainService_nature[`@DomainService#nature()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainService_nature[`@DomainService#nature()`]
 
 Specify nature of `VIEW_CONTRIBUTIONS_ONLY`.
-Alternatively, use a link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Mixin[mixin].
+Alternatively, use a link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Mixin[mixin].
 
 |@NotContributed
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainService_nature[`@DomainService#nature()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainService_nature[`@DomainService#nature()`]
 
 Specify nature of `VIEW_MENU_ONLY`.
 
@@ -200,125 +200,125 @@ Specify nature of `VIEW_MENU_ONLY`.
 
 |@ObjectType
 |
-|Removed, link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_objectType[`@DomainObject#objectType()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainService_objectType[`@DomainService#objectType()`]
+|Removed, link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_objectType[`@DomainObject#objectType()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainService_objectType[`@DomainService#objectType()`]
 
 Alternatively, for domain entities either:
 
-* the link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Discriminator[`@Discriminator`] annotation can be specified; the value is used as the object type, or
-* the link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PersistenceCapable_schema[`@PersistenceCapable#schema()`] can be specified; the value is used as the concatenated with the class name to create a two part object type.
+* the link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Discriminator[`@Discriminator`] annotation can be specified; the value is used as the object type, or
+* the link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PersistenceCapable_schema[`@PersistenceCapable#schema()`] can be specified; the value is used as the concatenated with the class name to create a two part object type.
 
 |@Parameter
 |minLength()
 |Never implemented internally in Isis 1.x so no replacement.
 
-Note that the link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_MinLength[`@MinLength`] annotation is for use with autocomplete supporting methods (specifying the minimum number of characters to enter before an auto-complete search is performed).
+Note that the link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_MinLength[`@MinLength`] annotation is for use with autocomplete supporting methods (specifying the minimum number of characters to enter before an auto-complete search is performed).
 
 
 |@Paged
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_paged[`@CollectionLayout#paged()`] (for parented collections), or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_paged[`@DomainObject#paged()`] (for standalone collections)
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_paged[`@CollectionLayout#paged()`] (for parented collections), or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObject_paged[`@DomainObject#paged()`] (for standalone collections)
 
 |@ParameterLayout
 | renderedAsDayBefore
-|Deleted (was a boolean attribute), replaced by link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_renderDay[`@ParameterLayout#renderDay`].
+|Deleted (was a boolean attribute), replaced by link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ParameterLayout_renderDay[`@ParameterLayout#renderDay`].
 
 
 |@Plural
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObjectLayout_plural[`@DomainObjectLayout#plural()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_DomainObjectLayout_plural[`@DomainObjectLayout#plural()`]
 
 |@PostsAction
 InvokedEvent
 |
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_domainEvent[`@Action#domainEvent()`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_domainEvent[`@Action#domainEvent()`]
 
 |@PostsCollection
 AddedToEvent
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_domainEvent[`@Collection#domainEvent()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_domainEvent[`@Collection#domainEvent()`]
 
 |@PostsCollection
 RemovedFromEvent
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_domainEvent[`@Collection#domainEvent()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_domainEvent[`@Collection#domainEvent()`]
 
 |@PostsProperty
 ChangedEvent
 |
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_domainEvent[`@Property#domainEvent()`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_domainEvent[`@Property#domainEvent()`]
 
 |@Property
 | notPersisted
-| Removed, replaced with link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_mementoSerialization[`@Collection#mementoSerialization()`]
+| Removed, replaced with link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Collection_mementoSerialization[`@Collection#mementoSerialization()`]
 
 |@PropertyInteraction
 |
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_domainEvent[`@Property#domainEvent()`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_domainEvent[`@Property#domainEvent()`]
 
 .2+|@PropertyLayout
 | renderedAsDayBefore
-|Deleted (was a boolean attribute), replaced by link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_renderDay[`@PropertyLayout#renderDay`].
+|Deleted (was a boolean attribute), replaced by link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_renderDay[`@PropertyLayout#renderDay`].
 
 | unchanging
-| Deleted (was a boolean attribute), replaced by by link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_repainting[`@PropertyLayout#repainting`].
+| Deleted (was a boolean attribute), replaced by by link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_repainting[`@PropertyLayout#repainting`].
 
 
 |@Prototype
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_restrictTo[`@Action#restrictTo()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_restrictTo[`@Action#restrictTo()`]
 
 |@PublishedAction
 |
-|Removed, use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_publishing[@Action#publishing()]
+|Removed, use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_publishing[@Action#publishing()]
 
 |@PublishedObject
 |
-|Removed, use link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_publishing[@DomainObject#publishing()]
+|Removed, use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_publishing[@DomainObject#publishing()]
 
 |@PublishingPayload
 FactoryForAction
 |
-|Removed, use the simpler link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
+|Removed, use the simpler link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
 
 |PublishingPayload
 FactoryForObject
 |
-|Removed, use the simpler link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
+|Removed, use the simpler link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#PublisherService[PublisherService] SPI instead.
 
 |@QueryOnly
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_semantics[`@Action#semantics()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Action_semantics[`@Action#semantics()`]
 
 |@Regex
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_regexPattern[`@Property#regexPattern()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_regexPattern[`@Parameter#regexPattern()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_regexPattern[`@Property#regexPattern()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_regexPattern[`@Parameter#regexPattern()`].
 
 |@Render
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
 
 Supporting `RenderType` enum also removed.
 
 |@RenderedAs
 DayBefore
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_renderDay[`@Property#renderDay()`] or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_renderDay[`@Parameter#renderDay()`].
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Property_renderDay[`@Property#renderDay()`] or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_Parameter_renderDay[`@Parameter#renderDay()`].
 
 |@Resolve
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
 
 |@SortedBy
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_sortedBy[`@CollectionLayout#sortedBy()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_sortedBy[`@CollectionLayout#sortedBy()`]
 
 |@TypeOf
 |
-|Either link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_typeOf[`@CollectionLayout#typeOf()`] (for parented collections), or link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_typeOf[`@ActionLayout#typeOf()`] (for actions returning a standalone collection).
+|Either link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_CollectionLayout_typeOf[`@CollectionLayout#typeOf()`] (for parented collections), or link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_ActionLayout_typeOf[`@ActionLayout#typeOf()`] (for actions returning a standalone collection).
 
 |@TypicalLength
 |
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_typicalLength[`@PropertyLayout#typicalLength()`].
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant_PropertyLayout_typicalLength[`@PropertyLayout#typicalLength()`].
 
 
 |===
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-configuration-properties.adoc
index ddea74f..9da2185 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-configuration-properties.adoc
@@ -22,7 +22,7 @@ datanucleus.
 PublishingService.
 serializedForm
 |`PublishingService` has been removed.
-Use link:../versions/2.0.0-M1/guides/rgsvc/rgsvc.html#_rgsvc_api_PublisherService[`PublisherService`] instead.
+Use link:https://isis.apache.org/versions/2.0.0-M1/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] instead.
 
 |===
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-types.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-types.adoc
index 36433ff..e210a28 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-types.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_removed-types.adoc
@@ -66,11 +66,11 @@ The following interfaces have been removed.
 
 |`Auditable` +
 (JDO applib)
-|link:../versions/2.0.0-M1/guides/rgant/rgant.adoc#_rgant_DomainObject_audited[`@DomainObject#auditing()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.adoc#_rgant_DomainObject_audited[`@DomainObject#auditing()`]
 
 |`Bounded` +
 (JDO applib)
-|link:../versions/2.0.0-M1/guides/rgant/rgant.adoc#_rgant_DomainObject_bounding[`@DomainObject#bounding()`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.adoc#_rgant_DomainObject_bounding[`@DomainObject#bounding()`]
 
 |`NotPersistable` +
 (JDO applib)
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_updated-annotations.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_updated-annotations.adoc
index f2814a4..7ebc3ac 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_updated-annotations.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.16.0-to-2.0.0-M1_updated-annotations.adoc
@@ -7,7 +7,7 @@
 
 
 Prior to v2.0.0, several annotation attributes were defined as booleans.
-In order to support xref:migration-notes.adoc#__migration-notes_1.15.0-to-1.16.0_meta-annotations[meta annotations], these have been replaced by enums which also include a `NOT_SPECIFIED` value.
+In order to support link:https://isis.apache.org/versions/2.0.0-M1/migration-notes/migration-notes.html#__migration-notes_1.15.0-to-1.16.0_meta-annotations[meta annotations], these have been replaced by enums which also include a `NOT_SPECIFIED` value.
 Other enums have been extended (where necessary) to also have a `NOT_SPECIFIED` value.
 In all cases `NOT_SPECIFIED` is the new default.
 
@@ -20,148 +20,148 @@ In all cases `NOT_SPECIFIED` is the new default.
 | Updated attribute
 | Nature of change
 
-.7+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action[`@Action`]
+.7+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action[`@Action`]
 
-|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_command[`command`]
+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_command[`command`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_hidden[`hidden`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_hidden[`hidden`]
 | Default changed from `NOWHERE` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_invokeOn[`invokeOn`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_invokeOn[`invokeOn`]
 | Default changed from `OBJECT_ONLY` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_publishing[`publishing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_publishing[`publishing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_publishing[`publishing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_publishing[`publishing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_restrictTo[`restrictTo`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_restrictTo[`restrictTo`]
 | Default changed from `NO_RESTRICTIONS` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_semantics[`semantics`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Action_semantics[`semantics`]
 | Default changed from `NON_IDEMPOTENT` to `NOT_SPECIFIED`.
 
 
 
-.3+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout[`@ActionLayout`]
+.3+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout[`@ActionLayout`]
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout_bookmarking[`bookmarking`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout_bookmarking[`bookmarking`]
 | Default changed from `NEVER` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout_contributed[`contributed`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout_contributed[`contributed`]
 | Default changed from `AS_BOTH` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout_position[`position`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ActionLayout_position[`position`]
 | Default changed from `BELOW` to `NOT_SPECIFIED`.
 
 
-.3+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection[`@Collection`]
+.3+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection[`@Collection`]
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection_hidden[`hidden`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection_hidden[`hidden`]
 | Default changed from `NOWHERE` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection_editing[`editing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection_editing[`editing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection_mementoSerialization[`mementoSerialization`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Collection_mementoSerialization[`mementoSerialization`]
 | Replaces `notPersisted`, taking values of `INCLUDED`, `EXCLUDED` or `NOT_SPECIFIED`.
 Defaults to `NOT_SPECIFIED`.
 
 
 
-.4+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject[`@DomainObject`]
+.4+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject[`@DomainObject`]
 
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_auditing[`auditing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_auditing[`auditing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_bounding[`bounding`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_bounding[`bounding`]
 | Replaces `bounded`, taking values of `BOUNDED`, `UNBOUNDED` and `NOT_SPECIFIED`.
 Defaults to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_editing[`editing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_editing[`editing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_publishing[`publishing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObject_publishing[`publishing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
 
 
-.1+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObjectLayout[`@DomainObjectLayout`]
+.1+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObjectLayout[`@DomainObjectLayout`]
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObjectLayout_bookmarking[`bookmarking`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-DomainObjectLayout_bookmarking[`bookmarking`]
 | Default changed from `NEVER` to `NOT_SPECIFIED`.
 
 
-.1+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Parameter[`@Parameter`]
+.1+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Parameter[`@Parameter`]
 [cols="1a,3a", options="header"]
 
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Parameter_optionality[`optionality`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Parameter_optionality[`optionality`]
 | Default changed from `DEFAULT` to `NOT_SPECIFIED`.
 
 
 
-.2+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout[`@ParameterLayout`]
+.2+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout[`@ParameterLayout`]
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout_labelPosition[`labelPosition`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout_labelPosition[`labelPosition`]
 | Default changed from `DEFAULT` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout_renderDay[`renderDay`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ParameterLayout_renderDay[`renderDay`]
 | Replaces `renderedAsDayBefore`, taking values of `AS_DAY`, `AS_DAY_BEFORE` or `NOT_SPECIFIED`.
 Defaults to `NOT_SPECIFIED`.
 
 
-.6+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property[`@Property`]
+.6+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property[`@Property`]
 
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_commandReification[`commandReification`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_commandReification[`commandReification`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_editing[`editing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_editing[`editing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_hidden[`hidden`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_hidden[`hidden`]
 | Default changed from `NOWHERE` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_mementoSerialization[`mementoSerialization`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_mementoSerialization[`mementoSerialization`]
 | Replaces `notPersisted`, taking values of `INCLUDED`, `EXCLUDED` or `NOT_SPECIFIED`.
 Defaults to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_optionality[`optionality`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_optionality[`optionality`]
 | Default changed from `DEFAULT` to `NOT_SPECIFIED`.
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_publishing[`publishing`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-Property_publishing[`publishing`]
 | Default changed from `AS_CONFIGURED` to `NOT_SPECIFIED`.
 
 
 
-.5+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout[`@PropertyLayout`]
+.5+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout[`@PropertyLayout`]
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_labelPosition[`labelPosition`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_labelPosition[`labelPosition`]
 | Default changed from `DEFAULT` to `NOT_SPECIFIED`.
 
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_promptStyle[`promptStyle`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_promptStyle[`promptStyle`]
 | Default changed from `DEFAULT` to `NOT_SPECIFIED`.
 
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_renderDay[`renderDay`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_renderDay[`renderDay`]
 | Replaces `notPersisted`, taking values of `AS_DAY`, `AS_DAY_BEFORE` or `NOT_SPECIFIED`.
 Defaults to `NOT_SPECIFIED`.
 
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_repainting[`repainting`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-PropertyLayout_repainting[`repainting`]
 | Replaces `unchanging`, taking values of `REPAINT`, `NO_REPAINT` or `NOT_SPECIFIED`.
 Defaults to `NOT_SPECIFIED`.
 
 
 
-.1+|link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModelLayout[`@ViewModelLayout`]
+.1+|link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModelLayout[`@ViewModelLayout`]
 
-| link:../versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModelLayout_bookmarking[`bookmarking`]
+| link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#_rgant-ViewModelLayout_bookmarking[`bookmarking`]
 | adds new NOT_SPECIFIED value
 
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
index a3c3a51..933b15d 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.7.0-to-1.8.0.adoc
@@ -9,10 +9,10 @@
 
 Existing projects written against v1.7.0 should run against v1.8.0 without any changes.  In particular (unlike 1.6.0 and
  1.7.0) there should be no need to update `pom.xml` files of existing projects.  If you *do* encounter any difficulties
-then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document issues here.
+then let us know via the link:https://isis.apache.org/versions/2.0.0-M1/support.html#[users mailing list], so we can support you and document issues here.
 
 That said, many of the existing annotations have been deprecated in 1.8.0, replaced with a simplified and rationalized
- set of annotations; see xref:../guides/rgant/rgant.adoc#[here].  To help you migrate your application
+ set of annotations; see link:https://isis.apache.org/versions/2.0.0-M1/guides/rgant/rgant.html#[here].  To help you migrate your application
  over to the new annotations, there is a new configuration property that can be set in `isis.properties`:
 
 [source,ini]
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
index 88e7a6c..133217e 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_bootstrapping-using-AppManifest.adoc
@@ -9,7 +9,7 @@
 Apache Isis 1.9.0 provides a simplified programmatic way of bootstrapping the application, that also unifies bootstrapping for integration tests.
 
 For now this new bootstrapping mechanism is optional (you don't have to change your code), but it may become mandatory in future releases.
-The xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated to use this new mechanism.
+The link:https://isis.apache.org/versions/1.9.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated to use this new mechanism.
 
 The instructions below assume that your application is structured as per the simpleapp archetype.  Adjust accordingly.
 
@@ -129,7 +129,7 @@ For example, the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s s
 
 [TIP]
 ====
-For details of the usages of the other methods in this interface, see the xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[reference guide] documentation.
+For details of the usages of the other methods in this interface, see the link:https://isis.apache.org/versions/1.9.0/guides/rgcms/rgcms.html#_rgcms_classes_AppManifest-bootstrapping[reference guide] documentation.
 ====
 
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
index 1d0cd5e..7dc1895 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
@@ -6,9 +6,9 @@
 
 
 
-The `ExceptionRecognizerCompositeForJdoObjectStore` service (an implementation of the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`] SPI) recognizes certain expected exceptions thrown by the JDO objectstore (for example, violations of uniqueness) and converts them into meaningful messages for the end-user.
+The `ExceptionRecognizerCompositeForJdoObjectStore` service (an implementation of the link:https://isis.apache.org/versions/1.9.0/guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_ExceptionRecognizer[`ExceptionRecognizer`] SPI) recognizes certain expected exceptions thrown by the JDO objectstore (for example, violations of uniqueness) and converts them into meaningful messages for the end-user.
 
-Prior to 1.9.0 this implementation was _not_ annotated with xref:../guides/rgant/rgant.adoc#_rgant-DomainService[`@DomainService`] and thus needed to be explicitly registered in `isis.properties`.
+Prior to 1.9.0 this implementation was _not_ annotated with link:https://isis.apache.org/versions/1.9.0/guides/rgant/rgant.html#_rgant-DomainService[`@DomainService`] and thus needed to be explicitly registered in `isis.properties`.
 
 In 1.9.0 the service has been annotated with `@DomainService` meaning that:
 
@@ -32,7 +32,7 @@ public class EstatioIntegTestBuilder extends IsisSystemForTest.Builder {
 
 If you fail to do this you will get an exception to the effect of duplicate service Ids being registered.
 
-Now that the `ExceptionRecognizerCompositeForJdoObjectStore` no longer needs to be explicitly registered, you might (very rarely) require the opposite situation, namely to disable the service.  As this can't be done by just removing it from `isis.properties`, you instead can set a new xref:../guides/rgcfg/rgcfg.adoc#_rgcfg_configuring-core[configuration property] `isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable`:
+Now that the `ExceptionRecognizerCompositeForJdoObjectStore` no longer needs to be explicitly registered, you might (very rarely) require the opposite situation, namely to disable the service.  As this can't be done by just removing it from `isis.properties`, you instead can set a new link:https://isis.apache.org/versions/1.9.0/guides/rgcfg/rgcfg.html#_rgcfg_configuring-core[configuration property] `isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable`:
 
 [source,ini]
 ----
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_fixture-scripts-specification-provider.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_fixture-scripts-specification-provider.adoc
index 161baab..c66837d 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_fixture-scripts-specification-provider.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_fixture-scripts-specification-provider.adoc
@@ -6,8 +6,8 @@
 
 
 
-The `FixtureScriptsSpecificationProvider` SPI service is an alternative to subclassing the xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`] domain service.  The logic that would normally be in the subclass moves to the provider service instead, and the framework instantiates a fallback default instance, xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScripts[`FixtureScriptsDefault`].
+The `FixtureScriptsSpecificationProvider` SPI service is an alternative to subclassing the link:https://isis.apache.org/versions/1.9.0/guides/rgcms/rgcms.html#_rgcms_classes_super_FixtureScripts[`FixtureScripts`] domain service.  The logic that would normally be in the subclass moves to the provider service instead, and the framework instantiates a fallback default instance, link:https://isis.apache.org/versions/1.9.0/guides/rgsvc/rgsvc.html#_rgsvc_testing_FixtureScripts[`FixtureScriptsD [...]
 
 This new design is optional; if you continue to provide your own subclass then everything will continue as before.  However the new design is more flexible and involves less code.
 
-See xref:../guides/ugtst/ugtst.adoc#_ugtst_fixture-scripts_api-and-usage[user guide] for further discussion.
\ No newline at end of file
+See link:https://isis.apache.org/versions/1.9.0/guides/ugtst/ugtst.html#_ugtst_fixture-scripts_api-and-usage[user guide] for further discussion.
\ No newline at end of file
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages.adoc
index 1780889..0524d61 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages.adoc
@@ -8,11 +8,11 @@
 
 Apache Isis automatically scans for certain classes on the classpath in order to configure itself.  Specifically these are:
 
-* searching for classes annotated with xref:../guides/rgant/rgant.adoc#_rgant-DomainService[`@DomainService`].
+* searching for classes annotated with link:https://isis.apache.org/versions/1.9.0/guides/rgant/rgant.html#_rgant-DomainService[`@DomainService`].
 
-* searching for classes extending xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`]
+* searching for classes extending link:https://isis.apache.org/versions/1.9.0/guides/rgcms/rgcms.html#_rgcms_classes_super_FixtureScript[`FixtureScript`]
 
-* searching for classes annotated with xref:../guides/rgant/rgant.adoc#_rgant-PersistenceCapable[`@PersistenceCapable`].
+* searching for classes annotated with link:https://isis.apache.org/versions/1.9.0/guides/rgant/rgant.html#_rgant-PersistenceCapable[`@PersistenceCapable`].
 
 For the last of these we have tightened up the validation, to ensure that each package specified in the `isis.persistor.datanucleus.RegisterEntities.packagePrefix` key does indeed include at least one annotated entity.  This should include any domain classes for addon modules.
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
index 79daf9b..806af18 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_upgrading-to-dn4.adoc
@@ -8,7 +8,7 @@
 
 Apache Isis 1.9.0 updates to DataNucleus 4.0.0, which requires some changes (simplifications) to the Maven configuration.
 
-If you starting a new app then you can start from the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]; its Maven configuration has been updated.
+If you starting a new app then you can start from the link:https://isis.apache.org/versions/1.9.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]; its Maven configuration has been updated.
 
 If you have an existing Apache Isis app that you want to upgrade, then you'll need to make some changes.
 
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
index 91c6f80..cee688f 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_war-packaging.adoc
@@ -6,7 +6,7 @@
 
 
 
-As discussed in xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] and elsewhere, the `org.apache.isis.WebServer` provides the ability to run your app from an embedded jetty.
+As discussed in link:https://isis.apache.org/versions/1.9.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] and elsewhere, the `org.apache.isis.WebServer` provides the ability to run your app from an embedded jetty.
 This is great for prototyping.
 The class resides in the `isis-core-webserver` module, which also has the dependency on jetty.
 
@@ -37,4 +37,4 @@ To do this, locate the `maven-war-plugin` module definition (under `<build>/<plu
 ----
 
 
-For future projects the xref:../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated with this change.
+For future projects the link:https://isis.apache.org/versions/1.9.0/guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype] has been updated with this change.
diff --git a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.9.0-to-1.10.0.adoc b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.9.0-to-1.10.0.adoc
index b148315..6506234 100644
--- a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.9.0-to-1.10.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.9.0-to-1.10.0.adoc
@@ -6,7 +6,7 @@
 
 
 Existing projects written against v1.9.0 should run against v1.10.0 with only a few minor changes.  If you *do* encounter
-any difficulties then let us know via the xref:../support.adoc#[users mailing list], so we can support you and document
+any difficulties then let us know via the link:https://isis.apache.org/versions/1.10.0/support.html#[users mailing list], so we can support you and document
 issues here.
 
 
@@ -40,7 +40,7 @@ Therefore, in the parent `pom.xml` of your own domain applications, remove:
 
 == `allowLateRegistration`
 
-One possible issue is that (as per link:https://issues.apache.org/jira/browse/ISIS-830[ISIS-830]) the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] is now initialized as one of the first domain
+One possible issue is that (as per link:https://issues.apache.org/jira/browse/ISIS-830[ISIS-830]) the link:https://isis.apache.org/versions/1.10.0/guides/rgsvc/rgsvc.html#_rgsvc_core-domain-api_EventBusService[`EventBusService`] is now initialized as one of the first domain
 services; this is to ensure that any object lifecycle events caused by domain services initializing themselves can be
 posted on the event bus for subscribers.  The typical case for such lifecycle events to occur is from domain services
 that seed reference data; one such example can be found in the (non-ASF) link:http://platform.incode.org[Incode Platform^]'s security module.
@@ -74,7 +74,7 @@ org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjec
 ----
 
 
-To ensure that subscriber domain services are initialized before "seed" domain services, the xref:../guides/rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] attribute can be used.
+To ensure that subscriber domain services are initialized before "seed" domain services, the link:https://isis.apache.org/versions/1.10.0/guides/rgant/rgant.html#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`] attribute can be used.
 Normally this attribute is just used to order UI-visible services on the menu bars, but it also is used
 internally to sequence the internal list of services being initialized.
 
@@ -87,7 +87,7 @@ isis.services.eventbus.allowLateRegistration=true
 
 If you do that, be aware that not all subscribers may not receive some events generated by other domain services.
 
-For more details, see the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] man page.
+For more details, see the link:https://isis.apache.org/versions/1.10.0/guides/rgsvc/rgsvc.html#_rgsvc_core-domain-api_EventBusService[`EventBusService`] man page.
 
 
 
@@ -129,6 +129,6 @@ public class ToDoItem {
 
 == isis-maven-plugin
 
-The way that the Isis Maven plugin is configured has changed slightly; check out its xref:../guides/rgmvn/rgmvn.adoc#[documentation] for full details.
+The way that the Isis Maven plugin is configured has changed slightly; check out its link:https://isis.apache.org/versions/1.10.0/guides/rgmvn/rgmvn.html#[documentation] for full details.
 
 
diff --git a/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc b/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc
index cb11373..17ec48d 100644
--- a/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/tg/tg.adoc
@@ -64,8 +64,8 @@ Once that's built then run using:
 mvn -pl webapp antrun:run -D mavenmixin-jettyconsole
 ----
 
-A splash screen should appear offering to start up the app. Go ahead and start; the web browser should be opened at http://localhost:8080[http://localhost:8080]
-
+A splash screen should appear offering to start up the app.
+Go ahead and start; the web browser should be opened at http://localhost:8080[http://localhost:8080].
 Alternatively, you can run using the mvn-jetty-plugin:
 
 [source,bash]
@@ -89,7 +89,8 @@ Once at the home page:
 * create a new object
 * list all objects
 
-Go back to the splash screen, and quit the app. Note that the database runs in-memory (using HSQLDB) so any data created will be lost between runs.
+Go back to the splash screen, and quit the app.
+Note that the database runs in-memory (using HSQLDB) so any data created will be lost between runs.
 
 
 
@@ -111,7 +112,8 @@ Then set up a launch configuration and check that you can:
 
 == Explore codebase
 
-Apache Isis applications are organized into several Maven modules. Within your IDE navigate to the various classes and correlate back to the generated UI.
+Apache Isis applications are organized into several Maven modules.
+Within your IDE navigate to the various classes and correlate back to the generated UI.
 
 
 
@@ -119,7 +121,8 @@ Apache Isis applications are organized into several Maven modules. Within your I
 
 == Testing
 
-Testing is of course massively important, and Apache Isis makes both unit testing and (end-to-end) integration testing easy. Building the app from the Maven command line ("mvn clean install") will run all tests, but you should also run the tests from within the IDE.
+Testing is of course massively important, and Apache Isis makes both unit testing and (end-to-end) integration testing easy.
+Building the app from the Maven command line ("mvn clean install") will run all tests, but you should also run the tests from within the IDE.
 
 * `myapp-dom` unit tests
 * run
@@ -134,14 +137,17 @@ Testing is of course massively important, and Apache Isis makes both unit testin
 ** `myapp/integtests/target/cucumber-html-report/index.html`
 ** change test in IDE, re-run (in Maven)
 
-If you have issues with the integration tests, make sure that the domain classes have been enhanced by the DataNucleus enhancer. (The exact mechanics depends on the IDE being used).
+If you have issues with the integration tests, make sure that the domain classes have been enhanced by the DataNucleus enhancer.
+(The exact mechanics depends on the IDE being used).
 
 
 
 
 == Prototyping
 
-Although testing is important, in this tutorial we want to concentrate on how to write features and to iterate quickly. So for now, exclude the `integtests` module. Later on in the tutorial we'll add the tests back in so you can learn how to write automated tests for the features of your app.
+Although testing is important, in this tutorial we want to concentrate on how to write features and to iterate quickly.
+So for now, exclude the `integtests` module.
+Later on in the tutorial we'll add the tests back in so you can learn how to write automated tests for the features of your app.
 
 In the parent `pom.xml`:
 
@@ -174,7 +180,9 @@ change to:
 
 == Build a domain app
 
-The remainder of the tutorial provides guidance on building a domain application. We don't mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance. If you're stuck for ideas, then how about:
+The remainder of the tutorial provides guidance on building a domain application.
+We don't mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance.
+If you're stuck for ideas, then how about:
 
 * a todo app (``ToDoItem``s)
 * a pet clinic (`Pet`, `Owner`, `PetSpecies`, `Visit`)
@@ -193,7 +201,9 @@ Hopefully one of those ideas appeals or sparks an idea for something of your own
 
 == Domain entity
 
-Most domain objects in Apache Isis applications are persistent entities. In the simpleapp archetype the `SimpleObject` is an example. We can start developing our app by refactoring that class:
+Most domain objects in Apache Isis applications are persistent entities.
+In the simpleapp archetype the `SimpleObject` is an example.
+We can start developing our app by refactoring that class:
 
 * rename the `SimpleObject` class
 ** eg rename to `Pet`
@@ -209,9 +219,11 @@ Most domain objects in Apache Isis applications are persistent entities. In the
 
 == Domain service
 
-Domain services often act as factories or repositories to entities; more generally can be used to "bridge across" to other domains/bounded contexts. Most are application-scoped, but they can also be request-scoped if required.
+Domain services often act as factories or repositories to entities; more generally can be used to "bridge across" to other domains/bounded contexts.
+Most are application-scoped, but they can also be request-scoped if required.
 
-In the simpleapp archetype the `SimpleObjects` service is a factory/repository for the original `SimpleObject` entity. For our app it therefore makes sense to refactor that class into our own first service:
+In the simpleapp archetype the `SimpleObjects` service is a factory/repository for the original `SimpleObject` entity.
+For our app it therefore makes sense to refactor that class into our own first service:
 
 * rename the `SimpleObjects` class
 ** eg rename to `Pets`
@@ -234,7 +246,9 @@ In the simpleapp archetype the `SimpleObjects` service is a factory/repository f
 
 == Fixture scripts
 
-Fixture scripts are used to setup the app into a known state. They are great for demo's and as a time-saver when implementing a feature, and they can also be reused in automated integration tests. We usually also have a fixture script to zap all the (non-reference) data (or some logical subset of the data)
+Fixture scripts are used to setup the app into a known state.
+ They are great for demo's and as a time-saver when implementing a feature, and they can also be reused in automated integration tests.
+We usually also have a fixture script to zap all the (non-reference) data (or some logical subset of the data)
 
 * rename the `SimpleObjectsTearDownFixture` class
 * and update to delete from the appropriate underlying database table(s)
@@ -249,7 +263,10 @@ Fixture scripts are used to setup the app into a known state. They are great for
 
 == Actions
 
-Most business functionality is implemented using actions basically a `public` method accepting domain classes and primitives as its parameter types. The action can return a domain entity, or a collection of entities, or a primitive/String/value, or void. If a domain entity is returned then that object is rendered immediately; if a collection is returned then the Wicket viewer renders a table. Such collections are sometimes called "standalone" collections.
+Most business functionality is implemented using actions basically a `public` method accepting domain classes and primitives as its parameter types.
+The action can return a domain entity, or a collection of entities, or a primitive/String/value, or void.
+If a domain entity is returned then that object is rendered immediately; if a collection is returned then the Wicket viewer renders a table.
+Such collections are sometimes called "standalone" collections.
 
 * write an action to update the domain property (originally called `SimpleObject#name`, though renamed by now)
 * use the xref:../../guides/rgant/rgant.adoc#_rgant-ParameterLayout_named[`@ParameterLayout(named=...)`] annotation to specify the name of action parameters
@@ -263,7 +280,8 @@ Most business functionality is implemented using actions basically a `public` me
 
 == REST API
 
-As well as exposing the Wicket viewer, Isis also exposes a REST API (an implementation of the http://restfulobjects.org[Restful Objects spec]). All of the functionality of the domain object model is available through this REST API.
+As well as exposing the Wicket viewer, Isis also exposes a REST API (an implementation of the http://restfulobjects.org[Restful Objects spec]).
+All of the functionality of the domain object model is available through this REST API.
 
 * add Chrome extensions
 * install https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en[Postman]
@@ -280,7 +298,9 @@ As well as exposing the Wicket viewer, Isis also exposes a REST API (an implemen
 
 == Specify Action semantics
 
-The semantics of an action (whether it is safe/query only, whether it is idempotent, whether it is neither) can be specified for each action; if not specified then Isis assumes non-idempotent. In the Wicket viewer this matters in that only query-only actions can be bookmarked or used as contributed properties/collections. In the RESTful viewer this matters in that it determines the HTTP verb (GET, PUT or POST) that is used to invoke the action.
+The semantics of an action (whether it is safe/query only, whether it is idempotent, whether it is neither) can be specified for each action; if not specified then Isis assumes non-idempotent.
+In the Wicket viewer this matters in that only query-only actions can be bookmarked or used as contributed properties/collections.
+In the RESTful viewer this matters in that it determines the HTTP verb (GET, PUT or POST) that is used to invoke the action.
 
 * experiment changing xref:../../guides/rgant/rgant.adoc#_rgant-Action_semantics[`@Action(semantics=...)`] on actions
 * note the HTTP methods exposed in the REST API change
@@ -291,7 +311,8 @@ The semantics of an action (whether it is safe/query only, whether it is idempot
 
 == Value properties
 
-Domain entities have state: either values (primitives, strings) or references to other entities. In this section we explore adding some value properties
+Domain entities have state: either values (primitives, strings) or references to other entities.
+In this section we explore adding some value properties
 
 * add some xref:../../guides/ugfun/ugfun.adoc#_ugfun_programming-model_properties[value properties]; also:
 * for string properties
@@ -315,7 +336,9 @@ Domain entities have state: either values (primitives, strings) or references to
 
 == Reference properties
 
-Domain entities can also reference other domain entities. These references may be either scalar (single-valued) or vector (multi-valued). In this section we focus on scalar reference properties.
+Domain entities can also reference other domain entities.
+These references may be either scalar (single-valued) or vector (multi-valued).
+In this section we focus on scalar reference properties.
 
 * add some xref:../../guides/ugfun/ugfun.adoc#_ugfun_programming-model_properties[reference properties]
 * update the corresponding domain service (for creation actoin)
@@ -333,7 +356,8 @@ Domain entities can also reference other domain entities. These references may b
 
 == Usability: Defaults
 
-Quick detour: often we want to set up defaults to go with choices. Sensible defaults for action parameters can really improve the usability of the app.
+Quick detour: often we want to set up defaults to go with choices.
+Sensible defaults for action parameters can really improve the usability of the app.
 
 * Add xref:../../guides/ugfun/ugfun.adoc#_ugfun_drop-downs-and-defaults[defaults] for action parameters
 
@@ -342,7 +366,8 @@ Quick detour: often we want to set up defaults to go with choices. Sensible defa
 
 == Collections
 
-Returning back to references, Isis also supports vector (multi-valued) references to another object instances in other words collections. We sometimes called these "parented" collections (to distinguish from a "standalone" collection as returned from an action)
+Returning back to references, Isis also supports vector (multi-valued) references to another object instances in other words collections.
+We sometimes called these "parented" collections (to distinguish from a "standalone" collection as returned from an action)
 
 * Ensure that all domain classes implement `java.lang.Comparable`
 ** use the xref:../../guides/rgcms/rgcms.adoc#_rgcms_classes_utility_ObjectContracts[`ObjectContracts`] utility class to help implement `Comparable`
@@ -358,12 +383,15 @@ Returning back to references, Isis also supports vector (multi-valued) reference
 
 == Actions and Collections
 
-The Wicket UI doesn't allow collections to be modified (added to/removed from). However, we can easily write actions to accomplish the same. Moreover, these actions can provide some additional business logic. For example: it probably shouldn't be possible to add an object twice into a collection, so it should not be presented in the list of choices/autoComplete; conversely, only those objects in the collection should be offered as choices to be removed.
+The Wicket UI doesn't allow collections to be modified (added to/removed from).
+However, we can easily write actions to accomplish the same.
+Moreover, these actions can provide some additional business logic.
+For example: it probably shouldn't be possible to add an object twice into a collection, so it should not be presented in the list of choices/autoComplete; conversely, only those objects in the collection should be offered as choices to be removed.
 
 * Add domain actions to add/remove from the collection
 * to create objects, xref:../../guides/ugfun/ugfun.adoc#_ugfun_programming-model_inject-services[inject] associated domain service
 ** generally we recommend using the xref:../../guides/rgant/rgant.adoc#_rgant-Inject[`@Inject`] annotation with either private or default visibility
-* the service itself should use xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]
+* the service itself should use xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_RepositoryService[`RepositoryService`]
 * use the xref:../../guides/rgant/rgant.adoc#_rgant-MemberOrder[`@MemberOrder(name=...)`] annotation to associate an action with a property or with a collection
 
 
@@ -371,7 +399,8 @@ The Wicket UI doesn't allow collections to be modified (added to/removed from).
 
 == CSS UI Hints
 
-CSS classes can be associated with any class member (property, collection, action). But for actions in particular:
+CSS classes can be associated with any class member (property, collection, action).
+But for actions in particular:
 
 * the bootstrap "btn" CSS classes can be used using the xref:../../guides/rgant/rgant.adoc#_rgant-ActionLayout_cssClass[`@ActionLayout(cssClass=...)`] annotation
 
@@ -387,8 +416,10 @@ So:
 
 == File-based Layout
 
-Up to this point we've been using annotations (`@MemberOrder`, `@MemberGroupLayout`, `@Named`, `@PropertyLayout`, `@ParameterLayout`, `@ActionLayout` and so on) for UI hints. However, the feedback loop is not good: it requires us stopping the app, editing the code, recompiling and running again.
-So instead, all these UI hints (and more) can be specified dynamically, using a corresponding `.layout.xml` file. If edited while the app is running, it will be reloaded automatically (in IntelliJ, use Run&gt;Reload Changed Classes):
+Up to this point we've been using annotations (`@MemberOrder`, `@MemberGroupLayout`, `@Named`, `@PropertyLayout`, `@ParameterLayout`, `@ActionLayout` and so on) for UI hints.
+However, the feedback loop is not good: it requires us stopping the app, editing the code, recompiling and running again.
+So instead, all these UI hints (and more) can be specified dynamically, using a corresponding `.layout.xml` file.
+If edited while the app is running, it will be reloaded automatically (in IntelliJ, use Run&gt;Reload Changed Classes):
 
 * Delete the various hint annotations and instead specify layout hints using a  xref:../../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[.layout.xml] file.
 
@@ -397,7 +428,10 @@ So instead, all these UI hints (and more) can be specified dynamically, using a
 
 == Business rules
 
-Apache Isis excels for domains where there are complex business rules to enforce. The UI tries not to constrain the user from navigating around freely, however the domain objects nevertheless ensure that they cannot change into an invalid state. Such rules can be enforced either declaratively (using annotations) or imperatively (using code). The objects can do this in one of three ways:
+Apache Isis excels for domains where there are complex business rules to enforce.
+The UI tries not to constrain the user from navigating around freely, however the domain objects nevertheless ensure that they cannot change into an invalid state.
+Such rules can be enforced either declaratively (using annotations) or imperatively (using code).
+The objects can do this in one of three ways:
 
 * visibility: preventing the user from even seeing a property/collection/action
 * usability: allowing the user to view a property/collection/action but not allowing the user to change it
@@ -435,7 +469,8 @@ Or, more pithily: "see it, use it, do it"
 
 == Home page
 
-The Wicket UI will automatically invoke the "home page" action, if available. This is a no-arg action of one of the domain services, that can return either an object (eg representing the current user) or a standalone action.
+The Wicket UI will automatically invoke the "home page" action, if available.
+This is a no-arg action of one of the domain services, that can return either an object (eg representing the current user) or a standalone action.
 
 * Add the xref:../../guides/rgant/rgant.adoc#_rgant-HomePage[`@HomePage`] annotation to one (no more) of the domain services' no-arg actions
 
@@ -444,7 +479,8 @@ The Wicket UI will automatically invoke the "home page" action, if available. Th
 
 == Clock Service
 
-To ensure testability, there should be no dependencies on system time, for example usage of `LocalDate.now()`. Instead the domain objects should delegate to the provided `ClockService`.
+To ensure testability, there should be no dependencies on system time, for example usage of `LocalDate.now()`.
+Instead the domain objects should delegate to the provided `ClockService`.
 
 * remove any dependencies on system time (eg defaults for date/time action parameters)
 * inject xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ClockService[`ClockService`]
@@ -455,11 +491,16 @@ To ensure testability, there should be no dependencies on system time, for examp
 
 == Using Contributions
 
-One of Apache Isis' most powerful features is the ability for the UI to combine functionality from domain services into the representation of an entity. The effect is similar to traits or mix-ins in other languages, however the "mixing in" is done at runtime, within the Apache Isis metamodel. In Apache Isis' terminology, we say that the domain service action is contributed to the entity.
+One of Apache Isis' most powerful features is the ability for the UI to combine functionality from domain services into the representation of an entity.
+The effect is similar to traits or mix-ins in other languages, however the "mixing in" is done at runtime, within the Apache Isis metamodel.
+In Apache Isis' terminology, we say that the domain service action is contributed to the entity.
 
-Any action of a domain service that has a domain entity type as one of its parameter types will (by default) be contributed. If the service action takes more than one argument, or does not have safe semantics, then it will be contributed as an entity action. If the service action has precisely one parameter type (that of the entity) and has safe semantics then it will be contributed either as a collection or as a property (dependent on whether it returns a collection of a scalar).
+Any action of a domain service that has a domain entity type as one of its parameter types will (by default) be contributed.
+If the service action takes more than one argument, or does not have safe semantics, then it will be contributed as an entity action.
+If the service action has precisely one parameter type (that of the entity) and has safe semantics then it will be contributed either as a collection or as a property (dependent on whether it returns a collection of a scalar).
 
-Why are contributions so useful? Because the service action will match not on the entity type, but also on any of the entity's supertypes (all the way up to `java.lang.Object`). That means that you can apply the http://en.wikipedia.org/wiki/Dependency_inversion_principle[dependency inversion principle] to ensure that the modules of your application have acyclic dependencies; but in the UI it can still appear as if there are bidirectional dependencies between those modules. The lack of bi [...]
+Why are contributions so useful? Because the service action will match not on the entity type, but also on any of the entity's supertypes (all the way up to `java.lang.Object`). That means that you can apply the http://en.wikipedia.org/wiki/Dependency_inversion_principle[dependency inversion principle] to ensure that the modules of your application have acyclic dependencies; but in the UI it can still appear as if there are bidirectional dependencies between those modules.
+The lack of bidirectional dependencies can help save your app degrading into a http://en.wikipedia.org/wiki/Big_ball_of_mud[big ball of mud].
 
 Finally, note that the layout of contributed actions/collections/properties can be specified using the `.layout.json` file (and it is highly recommended that you do so).
 
@@ -498,7 +539,8 @@ Finally, note that the layout of contributed actions/collections/properties can
 
 == Using the Event Bus
 
-Another way in which Apache Isis helps you keep your application nicely modularized is through its event bus. Each action invocation, or property modification, can be used to generate a succession of events that allows subscribers to veto the interaction (the see it/use it/do it rules) or, if the action is allowed, to perform work prior to the execution of the action or after the execution of the action.
+Another way in which Apache Isis helps you keep your application nicely modularized is through its event bus.
+Each action invocation, or property modification, can be used to generate a succession of events that allows subscribers to veto the interaction (the see it/use it/do it rules) or, if the action is allowed, to perform work prior to the execution of the action or after the execution of the action.
 
 Under the covers Apache Isis uses the https://code.google.com/p/guava-libraries/wiki/EventBusExplained[Guava event bus] and subscribers (always domain services) subscribe by writing methods annotated with `@com.google.common.eventbus.Subscribe` annotation.
 
@@ -515,7 +557,8 @@ Using the guidance in the docs for the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc
 
 == Bulk actions
 
-Bulk actions are actions that can be invoked on a collection of actions, that is on collections returned by invoking an action. Actions are specified as being bulk actions using the xref:../../guides/rgant/rgant.adoc#_rgant-Action_invokeOn[`@action(invokeOn=OBJECT_AND_COLLECTION)`] annotation.
+Bulk actions are actions that can be invoked on a collection of actions, that is on collections returned by invoking an action.
+Actions are specified as being bulk actions using the xref:../../guides/rgant/rgant.adoc#_rgant-Action_invokeOn[`@action(invokeOn=OBJECT_AND_COLLECTION)`] annotation.
 
 [NOTE]
 ====
@@ -555,7 +598,8 @@ This can be helpful for "naive" code which would normally make the same query wi
 Each element in the Wicket viewer (entity form, properties, collections, action button etc) is a component, each created by a internal API (`ComponentFactory`, described xref:../../guides/ugvw/ugvw.adoc#_ugvw_extending[here]).
 For collections there can be multiple views, and the Wicket viewer provides a view selector drop down (top right of each collection panel).
 
-Moreover, we can add additional views. In this section we'll explore some of these, already provided through the (non-ASF) link:http://platform.incode.org[Incode Platform^].
+Moreover, we can add additional views.
+In this section we'll explore some of these, already provided through the (non-ASF) link:http://platform.incode.org[Incode Platform^].
 
 
 === Excel download
@@ -602,9 +646,11 @@ Or, see (the same) http://youtu.be/g01tK58MxJ8[screencast].
 
 == View models
 
-In most cases users can accomplish the business operations they need by invoking actions directly on domain entities. For some high-volume or specialized uses cases, though, there may be a requirement to bring together data or functionality that spans several entities.
+In most cases users can accomplish the business operations they need by invoking actions directly on domain entities.
+For some high-volume or specialized uses cases, though, there may be a requirement to bring together data or functionality that spans several entities.
 
-Also, if using Apache Isis' REST API then the REST client may be a native application (on a smartphone or tablet, say) that is deployed by a third party. In these cases exposing the entities directly would be inadvisable because a refactoring of the domain entity would change the REST API and probably break that REST client.
+Also, if using Apache Isis' REST API then the REST client may be a native application (on a smartphone or tablet, say) that is deployed by a third party.
+In these cases exposing the entities directly would be inadvisable because a refactoring of the domain entity would change the REST API and probably break that REST client.
 
 To support these use cases, Apache Isis therefore allows you to write a view model, either by annotating the class with xref:../../guides/rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] or (for more control) by implementing the xref:../../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractViewModel[`ViewModel`] interface.
 
@@ -616,7 +662,8 @@ To support these use cases, Apache Isis therefore allows you to write a view mod
 
 == Testing
 
-Up to this point we've been introducing the features of Isis and building out our domain application, but with little regard to testing. Time to fix that.
+Up to this point we've been introducing the features of Isis and building out our domain application, but with little regard to testing.
+Time to fix that.
 
 
 === Unit testing
@@ -633,7 +680,9 @@ https://code.google.com/p/mockito/[Mockito] seems to be the current favourite am
 
 Although unit tests are easy to write and fast to execute, integration tests are more valuable: they test interactions of the system from the outside-in, simulating the way in which the end-users use the application.
 
-Earlier on in the tutorial we commented out the `myapp-integtests` module. Let's commented it back in. In the parent `pom.xml`:
+Earlier on in the tutorial we commented out the `myapp-integtests` module.
+Let's commented it back in.
+In the parent `pom.xml`:
 
 [source,xml]
 ----
@@ -670,7 +719,8 @@ Isis has great support for writing xref:../../guides/ugtst/ugtst.adoc#_ugtst_int
 
 == Customising the REST API
 
-The REST API generated by Apache Isis conforms to the Restful Objects specification. Apache Isis 1.8.0 provides experimental support to allow the representations to be customized.
+The REST API generated by Apache Isis conforms to the Restful Objects specification.
+Apache Isis 1.8.0 provides experimental support to allow the representations to be customized.
 
 * as per xref:../../guides/ugvro/ugvro.adoc#__ugvro_simplified-representations_configuration-properties[the documentation], configure the Restful Objects viewer to generate a simplified object representation: +
 +
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.11.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.11.0.adoc
index f06408a..8296da2 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.11.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.11.0.adoc
@@ -8,7 +8,7 @@
 
 The main focus for Apache Isis 1.11.0 is on the REST API and on view models using JAXB:
 
-* the xref:../guides/ugvro/ugvro.adoc#[Restful Objects viewer] now supports simplified
+* the link:https://isis.apache.org/versions/1.11.0/guides/ugvro/ugvro.html#[Restful Objects viewer] now supports simplified
 representations intended to make it easier to write custom Javascript (and other) clients that consume the REST API;
 these are obtained using the HTTP Accept header.  There is also support for link:http://swagger.io[Swagger] spec files
 so that the REST API can be more easily explored and tested. +
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.12.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.12.0.adoc
index 2e18a68..9a09a20 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.12.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.12.0.adoc
@@ -18,11 +18,11 @@ similar to the action prompt dialogs; in a future release we hope to support "in
 Another notable change in this release include various new domain services.
 Some of these are in support of the file-based layouts functionality, others including new access into Apache Isis' metamodel.
 (Some of these new services were originally part of the (non-ASF) link:http://www.isisaddons.org[Isis Addons]).
-In addition, the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] service has been deprecated, replaced by a number of fine-grained services (such as xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_MessageService[`MessageService`]).
+In addition, the link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] service has been deprecated, replaced by a number of fine-grained services (such as link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_MessageServic [...]
 
 The release also includes a number of new mixins, to automatically surface in the UI an entity's id, version (if any), and to download the layout XML and rebuild the metamodel for a given domain entity.
 There is also a mixin to clear any UI hints (part of the file-based layouts functionality).
-In all cases these mixins can be hidden using either security or by writing a xref:../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto the visibility of the corresponding domain event.
+In all cases these mixins can be hidden using either security or by writing a link:https://isis.apache.org/versions/1.12.0/guides/rgcms/rgcms.html#_rgcms_classes_super_AbstractSubscriber[subscriber] to veto the visibility of the corresponding domain event.
 
 
 
@@ -30,43 +30,43 @@ In all cases these mixins can be hidden using either security or by writing a xr
 
 == New Feature
 
-* link:https://issues.apache.org/jira/browse/ISIS-1351[ISIS-1351] - Extend xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ConfigurationService[`ConfigurationService`] to list all configuration properties in the UI
-* link:https://issues.apache.org/jira/browse/ISIS-1325[ISIS-1325] - New xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_SessionManagementService[`SessionManagementService`]
+* link:https://issues.apache.org/jira/browse/ISIS-1351[ISIS-1351] - Extend link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_core-domain-api_ConfigurationService[`ConfigurationService`] to list all configuration properties in the UI
+* link:https://issues.apache.org/jira/browse/ISIS-1325[ISIS-1325] - New link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_SessionManagementService[`SessionManagementService`]
 * link:https://issues.apache.org/jira/browse/ISIS-1317[ISIS-1317] - Allow single domain object class to be invalidated through a mixin.
-* link:https://issues.apache.org/jira/browse/ISIS-1313[ISIS-1313] - Enhancement to xref:../guides/rgmvn/rgmvn.adoc#_rgmvn_xsd[xsd] goal of the isis-maven-plugin to ignore/include the Isis common schemas.
-* link:https://issues.apache.org/jira/browse/ISIS-1292[ISIS-1292] - Extend xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_metadata-api_MetamodelService[`MetaModelService`] to surface packages, classes etc (as used by the security module).
-* link:https://issues.apache.org/jira/browse/ISIS-993[ISIS-993] - Show different object members on multiple tabs (xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts])
+* link:https://issues.apache.org/jira/browse/ISIS-1313[ISIS-1313] - Enhancement to link:https://isis.apache.org/versions/1.12.0/guides/rgmvn/rgmvn.html#_rgmvn_xsd[xsd] goal of the isis-maven-plugin to ignore/include the Isis common schemas.
+* link:https://issues.apache.org/jira/browse/ISIS-1292[ISIS-1292] - Extend link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_metadata-api_MetamodelService[`MetaModelService`] to surface packages, classes etc (as used by the security module).
+* link:https://issues.apache.org/jira/browse/ISIS-993[ISIS-993] - Show different object members on multiple tabs (link:https://isis.apache.org/versions/1.12.0/guides/ugvw/ugvw.html#_ugvw_layout_file-based[dynamic XML layouts])
 * link:https://issues.apache.org/jira/browse/ISIS-784[ISIS-784] - Change Wicket viewer to get rid of edit mode, instead allow individual fields to be edited by clicking on them (similar to the way that JIRA works).
 
 
 == Improvement
 
 * link:https://issues.apache.org/jira/browse/ISIS-1333[ISIS-1333] - Remove self-host profile from the archetype
-* link:https://issues.apache.org/jira/browse/ISIS-1332[ISIS-1332] - Factor out a xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_HintStore[`HintStore`] service, so that this is pluggable.
+* link:https://issues.apache.org/jira/browse/ISIS-1332[ISIS-1332] - Factor out a link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_HintStore[`HintStore`] service, so that this is pluggable.
 * link:https://issues.apache.org/jira/browse/ISIS-1330[ISIS-1330] - Add CSS classes for table cells and for collections to make it easier to fine tune pages using CSS.
 * link:https://issues.apache.org/jira/browse/ISIS-1329[ISIS-1329] - Extend hint support for "show all"
 * link:https://issues.apache.org/jira/browse/ISIS-1327[ISIS-1327] - Change the view mode of the select2 (value drop down) to be a simple text field.
-* link:https://issues.apache.org/jira/browse/ISIS-1324[ISIS-1324] - Allow multiple different views of same collection in a layout (xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts])
-* link:https://issues.apache.org/jira/browse/ISIS-1323[ISIS-1323] - Deprecate @CollectionLayout#renderType, since is duplicated by xref:../guides/rgant/rgant.adoc#_rgant-CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
+* link:https://issues.apache.org/jira/browse/ISIS-1324[ISIS-1324] - Allow multiple different views of same collection in a layout (link:https://isis.apache.org/versions/1.12.0/guides/ugvw/ugvw.html#_ugvw_layout_file-based[dynamic XML layouts])
+* link:https://issues.apache.org/jira/browse/ISIS-1323[ISIS-1323] - Deprecate @CollectionLayout#renderType, since is duplicated by link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-CollectionLayout_defaultView[`@CollectionLayout#defaultView()`]
 * link:https://issues.apache.org/jira/browse/ISIS-1322[ISIS-1322] - Mixins not exposing the mixedin object in events (for subscribers to veto).
-* link:https://issues.apache.org/jira/browse/ISIS-1321[ISIS-1321] - Extend xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_metadata-api_MetamodelService[`MetaModelService`] to allow CSV of metamodel to be downloaded.
-* link:https://issues.apache.org/jira/browse/ISIS-1320[ISIS-1320] - Move xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`] to applib (and simplify)
-* link:https://issues.apache.org/jira/browse/ISIS-1312[ISIS-1312] - Improve xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_integration-api_JaxbService[`JaxbServiceDefault#xsd(...)`] to correctly reference the Isis common schema imports.
+* link:https://issues.apache.org/jira/browse/ISIS-1321[ISIS-1321] - Extend link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_metadata-api_MetamodelService[`MetaModelService`] to allow CSV of metamodel to be downloaded.
+* link:https://issues.apache.org/jira/browse/ISIS-1320[ISIS-1320] - Move link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`] to applib (and simplify)
+* link:https://issues.apache.org/jira/browse/ISIS-1312[ISIS-1312] - Improve link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_integration-api_JaxbService[`JaxbServiceDefault#xsd(...)`] to correctly reference the Isis common schema imports.
 * link:https://issues.apache.org/jira/browse/ISIS-1300[ISIS-1300] - Allow the enablement of the WicketSource plugin to be configurable, and disabled by default
-* link:https://issues.apache.org/jira/browse/ISIS-1299[ISIS-1299] - xref:../guides/rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] and xref:../guides/rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`] view models should automatically support isCloneable.
+* link:https://issues.apache.org/jira/browse/ISIS-1299[ISIS-1299] - link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-ViewModel[`@ViewModel`] and link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-XmlRootElement[`@XmlRootElement`] view models should automatically support isCloneable.
 * link:https://issues.apache.org/jira/browse/ISIS-1298[ISIS-1298] - Fix deprecated annotation use for ViewModel.Cloneable#clone
 * link:https://issues.apache.org/jira/browse/ISIS-1295[ISIS-1295] - Run integration tests using thread-local, to allow "complete" tests that also exercise, eg Quartz jobs.
 * link:https://issues.apache.org/jira/browse/ISIS-1240[ISIS-1240] - Derive icon from service when not provided
-* link:https://issues.apache.org/jira/browse/ISIS-1239[ISIS-1239] - For wicket ui, use a cookie or similar to remember the hint from last time (xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts])
-* link:https://issues.apache.org/jira/browse/ISIS-1228[ISIS-1228] - Reorganizing/splitting out xref:../guides/rgant/rgant.adoc#_rgant-DomainObjectContainer[`@DomainObjectContainer`] service.
-* link:https://issues.apache.org/jira/browse/ISIS-1048[ISIS-1048] - Make view model URLs more secure, eg through a private key (xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_UrlEncodingService[`UrlEncodingService`]).
-* link:https://issues.apache.org/jira/browse/ISIS-1037[ISIS-1037] - Support layout.xml as well as layout.json (xref:../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[dynamic XML layouts])
+* link:https://issues.apache.org/jira/browse/ISIS-1239[ISIS-1239] - For wicket ui, use a cookie or similar to remember the hint from last time (link:https://isis.apache.org/versions/1.12.0/guides/ugvw/ugvw.html#_ugvw_layout_file-based[dynamic XML layouts])
+* link:https://issues.apache.org/jira/browse/ISIS-1228[ISIS-1228] - Reorganizing/splitting out link:https://isis.apache.org/versions/1.12.0/guides/rgant/rgant.html#_rgant-DomainObjectContainer[`@DomainObjectContainer`] service.
+* link:https://issues.apache.org/jira/browse/ISIS-1048[ISIS-1048] - Make view model URLs more secure, eg through a private key (link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_UrlEncodingService[`UrlEncodingService`]).
+* link:https://issues.apache.org/jira/browse/ISIS-1037[ISIS-1037] - Support layout.xml as well as layout.json (link:https://isis.apache.org/versions/1.12.0/guides/ugvw/ugvw.html#_ugvw_layout_file-based[dynamic XML layouts])
 * link:https://issues.apache.org/jira/browse/ISIS-806[ISIS-806] - In Wicket viewer, shouldn't be possible to invoke an action if editing a form.
 
 
 == Bug
 
-* link:https://issues.apache.org/jira/browse/ISIS-1348[ISIS-1348] - Bug with xref:../guides/ugtst/ugtst.adoc#_ugtst_unit-test-support_soap-fake-server-junit-rule[SoapEndpointPublishingRule] when multiple endpoints.
+* link:https://issues.apache.org/jira/browse/ISIS-1348[ISIS-1348] - Bug with link:https://isis.apache.org/versions/1.12.0/guides/ugtst/ugtst.html#_ugtst_unit-test-support_soap-fake-server-junit-rule[SoapEndpointPublishingRule] when multiple endpoints.
 * link:https://issues.apache.org/jira/browse/ISIS-1347[ISIS-1347] - Missing annotation in SimpleObject
 * link:https://issues.apache.org/jira/browse/ISIS-1346[ISIS-1346] - ActionInvocationContext isn't populated properly
 * link:https://issues.apache.org/jira/browse/ISIS-1342[ISIS-1342] - The metamodel validation error page doesn't reliably render itself if there are errors.
@@ -74,8 +74,8 @@ In all cases these mixins can be hidden using either security or by writing a xr
 * link:https://issues.apache.org/jira/browse/ISIS-1340[ISIS-1340] - Rebuild metamodel mixin action isn't working reliably
 * link:https://issues.apache.org/jira/browse/ISIS-1328[ISIS-1328] - Bookmark hints are not being honoured
 * link:https://issues.apache.org/jira/browse/ISIS-1319[ISIS-1319] - Input dialog for action label for mandatory parameter not shown when the parameter is an view model
-* link:https://issues.apache.org/jira/browse/ISIS-1318[ISIS-1318] - contributed actions/mixins breaks publishing; also flush any pending actions to be published as the result of doing a wrapped action via the xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`]
-* link:https://issues.apache.org/jira/browse/ISIS-1315[ISIS-1315] - Can't generate xref:../guides/rgmvn/rgmvn.adoc#_rgmvn_swagger[swagger] specs, where actions are contributed.
+* link:https://issues.apache.org/jira/browse/ISIS-1318[ISIS-1318] - contributed actions/mixins breaks publishing; also flush any pending actions to be published as the result of doing a wrapped action via the link:https://isis.apache.org/versions/1.12.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`]
+* link:https://issues.apache.org/jira/browse/ISIS-1315[ISIS-1315] - Can't generate link:https://isis.apache.org/versions/1.12.0/guides/rgmvn/rgmvn.html#_rgmvn_swagger[swagger] specs, where actions are contributed.
 * link:https://issues.apache.org/jira/browse/ISIS-1314[ISIS-1314] - Filename parameter label missing for DTO mixins
 * link:https://issues.apache.org/jira/browse/ISIS-1311[ISIS-1311] - Mixins for Persistable metadata causes exception when rendering.
 * link:https://issues.apache.org/jira/browse/ISIS-1310[ISIS-1310] - DomainObjectContainer#titleOf(..) does not resolve @Title annotated on private field
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
index 6d019db..12e8200 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.13.0.adoc
@@ -11,24 +11,24 @@ interaction.  A command now represents the _intention_ to interact with the appl
 to edit a property.  This is captured as a JAXB DTO.  An interaction on the other hand captures the fact that a
 command has been performed.  Interactions are also captured as DTOs.  Interactions can include sub-interactions,
 representing the fact that an action can invoke another action by way of the
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`].
+link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`].
 
-The existing xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] and
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] SPI services have both been deprecated, instead
-replaced by xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`] and
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].  It is now possible to have multiple implementations
+The existing link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] and
+link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] SPI services have both been deprecated, instead
+replaced by link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`] and
+link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].  It is now possible to have multiple implementations
 of each.
 
 The (non-ASF) link:http://platform.incode.org[Incode Platform^]'s auditing module has been reworked to
-implement xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_spi_AuditService[`AuditService`], while the new (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq module implements
-xref:../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] to publish interaction events to an ActiveMQ bus (and
+implement link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_spi_AuditService[`AuditService`], while the new (non-ASF) link:http://platform.incode.org[Incode Platform^]'s publishmq module implements
+link:https://isis.apache.org/versions/1.13.0/guides/rgsvc/rgsvc.html#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`] to publish interaction events to an ActiveMQ bus (and
 to allow such events to be replayed if necessary).
 
 The release also includes a great deal of internal refactorings and simplifications.
 
 Most applications written against v1.12.x should run against v1.13.0 with few if any changes.  That said, this release
 has removed a small number of features that were dependent on internal APIs, and some configuration properties are
-now removed/unsupported.  We therefore do recommend that you read and keep in mind the xref:../migration-notes/migration-notes.adoc#_migration-notes_1.12.0-to-1.13.0[migration notes] when you upgrade your app.
+now removed/unsupported.  We therefore do recommend that you read and keep in mind the link:https://isis.apache.org/versions/1.13.0/migration-notes/migration-notes.html#_migration-notes_1.12.0-to-1.13.0[migration notes] when you upgrade your app.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.14.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.14.0.adoc
index 4a91f79..9a66259 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.14.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.14.0.adoc
@@ -20,7 +20,7 @@ Finally, a new `TableColumnOrderService` to allow column order to be fine-tuned.
 The release also has a number of bug fixes.
 
 Most applications written against v1.13.x should run against v1.14.0 with few if any changes.
-That said, we do recommend that you read and keep in mind the xref:../migration-notes/migration-notes.adoc#_migration-notes_1.13.0-to-1.14.0[migration notes] when you upgrade your app.
+That said, we do recommend that you read and keep in mind the link:https://isis.apache.org/versions/1.14.0/migration-notes/migration-notes.html#_migration-notes_1.13.0-to-1.14.0[migration notes] when you upgrade your app.
 
 
 
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
index afa4214..9dd678c 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.15.0.adoc
@@ -13,7 +13,7 @@ There have also been several improvements in the ability to tab around the UI.
 The version of Apache Wicket has also been upgraded from `6.x` to `7.x`.
 
 Most applications written against v1.14.x should run against v1.15.0 with few if any changes.
-That said, we do recommend that you read and keep in mind the xref:../migration-notes/migration-notes.adoc#_migration-notes_1.14.0-to-1.15.0[migration notes] when you upgrade your app.
+That said, we do recommend that you read and keep in mind the link:https://isis.apache.org/versions/1.15.0/migration-notes/migration-notes.html#_migration-notes_1.14.0-to-1.15.0[migration notes] when you upgrade your app.
 
 [NOTE]
 ====
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
index 958d34b..8b11c10 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
@@ -7,7 +7,7 @@
 
 
 
-Apache Isis 1.9.0 provides various new "under-the-cover" features, such as `AppManifest` for simplified bootstrapping, and content negotiation support within xref:../guides/ugvro/ugvro.adoc#[RestfulObjects viewer].  It also updates the DataNucleus version to DN 4.1.x.
+Apache Isis 1.9.0 provides various new "under-the-cover" features, such as `AppManifest` for simplified bootstrapping, and content negotiation support within link:https://isis.apache.org/versions/1.9.0/guides/ugvro/ugvro.html#[RestfulObjects viewer].  It also updates the DataNucleus version to DN 4.1.x.
 
 This release was also the first to include the updated Asciidoc website.
 
diff --git a/adocs/documentation/src/main/asciidoc/release-notes/release-notes.adoc b/adocs/documentation/src/main/asciidoc/release-notes/release-notes.adoc
index dbce006..5e5c67e 100644
--- a/adocs/documentation/src/main/asciidoc/release-notes/release-notes.adoc
+++ b/adocs/documentation/src/main/asciidoc/release-notes/release-notes.adoc
@@ -21,7 +21,7 @@ This table summarises all releases of Apache Isis to date.
 | Bugs
 | JIRA relnotes
 
-| xref:release-notes.adoc#_release-notes_2.0.0-M1[2.0.0-M1]
+| link:https://isis.apache.org/versions/2.0.0-M1/release-notes/release-notes.html#_release-notes_2.0.0-M1[2.0.0-M1]
 | 31-07-2018
 | First milestone release for Apache Isis 2.0.0: Java 8 support, DataNucleus 5.1, Wicket 8, meta-annotations, breadcrumbs
 | 6
@@ -32,7 +32,7 @@ This table summarises all releases of Apache Isis to date.
 | 22
 | https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12342392[Release notes for 2.0.0-M1]
 
-| xref:release-notes.adoc#_release-notes_1.16.2[1.16.2]
+| link:https://isis.apache.org/versions/1.16.2/release-notes/release-notes.html#_release-notes_1.16.2[1.16.2]
 | 05-03-2018
 | RO viewer support, performance improvement, fix of severe bug for parented checkboxes
 | 1
@@ -40,7 +40,7 @@ This table summarises all releases of Apache Isis to date.
 | 1
 | https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12342822[Release notes for 1.16.2]
 
-| xref:release-notes.adoc#_release-notes_1.16.1[1.16.1]
+| link:https://isis.apache.org/versions/1.16.1/release-notes/release-notes.html#_release-notes_1.16.1[1.16.1]
 | 22-02-2018
 | Parented collections with checkboxes, replay module
 | 4
@@ -48,7 +48,7 @@ This table summarises all releases of Apache Isis to date.
 | 17
 | https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12342424[Release notes for v1.16.1]
 
-| xref:release-notes.adoc#_release-notes_1.16.0[1.16.0]
+| link:https://isis.apache.org/versions/1.16.0/release-notes/release-notes.html#_release-notes_1.16.0[1.16.0]
 | 08-01-2018
 | Modules, simplified bootstrapping, menubars.layout.xml
 | 13
@@ -56,7 +56,7 @@ This table summarises all releases of Apache Isis to date.
 | 26
 | https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12342073[Release notes for v1.16.0]
 
-| xref:release-notes.adoc#_release-notes_1.15.1[1.15.1]
+| link:https://isis.apache.org/versions/1.15.1/release-notes/release-notes.html#_release-notes_1.15.1[1.15.1]
 | 25-09-2017
 | Bug fixes, Wicket 7.9.0, Markup valuetype
 | 5
@@ -64,7 +64,7 @@ This table summarises all releases of Apache Isis to date.
 | 9
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12341577[Release notes for v1.15.1]
 
-| xref:release-notes.adoc#_release-notes_1.15.0[1.15.0]
+| link:https://isis.apache.org/versions/1.15.0/release-notes/release-notes.html#_release-notes_1.15.0[1.15.0]
 | 14-08-2017
 | Inline prompts, Wicket 7.x
 | 7
@@ -72,7 +72,7 @@ This table summarises all releases of Apache Isis to date.
 | 34
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12338577[Release notes for v1.15.0]
 
-| xref:release-notes.adoc#_release-notes_1.14.0[1.14.0]
+| link:https://isis.apache.org/versions/1.14.0/release-notes/release-notes.html#_release-notes_1.14.0[1.14.0]
 | 19-02-2017
 | Actions with collection parameters, metamodel validations.
 | 3
@@ -80,7 +80,7 @@ This table summarises all releases of Apache Isis to date.
 | 11
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12338898[Release notes for v1.14.0]
 
-| xref:release-notes.adoc#_release-notes_1.13.2.1[1.13.2.1]
+| link:https://isis.apache.org/versions/1.13.2.1/release-notes/release-notes.html#_release-notes_1.13.2.1[1.13.2.1]
 | 03-jan-2017
 | Patch release for simpleapp archetype only (docker images, regular actions instead of mixins)
 | 0
@@ -88,7 +88,7 @@ This table summarises all releases of Apache Isis to date.
 | 0
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12338937[Release notes for v1.13.2.1]
 
-| xref:release-notes.adoc#_release-notes_1.13.2[1.13.2]
+| link:https://isis.apache.org/versions/1.13.2/release-notes/release-notes.html#_release-notes_1.13.2[1.13.2]
 | 14-dec-2016
 | Patch release, modular simpleapp archetype
 | 2
@@ -96,7 +96,7 @@ This table summarises all releases of Apache Isis to date.
 | 5
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12338744[Release notes for v1.13.2]
 
-| xref:release-notes.adoc#_release-notes_1.13.1[1.13.1]
+| link:https://isis.apache.org/versions/1.13.1/release-notes/release-notes.html#_release-notes_1.13.1[1.13.1]
 | 30-oct-2016
 | Patch release, better support for docker
 | 1
@@ -104,7 +104,7 @@ This table summarises all releases of Apache Isis to date.
 | 21
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12337967[Release notes for v1.13.1]
 
-| xref:release-notes.adoc#_release-notes_1.13.0[1.13.0]
+| link:https://isis.apache.org/versions/1.13.0/release-notes/release-notes.html#_release-notes_1.13.0[1.13.0]
 | 11-jul-2016
 | Commands, interactions and internal refactorings
 | 27
@@ -112,7 +112,7 @@ This table summarises all releases of Apache Isis to date.
 | 23
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12335362[Release notes for v1.13.0]
 
-| xref:release-notes.adoc#_release-notes_1.12.2[1.12.2]
+| link:https://isis.apache.org/versions/1.12.2/release-notes/release-notes.html#_release-notes_1.12.2[1.12.2]
 | 06-jun-2016
 | Bug-fix release
 | 0
@@ -120,7 +120,7 @@ This table summarises all releases of Apache Isis to date.
 | 2
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12335949[Release notes for v1.12.2]
 
-| xref:release-notes.adoc#_release-notes_1.12.1[1.12.1]
+| link:https://isis.apache.org/versions/1.12.1/release-notes/release-notes.html#_release-notes_1.12.1[1.12.1]
 | 12-apr-2016
 | Bug-fix release
 | 0
@@ -128,7 +128,7 @@ This table summarises all releases of Apache Isis to date.
 | 4
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12335484[Release notes for v1.12.1]
 
-| xref:release-notes.adoc#_release-notes_1.12.0[1.12.0]
+| link:https://isis.apache.org/versions/1.12.0/release-notes/release-notes.html#_release-notes_1.12.0[1.12.0]
 | 29-mar-2016
 | Dynamic XML layouts
 | 7
@@ -136,7 +136,7 @@ This table summarises all releases of Apache Isis to date.
 | 21
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12327483[Release notes for v1.12.0]
 
-| xref:release-notes.adoc#_release-notes_1.11.1[1.11.1]
+| link:https://isis.apache.org/versions/1.11.1/release-notes/release-notes.html#_release-notes_1.11.1[1.11.1]
 | 17-jan-2016
 | Re-release under Java 1.7 (using toolchains plugin).
 | 0
@@ -144,7 +144,7 @@ This table summarises all releases of Apache Isis to date.
 | 1
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12334640[Release notes for v1.11.1]
 
-| xref:release-notes.adoc#_release-notes_1.11.0[1.11.0]
+| link:https://isis.apache.org/versions/1.11.0/release-notes/release-notes.html#_release-notes_1.11.0[1.11.0]
 | 02-jan-2016
 | More flexible REST API, view models using JAXB.
 | 9
@@ -152,7 +152,7 @@ This table summarises all releases of Apache Isis to date.
 | 12
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12333974[Release notes for v1.11.0]
 
-| xref:release-notes.adoc#_release-notes_1.10.0[1.10.0]
+| link:https://isis.apache.org/versions/1.10.0/release-notes/release-notes.html#_release-notes_1.10.0[1.10.0]
 | 10-nov-2015
 | New domain services, multi-tenancy support and mixins.
 | 7
@@ -160,7 +160,7 @@ This table summarises all releases of Apache Isis to date.
 | 12
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12333354[Release notes for 1.10.0]
 
-| xref:release-notes.adoc#_release-notes_1.9.0[1.9.0]
+| link:https://isis.apache.org/versions/1.9.0/release-notes/release-notes.html#_release-notes_1.9.0[1.9.0]
 | 1-sep-2015
 | AppManifest, Restful Objects representations and other "under-the-cover" improvements.
 | 18
@@ -168,7 +168,7 @@ This table summarises all releases of Apache Isis to date.
 | 25
 | link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12332806[Release notes for 1.9.0]
 
-| xref:release-notes.adoc#_release-notes_1.8.0[1.8.0]
+| link:https://isis.apache.org/versions/1.8.0/release-notes/release-notes.html#_release-notes_1.8.0[1.8.0]
 | 24-feb-2015
 | Wicket viewer moved into core; todoapp archetype moved to link:http://www.isisaddons.org[Isis Addons] (non-ASF).
 | 27
@@ -177,7 +177,7 @@ This table summarises all releases of Apache Isis to date.
 | * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12328845[core-1.8.0]
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12328847[archetype-1.8.0]
 
-| xref:release-notes.adoc#_release-notes_1.7.0[1.7.0]
+| link:https://isis.apache.org/versions/1.7.0/release-notes/release-notes.html#_release-notes_1.7.0[1.7.0]
 | 18-oct-2014
 | Module functionality previously in 1.6.0 now retired; use link:http://www.isisaddons.org[Isis Addons] (non-ASF) instead.
 | 4
@@ -188,7 +188,7 @@ This table summarises all releases of Apache Isis to date.
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12327441[archetype-simpleapp-1.7.0]
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12327440[archetype-todoapp-1.7.0]
 
-| xref:release-notes.adoc#_release-notes_1.6.0[1.6.0]
+| link:https://isis.apache.org/versions/1.6.0/release-notes/release-notes.html#_release-notes_1.6.0[1.6.0]
 | 28-jul-2014
 | Restful Objects viewer, JDO/Datanucleus Objectstore and Shiro Security all moved into core.  Quickstart-wrj archetype renamed to todoapp; simple-wrj archetype renamed to simpleapp.  Some functionality copied/refactored as link:http://www.isisaddons.org[Isis Addons] (non-ASF).
 | 6
@@ -199,7 +199,7 @@ This table summarises all releases of Apache Isis to date.
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12326462[archetype-simpleapp-1.6.0]
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12326461[archetype-todoapp-1.6.0]
 
-| xref:release-notes.adoc#_release-notes_1.5.0[1.5.0]
+| link:https://isis.apache.org/versions/1.5.0/release-notes/release-notes.html#_release-notes_1.5.0[1.5.0]
 | 08-jun-2014
 | No longer releasing security-file
 | 3
@@ -213,7 +213,7 @@ This table summarises all releases of Apache Isis to date.
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12326528[archetype-simple-wrj-1.5.0]
 * link:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311171&version=12326527[archetype-quickstart-wrj-1.5.0]
 
-| xref:release-notes.adoc#_release-notes_1.4.1[1.4.1]
+| link:https://isis.apache.org/versions/1.4.1/release-notes/release-notes.html#_release-notes_1.4.1[1.4.1]
 | 14-mar-2014
 | Patch release
 | 0
@@ -224,7 +224,7 @@ This table summarises all releases of Apache Isis to date.
 * archetype-simple-wrj-1.4.1
 * archetype-quickstart-wrj-1.4.1
 
-| xref:r1.4.0[1.4.0]
+| link:https://isis.apache.org/versions/1.4.0/release-notes/release-notes.html#_release-notes_1.4.0[1.4.0]
 | 11-mar-2014
 |
 | 56
@@ -239,7 +239,7 @@ This table summarises all releases of Apache Isis to date.
 * archetype-simple-wrj-1.4.0
 * archetype-quickstart-wrj-1.4.0
 
-| xref:release-notes.adoc#_release-notes_1.3.1[1.3.1]
+| link:https://isis.apache.org/versions/1.3.1/release-notes/release-notes.html#_release-notes_1.3.1[1.3.1]
 | 7-nov-2013
 | Patch release
 | 1
@@ -249,7 +249,7 @@ This table summarises all releases of Apache Isis to date.
 * archetype-simple-wrj-1.3.1
 * archetype-quickstart-wrj-1.3.1
 
-| xref:release-notes.adoc#_release-notes_1.3.0[1.3.0]
+| link:https://isis.apache.org/versions/1.3.0/release-notes/release-notes.html#_release-notes_1.3.0[1.3.0]
 | 25-oct-2013
 | WRJ archetype renamed to Quickstart WRJ.  Simple WRJ archetype added.
 | 52
@@ -264,7 +264,7 @@ This table summarises all releases of Apache Isis to date.
 * archetype-simple-wrj-1.3.0
 * archetype-quickstart-wrj-1.3.0
 
-| xref:release-notes.adoc#_release-notes_1.2.0[1.2.0]
+| link:https://isis.apache.org/versions/1.2.0/release-notes/release-notes.html#_release-notes_1.2.0[1.2.0]
 | 30-may-2013
 |
 | 22
@@ -278,7 +278,7 @@ This table summarises all releases of Apache Isis to date.
 * viewer-wicket-1.2.0
 * archetype-wrj-1.0.3
 
-| xref:release-notes.adoc#_release-notes_1.1.0[1.1.0]
+| link:https://isis.apache.org/versions/1.1.0/release-notes/release-notes.html#_release-notes_1.1.0[1.1.0]
 | 31-jan-2013
 |
 | 9
@@ -289,7 +289,7 @@ This table summarises all releases of Apache Isis to date.
 * viewer-wicket-1.1.0
 * archetype-wrj-1.0.2
 
-| xref:r1.0.1[1.0.1]
+| link:https://isis.apache.org/versions/1.0.1/release-notes/release-notes.html#_release-notes_1.0.1[1.0.1]
 | 10-jan-2013
 | Combining RestfulObjects and Wicket viewers into a single webapp, along with Shiro security
 | 1
@@ -298,7 +298,7 @@ This table summarises all releases of Apache Isis to date.
 | * security-shiro-1.0.0
 * archetype-wrj-1.0.1
 
-| xref:release-notes.adoc#_release-notes_1.0.0[1.0.0]
+| link:https://isis.apache.org/versions/1.0.0/release-notes/release-notes.html#_release-notes_1.0.0[1.0.0]
 | 24-dec-2012
 | First release having graduated
 | 8
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index f889afa..7c1e176 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -22,26 +22,50 @@ to change:
 support for legacy implementation of UrlEncodingService
 - as an automatic fallback; has changed to use with compression by default.
 
+inline paraname8 from incode platform
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+remove isis-core-wicket-applib 
+- contains only WicketDeveloperUtilitiesService, which is hidden anyway and seems to not be required.
 
-the stuff below here was working notes for 2.0.0-M1, not necessarily up to date.
+update .xsd for layout, make render optional and deprecated.    
+   
+- deprecate FixtureScripts service with view to removing from applib ... the framework provides an implementation by default
+- get rid of automatic initialization of fields (perhaps behind a config property)
+- deprecate the Apache Isis' DateTime classes for removal in the future) ... and probably all of the custom value types, subclasses of Magnitude
+- merge metamodel and runtime
+- remove *Installer
+
+move ContentMappingServiceForCommandDto and ContentMappingServiceForCommandsDto from applib.conmap to applib.services.conmap.commands
+
+IsisContext:
+- remove this, causes a stack trace...
+
+    // -- HELPER
 
+    /**
+     * TODO [andi-huber] not sure if required, initial idea was to force log4j
+     * re-configuration on an undeploy/deploy cycle
+     */
+    static void resetLogging() {
+        try {
+            org.apache.log4j.BasicConfigurator.resetConfiguration();
+            org.apache.log4j.Logger.getRootLogger().removeAllAppenders();
+        } catch (Exception e) {
+            // at least we tried
+        }
+    }
 
+TitleFacetViaAnnotation may not work if on a field, due to DN lazy loading.
 
 
+remove AbstractService from applib.
+remove AbstractViewModel from applib.
 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+the stuff below here was working notes for 2.0.0-M1, not necessarily up to date.
 
-Also for 2.0.0, new features/deprecations:
-    
-    deprecate FixtureScripts service with view to removing from applib ... the framework provides an implementation by default
-    get rid of automatic initialization of fields (perhaps behind a config property)
-    deprecate the Apache Isis' DateTime classes for removal in the future) ... and probably all of the custom value types, subclasses of Magnitude
-    merge metamodel and runtime
-    remove *Installer
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -53,14 +77,6 @@ Also for 2.0.0, new features/deprecations:
 
 OTHER STUFF:
 
-
-
-
-
-inline paraname8 from incode platform
-
-
-
 PublishingServiceInternalDefault
 
 not thread-safe:
@@ -77,16 +93,11 @@ not thread-safe:
             suppress = false;
         }
     }
-
-
-
     
-~~~
+~~~~~~~~
 
-combine isis-core-wicket-applib with isis-core-applib
 
 
-update .xsd for layout, make render optional and deprecated.    
 
 
 
@@ -345,3 +356,5 @@ org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationServiceFor
 
 
 ObjectFixtureService + supporting classes
+
+