You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/12/25 14:08:31 UTC

[16/50] isis git commit: ISIS-1243: fixing naming of the domain service API and SPI docs, also fix to asciidoc template.

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_cqrs.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_cqrs.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_cqrs.adoc
index d1b4244..230ef04 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_cqrs.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_cqrs.adoc
@@ -17,9 +17,9 @@ Comparing CQRS to Apache Isis, the most obvious difference is that Apache Isis d
 
 There are other reasons though why a separate read model might make sense, such as to precompute particular queries, or against denormalized data.  In these cases Apache Isis can often provide a reasonable alternative, namely to map domain entities against RDBMS views, either materialized views or dynamic.  In such cases there is still only a single physical datastore, and so transactional integrity is retained.
 
-Or, the CQRS architecture can be more fully implemented with Apache Isis by introducing a separate read model, synchronized using the xref:rgsvc.adoc#_rgsvc-api_PublishingService[`PublishingService`], or using xref:rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscribers]  on the xref:rgsvc.adoc#_rgsvc-api_EventBusService[`EventBusService`].  One can then use xref:ugbtb.adoc#_ugbtb_more-advanced_view-models[view models] to surface the data in the external read datastore.
+Or, the CQRS architecture can be more fully implemented with Apache Isis by introducing a separate read model, synchronized using the xref:rgsvc.adoc#_rgsvc_api_PublishingService[`PublishingService`], or using xref:rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscribers]  on the xref:rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`].  One can then use xref:ugbtb.adoc#_ugbtb_more-advanced_view-models[view models] to surface the data in the external read datastore.
 
-With respect to commands, Apache Isis does of course support the xref:rgsvc.adoc#_rgsvc-spi_CommandService[`CommandService`] which allows each business action to be reified into a `Command`.  However, names are misleading here: Apache Isis' commands are relatively passive, merely recording the intent of the user to invoke some operation.  In a CQRS architecture, though, commands take a more active role, locating and acting upon the domain objects.  More significantly, in CQRS each command has its own class, such as `PlaceOrderCommand`, instantiated by the client and then executed.  With Apache Isis, though, the end-user merely invokes the `placeOrder(...)` action upon the domain object; the framework itself creates the `Command` as a side-effect of this.
+With respect to commands, Apache Isis does of course support the xref:rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] which allows each business action to be reified into a `Command`.  However, names are misleading here: Apache Isis' commands are relatively passive, merely recording the intent of the user to invoke some operation.  In a CQRS architecture, though, commands take a more active role, locating and acting upon the domain objects.  More significantly, in CQRS each command has its own class, such as `PlaceOrderCommand`, instantiated by the client and then executed.  With Apache Isis, though, the end-user merely invokes the `placeOrder(...)` action upon the domain object; the framework itself creates the `Command` as a side-effect of this.
 
 In CQRS the commands correspond to the business logic that mutates the system.  Whether this logic is part of the command class (`PlaceOrderCommand`) or whether that command delegates to methods on the domain object is an implementation detail; but it certainly is common for the business logic to be wholly within the command object and for the domain object to be merely a data holder of the data within the command/write datastore.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing.adoc
index 1d392ae..dc40dc6 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugfun_core-concepts_principles_apache-isis-vs_event-sourcing.adoc
@@ -14,6 +14,6 @@ Although it might seem counter-intuitive to be able store persistent state in th
 
 When combined with CQRS we see a command that triggers a business operation, and an event that results from it.  So, a `PlaceOrderCommand` command can result in an `OrderPlacedEvent` event.  A subscriber to this event might then generate a further command to act upon some other system (eg to dispatch the system).  Note that the event might be dispatched and consumed in-process or alternatively this might occur out-of-process.  If the latter, then the subscriber will operate within a separate transaction, meaning the usual eventual consistency concerns and also compensating actions if a rollback is required.  CQRS/event sourcing advocates point out - correctly  that this is just how things are in the "real world" too.
 
