http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublisherService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublisherService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublisherService.adoc
index 4e4a511..fa65e0e 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublisherService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublisherService.adoc
@@ -12,14 +12,14 @@ link:http://activemq.apache.org/[ActiveMQ] with 
link:http://camel.apache.org[Cam
 
 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.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] is used to call 
other objects then the metrics are captured
+xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgcms_schema-ixn["ixn" schema]) to an SLF4J logger.
+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.adoc#_rgant-Action_publishing[`@Action#publishing()`],
-xref:rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] or
-xref:rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]) 
are published.
+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
@@ -37,9 +37,9 @@ public interface PublisherService {
 <2> to publish a set of changed objects.
 
 Each `Interaction.Execution` has an owning `Interaction`; this is the same 
object obtainable from
-xref:rgsvc.adoc#_rgsvc_spi_InteractionContext[`InteractionContext`].  
Implementations that publish member executions
+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.adoc#_rgcms_schema-ixn["ixn" schema]) which can be converted into a 
serializable XML representation using
+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.
 
@@ -64,7 +64,7 @@ public interface PublishedObjects extends HasTransactionId, 
HasUsername {
 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.adoc#_rgcms_schema-chg["chg" schema]) 
which can be converted into a
+<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).
 
@@ -101,13 +101,13 @@ and monitoring the activity of subscribers of said 
message queues.
 == Usage
 
 To indicate that an action invocation should be published, annotate it with the
-xref:rgant.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation.
+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.adoc#_rgant-Property_publishing[`@Property#publishing()`] 
annotation.
+xref:../rgant/rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`] 
annotation.
 
 To indicate that a changed object should be published is to annotate it with 
the
-xref:rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] 
annotation.
+xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]
 annotation.
 
 
 
@@ -115,7 +115,7 @@ 
xref:rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`] ann
 
 The (non-ASF) Isis addons' 
http://github.com/isisaddons/isis-module-publishmq[publishmq] module provides an
 implementation of this service. Assuming that an `AppManifest` is being used to
-xref:rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) 
then this can be activated by updating
+xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap 
the app]) then this can be activated by updating
 the `pom.xml` and updating the `AppManifest#getModules()` method.
 
 The module also provide services that contribute to the UI.  If contributions 
are not required in the UI, these can be
@@ -133,7 +133,7 @@ This service supports two main use cases:
 +
 [NOTE]
 ====
-The xref:rgsvc.adoc#_rgsvc_spi_PublishingService[`PublishingService`] also 
supports this use case, but
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_PublishingService[`PublishingService`] 
also supports this use case, but
 is deprecated: the `PublisherService` is intended as a replacement for 
`PublishingService`.
 ====
 
@@ -142,24 +142,24 @@ is deprecated: the `PublisherService` is intended as a 
replacement for `Publishi
 
 To support these use cases several other services are involved:
 
-* the xref:rgsvc.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] is 
used to obtain the `Interaction` from which
+* the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] is 
used to obtain the `Interaction` from which
 the member executions are published.
 
-* the (internal) 
xref:rgfis.adoc#_rgfis_spi_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`]
 domain
+* the (internal) 
xref:../rgfis/rgfis.adoc#_rgfis_spi_ChangedObjectsServiceInternal[`ChangedObjectsServiceInternal`]
 domain
 service is used to obtain the set of objects modified throughout the 
transaction
 
-* the (internal) 
xref:rgfis.adoc#_rgfis_spi_PublisherServiceInternal[`PublisherServiceInternal`] 
domain service filters
+* 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.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]) 
and delegates to the `PublisherService`.
+xref:../rgant/rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`])
 and delegates to the `PublisherService`.
 
-* the xref:rgsvc.adoc#_rgsvc_api_MetricsService[`MetricsService`] is used to 
obtain the objects that are loaded
+* the xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgsvc_api_EventBusService[`EventBusService`] differs from 
the `PublisherService` in that it is
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] domain 
service.
+xref:../rgsvc/rgsvc.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] 
domain service.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublishingService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublishingService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublishingService.adoc
index 543d66e..7897e4f 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublishingService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_PublishingService.adoc
@@ -11,7 +11,7 @@ The `PublishingService` API is intended for coarse-grained 
publish/subscribe for
 
 [WARNING]
 ====
-As of `1.13.0` this service is deprecated, replaced with 
xref:rgsvc.adoc#_rgsvc_spi_PublisherService[`PublisherService`].
+As of `1.13.0` this service is deprecated, replaced with 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_PublisherService[`PublisherService`].
 ====
 
 
@@ -30,9 +30,9 @@ public interface PublishingService {
     void setEventSerializer(EventSerializer eventSerializer);   // <3>
 }
 ----
-<1> standard metadata about the event, such as the user, the 
xref:rgcms.adoc#_rgcms_classes_mixins_HasTransactionId[`transactionId`], 
date/time etc
+<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.adoc#_rgsvc_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.
+<3> injects in the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_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:
@@ -68,16 +68,16 @@ 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.adoc#_rgant-Action_publishing[`@Action#publishing()`] annotation.
+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.adoc#_rgant-DomainObject_publishing[`@DomainObject#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 the subscriber to call back to 
Apache Isis to determine any information that has not been published.
 
 [NOTE]
 ====
-The replacement 
xref:rgsvc.adoc#_rgsvc_spi_PublisherService[`PublisherService`] does __not__ 
support the concept of "payload factories" (but is otherwise more flexible).
+The replacement 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_PublisherService[`PublisherService`] does 
__not__ support the concept of "payload factories" (but is otherwise more 
flexible).
 ====
 
 
@@ -155,7 +155,7 @@ There is no default implementation of this service provided 
by the core Apache I
 
 The (non-ASF) Isis addons' 
http://github.com/isisaddons/isis-module-publishing[publishing] module provides 
an
 implementation of this service. Assuming that an `AppManifest` is being used to
-xref:rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) 
then this can be activated by updating
+xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap 
the app]) then this can be activated by updating
 the `pom.xml` and updating the `AppManifest#getModules()` method.
 
 The module also provides services that contribute to the UI.  If contributions 
are not required in the UI, these can be
@@ -170,29 +170,29 @@ 
xref:ugbtb.adoc#_ugbtb_decoupling_vetoing-visibility[vetoing subscriber].
 
 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.adoc#_rgant-Action_publishing[`@Action#publishing()`]) and of 
