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 2017/05/12 10:25:52 UTC

[03/18] isis git commit: ISIS-1594: updates domain service .adoc names and ids, so that the edit buttons are added correctly to subdocuments. Also some further minor improvements on scrolling.

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc
----------------------------------------------------------------------
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 a34e7d3..f9e3df9 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud.adoc
@@ -11,8 +11,8 @@ 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_api_RepositoryService[`RepositoryService`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_api_FactoryService[`FactoryService`].
-These (and some other services) replace the now deprecated xref:../rgsvc/rgsvc.adoc#_rgsvc_api_DomainObjectContainer[`DomainObjectContainer`].
+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`].
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_deleting.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_deleting.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_deleting.adoc
index 015edf4..26a052a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_deleting.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_deleting.adoc
@@ -4,7 +4,7 @@
 :_basedir: ../../
 :_imagesdir: images/
 
-Domain entities can be deleted using xref:../rgsvc/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`].
+Domain entities can be deleted using xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`].
 For example:
 
 [source,java]
@@ -15,7 +15,7 @@ repositoryService.remove(customer);
 
 It's worth being aware that (as for persisting new entities) the framework does _not_ eagerly delete the object.
 Rather, it queues up an internal command structure representing the object deletion request.
-This is then executed either at the end of the transaction, or if a  xref:../ugfun/ugfun.adoc#_ugfun_crud_finding[query is run], or if the internal queue is manually flushed using xref:../rgsvc/rgsvc.adoc#_rgsvc_api_TransactionService[`TransactionService`]'s `flush()` method.
+This is then executed either at the end of the transaction, or if a  xref:../ugfun/ugfun.adoc#_ugfun_crud_finding[query is run], or if the internal queue is manually flushed using xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TransactionService[`TransactionService`]'s `flush()` method.
 
 Alternatively, you can use:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_finding.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_finding.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_finding.adoc
index 3bbd67f..3e6d634 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_finding.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_finding.adoc
@@ -6,7 +6,7 @@
 
 
 Retrieving domain entities typically requires a JDOQL query defined on the domain entity, and a corresponding repository service for that domain entity type.
-This repository calls the framework-provided xref:../rgsvc/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`] to actually submit the query.
+This repository calls the framework-provided xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] to actually submit the query.
 
 For example:
 
@@ -48,7 +48,7 @@ public class CustomerRepository {
     RepositoryService repositoryService;
 }
 ----
-<1>	The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`] is a generic facade over the JDO/DataNucleus API.
+<1>	The xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] is a generic facade over the JDO/DataNucleus API.
 <2> Specifies the class that is annotated with @Query
 <3> Corresponds to the `@Query#name()` attribute
 <4> Corresponds to the `:name` parameter in the query JDOQL string
@@ -62,5 +62,5 @@ When an object is loaded from the database the framework will emit `ObjectLoaded
 
 == Type-safe queries
 
-DataNucleus also supports type-safe queries; see xref:../rgsvc/rgsvc.adoc#__rgsvc_api_IsisJdoSupport_type-safe-jdoql-queries[here] for further details.
+DataNucleus also supports type-safe queries; see xref:../rgsvc/rgsvc.adoc#__rgsvc_persistence-layer-api_IsisJdoSupport_type-safe-jdoql-queries[here] for further details.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_instantiating.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_instantiating.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_instantiating.adoc
index bfcb7c6..027237d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_instantiating.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_instantiating.adoc
@@ -6,7 +6,7 @@
 
 
 
-Both domain entities and view models can be instantiated using the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_FactoryService[`FactoryService`] provided by the framework.
+Both domain entities and view models can be instantiated using the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`] provided by the framework.
 For example:
 
 [source,java]
@@ -41,7 +41,7 @@ public class Customer {
 ----
 
 In such cases, the domain object cannot be instantiated using `FactoryService`.
-Instead the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_ServiceRegistry[`ServiceRegistry`] service can be used to inject services:
+Instead the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry`] service can be used to inject services:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_persisting.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_persisting.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_persisting.adoc
index 8b18b60..fd941fc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_persisting.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_persisting.adoc
@@ -7,7 +7,7 @@
 
 
 Once a domain entity has been instantiated, it must be persisted.
-This is done using the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`].
+This is done using the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`].
 For example:
 
 [source,java]
@@ -32,7 +32,7 @@ repositoryService.persist(customer);
 
 It's worth being aware that the framework does _not_ eagerly persist the object.
 Rather, it queues up an internal command structure representing the object persistence request.
-This is then executed either at the end of the transaction, or if a xref:../ugfun/ugfun.adoc#_ugfun_crud_finding[query is run], or if the internal queue is manually flushed using xref:../rgsvc/rgsvc.adoc#_rgsvc_api_TransactionService[`TransactionService`]'s `flush()` method.
+This is then executed either at the end of the transaction, or if a xref:../ugfun/ugfun.adoc#_ugfun_crud_finding[query is run], or if the internal queue is manually flushed using xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TransactionService[`TransactionService`]'s `flush()` method.
 
 Alternatively, you can use:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_updating.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_updating.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_updating.adoc
index ee07bad..4282f65 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_updating.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_crud_updating.adoc
@@ -11,9 +11,9 @@ Rather, the ORM (DataNucleus) automatically keeps track of the state of each obj
 
 That said, it is possible to "flush" pending changes:
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_api_TransactionService[`TransactionService`] acts at the Apache Isis layer, and flushes any pending object persistence or object deletions
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TransactionService[`TransactionService`] acts at the Apache Isis layer, and flushes any pending object persistence or object deletions
 
-* using xref:../rgsvc/rgsvc.adoc#_rgsvc_api_IsisJdoSupport[`IsisJdoSupport`] it is possible to reach down to the underlying JDO API, and perform a flush of pending object updates also.
+* using xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_IsisJdoSupport[`IsisJdoSupport`] it is possible to reach down to the underlying JDO API, and perform a flush of pending object updates also.
 
 
 When an object is updated the framework will emit `ObjectUpdatingEvent` and `ObjectUpdatedEvent` xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_events_lifecycle-events[lifecycle events].

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_event-subscribers.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_event-subscribers.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_event-subscribers.adoc
index 77c5040..14f74d6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_event-subscribers.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_event-subscribers.adoc
@@ -9,7 +9,7 @@
 
 Domain services acting as event subscribers can subscribe to xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_events_domain-events[domain], xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_events_ui-events[UI] and xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_events_lifecycle-events[lifecycle] events, influencing the rendering and behaviour of other objects.
 
-All subscribers must subscribe to the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`]; as this amounts to a few lines of boilerplate it's easiest to inherit from the convenience `AbstractSubscriber` class.
+All subscribers must subscribe to the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`]; as this amounts to a few lines of boilerplate it's easiest to inherit from the convenience `AbstractSubscriber` class.
 
 We suggest naming such classes `XxxSubscriptions`, for example:
 
@@ -38,7 +38,7 @@ public class CustomerOrderSubscriptions
 ----
 <1> subscriptions do not appear in the UI at all, so should use the domain nature of service
 <2> subclass from the `AbstractSubscriber` convenience superclass
-<3> The framework supports two different implementations for the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`] - Axon framework and Guava.
+<3> The framework supports two different implementations for the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] - Axon framework and Guava.
 Subscribers should use the appropriate annotation type depending on the implementation chosen (or as shown here, use both annotations).
 <4> the parameter type of the method corresponds to the event emitted on the event bus.
 The actual method name does not matter (though it must have `public` visibility).

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_repository-and-factory.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_repository-and-factory.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_repository-and-factory.adoc
index 850c05b..f86b259 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_repository-and-factory.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_repository-and-factory.adoc
@@ -6,7 +6,7 @@
 
 
 
