ISIS-1521: fixes xref links between pages and guides

Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4807f4c2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4807f4c2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4807f4c2

Branch: refs/heads/wip
Commit: 4807f4c2ee537a039308bcc09611a7a8983a0ae6
Parents: b2b87ca
Author: Dan Haywood <d...@haywood-associates.co.uk>
Authored: Fri Apr 14 15:37:29 2017 +0100
Committer: Dan Haywood <d...@haywood-associates.co.uk>
Committed: Thu Apr 20 09:09:30 2017 +0100

----------------------------------------------------------------------
 .../_migration-notes_1.13.0-to-1.14.0.adoc      |   2 +-
 .../_migration-notes_1.14.0-to-1.15.0.adoc      |   2 +-
 .../pages/how-isis-works/how-isis-works.adoc    |   2 +-
 .../_powered-by_gesconsultor-grc.adoc           |   6 +-
 .../main/asciidoc/pages/tg/_tg_pet-clinic.adoc  |   4 +-
 .../tg/_tg_stop-scaffolding-start-coding.adoc   | 136 +++++++++----------
 .../release-notes/_release-notes_1.9.0.adoc     |   2 +-
 7 files changed, 77 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
 
b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
index f36cfcf..6f3b756 100644
--- 
a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.13.0-to-1.14.0.adoc
@@ -32,7 +32,7 @@ This is disabled by default; if enabled, this configuration 
property will treat
 
 * `isis.reflector.validator.noParamsOnly` +
 +
-When searching for  
xref:rgcms.adoc#_rgcms_methods_prefixes_disable[`disableXxx()`] or 
xref:rgcms.adoc#_rgcms_methods_prefixes_hide[`hideXxx()`] supporting methods, 
whether to search only for the no-param version (or also for supporting methods 
that match the parameter types of the action). +
+When searching for  
xref:../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_disable[`disableXxx()`] 
or xref:../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_hide[`hideXxx()`] 
supporting methods, whether to search only for the no-param version (or also 
for supporting methods that match the parameter types of the action). +
 +
 This is disabled by default; if enabled then this makes for a simpler 
programming model.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
 
b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
index 5a151f2..703d61f 100644
--- 
a/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/migration-notes/_migration-notes_1.14.0-to-1.15.0.adoc
@@ -8,7 +8,7 @@
 
 == Rename of isis-viewer-wicket artifacts
 
-The `<groupId>` and `<artifactId>` of the xref:ugvw.adoc#[Wicket viewer] have 
been made consistent with other artifacts:
+The `<groupId>` and `<artifactId>` of the 
xref:../guides/ugvw/ugvw.adoc#[Wicket viewer] have been made consistent with 
other artifacts:
 
 * the `<groupId>` has been changed from `org.apache.isis.viewer` to 
`org.apache.isis.core`
 * the `<artifactId>` has been changed from `isis-viewer-wicket-???` to 
`isis-core-viewer-wicket-???`

http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/pages/how-isis-works/how-isis-works.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/pages/how-isis-works/how-isis-works.adoc
 
b/adocs/documentation/src/main/asciidoc/pages/how-isis-works/how-isis-works.adoc
index 53061d1..5684361 100644
--- 
a/adocs/documentation/src/main/asciidoc/pages/how-isis-works/how-isis-works.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/pages/how-isis-works/how-isis-works.adoc
@@ -13,6 +13,6 @@ video::ludOLyi6VyY[youtube,width="840px",height="630px"]
 
 [NOTE]
 ====
-Note that this screencast shows an earlier version of the 
xref:ugvw.adoc#[Wicket viewer] UI (specifically, pre 1.8.0).
+Note that this screencast shows an earlier version of the 
xref:../../guides/ugvw/ugvw.adoc#[Wicket viewer] UI (specifically, pre 1.8.0).
 ====
 

http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
 
b/adocs/documentation/src/main/asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
index fae46d0..32f40c8 100644
--- 
a/adocs/documentation/src/main/asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/pages/powered-by/_powered-by_gesconsultor-grc.adoc
@@ -82,16 +82,16 @@ various Wavemaker services.
 
 Even so, while GRC does (as the figures above show) include custom views, the 
majority of the views exposed by GRC are
 automatically generated from the underlying domain entities; the GRC viewer is 
a proprietary version of Isis' own
-xref:ugvw.adoc#[Wicket viewer].  At the last count more than 400 domain 
entities, across 6 different
+xref:../../guides/ugvw/ugvw.adoc#[Wicket viewer].  At the last count more than 
400 domain entities, across 6 different
 Bounded Contexts, are surfaced in the UI in this this way.
 
-At the Domain level, we also extensively use the 
xref:ugbtb.adoc#_ugbtb_decoupling_event-bus[domain events]
+At the Domain level, we also extensively use the 
xref:../../guides/ugbtb/ugbtb.adoc#_ugbtb_decoupling_event-bus[domain events]
 functionality available in Apache Isis, along with many of the (non-ASF) 
link:http://isisaddons.org[Isis Addons] (such
 as http://github.com/isisaddons/isis-module-audit[audit], 
http://github.com/isisaddons/isis-module-security[security]
 and the http://github.com/isisaddons/isis-module-excel[excel] modules).
 
 The GRC platform currently has more than 5600 automated tests, about 2000 being