changed objects (for objects
-annotated with 
xref:rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`].
+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.adoc#_rgsvc_spi_PublisherService[`PublisherService`] is 
intended as a replacement for this service.  The
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgant-Action_publishing[`@Action#publishing()`]) and also for 
property edits (annotated with
-xref:rgant.adoc#_rgant-Property_publishing[`@Property#publishing()`].  It also 
publishes changed objects (for objects
-annotated with 
xref:rgant.adoc#_rgant-DomainObject_publishing[`@DomainObject#publishing()`]).  
However, rather than
+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.adoc#_rgsvc_api_MementoService[`MementoService`] to create an
-ad-hoc serialization of the action being invoked, the latter uses the 
xref:rgcms.adoc#_rgcms_schema[DTOs/XML schemas]
+themselves.  While the former uses the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgsvc_api_EventBusService[`EventBusService`] meanwhile 
differs from both `PublishingService` and
-xref:rgsvc.adoc#_rgsvc_spi_PublisherService[`PublisherService`] in that it is 
intended for fine-grained
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`] 
meanwhile differs from both `PublishingService` and
+xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] domain 
service).
+current event to be raised using 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_InteractionContext[`InteractionContext`] 
domain service).
 
 
 == Design Notes

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_RoutingService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_RoutingService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_RoutingService.adoc
index ba96bd1..899f379 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_RoutingService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_RoutingService.adoc
@@ -18,7 +18,7 @@ of the implementation to figure out what the "owning" object 
might be.
 
 * if an action returns `null` or is `void`, then return some other "useful" 
object. +
 +
-For example, return the home page (eg as defined by the 
xref:rgant.adoc#_rgant-HomePage[`@HomePage`] annotation).
+For example, return the home page (eg as defined by the 
xref:../rgant/rgant.adoc#_rgant-HomePage[`@HomePage`] annotation).
 
 Currently the routing service is used only by the xref:ugvw.adoc#[Wicket 
viewer]; it is ignored by the xref:ugvro.adoc#[Restful Objects] viewer.
 
@@ -28,7 +28,7 @@ Currently the routing service is used only by the 
xref:ugvw.adoc#[Wicket viewer]
 Unlike most other domain services, the framework will check _all_ available 
implementations of
 `RoutingService` to return a route, rather than the first implementation 
found; in other words it uses the
 chain-of-responsibility pattern.  Services are called in the order defined by
-xref:rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]).
  The route used will be the
+xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]).
  The route used will be the
 result of the first implementation checked that declares that it can provide a 
route.
 ====
 
@@ -55,11 +55,11 @@ public interface RoutingService {
 == Implementation
 
 The framework provides a default implementation - `RoutingServiceDefault` - 
which will always return the original object provided, or the home page
-if a `null` or `void` was provided.  It uses the 
xref:rgsvc.adoc#_rgsvc_api_HomePageProviderService[`HomePageProviderService`].
+if a `null` or `void` was provided.  It uses the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_HomePageProviderService[`HomePageProviderService`].
 
 There can be multiple implementations of `RoutingService` registered.  These 
are checked in turn (chain of responsibility
-pattern), ordered according to 
xref:rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
-(as explained in the 
xref:rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to this 
guide).
+pattern), ordered according to 
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).
 The route from the first service that returns `true` from its `canRoute(...)` 
method will be used.
 
 
@@ -67,7 +67,7 @@ The route from the first service that returns `true` from its 
`canRoute(...)` me
 == Registering the Services
 
 Assuming that the `configuration-and-annotation` services installer is 
configured (implicit if using the
-`AppManifest` to 
xref:rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) 
then Apache Isis'
+`AppManifest` to 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the 
app]) then Apache Isis'
 default implementation of `RoutingService` service is automatically registered 
and injected (it is annotated with
 `@DomainService`) so no further configuration is required.
 
@@ -76,4 +76,4 @@ default implementation of `RoutingService` service is 
automatically registered a
 == Related Services
 
 The default implementation of this service uses the
-xref:rgsvc.adoc#_rgsvc_api_HomePageProviderService[`HomePageProviderService`].
+xref:../rgsvc/rgsvc.adoc#_rgsvc_api_HomePageProviderService[`HomePageProviderService`].

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TableColumnOrderService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TableColumnOrderService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TableColumnOrderService.adoc
index 2594823..88fc095 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TableColumnOrderService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TableColumnOrderService.adoc
@@ -29,7 +29,7 @@ public interface TableColumnOrderService {
 <1> for the parent collection owned by the specified parent and collection Id, 
return the set of property ids in the same or other order.
 <2> for the standalone collection of the specified type, return the set of 
property ids in the same or other order, else return `null` if provides no 
reordering.
 
-There can be multiple implementations of `TableColumnOrderService` registered, 
ordered as per 
xref:rgant.adoc#_rgant_DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`].
+There can be multiple implementations of `TableColumnOrderService` registered, 
ordered as per 
xref:../rgant/rgant.adoc#_rgant_DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`].
 The ordering provided by the first such service that returns a non-`null` 
value will be used.
 If all provided implementations return `null`, then the framework will 
fallback to a default implementation.
 
@@ -43,7 +43,7 @@ The framework provides a fallback implementation of this 
service, namely `TableC
 == Registering the Services
 
 Assuming that the `configuration-and-annotation` services installer is 
configured (implicit if using the
-`AppManifest` to 
xref:rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]), 
then the
+`AppManifest` to 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the 
app]), then the
  default implementation of `TableColumnOrderService` is automatically 
registered and injected, and no further
  configuration is required.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationService.adoc
index b872352..451163c 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationService.adoc
@@ -61,14 +61,14 @@ For more details on the implementation, see 
xref:ugbtb.adoc#_ugbtb_i18n[i18n sup
 == Registering the Services
 
 Assuming that the `configuration-and-annotation` services installer is 
configured (implicit if using the
-`AppManifest` to 
xref:rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]) 
then Apache Isis' core
+`AppManifest` to 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the 
app]) then Apache Isis' core
 implementation of `TranslationService` service (along with the supporting menu 
service) are automatically registered and injected (it is annotated with 
`@DomainService`) so no further configuration is required.
 
 If the menu items are not required then these can be suppressed either using 
security or by implementing a 
xref:ugbtb.adoc#_ugbtb_decoupling_vetoing-visibility[vetoing subscriber].
 
 To use an alternative implementation, use
-xref:rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 (as explained
-in the xref:rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to 
this guide).
+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).
 
 
 
@@ -83,5 +83,5 @@ translations can be downloaded as a single file.
 
 == Related Services
 
-This service works in conjunction with 
xref:rgsvc.adoc#_rgsvc_spi_LocaleProvider[`LocaleProvider`] and 
xref:rgsvc.adoc#_rgsvc_spi_TranslationsResolver[`TranslationsResolver`] in 
order to provide i18n support.
+This service works in conjunction with 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_LocaleProvider[`LocaleProvider`] and 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_TranslationsResolver[`TranslationsResolver`]
 in order to provide i18n support.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationsResolver.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationsResolver.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationsResolver.adoc
index d050217..2c14678 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationsResolver.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_TranslationsResolver.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `TranslationsResolver` service is one of the services that work together 
to implement Apache Isis' support for i18n, being used by Isis' default 
implementation of 
xref:rgsvc.adoc#_rgsvc_spi_TranslationService[`TranslationService`].
+The `TranslationsResolver` service is one of the services that work together 
to implement Apache Isis' support for i18n, being used by Isis' default 
implementation of 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_TranslationService[`TranslationService`].
 
 The role of the service itself is locate and return translations.
 
@@ -47,12 +47,12 @@ Currently there is no equivalent implementation for the 
xref:ugvro.adoc#[Restful
 == Registering the Service
 
 Assuming that the `configuration-and-annotation` services installer is 
configured (implicit if using the
-`AppManifest` to 
xref:rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the app]), 
_and_ that the xref:ugvw.adoc#[Wicket viewer] is being used, then an 
implementation of `TranslationsResolver` is
+`AppManifest` to 
xref:../rgcms/rgcms.adoc#_rgcms_classes_AppManifest-bootstrapping[bootstrap the 
app]), _and_ that the xref:ugvw.adoc#[Wicket viewer] is being used, then an 
implementation of `TranslationsResolver` is
 automatically registered and injected (it is annotated with `@DomainService`) 
so no further configuration is required.
 
 To use an alternative implementation, use
-xref:rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 (as explained
-in the xref:rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to 
this guide).
+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).
 
 
 
@@ -62,6 +62,6 @@ in the 
xref:rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to th
 == Related Services
 
 
-This service works in conjunction with 
xref:rgsvc.adoc#_rgsvc_spi_LocaleProvider[`LocaleProvider`] and 
xref:rgsvc.adoc#_rgsvc_spi_TranslationService[`TranslationService`] in order to 
provide i18n support.
+This service works in conjunction with 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_LocaleProvider[`LocaleProvider`] and 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_TranslationService[`TranslationService`] in 
order to provide i18n support.
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UrlEncodingService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UrlEncodingService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UrlEncodingService.adoc
index ccd6cea..1f5efbc 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UrlEncodingService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UrlEncodingService.adoc
@@ -16,7 +16,7 @@ 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.adoc#_rgant-XmlRootElement[`@XmlRootElement`]-annotated view 
model), the service provides a
+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.
@@ -54,6 +54,6 @@ exceed 2083 characters.  For large view models, there's the 
possibility that thi
 cases register an alternative implementation of this service.
 
 To use an alternative implementation, use
-xref:rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 (as explained
-in the xref:rgsvc.adoc#__rgsvc_intro_overriding-the-services[introduction] to 
this guide).
+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).
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UserRegistrationService.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UserRegistrationService.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UserRegistrationService.adoc
index ee41645..0c7fbe1 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UserRegistrationService.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_spi_UserRegistrationService.adoc
@@ -7,7 +7,7 @@
 
 The `UserRegistrationService` provides the ability for users to sign-up to 
access an application by providing a valid email address, and also provides the 
capability for users to reset their password if forgotten.
 
-For user sign-up, the xref:ugvw.adoc#[Wicket viewer] will check whether an 
implementation of this service (and also the 
xref:rgsvc.adoc#_rgsvc_spi_EmailNotificationService[`EmailNotificationService`])
 is available, and if so will render a sign-up page where the user enters their 
email address. A verification email is sent (using the aforementioned 
`EmailNotificationService`) which includes a link back to the running 
application; this allows the user then to complete their registration process 
(choose user name, password and so on). When the user has provided the 
additional details, the Wicket viewer calls _this_ service in order to create 
an account for them, and then logs the user on.
+For user sign-up, the xref:ugvw.adoc#[Wicket viewer] will check whether an 
implementation of this service (and also the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_EmailNotificationService[`EmailNotificationService`])
 is available, and if so will render a sign-up page where the user enters their 
email address. A verification email is sent (using the aforementioned 
`EmailNotificationService`) which includes a link back to the running 
application; this allows the user then to complete their registration process 
(choose user name, password and so on). When the user has provided the 
additional details, the Wicket viewer calls _this_ service in order to create 
an account for them, and then logs the user on.
 
 For the password reset feature, the Wicket viewer will render a password reset 
page, and use the `EmailNotificationService` to send a "password forgotten" 
email.  This service provides the ability to reset a password based on the 
user's email address.
 
@@ -91,8 +91,8 @@ public class AppUserRegistrationService extends 
SecurityModuleAppUserRegistratio
 
 The most common use case is to allow users to sign-up through Apache Isis' 
Wicket viewer. Because the process requires email to be sent, the following 
services must be configured:
 
-* xref:rgsvc.adoc#_rgsvc_api_EmailService[`EmailService`]
-* 
xref:rgsvc.adoc#_rgsvc_spi_EmailNotificationService[`EmailNotificationService`]
+* xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EmailService[`EmailService`]
+* 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_EmailNotificationService[`EmailNotificationService`]
 * `UserRegistrationService` (this service)
 
-The `EmailService` in particular requires additional 
xref:rgcfg.adoc#_rgcfg_configuring-core[configuration properties] to specify 
the external SMTP service.
\ No newline at end of file
+The `EmailService` in particular requires additional 
xref:../rgcfg/rgcfg.adoc#_rgcfg_configuring-core[configuration properties] to 
specify the external SMTP service.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing.adoc 
b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing.adoc
index f4749bc..a035349 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_testing.adoc
@@ -24,7 +24,7 @@ The table below summarizes the testing APIs defined by Apache 
Isis.  It also lis
 |Notes
 
 
-|xref:rgsvc.adoc#_rgsvc_api_ExecutionParametersService[`o.a.i.applib.` +
+|xref:../rgsvc/rgsvc.adoc#_rgsvc_api_ExecutionParametersService[`o.a.i.applib.`
 +
 `fixturescripts.` +
 `ExecutionParametersService`]
 |...
@@ -34,39 +34,39 @@ The table below summarizes the testing APIs defined by 
Apache Isis.  It also lis
 |API is also a concrete class
 
 
-|xref:rgsvc.adoc#_rgsvc_api_FixtureScriptsDefault[`o.a.i.applib.` +
+|xref:../rgsvc/rgsvc.adoc#_rgsvc_api_FixtureScriptsDefault[`o.a.i.applib.` +
 `services.` +
 `fixturespec` +
 `FixtureScriptsDefault`]
-|Fallback implementation of 
xref:rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`], 
providing the ability to execute fixture scripts.
+|Fallback implementation of 
xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[`FixtureScripts`], 
providing the ability to execute fixture scripts.
 |`FixtureScriptsDefault` +
 ``o.a.i.core`` +
 ``isis-core-applib``
-|Interacts with 
xref:rgsvc.adoc#_rgsvc_spi_FixtureScriptsSpecificationProvider[`FixtureScripts-
+|Interacts with 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_FixtureScriptsSpecificationProvider[`FixtureScripts-
 SpecificationProvider`].
 
 
 
-|xref:rgsvc.adoc#_rgsvc_spi_FixtureScriptsSpecificationProvider[`o.a.i.applib.`
 +
+|xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_FixtureScriptsSpecificationProvider[`o.a.i.applib.`
 +
 `services.fixturespec` +
 `FixtureScripts-` +
 `SpecificationProvider`]
-|Provides settings for 
xref:rgsvc.adoc#_rgsvc_api_FixtureScriptsDefault[`FixtureScriptsDefault`] 
fallback domain service for executing fixture scripts.
+|Provides settings for 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_FixtureScriptsDefault[`FixtureScriptsDefault`]
 fallback domain service for executing fixture scripts.
 |
 |
 
 
-|xref:rgsvc.adoc#_rgsvc_api_SudoService[`o.a.i.applib.` +
+|xref:../rgsvc/rgsvc.adoc#_rgsvc_api_SudoService[`o.a.i.applib.` +
 `services.sudo` +
 `SudoService`]