-The repository/factory uses an injected xref:../rgsvc/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`] to both instantiate new objects and to query the database for existing objects of a given entity type.
+The repository/factory uses an injected xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] to both instantiate new objects and to query the database for existing objects of a given entity type.
 It is not visible in UI, rather other services delegate to it.
 
 We suggest naming such classes `XxxRepository`, eg:

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_scoped-services.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_scoped-services.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_scoped-services.adoc
index 61c48ff..3182319 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_scoped-services.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_scoped-services.adoc
@@ -19,5 +19,5 @@ public class MyService extends AbstractService {
 }
 ----
 
-The framework provides a number of request-scoped services, include a xref:../rgsvc/rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad`] service query results caching through the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_QueryResultsCache[`QueryResultsCache`], and support for co-ordinating bulk actions through the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_ActionInvocationContext[`ActionInvocationContext`] service.  See the xref:../rgsvc/rgsvc.adoc#[domain services] reference guide for further details.
+The framework provides a number of request-scoped services, include a xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_Scratchpad[`Scratchpad`] service query results caching through the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_QueryResultsCache[`QueryResultsCache`], and support for co-ordinating bulk actions through the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_ActionInvocationContext[`ActionInvocationContext`] service.  See the xref:../rgsvc/rgsvc.adoc#[domain services] reference guide for further details.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_inject-services.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_inject-services.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_inject-services.adoc
index 1e23b09..abcc322 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_inject-services.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_inject-services.adoc
@@ -6,7 +6,7 @@
 
 
 Apache Isis autowires (automatically injects) domain services into each entity, as well as into the domain services themselves, using either method injection or field injection.