-xref:ugtst.adoc#_ugtst_bdd-spec-support[BDD tests] and 3600 
xref:ugtst.adoc#_ugtst_integ-test-support[integration
+xref:../../guides/ugtst/ugtst.adoc#_ugtst_bdd-spec-support[BDD tests] and 3600 
xref:../../guides/ugtst/ugtst.adoc#_ugtst_integ-test-support[integration
 tests], all leveraging Apache Isis' extensive testing capabilities.
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc 
b/adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc
index a8c6f5c..9524be4 100644
--- a/adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc
+++ b/adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc
@@ -5,7 +5,7 @@
 :_imagesdir: images/
 
 
-This is a step-by-step tutorial to build up a simple "petclinic" application, 
starting from the 
xref:ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp archetype].
+This is a step-by-step tutorial to build up a simple "petclinic" application, 
starting from the 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_getting-started_simpleapp-archetype[SimpleApp
 archetype].
 It was originally written by Jeroen van der Wal.
 
 It consists of just three domain classes 
(http://yuml.me/edit/3db2078c[http://yuml.me/3db2078c]):
@@ -162,7 +162,7 @@ Go back to the splash screen, and quit the app. Note that 
the database runs in-m
 
 == Dev environment
 
-Set up xref:dg.adoc#_dg_ide[an IDE] and import the project to be able to run 
and debug the app.
+Set up xref:../../guides/dg/dg.adoc#_dg_ide[an IDE] and import the project to 
be able to run and debug the app.
 
 Then set up a launch configuration so that you can run the app from within the 
IDE. To save having to run the fixtures
 every time, specify the following system properties:

http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
 
b/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
index 894e0b3..f8dcbb1 100644
--- 
a/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
@@ -94,13 +94,13 @@ Go back to the splash screen, and quit the app. Note that 
the database runs in-m
 
 == Dev environment
 
-Set up xref:dg.adoc#_dg_ide[an IDE] and import the project to be able to run 
and debug the app.
+Set up xref:../../guides/dg/dg.adoc#_dg_ide[an IDE] and import the project to 
be able to run and debug the app.
 
 Then set up a launch configuration and check that you can:
 
 * Run the app from within the IDE
 * Run the app in debug mode
-* Run with different deploymentTypes; note whether prototype actions (those 
annotated 
xref:rgant.adoc#_rgant-Action_restrictTo[`@Action(restrictTo=PROTOTYPING`]) are 
available or not:
+* Run with different deploymentTypes; note whether prototype actions (those 
annotated 
xref:../../guides/rgant/rgant.adoc#_rgant-Action_restrictTo[`@Action(restrictTo=PROTOTYPING`])
 are available or not:
 * `--type SERVER_PROTOTYPE`
 * `--type SERVER`
 
@@ -206,9 +206,9 @@ Most domain objects in Apache Isis applications are 
persistent entities. In the
 ** eg rename to `Pet`
 * if required, rename the `SimpleObject` class' `name` property
 ** for `Pet`, can leave `name` property as is
-* specify a 
xref:ugfun.adoc#_ugfun_how-tos_ui-hints_object-titles-and-icons[title]
-* specify an 
xref:ugfun.adoc#_ugfun_how-tos_ui-hints_object-titles-and-icons[icon]
-* make the entity bookmarkable by adding the 
xref:rgant.adoc#_rgant-DomainObjectLayout_bookmarking[`@DomainObjectLayout#bookmarking()`]
 attribute.
+* specify a 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_ui-hints_object-titles-and-icons[title]
+* specify an 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_ui-hints_object-titles-and-icons[icon]
+* make the entity bookmarkable by adding the 
xref:../../guides/rgant/rgant.adoc#_rgant-DomainObjectLayout_bookmarking[`@DomainObjectLayout#bookmarking()`]
 attribute.
 * confirm is available from bookmark panel (top-left of Wicket UI)
 
 
@@ -223,15 +223,15 @@ In the simpleapp archetype the `SimpleObjects` service is 
a factory/repository f
 * rename the `SimpleObjects` class
 ** eg rename to `Pets`
 * review `create` action (acting as a factory)
-** as per the docs describing xref:ugfun.adoc#_ugfun_how-tos_crud[how to 
create or delete objects]
+** as per the docs describing 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_crud[how to create or delete 
objects]
 * rename if you wish
 ** eg `newPet(...)` or `addPet(...)`
 * review `listAll` action (acting as a repository)
-* as per the docs describing xref:ugfun.adoc#_ugfun_how-tos_crud[how to write 
a custom repository]
+* as per the docs describing 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_crud[how to write a custom 
repository]
 * note the annotations on the corresponding domain class (originally called 
`SimpleObject`, though renamed by now, eg to `Pet`)
 * rename if you wish
 ** eg `listPets()`
-* note the xref:rgant.adoc#_rgant-DomainService[`@DomainService`] annotation
+* note the 
xref:../../guides/rgant/rgant.adoc#_rgant-DomainService[`@DomainService`] 
annotation
 * optional: add an action to a return subset of objects
 ** use the JDO `@Query` annotation
 ** see for example the Isisaddons example 
https://github.com/isisaddons/isis-app-todoapp[todoapp] (not ASF), see 
https://github.com/apache/isis/blob/b3e936c9aae28754fb46c2df52b1cb9b023f9ab8/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java#L93[here]
 and 
https://github.com/apache/isis/blob/b3e936c9aae28754fb46c2df52b1cb9b023f9ab8/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItems.java#L63[here]
@@ -245,7 +245,7 @@ Fixture scripts are used to setup the app into a known 
state. They are great for
 
 * rename the `SimpleObjectsTearDownFixture` class
 * and update to delete from the appropriate underlying database table(s)
-* use the injected xref:rgsvc.adoc#_rgsvc_api_IsisJdoSupport[`IsisJdoSupport`] 
domain service.
+* use the injected 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_IsisJdoSupport[`IsisJdoSupport`] 
domain service.
 * refactor/rename the fixture script classes that create instances your entity:
 * `RecreateSimpleObjects`, which sets up a set of objects for a given scenario
 * `SimpleObjectCreate` which creates a single object
@@ -259,9 +259,9 @@ Fixture scripts are used to setup the app into a known 
state. They are great for
 Most business functionality is implemented using actions basically a `public` 
method accepting domain classes and primitives as its parameter types. The 
action can return a domain entity, or a collection of entities, or a 
primitive/String/value, or void. If a domain entity is returned then that 
object is rendered immediately; if a collection is returned then the Wicket 
viewer renders a table. Such collections are sometimes called "standalone" 
collections.
 
 * write an action to update the domain property (originally called 
`SimpleObject#name`, though renamed by now)
-* use the 
xref:rgant.adoc#_rgant-ParameterLayout_named[`@ParameterLayout(named=...)`] 
annotation to specify the name of action parameters
-* use the xref:rgant.adoc#_rgant-Action_semantics[`@Action(semanticsOf=...)`]  
annotation to indicate the semantics of the action (safe/query-only, idempotent 
or non-idempotent)
-* annotate safe action as bookmarkable using 
xref:rgant.adoc#_rgant-ActionLayout_bookmarking[`@ActionLayout(bookmarking=...)`]
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-ParameterLayout_named[`@ParameterLayout(named=...)`]
 annotation to specify the name of action parameters
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Action_semantics[`@Action(semanticsOf=...)`]
  annotation to indicate the semantics of the action (safe/query-only, 
idempotent or non-idempotent)
+* annotate safe action as bookmarkable using 
xref:../../guides/rgant/rgant.adoc#_rgant-ActionLayout_bookmarking[`@ActionLayout(bookmarking=...)`]
 * confirm is available from bookmark panel (top-left of Wicket UI)
 * optional: add an action to clone an object
 
@@ -289,7 +289,7 @@ As well as exposing the Wicket viewer, Isis also exposes a 
REST API (an implemen
 
 The semantics of an action (whether it is safe/query only, whether it is 
idempotent, whether it is neither) can be specified for each action; if not 
specified then Isis assumes non-idempotent. In the Wicket viewer this matters 
in that only query-only actions can be bookmarked or used as contributed 
properties/collections. In the RESTful viewer this matters in that it 
determines the HTTP verb (GET, PUT or POST) that is used to invoke the action.
 
-* experiment changing 
xref:rgant.adoc#_rgant-Action_semantics[`@Action(semantics=...)`] on actions
+* experiment changing 
xref:../../guides/rgant/rgant.adoc#_rgant-Action_semantics[`@Action(semantics=...)`]
 on actions
 * note the HTTP methods exposed in the REST API change
 * note whether the non-safe actions are bookmarkable (assuming that it has 
been annotated with `@ActionLayout(bookmarking=...)`, that is).
 
@@ -300,22 +300,22 @@ The semantics of an action (whether it is safe/query 
only, whether it is idempot
 
 Domain entities have state: either values (primitives, strings) or references 
to other entities. In this section we explore adding some value properties
 
-* add some xref:ugfun.adoc#_ugfun_how-tos_class-structure_properties[value 
properties]; also:
+* add some 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_class-structure_properties[value
 properties]; also:
 * for string properties
-** use the 
xref:rgant.adoc#_rgant-PropertyLayout_multiLine[`@PropertyLayout(multiLine=...)`]
 annotation to render a text area instead of a text box
-** use the 
xref:rgant.adoc#_rgant-Property_maxLength[`@Property(maxLength=...)`] 
annotation to specify the maximum number of characters allowable
+** use the 
xref:../../guides/rgant/rgant.adoc#_rgant-PropertyLayout_multiLine[`@PropertyLayout(multiLine=...)`]
 annotation to render a text area instead of a text box
+** use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_maxLength[`@Property(maxLength=...)`]
 annotation to specify the maximum number of characters allowable
 ** use joda date/time properties, bigdecimals and blob/clob properties
-* use the 
xref:rgant.adoc#_rgant-Property_optionality[`@Column(allowsNull=...)`] 
annotation specify whether a property is optional or mandatory
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_optionality[`@Column(allowsNull=...)`]
 annotation specify whether a property is optional or mandatory
 * use enums for properties (eg as used in the Isis addons example 
https://github.com/isisaddons/isis-app-todoapp[todoapp], see 
https://github.com/apache/isis/blob/b3e936c9aae28754fb46c2df52b1cb9b023f9ab8/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java#L207[here]
 and 
https://github.com/apache/isis/blob/b3e936c9aae28754fb46c2df52b1cb9b023f9ab8/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java#L266[here])
 * update the corresponding domain service for creating new instances
 * for all non-optional properties will either need to prompt for a value, or 
calculate some suitable default
 * change the implementation of title, if need be
-* revisit the title, consider whether to use the 
xref:rgant.adoc#_rgant-Title[`@Title`] annotation
-** rather than the xref:rgcms.adoc#_rgcms_methods_reserved_title[`title()`] 
method
-* order the properties using the 
xref:rgant.adoc#_rgant-MemberOrder[`@MemberOrder`], also `@MemberGroupLayout`
-** see also the docs on xref:ugvw.adoc#_ugvw_layout_annotation-based[static 
layouts]
-* use the xref:rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`] annotation 
to position property/action parameter labels either to the LEFT, TOP or NONE
-** do the same for parameters using 
xref:rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`]
+* revisit the title, consider whether to use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Title[`@Title`] annotation
+** rather than the 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_reserved_title[`title()`] 
method
+* order the properties using the 
xref:../../guides/rgant/rgant.adoc#_rgant-MemberOrder[`@MemberOrder`], also 
`@MemberGroupLayout`
+** see also the docs on 
xref:../../guides/ugvw/ugvw.adoc#_ugvw_layout_annotation-based[static layouts]
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-PropertyLayout[`@PropertyLayout`] 
annotation to position property/action parameter labels either to the LEFT, TOP 
or NONE
+** do the same for parameters using 
xref:../../guides/rgant/rgant.adoc#_rgant-ParameterLayout[`@ParameterLayout`]
 
 
 
@@ -324,14 +324,14 @@ Domain entities have state: either values (primitives, 
strings) or references to
 
 Domain entities can also reference other domain entities. These references may 
be either scalar (single-valued) or vector (multi-valued). In this section we 
focus on scalar reference properties.
 
-* add some xref:ugfun.adoc#_ugfun_how-tos_class-structure_properties[reference 
properties]
+* add some 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_class-structure_properties[reference
 properties]
 * update the corresponding domain service (for creation actoin)
 * use different techniques to obtain references (shown in drop-down list box)