-|For use in testing while running 
xref:rgcms.adoc#_rgcms_classes_super_FixtureScripts[fixture scripts], allows a 
block of code to run as a specified user account.
+|For use in testing while running 
xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScripts[fixture scripts], 
allows a block of code to run as a specified user account.
 |`SudoServiceDefault` +
 ``o.a.i.core`` +
 ``isis-core-runtime``
 |API is also a concrete class
 
 
-|xref:rgsvc.adoc#_rgsvc_api_SwitchUserService[`o.a.i.applib.` +
+|xref:../rgsvc/rgsvc.adoc#_rgsvc_api_SwitchUserService[`o.a.i.applib.` +
 `fixtures.switchuser` +
 `SwitchUserServiceService`]
 |(deprecated)

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_contributions.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_contributions.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_contributions.adoc
index 8922623..0adf9f3 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_contributions.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_contributions.adoc
@@ -20,7 +20,7 @@ singletons, whereas mixins are instantiated as required (by 
the framework) and t
 
 [NOTE]
 ====
-There's further useful information on contributed services in the reference 
guide, discussing the 
xref:rgant.adoc#_rgant-DomainService_nature[@DomainService#nature()] attribute, 
for the `NatureOfService.VIEW_CONTRIBUTIONS_ONLY` nature.
+There's further useful information on contributed services in the reference 
guide, discussing the 
xref:../rgant/rgant.adoc#_rgant-DomainService_nature[@DomainService#nature()] 
attribute, for the `NatureOfService.VIEW_CONTRIBUTIONS_ONLY` nature.
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_event-bus.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_event-bus.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_event-bus.adoc
index 5178bb9..9f866fc 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_event-bus.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_event-bus.adoc
@@ -4,7 +4,7 @@
 :_basedir: ../../
 :_imagesdir: images/
 