-The framework defines many additional services (such as xref:../rgsvc/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`]); these are injected in exactly the same manner.
+The framework defines many additional services (such as xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`]); these are injected in exactly the same manner.
 
 Sometimes there may be multiple services that implement a single type.
 This is common for example for SPI service, whereby one module defines an SPI service, and other module(s) in the application implement that service.

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_mixins_programmatic-usage.adoc
----------------------------------------------------------------------
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 862d816..5ed96f3 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,7 +10,7 @@
 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_api_DomainObjectContainer_object-creation-api[`DomainObjectContainer#mixin(...)` method.
+For this you can use the xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-creation-api[`DomainObjectContainer#mixin(...)` method.
 
 For example:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_dto-consumers.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_dto-consumers.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_dto-consumers.adoc
index 5d1e22d..f84254d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_dto-consumers.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_dto-consumers.adoc
@@ -9,9 +9,9 @@
 The actual consumers of DTOs will generally obtain the XML of the view models either by requesting the XML directly, eg using the xref:../ugvro/ugvro.adoc#[RestfulObjects viewer], or may have the XML sent to them asynchronously using an ESB such as Apache Camel.
 
 In the former case, the consumer requests the DTO by calling the REST API with the appropriate HTTP `Accept` header.
-An appropriate implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_ContentMappingService[`ContentMappingService`] can then be used to return the appropriate DTO (as XML).
+An appropriate implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`] can then be used to return the appropriate DTO (as XML).
 
-For the latter case, one design is simply for the application to instantiate the view model, then call the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_JaxbService[`JaxbService`] to obtain its corresponding XML.  This can then be published onto the ESB, for example using an http://activemq.apache.org[Apache ActiveMQ (TM)] queue.
+For the latter case, one design is simply for the application to instantiate the view model, then call the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_JaxbService[`JaxbService`] to obtain its corresponding XML.  This can then be published onto the ESB, for example using an http://activemq.apache.org[Apache ActiveMQ (TM)] queue.
 
 However, rather than try to push all the data that might be needed by any of these external systems in a single XML event (which would require anticipating all the requirements, likely a hopeless task), a better design is to publish only the fact that something of note has changed - ie, that an action on a domain object has been invoked - and then let the consumers call back to obtain other information if required.
 This can once again be done by calling the REST API with an appropriate HTTP `Accept` header.
@@ -23,7 +23,7 @@ In our case we focus on the validation (to determine the nature of the inbound m
 ====
 
 The (non-ASF) http://github.com/isisaddons/isis-module-publishmq[Isis addons' publishmq] module provides an out-of-the-box solution of this design.
-It provides an implementation of the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_PublishingService[`PublishingService`], but which simply publishes instances of xref:../rgcms/rgcms.adoc#_rgcms_schema-aim[`ActionInvocationMemento`] to an ActiveMQ queue.
+It provides an implementation of the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`], but which simply publishes instances of xref:../rgcms/rgcms.adoc#_rgcms_schema-aim[`ActionInvocationMemento`] to an ActiveMQ queue.
 Camel (or similar) can then be hooked up to consume these events from this queue, and use a processor to parse the action memento to determine what has changed on the source system.
 Thereafter, a subsequent Camel processor can then call back to the source - via the xref:../ugvro/ugvro.adoc#[Restful Objects viewer] - to enrich the message with additional details using a DTO.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_generating-xsds.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_generating-xsds.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_generating-xsds.adoc
index e040f43..b3c8ff4 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_generating-xsds.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_dto_generating-xsds.adoc
@@ -17,7 +17,7 @@ There are therefore two options:
 * either choose not to have the view model DTO reference any persistent entities, and simply limit the DTO to simple scalars. +
 +
 Such a DTO will then be usable in both the Apache Isis app (to generate the original XML) and in the consumer.
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BookmarkService[`BookmarkService`] can be used to obtain the object identifiers
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_BookmarkService[`BookmarkService`] can be used to obtain the object identifiers
 
 * alternatively, generate a different DTO for the consumer from the XSD of the view model DTO.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb.adoc
index 55ad0d8..b7220db 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb.adoc
@@ -55,10 +55,10 @@ The derived properties could also have been implemented using xref:../ugfun/ugfu
 
 [IMPORTANT]
 ====
-Be aware that all the state will become the DTO's memento, ultimately converted into a URL-safe form, by way of the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UrlEncodingService[`UrlEncodingService`].
+Be aware that all the state will become the DTO's memento, ultimately converted into a URL-safe form, by way of the xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_UrlEncodingService[`UrlEncodingService`].
 
 There are limits to the lengths of URLs, however.
-If the URL does exceed limits or contains invalid characters, then provide a custom implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UrlEncodingService[`UrlEncodingService`] to handle the memento string in some other fashion (eg substituting it with a GUID, with the memento cached somehow on the server).
+If the URL does exceed limits or contains invalid characters, then provide a custom implementation of xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_UrlEncodingService[`UrlEncodingService`] to handle the memento string in some other fashion (eg substituting it with a GUID, with the memento cached somehow on the server).
 a URL.
 ====
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb_referencing-domain-entities.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb_referencing-domain-entities.adoc b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb_referencing-domain-entities.adoc
index d03b774..feb2f66 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb_referencing-domain-entities.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_view-models_jaxb_referencing-domain-entities.adoc
@@ -11,10 +11,10 @@ For example, the `CompareCustomers` view model described above actually referenc
 
 It wouldn't make sense to serialize out the state of a persistent entity (even more so when the view model is also being used as a DTO).
 However, the identity of the underlying entity can be well defined; Apache Isis defines the xref:../rgcms/rgcms.adoc#_rgcms_schema-common[common schema] which defines the `<oid-dto>` element (and corresponding `OidDto` class): the object's type and its identifier.
-This is basically a formal XML equivalent to the `Bookmark` object obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BookmarkService[`BookmarkService`].
+This is basically a formal XML equivalent to the `Bookmark` object obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_BookmarkService[`BookmarkService`].
 
 There is only one requirement to make this work: every referenced domain entity must be annotated with xref:../rgant/rgant.adoc#_rgant-XmlJavaTypeAdapter[`@XmlJavaTypeAdapter`], specifying the framework-provided `PersistentEntityAdapter`.
-And this class is similar to the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BookmarkService[`BookmarkService`]: it knows how to create an `OidDto` from an object reference.
+And this class is similar to the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_BookmarkService[`BookmarkService`]: it knows how to create an `OidDto` from an object reference.
 
 Thus, in our view model we can legitimately write:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_api-for-applications.adoc
----------------------------------------------------------------------
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 6bfb7ec..e58c861 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
@@ -13,7 +13,7 @@ Still, on very rare occasion you may have a need, in which case you can either u
 
 == `DomainObjectContainer` API
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_DomainObjectContainer[`DomainObjectContainer`] service exposes the following API:
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`] service exposes the following API:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
index 8ccc349..b095635 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/_ugsec_usage-by-isis-viewers.adoc
@@ -58,7 +58,7 @@ These pages all "reach inside" Apache Isis framework using a mechanism similar t
 The sign-in verification page to render is pluggable; see xref:../ugvw/ugvw.adoc#_ugvw_extending_custom-pages[extensions chapter] for details.
 ====
 
-User registration is only available if the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UserRegistrationService[`UserRegistrationService`] is configured; this is used by the framework to actually create new instances of the user as accessed by the corresponding (Shiro) realm.
+User registration is only available if the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_UserRegistrationService[`UserRegistrationService`] is configured; this is used by the framework to actually create new instances of the user as accessed by the corresponding (Shiro) realm.
 
 Because Shiro realms are pluggable, the Apache Isis framework does not provide default implementations of this service.  However, if you are using the http://github.com/isisaddons/isis-module-security[Isis addons' security] module (non-ASF), then this module _does_ provide an implementation (that, as you might expect, creates new "user" domain entities).
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
index 8b5ca61..9b17b5c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec/ugsec.adoc
@@ -66,16 +66,16 @@ In addition to Apache Isis' Shiro-based implementation of its authentication and
 ====
 A further aspect of security is auditing: recording what data was modified by which user.
 
-Apache Isis provides the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_InteractionContext[`InteractionContext`]
-can be used to track the actions being invoked, and the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_AuditerService[`AuditerService`]
+Apache Isis provides the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`]
+can be used to track the actions being invoked, and the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditerService[`AuditerService`]
 captures what data was modified as a result (auditing).  When ``Interaction``s are persisted (eg by way of
 (non-ASF) http://github.com/isisaddons/isis-module-publishmq[Isis addons' publishmq] module) this provides excellent
 traceability.  The (non-ASF) http://github.com/isisaddons/isis-module-audit[Isis addons' audit] module provides an
 implementation of the `AuditerService`.
 
 For earlier versions of the framework the
-xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] can be used to capture actions, while the (deprecated)
-xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_AuditingService[`AuditingService`] used to capture data modified.
+xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] can be used to capture actions, while the (deprecated)
+xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] used to capture data modified.
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
index d7a21d2..2c24f6f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_fixture-scripts_api-and-usage.adoc
@@ -19,9 +19,9 @@ There are two ways in which you can provide a `FixtureScripts` service.
 
 The original (pre-1.9.0) approach is to subclass subclass `FixtureScripts` domain service, with your subclass specifying which package to search for.  Various other settings can also be provided, and - being a custom class - you can also add in additional actions.  A common example is to provide a "one-shot" action to recreate a standard demo set of objects.
 