-** use the 
xref:rgant.adoc#_rgant-DomainObject_bounded[`@DomainObjectLayout(bounded=...)`] 
annotation on the referenced type if there are only a small number (bounded) of 
instances
-** use a xref:rgcms.adoc#_rgcms_methods_prefixes_choices[`choices...()`] 
supporting method
+** use the 
xref:../../guides/rgant/rgant.adoc#_rgant-DomainObject_bounded[`@DomainObjectLayout(bounded=...)`]
 annotation on the referenced type if there are only a small number (bounded) 
of instances
+** use a 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_choices[`choices...()`]
 supporting method
 *** on a property
 *** on an action parameter
-** use a 
xref:rgcms.adoc#_rgcms_methods_prefixes_autoComplete[`autoComplete...()`] 
supporting method
+** use a 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_autoComplete[`autoComplete...()`]
 supporting method
 *** on a property
 *** on an action parameter
 
@@ -342,7 +342,7 @@ Domain entities can also reference other domain entities. 
These references may b
 
 Quick detour: often we want to set up defaults to go with choices. Sensible 
defaults for action parameters can really improve the usability of the app.
 
-* Add xref:ugfun.adoc#_ugfun_how-tos_drop-downs-and-defaults[defaults] for 
action parameters
+* Add 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_drop-downs-and-defaults[defaults]
 for action parameters
 
 
 