-NOTE: FIXME - see 
xref:rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`], 
xref:rgant.adoc#_rgant-Action_domainEvent[`@Action#domainEvent()`], 
xref:rgant.adoc#_rgant-Property_domainEvent[`@Property#domainEvent()`], 
xref:rgant.adoc#_rgant-Collection_domainEvent[`@Collection#domainEvent()`], 
xref:rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`].
+NOTE: FIXME - see 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`], 
xref:../rgant/rgant.adoc#_rgant-Action_domainEvent[`@Action#domainEvent()`], 
xref:../rgant/rgant.adoc#_rgant-Property_domainEvent[`@Property#domainEvent()`],
 
xref:../rgant/rgant.adoc#_rgant-Collection_domainEvent[`@Collection#domainEvent()`],
 xref:../rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`].
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_mixins.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_mixins.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_mixins.adoc
index f549e11..82069ba 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_mixins.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_mixins.adoc
@@ -20,7 +20,7 @@ Mixins (and contributions) allow dependency to be inverted, 
so that the dependen
 
 Both use cases are discussed below.
 
-Syntactically, a mixin is defined using either the 
xref:rgant.adoc#_rgant_Mixin[`@Mixin`] annotation or using 
xref:rgant.adoc#_rgant_DomainObject_nature[`@DomainObject#nature()`] attribute 
(specifying a nature of `Nature.MIXIN`).
+Syntactically, a mixin is defined using either the 
xref:../rgant/rgant.adoc#_rgant_Mixin[`@Mixin`] annotation or using 
xref:../rgant/rgant.adoc#_rgant_DomainObject_nature[`@DomainObject#nature()`] 
attribute (specifying a nature of `Nature.MIXIN`).
 
 
 == Contributed Collection
@@ -205,7 +205,7 @@ In other words, all of the following are allowed:
 * `public static class _Documents { ... }`
 * `public static class _documents { ... }`
 
-The reserved method name "$$" can also be changed using 
xref:rgant.adoc#_rgant_Mixin_method[`@Mixin#method()`] or 
xref:rgant.adoc#_rgant_DomainObject_mixinMethod[`@DomainObject#mixinMethod()`].
+The reserved method name "$$" can also be changed using 
xref:../rgant/rgant.adoc#_rgant_Mixin_method[`@Mixin#method()`] or 
xref:../rgant/rgant.adoc#_rgant_DomainObject_mixinMethod[`@DomainObject#mixinMethod()`].
 
 
 
@@ -221,7 +221,7 @@ dynamically.  If writing integration tests or fixtures, or 
(sometimes) just regu
 instantiate mixins directly.
 
 For this you can use the
-xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer_object-creation-api[`DomainObjectContainer#mixin(...)`
+xref:../rgsvc/rgsvc.adoc#_rgsvc_api_DomainObjectContainer_object-creation-api[`DomainObjectContainer#mixin(...)`
 method.  For example:
 
 [source,java]
@@ -230,7 +230,7 @@ DocumentHolder_documents mixin = 
container.mixin(DocumentHolder_documents.class,
 ----
 
 The 
xref:ugtst.adoc#__ugtst_integ-test-support_bootstrapping_IntegrationTestAbstract[`IntegrationTestAbstract`]
 and
-xref:rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`] classes 
both provide a `mixin(...)` convenience
+xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`] 
classes both provide a `mixin(...)` convenience
 method.
 
 
@@ -256,7 +256,7 @@ fundamental structure is changing is likely to remain a 
no-no.
 
 However, chances are that the structure of your domain objects (the data) will 
change much less rapidly than
 the behaviour of those domain objects.  Thus, it's the behaviour that you're 
most likely wanting to change while the
-app is still running.  If you move that behaviour out into 
xref:rgcms.adoc#_rgcms_classes_mixins[mixins] (or
+app is still running.  If you move that behaviour out into 
xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins[mixins] (or
 xref:ugbtb.adoc#_ugbtb_decoupling_contributions[contributed services]), then 
these can be reloaded happily.
 (When running in prototype mode), Apache Isis will automatically recreate the 
portion of the metamodel for any domain
 object as it is rendered.

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_pushing-changes.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_pushing-changes.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_pushing-changes.adoc
index ec0aedc..d75d8ac 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_pushing-changes.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_pushing-changes.adoc
@@ -134,7 +134,7 @@ public class Department {
 --
 <1> maintain a count of the number of male ...
 <2> ... and female employees (getters and setters omitted)
-<3> the xref:rgcms.adoc#_rgcms_methods_prefixes_addTo[`addTo...()`] method 
increments the derived properties
-<4> the xref:rgcms.adoc#_rgcms_methods_prefixes_removeFrom[`removeFrom...()`] 
method similarly decrements the derived properties
+<3> the xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_addTo[`addTo...()`] 
method increments the derived properties
+<4> the 
xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_removeFrom[`removeFrom...()`] 
method similarly decrements the derived properties
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_vetoing-visibility.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_vetoing-visibility.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_vetoing-visibility.adoc
index 7681271..c012be3 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_vetoing-visibility.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_decoupling_vetoing-visibility.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-NOTE: FIXME - a write-up of the "vetoing subscriber" design pattern, eg as 
described in the  xref:rgsvc.adoc#_rgsvc_api_BookmarkService[`BookmarkService`]
+NOTE: FIXME - a write-up of the "vetoing subscriber" design pattern, eg as 
described in the  
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BookmarkService[`BookmarkService`]
 
 
 eg if included an addon such as auditing or security.

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_cmd-line.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_cmd-line.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_cmd-line.adoc
index 78c3da0..0781fa3 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_cmd-line.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_cmd-line.adoc
@@ -29,7 +29,7 @@ The class also supports a number of command line arguments:
 |`-m`
 |`--manifest`
 |FQCN
-|Fully qualified class name of the 
xref:rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`] to use to 
bootstrap the system. +
+|Fully qualified class name of the 
xref:../rgcms/rgcms.adoc#_rgcms_classes_super_AppManifest[`AppManifest`] to use 
to bootstrap the system. +
 
 This flag sets/overrides the `isis.appManifest` configuration property to the 
specified class name.
 
@@ -37,7 +37,7 @@ This flag sets/overrides the `isis.appManifest` configuration 
property to the sp
 |`-f`
 |`--fixture`
 |FQCN
-|Fully qualified class name of the fixture (extending 
xref:rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`]) to be run 
to setup data. +
+|Fully qualified class name of the fixture (extending 
xref:../rgcms/rgcms.adoc#_rgcms_classes_super_FixtureScript[`FixtureScript`]) 
to be run to setup data. +
 
 This flag sets/overrides the `isis.fixtures` configuration property to the 
specified class name, and also sets the 
`isis.persistor.datanucleus.install-fixtures` configuration property to `true` 
to instruct the JDO/DataNucleus objectstore to actually load in the fixtures. +
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_docker.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_docker.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_docker.adoc
index d65f7a1..dc84356 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_docker.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_docker.adoc
@@ -21,7 +21,7 @@ Docker host can be assured.
 == Using an `overrides.properties` file
 
 In addition to loading the regular configuration properties from `WEB-INF` 
directory (described
-xref:rgcfg.adoc#_rgcfg_configuration-files[here]), Apache Isis will also load 
the `overrides.properties` file.
+xref:../rgcfg/rgcfg.adoc#_rgcfg_configuration-files[here]), Apache Isis will 
also load the `overrides.properties` file.
 
 This file is treated slightly differently than the other configuration files; 
it is loaded last, and any configuration
 properties defined in it will _override_ any configuration properties already 
read from other files (this includes

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
index 8a51a12..ddf5cf9 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_externalized-configuration.adoc
@@ -6,7 +6,7 @@
 
 
 
-As described xref:rgcfg.adoc#_rgcfg_configuration-files[here], by default 
Apache Isis itself bootstraps from the
+As described xref:../rgcfg/rgcfg.adoc#_rgcfg_configuration-files[here], by 
default Apache Isis itself bootstraps from the
 `isis.properties` configuration file.  It will also read configuration from 
the (optional)
 component/implementation-specific configuration files (such as
 `persistor_datanucleus.properties` or `viewer_wicket.properties`), and also 
(optional) component-specific configuration

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
index d83805e..c3c450d 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_neo4j.adoc
@@ -6,7 +6,7 @@
 
 As of 1.8.0 Apache Isis has experimental support for Neo4J, courtesy of 
DataNucleus' 
http://www.datanucleus.org/products/datanucleus/datastores/neo4j.html[Neo4J 
Datastore] implementation.
 
-The xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] has been updated so that they can be optionally run under Neo4J.
+The 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] has been updated so that they can be optionally run under Neo4J.
 
 [TIP]
 ====
@@ -44,13 +44,13 @@ Add the following dependency to the `webapp` project's 
`pom.xml`:
 ----
 <1> for Isis v1.9.0, use the value shown.  for Isis v1.8.0, use 3.2.3.
 
-In the xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] this is defined under the "neo4j" profile so can be activated using 
`-P neo4j`.
+In the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] this is defined under the "neo4j" profile so can be activated using 
`-P neo4j`.
 
 == Try it out!
 
 If you want to quickly try out neo4j for yourself:
 