-As of 1.9.0 there is an alternative design.  Instead of subclassing `FixtureScripts` you instead implement the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] SPI.  (As its name suggests), this provides a `FixtureScriptsSpecification` object that contains the same information as would otherwise have been in the `FixtureScripts` subclass.
+As of 1.9.0 there is an alternative design.  Instead of subclassing `FixtureScripts` you instead implement the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsSpecificationProvider[`FixtureScriptsSpecificationProvider`] SPI.  (As its name suggests), this provides a `FixtureScriptsSpecification` object that contains the same information as would otherwise have been in the `FixtureScripts` subclass.
 
-The actual implementation of the `FixtureScripts` service is then provided by the framework itself, namely the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_FixtureScriptsDefault[`FixtureScriptsDefault`] domain service, annotated to be rendered on the secondary "Prototyping" menu.  This uses the `FixtureScriptsSpecificationProvider` to adjust itself accordinly.
+The actual implementation of the `FixtureScripts` service is then provided by the framework itself, namely the xref:../rgsvc/rgsvc.adoc#_rgsvc_testing_FixtureScriptsDefault[`FixtureScriptsDefault`] domain service, annotated to be rendered on the secondary "Prototyping" menu.  This uses the `FixtureScriptsSpecificationProvider` to adjust itself accordinly.
 
 For example, here's the `FixtureScriptsSpecificationProvider` service that's generated by the xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]:
 
@@ -236,7 +236,7 @@ public class SimpleObjectCreate extends FixtureScript {       // <1>
 <3> output property: the created simple object
 <4> the mandatory execute(...) API
 <5> the `checkParam(...)` (inherited from `FixtureScript`) will check that the "name" property has been populated (using Java's Reflection API) and throw an exception if not
-<6> wrap the injected `SimpleObjects` domain service (using the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`]) to simulate interaction through the UI...
+<6> wrap the injected `SimpleObjects` domain service (using the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`]) to simulate interaction through the UI...
 <7> .. and actually create the object using the "create" business action of that service
 <8> add the resulting object to the execution context; this makes the object available to access if run from the UI
 <9> inject the domain service into the fixture script

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
index d9b3939..883b36e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
@@ -302,15 +302,15 @@ The `IntegrationTestAbstract` also provides a number of helper/convenience metho
 deprecated because the functionality they expose is now readily accessible through various domain services; most
 notably these are:
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] +
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] +
 +
 to wrap objects simulating interaction through the user interface)
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_api_TransactionService[`TransactionService`] +
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_TransactionService[`TransactionService`] +
 +
 most commonly used to commit changes after the fixture setup) and,
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_api_SessionManagementService[`SessionManagementService`] +
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_SessionManagementService[`SessionManagementService`] +
 +
 for tests that check interactions over multiple separate sessions.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_wrapper-factory.adoc
----------------------------------------------------------------------
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 6cd7ec7..4147ab7 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,7 @@
 :_imagesdir: images/
 
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_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]
 ====
@@ -145,7 +145,7 @@ public void subscriberReceivesEvents() throws Exception {
     then(evHolder[0].getIdentifier().getMemberName()).isEqualTo("completed");
 }
 ----
-<1> inject xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`] into this test
+<1> inject xref:../rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] into this test
 <2> holder for subscriber to capture event to
 <3> subscriber's callback, using the guava subscriber syntax
 <4> invoking the domain object using the wrapper

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_overview.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_overview.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_overview.adoc
index 08d6384..c996ba0 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_overview.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_overview.adoc
@@ -52,7 +52,7 @@ When we talk about integration tests/specs here, we mean tests that exercise the
 
 For most other frameworks that would require having to test the application in a very heavy weight/fragile fashion using a tool such as link:http://docs.seleniumhq.org/[Selenium], driving a web browser to navigate .  In this regard though, Apache Isis has a significant trick up its sleeve.  Because Apache Isis implements the naked objects pattern, it means that the UI is generated automatically from the UI.  This therefore allows for other implementations of the UI.
 
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] domain service allows a test to wrap domain objects and thus to interact with said objects "as if" through the UI:
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] domain service allows a test to wrap domain objects and thus to interact with said objects "as if" through the UI:
 
 image::{_imagesdir}testing/integ-tests.png[width="700px"]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_architecture.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_architecture.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_architecture.adoc
index 5f089e7..697006a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_architecture.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_architecture.adoc
@@ -17,7 +17,7 @@ the `Content-Type` header which the client can use to know how to process the re
 
 * `RepresentationService` +
 +
-The xref:../rgfis/rgfis.adoc#_rgfis_spi_RepresentationService[`RepresentationService`] is an SPI domain service (plugin-point)
+The xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_RepresentationService[`RepresentationService`] is an SPI domain service (plugin-point)
 that allows an arbitrary representation to be generated for any of the resources defined in the RO spec. +
 +
 Normally this SPI service need not be replaced, because the default implementation
@@ -29,7 +29,7 @@ is able to handle the request (per the chain of responsibliity pattern).
 * `ContentNegotiationService` +
 +
 As noted above, there can be multiple implementations of the
-xref:../rgfis/rgfis.adoc#_rgfis_spi_ContentNegotiationService[`ContentNegotiationService`], each one handling a particular
+xref:../rgfis/rgfis.adoc#_rgfis_presentation-layer_ContentNegotiationService[`ContentNegotiationService`], each one handling a particular
 HTTP `Accept` header.  If the implementation does not recognize the value of the header, if can simply return `null`. +
 +
 The framework provides a number of implementations; an implementation that handles the
@@ -38,7 +38,7 @@ default/fallback implementation that returns the representations defined by the
 
 * `ContentMappingService` +
 +
-The xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_ContentMappingService[`ContentMappingService`] is used by the implementation of
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`] is used by the implementation of
 `ContentNegotationService` that recognizes the `x-ro-domain-type`, its role being to transform a domain object
 (usually an entity) into some other form (usually a DTO), as specified by the `x-ro-domain-type` parameter.  There
 can be many such implementations, each handling a different target domain type.

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_ro-spec.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_ro-spec.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_ro-spec.adoc
index 52bd922..59de91e 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_ro-spec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_ro-spec.adoc
@@ -130,7 +130,7 @@ For example, the client could use an `Accept` header such as:
 Accept: application/xml;x-ro-domain-type="com.mycompany.viewmodels.v2.CustomerViewModel"
 ----
 