@@ -352,12 +352,12 @@ Quick detour: often we want to set up defaults to go with 
choices. Sensible defa
 Returning back to references, Isis also supports vector (multi-valued) 
references to another object instances in other words collections. We sometimes 
called these "parented" collections (to distinguish from a "standalone" 
collection as returned from an action)
 
 * Ensure that all domain classes implement `java.lang.Comparable`
-** use the 
xref:rgcms.adoc#_rgcms_classes_utility_ObjectContracts[`ObjectContracts`] 
utility class to help implement `Comparable`
+** use the 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_classes_utility_ObjectContracts[`ObjectContracts`]
 utility class to help implement `Comparable`
 *** you can also implement `equals()`, `hashCode()`, `toString()`
-* Add a xref:ugfun.adoc#_ugfun_how-tos_class-structure_collections[collection] 
to one of the entities
+* Add a 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_class-structure_collections[collection]
 to one of the entities
 ** Use `SortedSet` as the class
-** Use the 
xref:rgant.adoc#_rgant-CollectionLayout_render[`@CollectionLayout(render=...)`] 
annotation to indicate if the collection should be visible or hidden by default
-* optional: use the 
xref:rgant.adoc#_rgant-CollectionLayout_sortedBy[`@CollectionLayout(sortedBy=...)`]
 annotation to specify a different comparator than the natural ordering
+** Use the 
xref:../../guides/rgant/rgant.adoc#_rgant-CollectionLayout_render[`@CollectionLayout(render=...)`]
 annotation to indicate if the collection should be visible or hidden by default
+* optional: use the 
xref:../../guides/rgant/rgant.adoc#_rgant-CollectionLayout_sortedBy[`@CollectionLayout(sortedBy=...)`]
 annotation to specify a different comparator than the natural ordering
 
 
 
@@ -368,10 +368,10 @@ Returning back to references, Isis also supports vector 
(multi-valued) reference
 The Wicket UI doesn't allow collections to be modified (added to/removed 