-* run the xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] (v1.8.0)
+* run the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype] (v1.8.0)
 
 * build the app:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_tomcat.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_tomcat.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_tomcat.adoc
index 684d8a0..9d563ac 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_tomcat.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_deployment_tomcat.adoc
@@ -14,7 +14,7 @@ See the guidance 
xref:ugbtb.adoc#_ugbtb_deployment_externalized-configuration[be
 
 == JVM Args
 
-The xref:rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] uses 
link:http://www.javassist.org[Javassist] to create on-the-fly classes acting as 
a proxy.  The cost of these proxies can be mitigated using:
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] uses 
link:http://www.javassist.org[Javassist] to create on-the-fly classes acting as 
a proxy.  The cost of these proxies can be mitigated using:
 
 [source,ini]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access.adoc
index db8db4d..5918c12 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access.adoc
@@ -16,7 +16,7 @@ There are several main use-cases:
 
 Note that the calling thread runs in the same process space as the Apache Isis 
domain object model (must be physically linked to the JAR files containing the 
domain classes).  For use cases where the calling thread runs in some other 
process space (eg migrating data from a legacy system), then the 
xref:ugvro.adoc#[Restful Objects viewer] is usually the way to go.
 
-The API described in this chapter is reasonably low-level, allowing code to 
interact very directly with the Apache Isis metamodel and runtime.  Such 
callers should be considered trusted: they do not (by default) honour any 
business rules eg implicit in the Isis annotations or hide/disable/validate 
methods.  However the 
xref:rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] service could be 
used to enforce such business rules if required.
+The API described in this chapter is reasonably low-level, allowing code to 
interact very directly with the Apache Isis metamodel and runtime.  Such 
callers should be considered trusted: they do not (by default) honour any 
business rules eg implicit in the Isis annotations or hide/disable/validate 
methods.  However the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`WrapperFactory`] service 
could be used to enforce such business rules if required.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access_BackgroundCommandExecution.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access_BackgroundCommandExecution.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access_BackgroundCommandExecution.adoc
index a3a0e1c..2562892 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access_BackgroundCommandExecution.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_headless-access_BackgroundCommandExecution.adoc
@@ -6,7 +6,7 @@
 
 
 
-The `BackgroundCommandExecution` class (a subclass of 
xref:ugbtb.adoc#_ugbtb_headless-access_AbstractIsisSessionTemplate[AbstractIsisSessionTemplate])
 is intended to simplify the execution of background ``Command``s persisted by 
way of the xref:rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] and the 
xref:rgsvc.adoc#_rgsvc_spi_BackgroundCommandService[`BackgroundCommandService`].
+The `BackgroundCommandExecution` class (a subclass of 
xref:ugbtb.adoc#_ugbtb_headless-access_AbstractIsisSessionTemplate[AbstractIsisSessionTemplate])
 is intended to simplify the execution of background ``Command``s persisted by 
way of the xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] 
and the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_BackgroundCommandService[`BackgroundCommandService`].
 
 Its signature is:
 
@@ -34,9 +34,9 @@ 
image::{_imagesdir}headless-access/BackgroundCommandExecution.png[width="400px"]
 
 == Background Execution
 