-The server will use the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_ContentMappingService[`ContentMappingService`] to attempt to
+The server will use the xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_ContentMappingService[`ContentMappingService`] to attempt to
 transform the domain object into the requested `x-ro-domain-type`.  The whole process is discussed in more detail in
 the xref:../ugvro/ugvro.adoc#_ugvro_architecture[architecture] chapter.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_extending_custom-pages.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_extending_custom-pages.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_extending_custom-pages.adoc
index 0a37f43..3005430 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_extending_custom-pages.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_extending_custom-pages.adoc
@@ -20,10 +20,10 @@ Isis defines eight page types (see the `org.apache.isis.viewer.wicket.model.mode
 | The initial sign-in (aka login) page
 
 | SIGN_UP
-| The sign-up page (if xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UserRegistrationService[user registration] is enabled).
+| The sign-up page (if xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_UserRegistrationService[user registration] is enabled).
 
 | SIGN_UP_VERIFY
-| The sign-up verification page (if xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UserRegistrationService[user registration] is enabled; as accessed by link from verification email)
+| The sign-up verification page (if xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_UserRegistrationService[user registration] is enabled; as accessed by link from verification email)
 
 | PASSWORD_RESET
 | The password reset page (if enabled).

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_user-registration.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_user-registration.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_user-registration.adoc
index c95bec1..673375b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_user-registration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_user-registration.adoc
@@ -17,9 +17,9 @@ In a similar way, if the user has forgotten their password then they can request
 
 To support this the framework requires three services to be registered and configured:
 
-* the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UserRegistrationService[user registration service], which provides an API to create the user account
-* the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_EmailNotificationService[email notification service], which provides an API for to send the verification emails
-* the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EmailService[email service], that is used by the email notification service to actually send the email.
+* the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_UserRegistrationService[user registration service], which provides an API to create the user account
+* the xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_EmailNotificationService[email notification service], which provides an API for to send the verification emails
+* the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[email service], that is used by the email notification service to actually send the email.
 
 The Apache Isis core framework provides a default implementation of both the email notification service and the email service. If your application uses the https://github.com/isisaddons/isis-module-security[Isis addons security module] (not ASF) then an implementation is provided by that module; just add to the classpath. Otherwise you will need to provide your own implementation.
 
@@ -68,9 +68,9 @@ image::{_imagesdir}user-registration/sign-up-after-registration.png[width="800px
 
 There are two prerequisites:
 
-* register an implementation of the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UserRegistrationService[user registration service] (eg by using the https://github.com/isisaddons/isis-module-security[Isis addons security module])
+* register an implementation of the xref:../rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-spi_UserRegistrationService[user registration service] (eg by using the https://github.com/isisaddons/isis-module-security[Isis addons security module])
 
-* configure the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EmailService[email service]
+* configure the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_EmailService[email service]
 
 The latter is required if you are using the default email notification service and email service. If you are using your own alternative implementation of the email notification service then it may be omitted (and configure your own alternative implementation as required).
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_hints-and-tips_i18n-label-in-wicket-viewer.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_hints-and-tips_i18n-label-in-wicket-viewer.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_hints-and-tips_i18n-label-in-wicket-viewer.adoc
index 54b83d7..fbc9b2d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_hints-and-tips_i18n-label-in-wicket-viewer.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_hints-and-tips_i18n-label-in-wicket-viewer.adoc
@@ -13,7 +13,7 @@ Referencing those via their message id inside a .po file didn't work either.
 Can this be done?_
 
 
-The above FAQ was raised against `1.10.0`.  As of `1.11.0` (due to link:https://issues.apache.org/jira/browse/ISIS-1093[ISIS-1093]) it _is_ now possible to internationalize both the Wicket viewer's labels as well as the regular translations of the domain object metadata using the `.po` translation files as supported by the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_TranslationService[`TranslationService`].
+The above FAQ was raised against `1.10.0`.  As of `1.11.0` (due to link:https://issues.apache.org/jira/browse/ISIS-1093[ISIS-1093]) it _is_ now possible to internationalize both the Wicket viewer's labels as well as the regular translations of the domain object metadata using the `.po` translation files as supported by the xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_TranslationService[`TranslationService`].
 
 Full details of the ``msgId``s that must be added to the `translations.po` file can be found in xref:guides/ugbtb.adoc#__ugbtb_i18n_wicket-viewer[i18n] section of the xref:../ugbtb/ugbtb.adoc#[beyond the basics] guide.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
index 9f99703..90899b9 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
@@ -13,7 +13,7 @@ Many developers also find it easier to rationalize about layout when all the hin
 
 Another benefit of file-based layout is that UI hints can be provided for xref:../ugfun/ugfun.adoc#_ugfun_how-tos_contributed-members[contributed associations and actions] that are synthesised at runtime.
 
-It is also possible to download an initial `.layout.xml` - capturing any existing layout metadata - using the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LayoutService[`LayoutService`] (exposed on the prototyping menu) or using a xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] contributed to every domain object.
+It is also possible to download an initial `.layout.xml` - capturing any existing layout metadata - using the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (exposed on the prototyping menu) or using a xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] contributed to every domain object.
 
 The main downsides of using file-based layouts are a lack of typesafety (a typo will result in the metadata not being picked up for the element) and syntactic fragility (an invalid XML document will result in no metadata for the entire class).
 
@@ -28,7 +28,7 @@ is that IDEs such as IntelliJ and Eclipse can provide "intellisense", making ite
 It is also possible to describe layouts using a `.layout.json` file.
 However, `.layout.json` support is deprecated; the ``.layout.xml`` file also enables much more sophisticated layouts than those afforded by ``.layout.json``.
 
-If you have an application with older `.layout.json` files, then it is possible to download initial `.layout.xml` files using the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LayoutService[`LayoutService`] (exposed as an action on the prototyping menu).
+If you have an application with older `.layout.json` files, then it is possible to download initial `.layout.xml` files using the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (exposed as an action on the prototyping menu).
 The `.layout.json` file will be ignored once a `.layout.xml` file is present.
 ====
 
@@ -321,7 +321,7 @@ from the top of the page slightly, using the following CSS:
 
 == Migrating from earlier versions
 
-As noted earlier on, it is possible to download layout XML files using the xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LayoutService[`LayoutService`] (exposed on the prototyping menu); this will download a ZIP file of layout XML files for all domain entities and view models.  Alternatively the layout XML for a single domain object can be downloaded using the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] (contributed to every domain object).
+As noted earlier on, it is possible to download layout XML files using the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (exposed on the prototyping menu); this will download a ZIP file of layout XML files for all domain entities and view models.  Alternatively the layout XML for a single domain object can be downloaded using the xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] (contributed to every domain object).
 
 There are four "styles":
 
@@ -381,9 +381,9 @@ Download either for a single domain object, or download all domain objects (enti
 
 For more information about layouts, see:
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LayoutService[`LayoutService`] (whose functionality is exposed on the prototyping menu as an action) and lso the a xref:rgcms .adoc#_rgcms_classes_mixins_Object[mixin action]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (whose functionality is exposed on the prototyping menu as an action) and lso the a xref:rgcms .adoc#_rgcms_classes_mixins_Object[mixin action]
 
-* xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_GridService[`GridService`] and its supporting services, xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_GridLoaderService[`GridLoaderService`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_GridSystemService[`GridSystemService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_GridService[`GridService`] and its supporting services, xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_GridLoaderService[`GridLoaderService`] and xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_GridSystemService[`GridSystemService`]
 
 * xref:../rgcms/rgcms.adoc#_rgcms_classes_layout[grid layout classes], defined in the Apache Isis applib
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_table-columns.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_table-columns.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_table-columns.adoc
index 36fe1bd..62a9ea8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_table-columns.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_table-columns.adoc
@@ -7,7 +7,7 @@
 
 
 
-The optional xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_TableColumnOrderService[`TableColumnOrderService`] SPI service can be used to reorder columns in a table, either for a parented collection (owned by parent domain object) or a standalone collection (returned from an action invocation).
+The optional xref:../rgsvc/rgsvc.adoc#_rgsvc_presentation-layer-spi_TableColumnOrderService[`TableColumnOrderService`] SPI service can be used to reorder columns in a table, either for a parented collection (owned by parent domain object) or a standalone collection (returned from an action invocation).
 
 For example, suppose there is a `Customer` and an `Order`:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/js/toc-scroll/toc-scroll.js
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/js/toc-scroll/toc-scroll.js b/adocs/documentation/src/main/asciidoc/js/toc-scroll/toc-scroll.js
index c6544a6..537e230 100644
--- a/adocs/documentation/src/main/asciidoc/js/toc-scroll/toc-scroll.js
+++ b/adocs/documentation/src/main/asciidoc/js/toc-scroll/toc-scroll.js
@@ -5,7 +5,9 @@ $( document ).ready(function() {
             $scrollToTarget = $($target.attr("href")),
             $header = $("nav.navbar-static-top"),
             prop = {
-                scrollTop:   $scrollToTarget.offset().top - $header.outerHeight(true)
+                // subtracting the offset results in the incorrect entry in the TOC from being highlighted.
+                // since the sticky-header keeps the header out of the way, this isn't a problem for us.
+                scrollTop:   $scrollToTarget.offset().top /*- $header.outerHeight(true)*/
             },
             speed = 500;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.10.0-to-1.11.0.adoc
----------------------------------------------------------------------
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 4b12932..bbf53a2 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
@@ -13,7 +13,7 @@ issues here.
 
 == Swagger UI
 
-The new xref:guides/rgsvc.adoc#_rgsvc_api_SwaggerService[`SwaggerService`] allows link:http://swagger.io[Swagger] spec files
+The new xref:guides/rgsvc.adoc#_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`.
@@ -70,7 +70,7 @@ xref:guides/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[here]) then the
 
 == `RoutingService`
 
-The new xref:guides/rgsvc.adoc#_rgsvc_spi_RoutingService[`RoutingService`] SPI service provides a plugin point to the
+The new xref:guides/rgsvc.adoc#_rgsvc_presentation-layer-spi_RoutingService[`RoutingService`] SPI service provides a plugin point to the
 xref:guides/ugvw.adoc#[Wicket viewer] so that a different object than that returned from an action invocation can be
 rendered.
 
@@ -93,7 +93,7 @@ public class IdentityRoutingService implements RoutingService {
 == Wicket Viewer i18n
 
 The xref:guides/ugvw.adoc#[Wicket viewer] (its labels, buttons, messages etc) can now be internationalized using the
-xref:guides/rgsvc.adoc#_rgsvc_spi_TranslationService[`TranslationService`].
+xref:guides/rgsvc.adoc#_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.adoc#__ugbtb_i18n_wicket-viewer[i18n] section of the "beyond the basics" guide.

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.11.0-to-1.12.0.adoc
----------------------------------------------------------------------
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 c4d42a4..fd6e0ef 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
@@ -67,15 +67,15 @@ view models that should be read-only should have editing attribute disabled usin
 
 == `DomainObjectContainer` domain service
 
-The xref:guides/rgsvc.adoc#_rgsvc_api_DomainObjectContainer[`DomainObjectContainer`]domain service has been deprecated, with
+The xref:guides/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.adoc#_rgsvc_api_RepositoryService[`RepositoryService`] and
-xref:guides/rgsvc.adoc#_rgsvc_api_MessageService[`MessageService`].
+xref:guides/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`] and
+xref:guides/rgsvc.adoc#_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_api_DomainObjectContainer_object-persistence-api.adoc#_rgsvc_api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persist()`] to xref:guides/_rgsvc_api_RepositoryService.adoc.adoc#_rgsvc_api_RepositoryService[`RepositoryService#persist()`], no exception will be thrown if the Domain Object is already persisted, so the behavior of xref:guides/_rgsvc_api_RepositoryService.adoc#_rgsvc_api_RepositoryService[`RepositoryService#persist()`] will be the same as that of _rgsvc_api_DomainObjectContainer_object-persistence-api.adoc#_rgsvc_api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persistIfNotAlready()`].
+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_persistence-layer-api_RepositoryService.adoc.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_persistence-layer-api_RepositoryService.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService#persist()`] will be the same as that of _rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api.adoc#_rgsvc_core-domain-api_DomainObjectContainer_object-persistence-api[`DomainObjectContainer#persistIfNotAlready()`].
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.12.0-to-1.13.0.adoc
----------------------------------------------------------------------
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 55853a2..54622d9 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
@@ -16,15 +16,15 @@ support you and document issues here.
 
 == Command changes
 
-The main feature in `1.13.0` is the xref:guides/rgsvc.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] domain service
+The main feature in `1.13.0` is the xref:guides/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.adoc#_rgsvc_api_CommandContext[`CommandContext`] to represent the _intention_ to invoke an action/edit a
+xref:guides/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.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.adoc#_rgsvc_spi_CommandService[`CommandService`] (to persist) and to
-xref:guides/rgsvc.adoc#_rgsvc_spi_BackgroundCommandService[`BackgroundCommandService`] (to invoke persisted commands in the
+xref:guides/rgsvc.adoc#_rgsvc_application-layer-spi_CommandService[`CommandService`] (to persist) and to
+xref:guides/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
@@ -44,8 +44,8 @@ framework; moreover the default implementation now throws an exception to this e
 
 == Auditing
 
-The xref:guides/rgsvc.adoc#_rgsvc_spi_AuditingService[`AuditingService`] SPI service has been deprecated, instead replaced
-by the xref:guides/rgsvc.adoc#_rgsvc_spi_AuditerService[`AuditerService`].
+The xref:guides/rgsvc.adoc#_rgsvc_persistence-layer-spi_AuditingService[`AuditingService`] SPI service has been deprecated, instead replaced
+by the xref:guides/rgsvc.adoc#_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)
@@ -54,9 +54,9 @@ http://github.com/isisaddons/isis-module-audit[Isis addons' audit] module also i
 
 == Publishing
 
-The xref:guides/rgsvc.adoc#_rgsvc_spi_PublishingService[`PublishingService`] SPI service and its supporting
-xref:guides/rgsvc.adoc#_rgsvc_spi_EventSerializer[`EventSerializer`] domain service, have both deprecated, instead
-replaced by the xref:guides/rgsvc.adoc#_rgsvc_spi_PublisherService[`PublisherService`].
+The xref:guides/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublishingService[`PublishingService`] SPI service and its supporting
+xref:guides/rgsvc.adoc#_rgsvc_persistence-layer-spi_EventSerializer[`EventSerializer`] domain service, have both deprecated, instead
+replaced by the xref:guides/rgsvc.adoc#_rgsvc_persistence-layer-spi_PublisherService[`PublisherService`].
 
 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)