from). However, we can easily write actions to accomplish the same. Moreover, 
these actions can provide some additional business logic. For example: it 
probably shouldn't be possible to add an object twice into a collection, so it 
should not be presented in the list of choices/autoComplete; conversely, only 
those objects in the collection should be offered as choices to be removed.
 
 * Add domain actions to add/remove from the collection
-* to create objects, 
xref:ugfun.adoc#_ugfun_how-tos_class-structure_inject-services[inject] 
associated domain service
-** generally we recommend using the xref:rgant.adoc#_rgant-Inject[`@Inject`] 
annotation with either private or default visibility
-* the service itself should use 
xref:rgsvc.adoc#_rgsvc_api_DomainObjectContainer[`DomainObjectContainer`]
-* use the xref:rgant.adoc#_rgant-MemberOrder[`@MemberOrder(name=...)`] 
annotation to associate an action with a property or with a collection
+* to create objects, 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_class-structure_inject-services[inject]
 associated domain service
+** generally we recommend using the 
xref:../../guides/rgant/rgant.adoc#_rgant-Inject[`@Inject`] annotation with 
either private or default visibility
+* the service itself should use 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_DomainObjectContainer[`DomainObjectContainer`]
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-MemberOrder[`@MemberOrder(name=...)`] 
annotation to associate an action with a property or with a collection
 
 
 
@@ -380,11 +380,11 @@ The Wicket UI doesn't allow collections to be modified 
(added to/removed from).
 
 CSS classes can be associated with any class member (property, collection, 
action). But for actions in particular:
 
-* the bootstrap "btn" CSS classes can be used using the 
xref:rgant.adoc#_rgant-ActionLayout_cssClass[`@ActionLayout(cssClass=...)`] 
annotation
+* the bootstrap "btn" CSS classes can be used using the 
xref:../../guides/rgant/rgant.adoc#_rgant-ActionLayout_cssClass[`@ActionLayout(cssClass=...)`]
 annotation
 
-*  the http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome] icons 
can be used using the 
xref:rgant.adoc#_rgant-ActionLayout_cssClassFa[`@ActionLayout(cssClassFa=...)`]
+*  the http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome] icons 
can be used using the 
xref:../../guides/rgant/rgant.adoc#_rgant-ActionLayout_cssClassFa[`@ActionLayout(cssClassFa=...)`]
 
-It's also possible to use Font Awesome icons for the 
xref:ugfun.adoc#_ugfun_how-tos_ui-hints_object-titles-and-icons[domain object 
icon].
+It's also possible to use Font Awesome icons for the 
xref:../../guides/ugfun/ugfun.adoc#_ugfun_how-tos_ui-hints_object-titles-and-icons[domain
 object icon].
 
 So:
 - for some of the actions of your domain services or entities, annotate using 
`@ActionLayout(cssClass=...)` or `@ActionLayout(cssClassFa=...)`
@@ -397,7 +397,7 @@ So:
 Up to this point we've been using annotations (`@MemberOrder`, 
`@MemberGroupLayout`, `@Named`, `@PropertyLayout`, `@ParameterLayout`, 
`@ActionLayout` and so on) for UI hints. However, the feedback loop is not 
good: it requires us stopping the app, editing the code, recompiling and 
running again.
 So instead, all these UI hints (and more) can be specified dynamically, using 
a corresponding `.layout.xml` file. If edited while the app is running, it will 
be reloaded automatically (in IntelliJ, use Run&gt;Reload Changed Classes):
 
-* Delete the various hint annotations and instead specify layout hints using a 
xref:ugvw.adoc#_ugvw_layout_file-based[.layout.xml] file.
+* Delete the various hint annotations and instead specify layout hints using a 
 xref:../../guides/ugvw/ugvw.adoc#_ugvw_layout_file-based[.layout.xml] file.
 
 
 
@@ -415,27 +415,27 @@ Or, more pithily: "see it, use it, do it"
 
 === See it!
 
-* Use the xref:rgant.adoc#_rgant-Property_hidden[`Property(hidden=...)`] 
annotation to make properties invisible
-** likewise 
xref:rgant.adoc#_rgant-Collection_hidden[`@Collection(hidden=...)`] for 
collections
-** the xref:rgant.adoc#_rgant-Programmatic[`@Programmatic`]  annotation can 
also be used and in many cases is to be preferred; the difference is that the 
latter means the member is not part of the Apache Isis metamodel.
-* Use the xref:rgcms.adoc#_rgcms_methods_prefixes_hide[`hide...()`] supporting 
method on properties, collections and actions to make a 
property/collection/action invisible according to some imperative rule
+* Use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_hidden[`Property(hidden=...)`]
 annotation to make properties invisible
+** likewise 
xref:../../guides/rgant/rgant.adoc#_rgant-Collection_hidden[`@Collection(hidden=...)`]
 for collections
+** the xref:../../guides/rgant/rgant.adoc#_rgant-Programmatic[`@Programmatic`] 
 annotation can also be used and in many cases is to be preferred; the 
difference is that the latter means the member is not part of the Apache Isis 
metamodel.
+* Use the 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_hide[`hide...()`] 
supporting method on properties, collections and actions to make a 
property/collection/action invisible according to some imperative rule
 
 
 === Use it!
 