-In Apache Isis every business action (and indeed, property and collection) emits domain events through the xref:rgsvc.adoc#_rgsvc-api_EventBusService[`EventBusService`] , and can optionally also be published through the xref:rgsvc.adoc#_rgsvc-spi_PublishingService[`PublishingService`].  The former are dispatched and consumed in-process and within the same transaction, and for this reason the xref:rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscribers] can also veto the events.  The latter are intended for out-of-process consumption; the (non-ASF) http://github.com/isisaddons/isis-module-publishing[Isis addons' publishing] and http://github.com/isisaddons/isis-module-publishmq[Isis addons' publishmq] modules provide implementations for dispatching either through a RDBMS database table, or directly through to an link:http://camel.apache.org[ActiveMQ] message queue (eg wired up to link:http://camel.apache.org[Apache Camel] event bus).
+In Apache Isis every business action (and indeed, property and collection) emits domain events through the xref:rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`] , and can optionally also be published through the xref:rgsvc.adoc#_rgsvc_spi_PublishingService[`PublishingService`].  The former are dispatched and consumed in-process and within the same transaction, and for this reason the xref:rgcms.adoc#_rgcms_classes_super_AbstractSubscriber[subscribers] can also veto the events.  The latter are intended for out-of-process consumption; the (non-ASF) http://github.com/isisaddons/isis-module-publishing[Isis addons' publishing] and http://github.com/isisaddons/isis-module-publishmq[Isis addons' publishmq] modules provide implementations for dispatching either through a RDBMS database table, or directly through to an link:http://camel.apache.org[ActiveMQ] message queue (eg wired up to link:http://camel.apache.org[Apache Camel] event bus).
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_crud.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_crud.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_crud.adoc
index 98a2f83..5912c09 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_crud.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_crud.adoc
@@ -9,21 +9,21 @@ NOTE: TODO
 
 ## Instantiating and Persisting Objects
 
-NOTE: TODO - using ``DomainObjectContainer``'s support for  xref:rgsvc.adoc#_rgsvc-api_DomainObjectContainer_object-creation-api[creation] and xref:rgsvc.adoc#_rgsvc-api_DomainObjectContainer_object-persistence-api[persistence]
+NOTE: TODO - using ``DomainObjectContainer``'s support for  xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer_object-creation-api[creation] and xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer_object-persistence-api[persistence]
 
 ## Finding Objects
 
-NOTE: TODO - using xref:rgsvc.adoc#_rgsvc-api_DomainObjectContainer_generic-repository-api[`DomainObjectContainer`]
+NOTE: TODO - using xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer_generic-repository-api[`DomainObjectContainer`]
 
 ### Using DataNucleus type-safe queries
 
-NOTE: TODO - as described xref:rgsvc.adoc#_rgsvc-api_IsisJdoSupport_type-safe-jdoql-queries[here]
+NOTE: TODO - as described xref:rgsvc.adoc#_rgsvc_api_IsisJdoSupport_type-safe-jdoql-queries[here]
 
 
 
 ## Deleting Objects
 
-NOTE: TODO using ``DomainObjectContainer``'s support for  xref:rgsvc.adoc#_rgsvc-api_DomainObjectContainer_object-persistence-api[persistence]
+NOTE: TODO using ``DomainObjectContainer``'s support for  xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer_object-persistence-api[persistence]
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_domain-services.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_domain-services.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_domain-services.adoc
index a3f2e36..eb70bdc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_domain-services.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugfun_how-tos_domain-services.adoc
@@ -23,7 +23,7 @@ image::{_imagesdir}how-tos/domain-services/hexagonal-architecture-addons.png[wid
 
 The (non-ASF) link:http://isisaddons.org[Isis Addons] are a good source of domain services, providing SPI implementations of the common cross-cutting concerns, and also a number of APIs for domain objects to invoke (eg tags, excel, settings).  Of course, you can also write your own domain services as well, for example to interface with some external CMS system, say.
 
-The Apache Isis framework also provides numerous in-built domain services.  These are catalogued in the reference guide, see xref:rgsvc.adoc#_rgsvc-api[here] and xref:rgsvc.adoc#_rgsvc-spi[here].
+The Apache Isis framework also provides numerous in-built domain services.  These are catalogued in the reference guide, see xref:rgsvc.adoc#_rgsvc_api[here] and xref:rgsvc.adoc#_rgsvc_spi[here].
 
 
 
@@ -233,7 +233,7 @@ public class MyService extends AbstractService {
 }
 ----
 
-The framework provides a number of request-scoped services, include a scratchpad service, query results caching, and support for co-ordinating bulk actions.  See xref:rgsvc.adoc#_rgsvc-api[here] and xref:rgsvc.adoc#_rgsvc-spi[here] for further details.
+The framework provides a number of request-scoped services, include a scratchpad service, query results caching, and support for co-ordinating bulk actions.  See xref:rgsvc.adoc#_rgsvc_api[here] and xref:rgsvc.adoc#_rgsvc_spi[here] for further details.
 
 
 
@@ -284,7 +284,7 @@ isis.services = employee.Employees,\
 
 This is quite rare, however; you will often want to use default implementations of domain services that are provided by the framework and so will not reside under this prefix.
 
-Examples of framework-provided services (as defined in the applib) include clock, auditing, publishing, exception handling, view model support, snapshots/mementos, and user/application settings management; see the xref:rgsvc.adoc#_rgsvc-api[here] and _rgsvc-spi[here] for further details.
+Examples of framework-provided services (as defined in the applib) include clock, auditing, publishing, exception handling, view model support, snapshots/mementos, and user/application settings management; see the xref:rgsvc.adoc#_rgsvc_api[here] and _rgsvc_spi[here] for further details.
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugsec_api-for-applications.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugsec_api-for-applications.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugsec_api-for-applications.adoc
index 6b5d504..0193b38 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugsec_api-for-applications.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_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.adoc#_rgsvc-api_DomainObjectContainer[`DomainObjectContainer`] service exposes the following API:
+The xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer[`DomainObjectContainer`] service exposes the following API:
 
 [source,java]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugsec_usage-by-isis-viewers.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugsec_usage-by-isis-viewers.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugsec_usage-by-isis-viewers.adoc
index 1fb7860..13f951b 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugsec_usage-by-isis-viewers.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugsec_usage-by-isis-viewers.adoc
@@ -56,7 +56,7 @@ As well as providing a sign-in screen, the Wicket viewer also provides the abili
 The sign-in verification page to render is pluggable; see xref:ugvw.adoc#_ugvw_extending_custom-pages[extensions chapter] for details.
 ====
 
-User registration is only available if the xref: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.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.
 
 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/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugtst_aaa.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugtst_aaa.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugtst_aaa.adoc
index e75a29b..4aa46d4 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugtst_aaa.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugtst_aaa.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.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.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:
 
 image::{_imagesdir}testing/integ-tests.png[width="700px"]
 

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugtst_fixture-scripts_api-and-usage.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugtst_fixture-scripts_api-and-usage.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugtst_fixture-scripts_api-and-usage.adoc
index 079e7aa..196e510 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugtst_fixture-scripts_api-and-usage.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_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.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.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.
 
-The actual implementation of the `FixtureScripts` service is then provided by the framework itself, namely the xref: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.adoc#_rgsvc_api_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.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.adoc#_rgsvc-api_WrapperFactory[`WrapperFactory`]) to simulate interaction through the UI...
+<6> wrap the injected `SimpleObjects` domain service (using the xref:rgsvc.adoc#_rgsvc_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/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugtst_integ-test-support_wrapper-factory.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugtst_integ-test-support_wrapper-factory.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugtst_integ-test-support_wrapper-factory.adoc
index 695eb65..a64239c 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugtst_integ-test-support_wrapper-factory.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugtst_integ-test-support_wrapper-factory.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-The xref: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.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.
 
 [NOTE]
 ====
@@ -145,7 +145,7 @@ public void subscriberReceivesEvents() throws Exception {
     then(evHolder[0].getIdentifier().getMemberName()).isEqualTo("completed");
 }
 ----
-<1> inject xref:rgsvc.adoc#_rgsvc-api_EventBusService[`EventBusService`] into this test
+<1> inject xref:rgsvc.adoc#_rgsvc_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/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugvro_architecture.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvro_architecture.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvro_architecture.adoc
index bf496d4..4d8ef00 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvro_architecture.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_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:rgsvc.adoc#_rgsvc-spi_RepresentationService[`RepresentationService`] is an SPI domain service (plugin-point)
+The xref:rgsvc.adoc#_rgsvc_spi_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:rgsvc.adoc#_rgsvc-spi_ContentNegotiationService[`ContentNegotiationService`], each one handling a particular
+xref:rgsvc.adoc#_rgsvc_spi_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
@@ -39,7 +39,7 @@ default/fallback implementation that returns the representations defined by the
 
 * `ContentMappingService` +
 +
-The xref:rgsvc.adoc#_rgsvc-spi_ContentMappingService[`ContentMappingService`] is used by the implementation of
+The xref:rgsvc.adoc#_rgsvc_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/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugvro_ro-spec.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvro_ro-spec.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvro_ro-spec.adoc
index 735604c..95f6bb3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvro_ro-spec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_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.adoc#_rgsvc-spi_ContentMappingService[`ContentMappingService`] to attempt to
+The server will use the xref:rgsvc.adoc#_rgsvc_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.adoc#_ugvro_architecture[architecture] chapter.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugvw_extending_custom-pages.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvw_extending_custom-pages.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvw_extending_custom-pages.adoc
index 18a5943..14dfcdf 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvw_extending_custom-pages.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_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.adoc#_rgsvc-spi_UserRegistrationService[user registration] is enabled).
+| The sign-up page (if xref:rgsvc.adoc#_rgsvc_spi_UserRegistrationService[user registration] is enabled).
 
 | SIGN_UP_VERIFY
-| The sign-up verification page (if xref:rgsvc.adoc#_rgsvc-spi_UserRegistrationService[user registration] is enabled; as accessed by link from verification email)
+| The sign-up verification page (if xref:rgsvc.adoc#_rgsvc_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/46825ce1/adocs/documentation/src/main/asciidoc/guides/_ugvw_features_user-registration.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvw_features_user-registration.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvw_features_user-registration.adoc
index 3717eb7..e651d4d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvw_features_user-registration.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_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.adoc#_rgsvc-spi_UserRegistrationService[user registration service], which provides an API to create the user account
-* the xref:rgsvc.adoc#_rgsvc-spi_EmailNotificationService[email notification service], which provides an API for to send the verification emails
-* the xref:rgsvc.adoc#_rgsvc-api_EmailService[email service], that is used by the email notification service to actually send the email.
+* the xref:rgsvc.adoc#_rgsvc_spi_UserRegistrationService[user registration service], which provides an API to create the user account
+* the xref:rgsvc.adoc#_rgsvc_spi_EmailNotificationService[email notification service], which provides an API for to send the verification emails
+* the xref:rgsvc.adoc#_rgsvc_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}wicket-viewer/user-registration/sign-up-after-registration.pn
 
 There are two prerequisites:
 
-* register an implementation of the xref: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.adoc#_rgsvc_spi_UserRegistrationService[user registration service] (eg by using the https://github.com/isisaddons/isis-module-security[Isis addons security module])
 
-* configure the xref:rgsvc.adoc#_rgsvc-api_EmailService[email service]
+* configure the xref:rgsvc.adoc#_rgsvc_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/46825ce1/adocs/documentation/src/main/asciidoc/guides/rgsvc.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgsvc.adoc b/adocs/documentation/src/main/asciidoc/guides/rgsvc.adoc
index 5feb1fd..c1f2508 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgsvc.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgsvc.adoc
@@ -9,9 +9,9 @@
 [[_rgsvc]]
 == Domain Services
 
-This guide documents Apache Isis' domain services, both those that act as an xref:rgsvc.adoc#_rgsvc-api[API]
+This guide documents Apache Isis' domain services, both those that act as an xref:rgsvc.adoc#_rgsvc_api[API]
 (implemented by the framework for your domain objects to call), and those domain services that act as an
-xref:rgsvc.adoc#_rgsvc-spi[SPI] (implemented by your domain application and which are called by the framework).
+xref:rgsvc.adoc#_rgsvc_spi[SPI] (implemented by your domain application and which are called by the framework).
 
 === Other Guides
 
@@ -36,5 +36,5 @@ The reference guides are:
 In addition, there is a xref:cg.adoc#_cg[Contributors' Guide] describing development practices for contributors and committers alike.
 
 
-include::_rgsvc-api.adoc[leveloffset=+1]
-include::_rgsvc-spi.adoc[leveloffset=+1]
+include::_rgsvc_api.adoc[leveloffset=+1]
+include::_rgsvc_spi.adoc[leveloffset=+1]

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/guides/ugsec.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugsec.adoc b/adocs/documentation/src/main/asciidoc/guides/ugsec.adoc
index 2038eff..4a3f46a 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugsec.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugsec.adoc
@@ -58,7 +58,7 @@ In addition to Apache Isis' Shiro-based implementation of its authentication and
 [NOTE]
 .What about auditing?
 ====
-A further aspect of security is auditing: recording what data was modified by which user.   Apache Isis does define two service APIs -- xref:rgsvc.adoc#_rgsvc-spi_CommandService[`CommandService`] and xref:rgsvc.adoc#_rgsvc-spi_AuditingService[`AuditingService`] -- that provide hooks to track which actions (commands) are invoked, and what data was modified as a result (auditing).
+A further aspect of security is auditing: recording what data was modified by which user.   Apache Isis does define two service APIs -- xref:rgsvc.adoc#_rgsvc_spi_CommandService[`CommandService`] and xref:rgsvc.adoc#_rgsvc_spi_AuditingService[`AuditingService`] -- that provide hooks to track which actions (commands) are invoked, and what data was modified as a result (auditing).
 
 Isis does not itself provide any in-built implementations of these APIs, but there are implementations within (non-ASF) link:http://www.isisaddons.org[Isis Addons], namely the http://github.com/isisaddons/isis-module-command[Isis addons' command] module and the http://github.com/isisaddons/isis-module-audit[Isis addons' auditing] module.
 ====

http://git-wip-us.apache.org/repos/asf/isis/blob/46825ce1/adocs/documentation/src/main/asciidoc/resources/templates/isis-asciidoc-templates-idea.xml
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/resources/templates/isis-asciidoc-templates-idea.xml b/adocs/documentation/src/main/asciidoc/resources/templates/isis-asciidoc-templates-idea.xml
index 5b65582..d765df1 100644
--- a/adocs/documentation/src/main/asciidoc/resources/templates/isis-asciidoc-templates-idea.xml
+++ b/adocs/documentation/src/main/asciidoc/resources/templates/isis-asciidoc-templates-idea.xml
@@ -185,7 +185,7 @@
       <option name="AsciiDoc" value="true" />
     </context>
   </template>
-  <template name="adrgss" value="xref:rgsvc.adoc#_rgsvc-spi_$ServiceType$[`$ServiceType$`]" description="x-ref to ref guide manpage for service spi" toReformat="false" toShortenFQNames="true">
+  <template name="adrgss" value="xref:rgsvc.adoc#_rgsvc_spi_$ServiceType$[`$ServiceType$`]" description="x-ref to ref guide manpage for service spi" toReformat="false" toShortenFQNames="true">
     <variable name="ServiceType" expression="" defaultValue="" alwaysStopAt="true" />
     <context>
       <option name="AsciiDoc" value="true" />