@@ -137,7 +137,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.adoc#_rgsvc_api_ApplicationFeatureRepository[`ApplicationFeatureRepository`] domain service lazily or
+xref:guides/rgsvc.adoc#_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
@@ -227,7 +227,7 @@ In the xref:guides/ugbtb.adoc#_ugbtb_web-xml[`web.xml`], the "isis.viewers" cont
 The xref:guides/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.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] service) in which the object was created.
+xref:guides/rgsvc.adoc#_rgsvc_application-layer-api_InteractionContext[`InteractionContext`] service) in which the object was created.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_exception-recognizer.adoc
----------------------------------------------------------------------
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 59b2c57..ea149e9 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,7 +6,7 @@
 
 
 
-The `ExceptionRecognizerCompositeForJdoObjectStore` service (an implementation of the xref:guides/rgsvc.adoc#_rgsvc_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 xref:guides/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.
 
 Prior to 1.9.0 this implementation was _not_ annotated with xref:guides/rgant.adoc#_rgant-DomainService[`@DomainService`] and thus needed to be explicitly registered in `isis.properties`.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.8.0-to-1.9.0_fixture-scripts-specification-provider.adoc
----------------------------------------------------------------------
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 2c9f4e4..aa30780 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,7 +6,7 @@
 
 
 
-The `FixtureScriptsSpecificationProvider` SPI service is an alternative to subclassing the xref:guides/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.adoc#_rgsvc_api_FixtureScriptsDefault[`FixtureScriptsDefault`].
+The `FixtureScriptsSpecificationProvider` SPI service is an alternative to subclassing the xref:guides/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.adoc#_rgsvc_testing_FixtureScriptsDefault[`FixtureScriptsDefault`].
 
 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.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.9.0-to-1.10.0.adoc
----------------------------------------------------------------------
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 57f2e3d..9bdf1c3 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
@@ -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.adoc#_rgsvc_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 xref:guides/rgsvc.adoc#_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)
@@ -88,7 +88,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.adoc#_rgsvc_api_EventBusService[`EventBusService`] man page.
+For more details, see the xref:guides/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`] man page.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc b/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
index 4dacc27..595f54d 100644
--- a/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/screencasts/screencasts.adoc
@@ -146,7 +146,7 @@ Implementing business logic using a (no-arg) action, and associating with a prop
 
 
 |link:https://www.youtube.com/watch?v=0naoVsWppuQ[013^] +
-Invoking (no-arg) action on multiple objects at once (using xref:guides/rgant.adoc#_rgant-Action_invokeOn[`@Action#invokeOn()`], and using the xref:guides/rgsvc.adoc#_rgsvc_api_ActionInvocationContext[`ActionInvocationContext`] domain service for a smoother end-user experience.
+Invoking (no-arg) action on multiple objects at once (using xref:guides/rgant.adoc#_rgant-Action_invokeOn[`@Action#invokeOn()`], and using the xref:guides/rgsvc.adoc#_rgsvc_application-layer-api_ActionInvocationContext[`ActionInvocationContext`] domain service for a smoother end-user experience.
 |||x||||||x||
 
 
@@ -342,7 +342,7 @@ How to validate action parameters using the xref:guides/rgant.adoc#_rgant-Parame
 
 
 |link:https://www.youtube.com/watch?v=fYJjXAepWAs[032^] +
-How to instantiate/initialize objects using xref:guides/rgsvc.adoc#_rgsvc_api_RepositoryService[`RepositoryService`], xref:guides/rgsvc.adoc#_rgsvc_api_ServiceRegistry[`ServiceRegistry`] and/or xref:guides/rgsvc.adoc#_rgsvc_api_FactoryService[`FactoryService`].
+How to instantiate/initialize objects using xref:guides/rgsvc.adoc#_rgsvc_persistence-layer-api_RepositoryService[`RepositoryService`], xref:guides/rgsvc.adoc#_rgsvc_metadata-api_ServiceRegistry[`ServiceRegistry`] and/or xref:guides/rgsvc.adoc#_rgsvc_core-domain-api_FactoryService[`FactoryService`].
 |x||||||||x||
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/20b83ae7/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc b/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
index 0b56f22..c6ea1c7 100644
--- a/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
@@ -245,7 +245,7 @@ Fixture scripts are used to setup the app into a known state. They are great for
 
 * rename the `SimpleObjectsTearDownFixture` class
 * and update to delete from the appropriate underlying database table(s)
-* use the injected xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_IsisJdoSupport[`IsisJdoSupport`] domain service.
+* use the injected xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_IsisJdoSupport[`IsisJdoSupport`] domain service.
 * refactor/rename the fixture script classes that create instances your entity:
 * `RecreateSimpleObjects`, which sets up a set of objects for a given scenario
 * `SimpleObjectCreate` which creates a single object
@@ -370,7 +370,7 @@ The Wicket UI doesn't allow collections to be modified (added to/removed from).
 * 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_api_DomainObjectContainer[`DomainObjectContainer`]
+* the service itself should use xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_DomainObjectContainer[`DomainObjectContainer`]
 * use the xref:../../guides/rgant/rgant.adoc#_rgant-MemberOrder[`@MemberOrder(name=...)`] annotation to associate an action with a property or with a collection
 
 
@@ -454,7 +454,7 @@ The Wicket UI will automatically invoke the "home page" action, if available. Th
 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_api_ClockService[`ClockService`]
+* inject xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_ClockService[`ClockService`]
 * call `ClockService.now()` etc where required.
 
 
@@ -512,7 +512,7 @@ Under the covers Apache Isis uses the https://code.google.com/p/guava-libraries/
 By default the events generated are `ActionDomainEvent.Default` (for actions) and `PropertyDomainEvent.Default` (for properties). Subclasses of these can be specified using the xref:../../guides/rgant/rgant.adoc#_rgant-Action_domainEvent[`@Action(domainEvent=...)`] or xref:../../guides/rgant/rgant.adoc#_rgant-Property_domainEvent[`Property(domainEvent=...)`] for properties.
 
 
-Using the guidance in the docs for the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`]:
+Using the guidance in the docs for the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_EventBusService[`EventBusService`]:
 
 * write a domain service subscriber to subscribe to events
 * use the domain service to perform log events
@@ -531,12 +531,12 @@ Note that currently (1.8.0) only no-arg actions can be specified as bulk actions
 
 Thus:
 * Write a no-arg action for your domain entity, annotate with `@Action(invokeOn=...)`
-* Inject the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_ActionInvocationContext[`ActionInteractionContext`] (request-scoped) service
+* Inject the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_ActionInvocationContext[`ActionInteractionContext`] (request-scoped) service
 * Use the `ActionInteractionContext` service to determine whether the action was invoked in bulk or as a regular action.
 * return null if invoked on a collection; the Wicket viewer will go back to the original collection
 ** (if return non-null, then Wicket viewer will navigate to the object of the last invocation generally not what is required)
 
-The similar xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad`] (request-scoped) domain service is a good way to share information between bulk action invocations:
+The similar xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_core-domain-api_Scratchpad[`Scratchpad`] (request-scoped) domain service is a good way to share information between bulk action invocations:
 
 * Inject the `Scratchpad` domain service
 * for each action, store state (eg a running total)
@@ -547,7 +547,7 @@ The similar xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad
 
 == Performance tuning
 
-The xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_QueryResultsCache[`QueryResultsCache`] (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request.
+The xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_persistence-layer-api_QueryResultsCache[`QueryResultsCache`] (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request.
 
 This can be helpful for "naive" code which would normally make the same query within a loop.
 
@@ -662,7 +662,7 @@ change back to:
 
 There will probably be some compile issues to fix up once you've done this; comment out all code that doesn't compile.
 
-Isis has great support for writing xref:../../guides/ugtst/ugtst.adoc#_ugtst_integ-test-support[integration tests]; well-written integration tests should leverage fixture scripts and use the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`@WrapperFactory`] domain service.
+Isis has great support for writing xref:../../guides/ugtst/ugtst.adoc#_ugtst_integ-test-support[integration tests]; well-written integration tests should leverage fixture scripts and use the xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`@WrapperFactory`] domain service.
 
 * use the tests from the original archetype and the documentation on the website to develop integration tests for your app's functionality.