-* Use the xref:rgant.adoc#_rgant-Property_editing[`Property(editing=...)`] 
annotation to make property read-only
-** likewise 
xref:rgant.adoc#_rgant-Collection_editing[`@Collection(editing=...)`] for 
collections
-** alternatively, use 
xref:rgant.adoc#_rgant-DomainObject_editing[`@DomainObject(editing=...)`] to 
disable editing for all properties/collections
-* Use the xref:rgcms.adoc#_rgcms_methods_prefixes_disable[`disable...()`] 
supporting method on properties and actions to make a property/action disabled 
according to some imperative rule
+* Use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_editing[`Property(editing=...)`]
 annotation to make property read-only
+** likewise 
xref:../../guides/rgant/rgant.adoc#_rgant-Collection_editing[`@Collection(editing=...)`]
 for collections
+** alternatively, use 
xref:../../guides/rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject(editing=...)`]
 to disable editing for all properties/collections
+* Use the 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_disable[`disable...()`]
 supporting method on properties and actions to make a property/action disabled 
according to some imperative rule
 
 
 === Do it!
 
-* use the 
xref:rgant.adoc#_rgant-Property_regexPattern[`@Property(regexPattern=...)`] 
annotation to specify a regex pattern for properties, and use 
xref:rgant.adoc#_rgant-Parameter_regexPattern[`@Parameter(regexPattern=...)`] 
for parameters
-* use the 
xref:rgant.adoc#_rgant-Property_maxLength[`@Property(maxLength=...)`] 
annotation to indicate a maxmum number of characters, and 
xref:rgant.adoc#_rgant-Parameter_maxLength[`@Parameter(maxLength=...)`] for 
parameters
-* Use the xref:rgcms.adoc#_rgcms_methods_prefixes_validate[`validate...()`] 
supporting method on properties or action parameter
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_regexPattern[`@Property(regexPattern=...)`]
 annotation to specify a regex pattern for properties, and use 
xref:../../guides/rgant/rgant.adoc#_rgant-Parameter_regexPattern[`@Parameter(regexPattern=...)`]
 for parameters
+* use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_maxLength[`@Property(maxLength=...)`]
 annotation to indicate a maxmum number of characters, and 
xref:../../guides/rgant/rgant.adoc#_rgant-Parameter_maxLength[`@Parameter(maxLength=...)`]
 for parameters
+* Use the 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_methods_prefixes_validate[`validate...()`]
 supporting method on properties or action parameter
 * optional: for any data type:
-** use the 
xref:rgant.adoc#_rgant-Property_mustSatisfy[`Property(mustSatisfy=...)`] and 
xref:rgant.adoc#_rgant-Parameter_mustSatisfy[`Parameter(mustSatisfy=...)`] 
annotations to specify arbitrary constraints on properties and parameters
+** use the 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_mustSatisfy[`Property(mustSatisfy=...)`]
 and 
xref:../../guides/rgant/rgant.adoc#_rgant-Parameter_mustSatisfy[`Parameter(mustSatisfy=...)`]
 annotations to specify arbitrary constraints on properties and parameters
 
 
 
@@ -444,7 +444,7 @@ Or, more pithily: "see it, use it, do it"
 
 The Wicket UI will automatically invoke the "home page" action, if available. 
This is a no-arg action of one of the domain services, that can return either 
an object (eg representing the current user) or a standalone action.
 
-* Add the xref:rgant.adoc#_rgant-HomePage[`@HomePage`] annotation to one (no 
more) of the domain services' no-arg actions
+* Add the xref:../../guides/rgant/rgant.adoc#_rgant-HomePage[`@HomePage`] 
annotation to one (no more) of the domain services' no-arg actions
 
 
 
@@ -454,7 +454,7 @@ The Wicket UI will automatically invoke the "home page" 
action, if available. Th
 To ensure testability, there should be no dependencies on system time, for 
example usage of `LocalDate.now()`. Instead the domain objects should delegate 
to the provided `ClockService`.
 
 * remove any dependencies on system time (eg defaults for date/time action 
parameters)
-* inject xref:rgsvc.adoc#_rgsvc_api_ClockService[`ClockService`]
+* inject 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_ClockService[`ClockService`]
 * call `ClockService.now()` etc where required.
 
 
@@ -474,7 +474,7 @@ Finally, note that the layout of contributed 
actions/collections/properties can
 
 * Write a new domain service
 ** by convention, called "XxxContributions"
-** annotate with 
xref:rgant.adoc#_rgant-DomainService_nature[`@DomainService(nature=NatureOfService.VIEW_CONTRIBUTIONS_ONLY)`]
+** annotate with 
xref:../../guides/rgant/rgant.adoc#_rgant-DomainService_nature[`@DomainService(nature=NatureOfService.VIEW_CONTRIBUTIONS_ONLY)`]
 *** indicates that all of the service's actions should _not_ be included in 
the main application menu bar
 *** should be rendered "as if" an action of the entity
 * Write an action accepting &gt;1 args:
@@ -487,7 +487,7 @@ Finally, note that the layout of contributed 
actions/collections/properties can
 * Write a query-only action accepting exactly 1 arg (a domain entity)
 * returning a collection, list or set
 * For this action:
-** add the 
xref:rgant.adoc#_rgant-ActionLayout_contributedAs[`@ActionLayout(contributedAs=ASSOCIATION)`]
 annotation
+** add the 
xref:../../guides/rgant/rgant.adoc#_rgant-ActionLayout_contributedAs[`@ActionLayout(contributedAs=ASSOCIATION)`]
 annotation
 ** should be rendered in the UI "as if" a collection of the entity
 * use `.layout.json` to position as required
 
@@ -497,7 +497,7 @@ Finally, note that the layout of contributed 
actions/collections/properties can
 * As for contributed collections, write a new domain service with a query-only 
action accepting exactly 1 arg (a domain entity); except:
 ** returning a scalar value rather than a collection
 * For this action:
-** add the 
xref:rgant.adoc#_rgant-ActionLayout_contributedAs[`@ActionLayout(contributedAs=ASSOCIATION)`]
 annotation
+** add the 
xref:../../guides/rgant/rgant.adoc#_rgant-ActionLayout_contributedAs[`@ActionLayout(contributedAs=ASSOCIATION)`]
 annotation
 * should be rendered in the UI "as if" a property of the entity
 * use `.layout.json` to position as required
 
@@ -509,10 +509,10 @@ Another way in which Apache Isis helps you keep your 
application nicely modulari
 
 Under the covers Apache Isis uses the 
https://code.google.com/p/guava-libraries/wiki/EventBusExplained[Guava event 
bus] and subscribers (always domain services) subscribe by writing methods 
annotated with `@com.google.common.eventbus.Subscribe` annotation.
 
-By default the events generated are `ActionDomainEvent.Default` (for actions) 
and `PropertyDomainEvent.Default` (for properties). Subclasses of these can be 
specified using the 
xref:rgant.adoc#_rgant-Action_domainEvent[`@Action(domainEvent=...)`] or 
xref:rgant.adoc#_rgant-Property_domainEvent[`Property(domainEvent=...)`] for 
properties.
+By default the events generated are `ActionDomainEvent.Default` (for actions) 
and `PropertyDomainEvent.Default` (for properties). Subclasses of these can be 
specified using the 
xref:../../guides/rgant/rgant.adoc#_rgant-Action_domainEvent[`@Action(domainEvent=...)`]
 or 
xref:../../guides/rgant/rgant.adoc#_rgant-Property_domainEvent[`Property(domainEvent=...)`]
 for properties.
 
 
-Using the guidance in the docs for the 
xref:rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`]:
+Using the guidance in the docs for the 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_EventBusService[`EventBusService`]:
 
 * write a domain service subscriber to subscribe to events
 * use the domain service to perform log events