-The `BackgroundCommandExecutionFromBackgroundCommandServiceJdo` is a concrete 
subclass of `BackgroundCommandExecution` (see the 
xref:rgsvc.adoc#_rgsvc_api_BackgroundService[`BackgroundCommandService`]), the 
intended use being for the class to be instantiated regularly (eg every 10 
seconds) by a scheduler such as http://quartz-scheduler.org[Quartz]) to poll 
for ``Command``s to be executed, and then execute them.
+The `BackgroundCommandExecutionFromBackgroundCommandServiceJdo` is a concrete 
subclass of `BackgroundCommandExecution` (see the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_BackgroundService[`BackgroundCommandService`]),
 the intended use being for the class to be instantiated regularly (eg every 10 
seconds) by a scheduler such as http://quartz-scheduler.org[Quartz]) to poll 
for ``Command``s to be executed, and then execute them.
 
-This implementation queries for ``Command``s persisted by the 
link:http://www.isisaddons.org/isis-module-command[Isis addons Command 
Module]'s  implementations of 
xref:rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] and 
xref:rgsvc.adoc#_rgsvc_spi_BackgroundCommandService[`BackgroundCommandService`] 
using the `BackgroundCommandServiceJdoRepository`.
+This implementation queries for ``Command``s persisted by the 
link:http://www.isisaddons.org/isis-module-command[Isis addons Command 
Module]'s  implementations of 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] and 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_BackgroundCommandService[`BackgroundCommandService`]
 using the `BackgroundCommandServiceJdoRepository`.
 
 The diagram below (link:http://yuml.me/edit/25343da1[yuml.me/25343da1]) shows 
the inheritance hierarchy for this class:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
----------------------------------------------------------------------
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 af8367d..a81a2d8 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_i18n.adoc
@@ -7,7 +7,7 @@
 
 Apache Isis' support for internationlization (i18n) allows every element of 
the domain model (the class names, property names, action names, parameter 
names and so forth) to be translated.
 
-It also supports translations of messages raised imperatively, by which we 
mean as the result of a call to `title()` to obtain an object's title, or 
messages resulting from any business rule violations (eg 
xref:rgcms.adoc#_rgcms_methods_prefixes_disable[`disable...()`] or 
xref:rgcms.adoc#_rgcms_methods_prefixes_validate[`validate...()`], and so on.
+It also supports translations of messages raised imperatively, by which we 
mean as the result of a call to `title()` to obtain an object's title, or 
messages resulting from any business rule violations (eg 
xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_disable[`disable...()`] or 
xref:../rgcms/rgcms.adoc#_rgcms_methods_prefixes_validate[`validate...()`], and 
so on.
 
 The xref:ugvw.adoc#[Wicket viewer] (that is, its labels and messages) is also 
internationalized using the same mechanism.  If no translations are available, 
then the Wicket viewer falls back to using Wicket resource bundles.
 
@@ -93,8 +93,8 @@ If however the service is configured to run in write mode, 
then it instead recor
 
 To make the service as convenient as possible to use, the service configures 
itself as follows:
 
-* if running in prototype mode 
xref:rgcfg.adoc#_rgcfg_deployment-types[deployment type] or during integration 
tests, then the service runs in *write* mode, in which case it records all 
translations into the `.pot` file.  The `.pot` file is written out when the 
system is shutdown.
-* if running in server (production) mode 
xref:rgcfg.adoc#_rgcfg_deployment-types[deployment type], then the service runs 
in *read* mode. It is also possible to set a configuration setting in 
`isis.properties` to force read mode even if running in prototype mode (useful 
to manually test/demo the translations).
+* if running in prototype mode 
xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type] or during 
integration tests, then the service runs in *write* mode, in which case it 
records all translations into the `.pot` file.  The `.pot` file is written out 
when the system is shutdown.
+* if running in server (production) mode 
xref:../rgcfg/rgcfg.adoc#_rgcfg_deployment-types[deployment type], then the 
service runs in *read* mode. It is also possible to set a configuration setting 
in `isis.properties` to force read mode even if running in prototype mode 
(useful to manually test/demo the translations).
 
 When running in write mode the original text is returned to the caller 
untranslated. If in read mode, then the translated `.po` files are read and 
translations provided as required.
 
@@ -114,7 +114,7 @@ However, for an application to be fully internationalized, 
any validation messag
 
 The first part of the puzzle is tackled by an extension to Apache Isis' 
programming model.  Whereas previously the `disableXxx()` / `validateXxx()` / 
`title()` methods could only return a `java.lang.String`, they may now 
optionally return a `TranslatableString` (defined in Isis applib) instead.
 
-Here's a (silly) example from the 
xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype]:
+Here's a (silly) example from the 
xref:../ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp 
archetype]:
 
 [source,java]
 ----
@@ -179,7 +179,7 @@ msgstr "Ich heisse {firstName} {lastName}."
 then the translation would be: "Ich heisse James Bond".
 
 
-The same class is used in 
xref:rgsvc.adoc#_rgsvc_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_api_DomainObjectContainer[`DomainObjectContainer`]
 so that you can raise translatable info, warning and error messages; each of 
the relevant methods are overloaded.
 
 For example:
 
@@ -199,7 +199,7 @@ public interface DomainObjectContainer {
 
 === `TranslatableException`
 
-Another mechanism by which messages can be rendered to the user are as the 
result of exception messages thrown and recognized by an 
xref:rgsvc.adoc#_rgsvc_spi_ExceptionRecognizer[`ExceptionRecognizer`].
+Another mechanism by which messages can be rendered to the user are as the 
result of exception messages thrown and recognized by an 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_ExceptionRecognizer[`ExceptionRecognizer`].
 
 In this case, if the exception implements `TranslatableException`, then the 
message will automatically be translated before being rendered.  The 
`TranslatableException` itself takes the form:
 
@@ -520,7 +520,7 @@ To ensure your app is fully internationalized app, you must 
therefore:
 ====
 We make no apologies for this requirement: one of the reasons that we decided 
to implement Apache Isis' i18n support in this way is because it 
encourages/requires the app to be properly tested.
 
-Behind the scenes Apache Isis uses a JUnit rule 
(`ExceptionRecognizerTranslate`) to intercept any exceptions that are thrown.  
These are simply passed through to the registered 
xref:rgsvc.adoc#_rgsvc_spi_ExceptionRecognizer[`ExceptionRecognizer`]s so that 
any messages are recorded as requiring translation.
+Behind the scenes Apache Isis uses a JUnit rule 
(`ExceptionRecognizerTranslate`) to intercept any exceptions that are thrown.  
These are simply passed through to the registered 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_ExceptionRecognizer[`ExceptionRecognizer`]s 
so that any messages are recorded as requiring translation.
 ====
 
 
@@ -541,7 +541,7 @@ msgstr "<i>Quantité</i>"
 
 For this to work, the `namedEscaped()` attribute must be specified using 
either the
 xref:ugvw.adoc#_ugvw_layout_file-based[layout file], or using an annotation 
such as
-xref:rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`] or 
xref:rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`].
+xref:../rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`] or 
xref:../rgant/rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`].
 
 For example:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_persisted-title.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_persisted-title.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_persisted-title.adoc
index dc088f0..d04a082 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_persisted-title.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_persisted-title.adoc
@@ -8,7 +8,7 @@
 
 Normally the title of an object is not persisted to the database, rather it is 
recomputed automatically from underlying properties.  On occasion though you 
might want the title to also be persisted; either to make things easier for the 
DBA, or for an integration scenario, or some other purpose.
 
-We can implement this feature by leveraging the 
xref:rgcms.adoc#_rgcms_methods_lifecycle_jdo-api[JDO lifecycle].  In the design 
we discuss here we make it a responsibility of the entities to persist the 
title as a property, by implementing a `ObjectWithPersistedTitle` interface:
+We can implement this feature by leveraging the 
xref:../rgcms/rgcms.adoc#_rgcms_methods_lifecycle_jdo-api[JDO lifecycle].  In 
the design we discuss here we make it a responsibility of the entities to 
persist the title as a property, by implementing a `ObjectWithPersistedTitle` 
interface:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_replacing-default-service-implementations.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_replacing-default-service-implementations.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_replacing-default-service-implementations.adoc
index 8d6b502..e3d29af 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_replacing-default-service-implementations.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_replacing-default-service-implementations.adoc
@@ -6,11 +6,11 @@
 
 
 
-The framework provides default implementations for many of the 
xref:rgsvc.adoc[domain services].  This is convenient, but sometimes you will 
want to replace the default implementation with your own service implementation.
+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.
 
-The trick is to use the 
xref:rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 attribute, specifying a low number (typically `"1"`).
+The trick is to use the 
xref:../rgant/rgant.adoc#_rgant-DomainServiceLayout_menuOrder[`@DomainServiceLayout#menuOrder()`]
 attribute, specifying a low number (typically `"1"`).
 
-For example, suppose you wanted to provide your own implementation of 
xref:rgsvc.adoc#_rgsvc_api_LocaleProvider[`LocaleProvider`].  Here's how:
+For example, suppose you wanted to provide your own implementation of 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_LocaleProvider[`LocaleProvider`].  Here's 
how:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_transactions-and-errors.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_transactions-and-errors.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_transactions-and-errors.adoc
index 9516f0f..85ed7f6 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_transactions-and-errors.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_other-techniques_transactions-and-errors.adoc
@@ -9,12 +9,12 @@ and any repository query automatically does a flush before 
hand.
 
 What that means is that there's no need to explicitly start or commit 