@@ -522,7 +522,7 @@ Using the guidance in the docs for the 
xref:rgsvc.adoc#_rgsvc_api_EventBusServic
 
 == Bulk actions
 
-Bulk actions are actions that can be invoked on a collection of actions, that 
is on collections returned by invoking an action. Actions are specified as 
being bulk actions using the 
xref:rgant.adoc#_rgant-Action_invokeOn[`@action(invokeOn=OBJECT_AND_COLLECTION)`]
 annotation.
+Bulk actions are actions that can be invoked on a collection of actions, that 
is on collections returned by invoking an action. Actions are specified as 
being bulk actions using the 
xref:../../guides/rgant/rgant.adoc#_rgant-Action_invokeOn[`@action(invokeOn=OBJECT_AND_COLLECTION)`]
 annotation.
 
 [NOTE]
 ====
@@ -531,12 +531,12 @@ Note that currently (1.8.0) only no-arg actions can be 
specified as bulk actions
 
 Thus:
 * Write a no-arg action for your domain entity, annotate with 
`@Action(invokeOn=...)`
-* Inject the 
xref:rgsvc.adoc#_rgsvc_api_ActionInvocationContext[`ActionInteractionContext`] 
(request-scoped) service
+* Inject the 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_ActionInvocationContext[`ActionInteractionContext`]
 (request-scoped) service
 * Use the `ActionInteractionContext` service to determine whether the action 
was invoked in bulk or as a regular action.
 * return null if invoked on a collection; the Wicket viewer will go back to 
the original collection
 ** (if return non-null, then Wicket viewer will navigate to the object of the 
last invocation generally not what is required)
 
-The similar xref:rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad`] 
(request-scoped) domain service is a good way to share information between bulk 
action invocations:
+The similar 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad`] 
(request-scoped) domain service is a good way to share information between bulk 
action invocations:
 
 * Inject the `Scratchpad` domain service
 * for each action, store state (eg a running total)
@@ -547,7 +547,7 @@ The similar 
xref:rgsvc.adoc#_rgsvc_api_Scratchpad[`Scratchpad`] (request-scoped)
 
 == Performance tuning
 
-The xref:rgsvc.adoc#_rgsvc_api_QueryResultsCache[`QueryResultsCache`] 
(request-scoped) domain service allows arbitrary objects to be cached for the 
duration of a request.
+The 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_QueryResultsCache[`QueryResultsCache`]
 (request-scoped) domain service allows arbitrary objects to be cached for the 
duration of a request.
 
 This can be helpful for "naive" code which would normally make the same query 
within a loop.
 
@@ -559,7 +559,7 @@ This can be helpful for "naive" code which would normally 
make the same query wi
 
 == Extending the Wicket UI
 
-Each element in the Wicket viewer (entity form, properties, collections, 
action button etc) is a component, each created by a internal API 
(`ComponentFactory`, described xref:ugvw.adoc#_ugvw_extending[here]). For 
collections there can be multiple views, and the Wicket viewer provides a view 
selector drop down (top right of each collection panel).
+Each element in the Wicket viewer (entity form, properties, collections, 
action button etc) is a component, each created by a internal API 
(`ComponentFactory`, described 
xref:../../guides/ugvw/ugvw.adoc#_ugvw_extending[here]). For collections there 
can be multiple views, and the Wicket viewer provides a view selector drop down 
(top right of each collection panel).
 
 Moreover, we can add additional views. In this section we'll explore some of 
these, already provided through http://www.isisaddons.org/[Isis addons] (not 
ASF).
 
@@ -607,7 +607,7 @@ In most cases users can accomplish the business operations 
they need by invoking
 
 Also, if using Apache Isis' REST API then the REST client may be a native 
application (on a smartphone or tablet, say) that is deployed by a third party. 
In these cases exposing the entities directly would be inadvisable because a 
refactoring of the domain entity would change the REST API and probably break 
that REST client.
 
-To support these use cases, Apache Isis therefore allows you to write a view 
model, either by annotating the class with 
xref:rgant.adoc#_rgant-ViewModel[`@ViewModel`] or (for more control) by 
implementing the 
xref:rgcms.adoc#_rgcms_classes_super_AbstractViewModel[`ViewModel`] interface.
+To support these use cases, Apache Isis therefore allows you to write a view 
model, either by annotating the class with 
xref:../../guides/rgant/rgant.adoc#_rgant-ViewModel[`@ViewModel`] or (for more 
control) by implementing the 
xref:../../guides/rgcms/rgcms.adoc#_rgcms_classes_super_AbstractViewModel[`ViewModel`]
 interface.
 
 * build a view model summarizing the state of the app (a "dashboard")
 * write a new `@HomePage` domain service action returning this dashboard 
viewmodel (and remove the `@HomePage` annotation from any other domain service 
if present)
@@ -624,7 +624,7 @@ Up to this point we've been introducing the features of 
Isis and building out ou
 
 Unit testing domain entities and domain services is easy; just use JUnit and 
mocking libraries to mock out interactions with domain services.
 
-https://code.google.com/p/mockito/[Mockito] seems to be the current favourite 
among Java developers for mocking libraries, but if you use JMock then you'll 
find we provide a `JUnitRuleMockery2` class and a number of other utility 
classes, documented xref:ugtst.adoc#_ugtst_unit-test-support[here].
+https://code.google.com/p/mockito/[Mockito] seems to be the current favourite 
among Java developers for mocking libraries, but if you use JMock then you'll 
find we provide a `JUnitRuleMockery2` class and a number of other utility 
classes, documented 
xref:../../guides/ugtst/ugtst.adoc#_ugtst_unit-test-support[here].
 
 * write some unit tests (adapt from the unit tests in the `myapp-dom` Maven 
module).
 
@@ -662,7 +662,7 @@ change back to:
 
 There will probably be some compile issues to fix up once you've done this; 
comment out all code that doesn't compile.
 
-Isis has great support for writing 
xref:ugtst.adoc#_ugtst_integ-test-support[integration tests]; well-written 
integration tests should leverage fixture scripts and use the 
xref:rgsvc.adoc#_rgsvc_api_WrapperFactory[`@WrapperFactory`] domain service.
+Isis has great support for writing 
xref:../../guides/ugtst/ugtst.adoc#_ugtst_integ-test-support[integration 
tests]; well-written integration tests should leverage fixture scripts and use 
the 
xref:../../guides/rgsvc/rgsvc.adoc#_rgsvc_api_WrapperFactory[`@WrapperFactory`] 
domain service.
 
 * use the tests from the original archetype and the documentation on the 
website to develop integration tests for your app's functionality.
 
@@ -673,7 +673,7 @@ Isis has great support for writing 
xref:ugtst.adoc#_ugtst_integ-test-support[int
 
 The REST API generated by Apache Isis conforms to the Restful Objects 
specification. Apache Isis 1.8.0 provides experimental support to allow the 
representations to be customized.
 
-* as per 
xref:ugvro.adoc#__ugvro_simplified-representations_configuration-properties[the 
documentation], configure the Restful Objects viewer to generate a simplified 
object representation: +
+* as per 
xref:../../guides/ugvro/ugvro.adoc#__ugvro_simplified-representations_configuration-properties[the
 documentation], configure the Restful Objects viewer to generate a simplified 
object representation: +
 +
 [source,ini]
 ----

http://git-wip-us.apache.org/repos/asf/isis/blob/4807f4c2/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
----------------------------------------------------------------------
diff --git 
a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc 
b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
index ba249ee..6663242 100644
--- 
a/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
+++ 
b/adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.9.0.adoc
@@ -7,7 +7,7 @@
 
 
 
-Apache Isis 1.9.0 provides various new "under-the-cover" features, such as 
`AppManifest` for simplified bootstrapping, and content negotiation support 
within xref:ugvro.adoc#[RestfulObjects viewer].  It also updates the 
DataNucleus version to DN 4.1.x.
+Apache Isis 1.9.0 provides various new "under-the-cover" features, such as 
`AppManifest` for simplified bootstrapping, and content negotiation support 
within xref:../guides/ugvro/ugvro.adoc#[RestfulObjects viewer].  It also 
updates the DataNucleus version to DN 4.1.x.
 
 This release was also the first to include the updated Asciidoc website.
 

Reply via email to