transactions in Apache Isis; this will be done
 for you. Indeed, if you do try to manage transactions (eg by reaching into the 
JDO `PersistenceManager` exposed by the
-xref:rgsvc.adoc#_rgsvc_api_IsisJdoSupport[IsisJdoSupport] domain service, then 
you are likely to confuse the
+xref:../rgsvc/rgsvc.adoc#_rgsvc_api_IsisJdoSupport[IsisJdoSupport] domain 
service, then you are likely to confuse the
 framework and get a stack trace for your trouble.
 
 However, you can complete a given transaction and start a new one.  This is 
sometimes useful if writing a fixture
 script which is going to perform some sort of bulk migration of data from an 
old system.  For this use case, use the
-xref:rgsvc.adoc#_rgsvc_api_TransactionService[`TransactionService`].
+xref:../rgsvc/rgsvc.adoc#_rgsvc_api_TransactionService[`TransactionService`].
 
 For example:
 
@@ -40,7 +40,7 @@ You get the idea.
 
 == Raise message/errors to users
 
-The framework provides the 
xref:rgsvc.adoc#_rgsvc_api_MessageService[`MessageService`] as a means to 
return an out-of-band
+The framework provides the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_api_MessageService[`MessageService`] as a means 
to return an out-of-band
 message to the end-user.  In the xref:ugvw.adoc#[Wicket viewer] these are 
shown as "toast" pop-ups; the
 xref:ugvro.adoc#[Restful Objects viewer] returns an HTTP header.
 
@@ -70,7 +70,7 @@ Another way in which exceptions might be considered 
"expected" could be as the r
 object which then violates some type of database constraint.  Even if the 
domain application checks beforehand, it
 could be that another user operating on the object at the same moment of time 
might result in the conflict.
 
-To handle this the 
xref:rgsvc.adoc#_rgsvc_spi_ExceptionRecognizer[`ExceptionRecognizer`] SPI can 
be used.  The
+To handle this the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_ExceptionRecognizer[`ExceptionRecognizer`] 
SPI can be used.  The
 framework provides a number of implementations out-of-the-box; whenever an 
exception is thrown it is passed to each
 known recognizer implementation to see if it recognizes the exception and can 
return a user-meaningful error message.
 For example, 
`ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException` 
checks if the

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_programming-model_custom-validator.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_programming-model_custom-validator.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_programming-model_custom-validator.adoc
index b74e7f8..3001a4a 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_programming-model_custom-validator.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_programming-model_custom-validator.adoc
@@ -10,14 +10,14 @@ For example, the validator will detect any orphaned 
supporting methods (eg `hide
 
 [NOTE]
 ====
-The support for xref:rgant.adoc#_rgant-aaa_deprecated[disallowing deprecated 
annotations] is also implemented using the metamodel validator.
+The support for xref:../rgant/rgant.adoc#_rgant-aaa_deprecated[disallowing 
deprecated annotations] is also implemented using the metamodel validator.
 ====
 
 You can also impose your own application-specific rules by installing your own 
metamodel validator.  To give just one example, you could impose naming 
standards such as ensuring that a domain-specific abbreviation such as "ISBN" 
is always consistently capitalized wherever it appears in a class member.
 
 [TIP]
 ====
-Isis' xref:rgmvn.adoc[Maven plugin] will also validate the domain object model 
during build time.
+Isis' xref:../rgmvn/rgmvn.adoc[Maven plugin] will also validate the domain 
object model during build time.
 ====
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_jaxb.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_jaxb.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_jaxb.adoc
index 32f9853..00ae0b6 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_jaxb.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_jaxb.adoc
@@ -15,8 +15,8 @@ In fact, these JAXB-annotated view models are in many regards 
the most powerful
 
 * their entire state (collections as well as properties) is automatically 
managed from interaction to interaction. +
 +
-In contrast, using xref:rgant.adoc#_rgant-ViewModel[`@ViewModel`] (or its 
xref:rgant.adoc#_rgant-DomainObject_nature[`@DomainObject#nature()`] 
equivalent) will only manage the state of properties, but not collections.
-And if using the xref:rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] 
interface, then the programmer must write all the state management (lots of 
boilerplate).
+In contrast, using xref:../rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] (or 
its 
xref:../rgant/rgant.adoc#_rgant-DomainObject_nature[`@DomainObject#nature()`] 
equivalent) will only manage the state of properties, but not collections.
+And if using the 
xref:../rgcms/rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] interface, 
then the programmer must write all the state management (lots of boilerplate).
 
 * JAXB-annotated view models are editable.
 
@@ -62,7 +62,7 @@ public class ToDoItemV1_1 implements Dto {                    
      // <5>
 <1> package name encodes major version; see discussion on 
xref:ugbtb.adoc#__ugbtb_view-models_jaxb_versioning[versioning]
 <2> identifies this class as a view model and defines the root element for 
JAXB serialization
 <3> all properties in the class must be listed; (they can be ignored using 
`@XmlTransient`)
-<4> demonstrating use of UI events for a subscriber to provide the DTO's 
title; see 
xref:rgant.adoc#_rgant-DomainObjectLayout_titleUiEvent[`@DomainObjectLayout#titleUiEvent()`].
+<4> demonstrating use of UI events for a subscriber to provide the DTO's 
title; see 
xref:../rgant/rgant.adoc#_rgant-DomainObjectLayout_titleUiEvent[`@DomainObjectLayout#titleUiEvent()`].
 <5> class name encodes (major and) minor version; see discussion on 
xref:ugbtb.adoc#__ugbtb_view-models_jaxb_versioning[versioning]
 <6> again, see discussion on 
xref:ugbtb.adoc#__ugbtb_view-models_jaxb_versioning[versioning]
 <7> again, see discussion on 
xref:ugbtb.adoc#__ugbtb_view-models_jaxb_versioning[versioning]
@@ -79,10 +79,10 @@ It's quite common for view models to be "backed by" (be 
projections of) some und
 The `ToDoItemDto` we've been using as the example in this section is an 
example: there is an underlying `ToDoItem` entity.
 
 It wouldn't make sense to serialize out the state of a persistent entity: the 
point of a DTO is to act as a facade on top of the entity so that the 
implementation details (of the entity's structure) don't leak out to the 
consumer.
-However, the identity of the underlying entity can be well defined; Apache 
Isis defines the xref: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.adoc#_rgsvc_api_BookmarkService[`BookmarkService`].
+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`].
 
-There is only one requirement to make this work: every referenced domain 
entity must be annotated with 
xref:rgant.adoc#_rgant-XmlJavaTypeAdapter[`@XmlJavaTypeAdapter`], specifying 
the framework-provided `PersistentEntityAdapter.class`.
+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.class`.
 This class is similar to the `BookmarkService`: it knows how to create an 
`OidDto` from an object reference.
 
 Thus, in our view model we can legitimately write:
@@ -132,11 +132,11 @@ public class ToDoItemV1_1 implements Dto {
 
 
 There's nothing to prevent a JAXB DTO from containing rich graphs of data, 
parent containing children containing children.
-Be aware though that all of this state will become the DTO's memento, 
ultimately converted into a URL-safe form, by way of the 
xref:rgsvc.adoc#_rgsvc_spi_UrlEncodingService[`UrlEncodingService`].
+Be aware though that all of this 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`].
 
 There are limits to the lengths of URLs, however.
 Therefore the DTO should not include state that can easily be derived from 
other information.
-If the URL does exceed limits, then provide a custom implementation of 
xref: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, 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).
 
 
 
@@ -256,7 +256,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.adoc#_rgsvc_api_BookmarkService[`BookmarkService`] can be used 
to obtain the object identifiers
+The xref:../rgsvc/rgsvc.adoc#_rgsvc_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.
 
@@ -296,7 +296,7 @@ In the todoapp this can be found in the `todoapp-xsd` Maven 
module, whose `pom.x
 </project>
 ----
 
-The `isis-xsd` profile generates the XSD using the 
xref:rgmvn.adoc#_rgmvn_xsd[`xsd` goal] of Isis' maven plugin:
+The `isis-xsd` profile generates the XSD using the 
xref:../rgmvn/rgmvn.adoc#_rgmvn_xsd[`xsd` goal] of Isis' maven plugin:
 
 [source,xml]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_programming-model.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_programming-model.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_programming-model.adoc
index 1a845f9..d4bb007 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_programming-model.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_programming-model.adoc
@@ -8,7 +8,7 @@
 
 So much for the theory; how should view models be implemented?  Fundamentally 
all view models' state is serialized into
 a string memento; this memento is then held by the client (browser) in the 
form of a URL.  As you might imagine, this
-URL can become quite long, but Apache Isis offers a mechanism (the 
xref:rgsvc.adoc#_rgsvc_spi_UrlEncodingService[`UrlEncodingService`]) if it 
exceeds the maximum length for a URL
+URL can become quite long, but Apache Isis offers a mechanism (the 
xref:../rgsvc/rgsvc.adoc#_rgsvc_spi_UrlEncodingService[`UrlEncodingService`]) 
if it exceeds the maximum length for a URL
 (2083 characters).  Also, of course, this string memento must only contain 
characters that it is valid for use within
 a URL.
 
@@ -30,7 +30,7 @@ defining a view model so that the original intent is not 
lost.  They are:
 @DomainObject(nature=Nature.EXTERNAL_ENTITY)
 public class CustomerRecordOnSAP { ... }
 ----
-|Annotated with 
xref:rgant.adoc#_rgant-DomainObject_nature[`@DomainObject#nature()`] and a 
nature of `EXTERNAL_ENTITY`, with memento derived automatically from the 
properties of the domain object.  Collections are ignored, as are any 
properties annotated as xref:rgant.adoc#_rgant-Property_notPersisted[not 
persisted].
+|Annotated with 
xref:../rgant/rgant.adoc#_rgant-DomainObject_nature[`@DomainObject#nature()`] 
and a nature of `EXTERNAL_ENTITY`, with memento derived automatically from the 
properties of the domain object.  Collections are ignored, as are any 
properties annotated as 
xref:../rgant/rgant.adoc#_rgant-Property_notPersisted[not persisted].
 
 | In-memory entity
 |[source,java]
@@ -56,7 +56,7 @@ public class Dashboard { ... }
 public class Dashboard { ... }
 ----
 
-|Annotated with xref:rgant.adoc#_rgant-ViewModel[`@ViewModel`] annotation 
(effectively just an alias)' memento is as preceding: from "persisted" 
properties, collections ignored
+|Annotated with xref:../rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] 
annotation (effectively just an alias)' memento is as preceding: from 
"persisted" properties, collections ignored
 
 |Application view model
 |
@@ -66,7 +66,7 @@ public class ExcelUploadManager implements ViewModel {
   public String viewModelMemento() { ... }
   public void viewModelInit(String memento) { ... }
 }
-|Implement xref:rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] 
interface.  The memento is as defined by the
+|Implement 
xref:../rgcms/rgcms.adoc#_rgcms_classes_super_ViewModel[`ViewModel`] interface. 
 The memento is as defined by the
 interface's methods: the programmer has full control (but also full 
responsibility) for the string memento.
 
 |DTO
@@ -76,7 +76,7 @@ interface's methods: the programmer has full control (but 
also full responsibili
 @XmlRootElement("customer")
 public class CustomerDto { ... }
 ----
-|Annotate using JAXB xref:rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`] 
annotation.  Memento
+|Annotate using JAXB 
xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`] annotation.  
Memento
 derived automatically by serializing the XML graph as implied by the JAXB 
annotations.  Note that (unlike `@ViewModel`
 et al) this state _can_ include collections.
 |===

http://git-wip-us.apache.org/repos/asf/isis/blob/252c2f8e/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_use-cases.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_use-cases.adoc
 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_use-cases.adoc
index 6667403..66c547e 100644
--- 
a/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_use-cases.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/guides/ugbtb/_ugbtb_view-models_use-cases.adoc
@@ -90,7 +90,7 @@ what the use cases are that those domain entities are trying 
to support.  You ce
 domain layer that could support every conceivable use case before starting to 
think about view models.
 
 Instead, you should iterate.  Identify the use case/story/end-user objective 
that you will deliver value to the
-business.  Then build out the minimum domain entities to support that use case 
(refining the 
xref:ugfun.adoc#__ugfun_core-concepts_philosophy_domain-driven-design_ubiquitous-language[ubiquitous
 language] as you
+business.  Then build out the minimum domain entities to support that use case 
(refining the 
xref:../ugfun/ugfun.adoc#__ugfun_core-concepts_philosophy_domain-driven-design_ubiquitous-language[ubiquitous
 language] as you
 go).  Then, identify if there any view models that could be introduced which 
would simplify the end-user interactions
 with the system (perhaps automating several related use cases together).
 ****
@@ -119,8 +119,8 @@ In case it's not obvious, these DTOs are still usable as 
"regular" view models;
 
 
 It's also worth noting that it is also possible to download the XML (or XSD) 
straight from the UI, useful during development.
-The view model simply needs to implement the 
xref:rgcms.adoc#_rgcms_classes_mixins_Dto[`Dto`] marker interface; the
-framework has xref:rgcms.adoc#_rgcms_classes_mixins_Dto[mixins] that 
contribute the download actions to the view model.
+The view model simply needs to implement the 
xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Dto[`Dto`] marker interface; the
+framework has xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Dto[mixins] that 
contribute the download actions to the view model.
 
 
 [[__ugbtb_view-models_use-cases_dtos_consumers]]
@@ -131,11 +131,11 @@ eg using the xref:ugvro.adoc#[RestfulObjects viewer], or 
may have the XML sent t
 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.adoc#_rgsvc_spi_ContentMappingService[`ContentMappingService`] can 
then be
+An appropriate implementation of 
xref:../rgsvc/rgsvc.adoc#_rgsvc_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.adoc#_rgsvc_api_JaxbService[`JaxbService`] to obtain its 
corresponding XML.  This can then be published onto
+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.
 
 However, rather than try to push all the data that might be needed by any of 
these external systems in a single XML event
@@ -149,8 +149,8 @@ This is an example of the 
link:https://leanpub.com/camel-design-patterns[VETRO p
 invoked), and the enrich (callback to obtain a DTO with additional information 
required by the consumer).
 ====
 
-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.adoc#_rgsvc_spi_PublishingService[`PublishingService`],
-but which simply publishes instances of 
xref:rgcms.adoc#_rgcms_schema-aim[`ActionInvocationMemento`] to an ActiveMQ
+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.  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.adoc[Restful Objects 
viewer] - to enrich the message with

Reply via email to