You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/07/09 15:49:51 UTC

[1/5] isis-site git commit: ISIS-1133: web.xml

Repository: isis-site
Updated Branches:
  refs/heads/asf-site 8f4afa145 -> 3e76e8b0e


http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/migration-notes.html
----------------------------------------------------------------------
diff --git a/content/migration-notes.html b/content/migration-notes.html
index af188d3..172f523 100644
--- a/content/migration-notes.html
+++ b/content/migration-notes.html
@@ -893,7 +893,7 @@ isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true</cod
 <p>If you fail to do this you will get an exception to the effect of duplicate service Ids being registered.</p>
 </div>
 <div class="paragraph">
-<p>Now that the <code>ExceptionRecognizerCompositeForJdoObjectStore</code> no longer needs to be explicitly registered, you might (very rarely) require the opposite situation, namely to disable the service.  As this can&#8217;t be done by just removing it from <code>isis.poperties</code>, you instead can set a new <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable</code>:</p>
+<p>Now that the <code>ExceptionRecognizerCompositeForJdoObjectStore</code> no longer needs to be explicitly registered, you might (very rarely) require the opposite situation, namely to disable the service.  As this can&#8217;t be done by just removing it from <code>isis.poperties</code>, you instead can set a new <a href="rg.html#_rg_runtime_configuring-core">configuration property</a> <code>isis.services.ExceptionRecognizerCompositeForJdoObjectStore.disable</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/support.html
----------------------------------------------------------------------
diff --git a/content/support.html b/content/support.html
index 8199ce3..ed4400c 100644
--- a/content/support.html
+++ b/content/support.html
@@ -509,7 +509,7 @@ table.CodeRay td.code>pre{padding:0}
 </thead>
 <tbody>
 <tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Users&lt;/t&gt;</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Users</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="mailto:users@isis.apache.org">users@isis.apache.org</a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://mail-archives.apache.org/mod_mbox/isis-users/">TLP only</a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="http://markmail.org/search/isis-users+list:org.apache.incubator.isis-users">TLP + incubating</a></p></td>


[3/5] isis-site git commit: ISIS-1133: web.xml

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/rg.html
----------------------------------------------------------------------
diff --git a/content/guides/rg.html b/content/guides/rg.html
index b7daf9b..353b0be 100644
--- a/content/guides/rg.html
+++ b/content/guides/rg.html
@@ -482,7 +482,24 @@ table.CodeRay td.code>pre{padding:0}
 
         <div id="doc-content">
           <div class="sect1">
-<h2 id="_rg-annotations">1. Annotations</h2>
+<h2 id="_reference_guide">1. Reference Guide</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This reference guide describes in detail the various elements of the Apache Isis Programming Model.  Most notably these are the <a href="#_rg_annotations">annotations</a> (such as <code>@DomainObject</code>), and the reserved and prefix <a href="#_rg_methods">methods</a> (such as <code>title()</code> and <code>validate&#8230;&#8203;()</code>); it also includes various utility and supporting <a href="#_rg_classes">classes</a>.</p>
+</div>
+<div class="paragraph">
+<p>This guide also documents the domain services, both those that act as an <a href="#_rg_services-api">API</a> (implemented by the framework for your domain objects to call), and those domain services that act as an <a href="#_rg_services-spi">SPI</a> (implemented by your domain application and which are called by the framework).</p>
+</div>
+<div class="paragraph">
+<p>Also part of the reference manual are the details of how to influence the <a href="#_rg_object-layout">UI layout</a> of your domain objects (this is ultimately just a type of metadata), and it catalogues all the various <a href="#_rg_runtime">configuration properties</a> available that influence the behaviour of the framework and the API domain services.</p>
+</div>
+<div class="paragraph">
+<p>This reference guide does <em>not</em> describe how to actually build an Apache Isis application; for that see the <a href="ug.html#">Users' Guide</a>.  The reference guide also does <em>not</em> explain how to setup your development environment; for that see the <a href="dg.html#">Developers' Guide</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_rg-annotations">2. Annotations</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Apache Isis uses annotations to provide additional metadata about the domain objects.</p>
@@ -529,12 +546,12 @@ table.CodeRay td.code>pre{padding:0}
 <p>This chapter documents all the annotations currently supported by Apache Isis.  It also identifies a number of annotations that are now deprecated, and indicates their replacement.</p>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_aaa">1.1. Summary</h3>
+<h3 id="_rg_annotations_aaa">2.1. Summary</h3>
 <div class="paragraph">
 <p>This section summarizes the various annotations supported by Apache Isis.  They break out into five categories.</p>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_aaa_main">1.1.1. Core annotations</h4>
+<h4 id="_rg_annotations_aaa_main">2.1.1. Core annotations</h4>
 <div class="paragraph">
 <p>In Apache Isis every domain object is either a domain entity, a view model or a domain service.  And each of these are made up of properties, collections and actions (domain services only have actions).</p>
 </div>
@@ -692,7 +709,7 @@ For use with <code>@ViewModel</code>. If specifying view models using <code>@Dom
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_aaa_other">1.1.2. Other Isis Annotations</h4>
+<h4 id="_rg_annotations_aaa_other">2.1.2. Other Isis Annotations</h4>
 <div class="paragraph">
 <p>These annotations are also commonly used, but relate <em>not</em> to objects or object members but instead to other aspects of the Apache Isis metamodel.</p>
 </div>
@@ -765,7 +782,7 @@ For use with <code>@ViewModel</code>. If specifying view models using <code>@Dom
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_aaa_jee">1.1.3. JDO Annotations</h4>
+<h4 id="_rg_annotations_aaa_jee">2.1.3. JDO Annotations</h4>
 <div class="paragraph">
 <p>Apache Isis uses JDO/DataNucleus as its ORM, and infers some of its own metadata from the JDO annotations.</p>
 </div>
@@ -910,7 +927,7 @@ For use with <code>@ViewModel</code>. If specifying view models using <code>@Dom
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_aaa_jee">1.1.4. Java EE Annotations</h4>
+<h4 id="_rg_annotations_aaa_jee">2.1.4. Java EE Annotations</h4>
 <div class="paragraph">
 <p>While Apache Isis does, as of today, define a good number of its own annotations, the policy is to reuse standard Java/JEE annotations wherever they exist or are added to the Java platform.</p>
 </div>
@@ -985,7 +1002,7 @@ For use with <code>@ViewModel</code>. If specifying view models using <code>@Dom
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_aaa_deprecated">1.1.5. Deprecated Annotations</h4>
+<h4 id="_rg_annotations_aaa_deprecated">2.1.5. Deprecated Annotations</h4>
 <div class="paragraph">
 <p>As Apache Isis has evolved and grown, we found ourselves adding more and more annotations; but most of these related to either an object type (entity, view model, service) or an object member (property, collection, action).  Over time it became harder and harder for end programmers to discover these new features.</p>
 </div>
@@ -1586,7 +1603,7 @@ For individual actions, use <a href="#_rg_annotations_manpage-ActionLayout_contr
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_aaa_partial">1.1.6. Incomplete/partial support</h4>
+<h4 id="_rg_annotations_aaa_partial">2.1.6. Incomplete/partial support</h4>
 <div class="paragraph">
 <p>These annotations have only incomplete/partial support, primarily relating to the management of value types.  We recommend that you do not use them for now.  Future versions of Apache Isis may either formally deprecate/retire them, or we may go the other way and properly support them.  This will depend in part on the interactions between the Apache Isis runtime, its two viewer implementations, and DataNucleus persistence.</p>
 </div>
@@ -1721,7 +1738,7 @@ This annotation  indicates that transient instances of this class may be created
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Action">1.2. <code>@Action</code></h3>
+<h3 id="_rg_annotations_manpage-Action">2.2. <code>@Action</code></h3>
 <div class="paragraph">
 <p>The <code>@Action</code> annotation groups together all domain-specific metadata for an invokable action on a domain object or domain service.</p>
 </div>
@@ -1886,7 +1903,7 @@ This annotation  indicates that transient instances of this class may be created
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_command">1.2.1. <code>command()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_command">2.2.1. <code>command()</code></h4>
 <div class="paragraph">
 <p>The <code>@Action(command=&#8230;&#8203;)</code> attribute (and the related <code>@Action(commandPersistence=&#8230;&#8203;)</code> and  <code>@Action(commandExecuteIn=&#8230;&#8203;)</code> attributes) allows an action invocation to be made into a concrete object such that it can be inspected and persisted.  The primary use case for this is enhanced profiling/auditing, and it also supports the deferring the execution of the action such that it can be invoked in the background.</p>
 </div>
@@ -1936,7 +1953,7 @@ This annotation  indicates that transient instances of this class may be created
 <p>The <code>command()</code> attribute determines whether the action invocation should be reified into a <code>Command</code> object (by the <a href="#_rg_services-api_manpage-CommandContext"><code>CommandContext</code></a> service).</p>
 </div>
 <div class="paragraph">
-<p>The default is <code>AS_CONFIGURED</code>, meaning that the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.services.command.actions</code> is used to determine the whether the action is reified:</p>
+<p>The default is <code>AS_CONFIGURED</code>, meaning that the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.services.command.actions</code> is used to determine the whether the action is reified:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -2064,7 +2081,7 @@ returned object from this action is the persisted <code>Command</code> itself.</
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_domainEvent">1.2.2. domainEvent()</h4>
+<h4 id="_rg_annotations_manpage-Action_domainEvent">2.2.2. domainEvent()</h4>
 <div class="paragraph">
 <p>Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object.  In the cases of the domain object&#8217;s actions, the events that are fired are:</p>
 </div>
@@ -2263,7 +2280,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_hidden">1.2.3. <code>hidden()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_hidden">2.2.3. <code>hidden()</code></h4>
 <div class="paragraph">
 <p>Actions can be hidden at the domain-level, indicating that they are not visible to the end-user.  This attribute can also be applied to <a href="#_rg_annotations_manpage-Property_hidden">properties</a> and <a href="#_rg_annotations_manpage-Collection_hidden">collections</a>.</p>
 </div>
@@ -2331,7 +2348,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_invokeOn">1.2.4. <code>invokeOn()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_invokeOn">2.2.4. <code>invokeOn()</code></h4>
 <div class="paragraph">
 <p>The <code>invokeOn()</code> attribute indicates whether the an action can be invoked on a single object (the default) and/or on many objects in a collection.</p>
 </div>
@@ -2411,13 +2428,13 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_publishing">1.2.5. <code>publishing()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_publishing">2.2.5. <code>publishing()</code></h4>
 <div class="paragraph">
 <p>The <code>publishing()</code> attribute determines whether and how an action invocation is published via the registered implementation of a <a href="#_rg_services-spi_manpage-PublishingService"><code>PublishingService</code></a>).  This attribute is also supported for <a href="#_rg_annotations_manpage-DomainObject_publishing">domain objects</a>, where it controls whether changed objects are published as events.</p>
 </div>
 <div class="paragraph">
 <p>A common use case is to notify external "downstream" systems of changes in the state of the Isis application.
-The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.services.publish.actions</code> is used to determine the whether the action is published:</p>
+The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.services.publish.actions</code> is used to determine the whether the action is published:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -2477,9 +2494,9 @@ The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_restrictTo">1.2.6. <code>restrictTo()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_restrictTo">2.2.6. <code>restrictTo()</code></h4>
 <div class="paragraph">
-<p>By default actions are available irrespective of the <a href="ug.html#_ug_runtime_deployment-types">deployment mode</a>.  The <code>restrictTo()</code> attribute specifies whether the action should instead be restricted to only available in prototyping mode.</p>
+<p>By default actions are available irrespective of the <a href="#_rg_runtime_deployment-types">deployment mode</a>.  The <code>restrictTo()</code> attribute specifies whether the action should instead be restricted to only available in prototyping mode.</p>
 </div>
 <div class="paragraph">
 <p>For example:</p>
@@ -2501,7 +2518,7 @@ The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_semantics">1.2.7. <code>semantics()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_semantics">2.2.7. <code>semantics()</code></h4>
 <div class="paragraph">
 <p>The <code>semantics()</code> attribute describes whether the invocation is safe (as no side-effects), is idempotent (may have side-effects but always has the same post-conditions), or is neither safe nor idempotent. If the annotation is missing then the framework assumes non-idempotent.</p>
 </div>
@@ -2542,7 +2559,7 @@ The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Action_typeOf">1.2.8. <code>typeOf()</code></h4>
+<h4 id="_rg_annotations_manpage-Action_typeOf">2.2.8. <code>typeOf()</code></h4>
 <div class="paragraph">
 <p>The <code>typeOf()</code> attribute specifies the expected type of an element returned by the action (returning a collection), when for whatever reason the type cannot be inferred from the generic type, or to provide a hint about the actual run-time (as opposed to compile-time) type.  This attribute can also be specified for <a href="#_rg_annotations_manpage-Collection_typeOf">collections</a>.</p>
 </div>
@@ -2580,7 +2597,7 @@ The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-ActionLayout">1.3. <code>@ActionLayout</code></h3>
+<h3 id="_rg_annotations_manpage-ActionLayout">2.3. <code>@ActionLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@ActionLayout</code> annotation applies to actions, collecting together all UI hints within a single annotation.</p>
 </div>
@@ -2625,7 +2642,7 @@ The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_rg_annotations_manpage-ActionLayout_cssClass"><code>cssClass()</code></a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Any string valid as a CSS class</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>an additional CSS class around the HTML that represents for the action, to allow targetted styling in <a href="ug.html#_ug_runtime_application-specific_application-css"><code>application.css</code></a>.<br></p>
+<p>an additional CSS class around the HTML that represents for the action, to allow targetted styling in <a href="#_rg_runtime_application-specific_application-css"><code>application.css</code></a>.<br></p>
 </div>
 <div class="paragraph">
 <p>Supported by the <a href="ug.html#_ug_wicket-viewer">Wicket viewer</a> but currently ignored by the <a href="ug.html#_ug_restfulobjects-viewer">RestfulObjects viewer</a>.</p>
@@ -2730,7 +2747,7 @@ The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_bookmarking">1.3.1. <code>bookmarking()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_bookmarking">2.3.1. <code>bookmarking()</code></h4>
 <div class="paragraph">
 <p>The <code>bookmarking()</code> attribute indicates if an action (with safe <a href="#_rg_annotations_manpage-Action_semantics">action semantics</a>) is automatically bookmarked. This attribute is also supported for  <a href="#_rg_annotations_manpage-DomainObjectLayout_bookmarking">domain objects</a>.</p>
 </div>
@@ -2815,7 +2832,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_contributedAs">1.3.2. <code>contributedAs()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_contributedAs">2.3.2. <code>contributedAs()</code></h4>
 <div class="paragraph">
 <p>For a domain service action that <em>can</em> be contributed, the <code>contributedAs()</code> attribute determines how it is contributed: as an action or as an association (ie a property or collection).</p>
 </div>
@@ -2885,9 +2902,9 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_cssClass">1.3.3. <code>cssClass()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_cssClass">2.3.3. <code>cssClass()</code></h4>
 <div class="paragraph">
-<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the action.   <a href="ug.html#_ug_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
+<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the action.   <a href="#_rg_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
 </div>
 <div class="paragraph">
 <p>This attribute can also be applied to <a href="#_rg_annotations_manpage-DomainObjectLayout_cssClass">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_cssClass">view models</a>,  <a href="#_rg_annotations_manpage-PropertyLayout_cssClass">properties</a>,  <a href="#_rg_annotations_manpage-CollectionLayout_cssClass">collections</a> and <a href="#_rg_annotations_manpage-ParameterLayout_cssClass">parameters</a>.</p>
@@ -2932,7 +2949,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_cssClassFa">1.3.4. <code>cssClassFa()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_cssClassFa">2.3.4. <code>cssClassFa()</code></h4>
 <div class="paragraph">
 <p>The <code>cssClassFa()</code> attribute is used to specify the name of a <a href="http://fortawesome.github.io/Font-Awesome/icons/">Font Awesome icon</a> name, to be rendered on the action&#8217;s representation as a button or menu item.    The related <code>cssClassFaPosition()</code> attribute specifies the positioning of the icon, to the left or the right of the text.</p>
 </div>
@@ -2997,7 +3014,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_describedAs">1.3.5. <code>describedAs()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_describedAs">2.3.5. <code>describedAs()</code></h4>
 <div class="paragraph">
 <p>The <code>describedAs()</code> attribute is used to provide a short description of the action to the user.  In the <a href="ug.html#_ug_wicket-viewer">Wicket viewer</a> it is displayed as a 'tool tip'.</p>
 </div>
@@ -3028,7 +3045,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_hidden">1.3.6. <code>hidden()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_hidden">2.3.6. <code>hidden()</code></h4>
 <div class="paragraph">
 <p>The <code>hidden()</code> attribute indicates where (in the UI) the action should be hidden from the user.  This attribute can also be applied to <a href="#_rg_annotations_manpage-PropertyLayout_hidden">properties</a> and <a href="#_rg_annotations_manpage-CollectionLayout_hidden">collections</a>.</p>
 </div>
@@ -3107,7 +3124,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_named">1.3.7. <code>named()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_named">2.3.7. <code>named()</code></h4>
 <div class="paragraph">
 <p>The <code>named()</code> attribute explicitly specifies the action&#8217;s name, overriding the name that would normally be inferred from the Java source code.  This attribute can also be specified for <a href="#_rg_annotations_manpage-CollectionLayout_named">collections</a>, <a href="#_rg_annotations_manpage-PropertyLayout_named">properties</a>, <a href="#_rg_annotations_manpage-ParameterLayout_named">parameters</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_named">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_named">view models</a> and <a href="#_rg_annotations_manpage-DomainServiceLayout_named">domain services</a>.</p>
 </div>
@@ -3163,7 +3180,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ActionLayout_position">1.3.8. <code>position()</code></h4>
+<h4 id="_rg_annotations_manpage-ActionLayout_position">2.3.8. <code>position()</code></h4>
 <div class="paragraph">
 <p>The <code>position()</code> attribute pertains only to actions that have been associated with properties using <a href="#_rg_annotations_manpage-MemberOrder"><code>@MemberOrder#named()</code></a>.  For these actions, it specifies the positioning of the action&#8217;s button with respect to the field representing the object property.</p>
 </div>
@@ -3263,7 +3280,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Collection">1.4. <code>@Collection</code></h3>
+<h3 id="_rg_annotations_manpage-Collection">2.4. <code>@Collection</code></h3>
 <div class="paragraph">
 <p>The <code>@Collection</code> annotation applies to collections collecting together all domain semantics within a single annotation.</p>
 </div>
@@ -3393,7 +3410,7 @@ can be used instead, eg:</p>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Collection_domainEvent">1.4.1. <code>domainEvent()</code></h4>
+<h4 id="_rg_annotations_manpage-Collection_domainEvent">2.4.1. <code>domainEvent()</code></h4>
 <div class="paragraph">
 <p>Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object.  In the cases of the domain object&#8217;s collections, the events that are fired are:</p>
 </div>
@@ -3618,7 +3635,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Collection_editing">1.4.2. <code>editing()</code></h4>
+<h4 id="_rg_annotations_manpage-Collection_editing">2.4.2. <code>editing()</code></h4>
 <div class="paragraph">
 <p>The <code>editing()</code> annotation indicates whether a collection can be added to or removed from within the UI.  This attribute can also be specified for <a href="#_rg_annotations_manpage-Property_editing">properties</a>, and can also be specified for the <a href="#_rg_annotations_manpage-DomainObject_editing">domain object</a></p>
 </div>
@@ -3651,7 +3668,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 <p>whether the domain object has been configured as immutable through the <a href="#_rg_annotations_manpage-DomainObject_editing"><code>@DomainObject#editing()</code></a> attribute</p>
 </li>
 <li>
-<p>else (that is, if the domain object&#8217;s editability is specified as being <code>AS_CONFIGURED</code>), then the value of the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.objects.editing</code>.  If set to <code>false</code>, then the object&#8217;s collections (and properties) are <strong>not</strong> editable</p>
+<p>else (that is, if the domain object&#8217;s editability is specified as being <code>AS_CONFIGURED</code>), then the value of the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.objects.editing</code>.  If set to <code>false</code>, then the object&#8217;s collections (and properties) are <strong>not</strong> editable</p>
 </li>
 <li>
 <p>else, then the value of the <code>@Collection(editing=&#8230;&#8203;)</code> attribute itself.</p>
@@ -3691,7 +3708,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Collection_hidden">1.4.3. <code>hidden()</code></h4>
+<h4 id="_rg_annotations_manpage-Collection_hidden">2.4.3. <code>hidden()</code></h4>
 <div class="paragraph">
 <p>Collections can be hidden at the domain-level, indicating that they are not visible to the end-user.  This attribute can also be applied to <a href="#_rg_annotations_manpage-Action_hidden">actions</a> and <a href="#_rg_annotations_manpage-Property_hidden">properties</a>.</p>
 </div>
@@ -3773,7 +3790,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Collection_notPersisted">1.4.4. <code>notPersisted()</code></h4>
+<h4 id="_rg_annotations_manpage-Collection_notPersisted">2.4.4. <code>notPersisted()</code></h4>
 <div class="paragraph">
 <p>The (somewhat misnamed) <code>notPersisted()</code> attribute indicates that the collection should be excluded from any snapshots generated by the <a href="#_rg_services-api_manpage-XmlSnapshotService"><code>XmlSnapshotService</code></a>.  This attribute is also supported for <a href="#_rg_annotations_manpage-Property_notPersisted">properties</a>.</p>
 </div>
@@ -3846,7 +3863,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Collection_typeOf">1.4.5. <code>typeOf()</code></h4>
+<h4 id="_rg_annotations_manpage-Collection_typeOf">2.4.5. <code>typeOf()</code></h4>
 <div class="paragraph">
 <p>The <code>typeOf()</code> attribute specifies the expected type of an element contained within a collection when for whatever reason the type cannot be inferred from the generic type, or to provide a hint about the actual run-time (as opposed to compile-time) type.  This attribute can also be specified for <a href="#_rg_annotations_manpage-Action_typeOf">actions</a>.</p>
 </div>
@@ -3879,7 +3896,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-CollectionLayout">1.5. <code>@CollectionLayout</code></h3>
+<h3 id="_rg_annotations_manpage-CollectionLayout">2.5. <code>@CollectionLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@CollectionLayout</code> annotation applies to collections, collecting together all UI hints within a single
 annotation.  It is also possible to apply the annotation to actions of domain services that are acting as contributed collections.</p>
@@ -3906,7 +3923,7 @@ annotation.  It is also possible to apply the annotation to actions of domain se
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_rg_annotations_manpage-CollectionLayout_cssClass"><code>cssClass()</code></a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Any string valid as a CSS class</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>the css class that a collection should have, to allow more targetted styling in <a href="ug.html#_ug_runtime_application-specific_application-css"><code>application.css</code></a></p>
+<p>the css class that a collection should have, to allow more targetted styling in <a href="#_rg_runtime_application-specific_application-css"><code>application.css</code></a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -4001,9 +4018,9 @@ annotation.  It is also possible to apply the annotation to actions of domain se
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_cssClass">1.5.1. <code>cssClass()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_cssClass">2.5.1. <code>cssClass()</code></h4>
 <div class="paragraph">
-<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the collection.   <a href="ug.html#_ug_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
+<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the collection.   <a href="#_rg_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
 </div>
 <div class="paragraph">
 <p>This attribute can also be applied to <a href="#_rg_annotations_manpage-DomainObjectLayout_cssClass">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_cssClass">view models</a>, <a href="#_rg_annotations_manpage-ActionLayout_cssClass">actions</a>, <a href="#_rg_annotations_manpage-PropertyLayout_cssClass">properties</a> and <a href="#_rg_annotations_manpage-ParameterLayout_cssClass">parameters</a>.</p>
@@ -4035,7 +4052,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_describedAs">1.5.2. <code>describedAs()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_describedAs">2.5.2. <code>describedAs()</code></h4>
 <div class="paragraph">
 <p>The <code>describedAs()</code> attribute is used to provide a short description of the collection to the user.  In the <a href="ug.html#_ug_wicket-viewer">Wicket viewer</a> it is displayed as a 'tool tip'.</p>
 </div>
@@ -4070,7 +4087,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_hidden">1.5.3. <code>hidden()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_hidden">2.5.3. <code>hidden()</code></h4>
 <div class="paragraph">
 <p>The <code>hidden()</code> attribute indicates where (in the UI) the collection should be hidden from the user.  This attribute can also be applied to <a href="#_rg_annotations_manpage-ActionLayout_hidden">actions</a> and <a href="#_rg_annotations_manpage-PropertyLayout_hidden">properties</a>.</p>
 </div>
@@ -4148,7 +4165,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_named">1.5.4. <code>named()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_named">2.5.4. <code>named()</code></h4>
 <div class="paragraph">
 <p>The <code>named()</code> attribute explicitly specifies the collection&#8217;s name, overriding the name that would normally be inferred from the Java source code.  This attribute can also be specified for <a href="#_rg_annotations_manpage-ActionLayout_named">actions</a>, <a href="#_rg_annotations_manpage-PropertyLayout_named">properties</a>, <a href="#_rg_annotations_manpage-ParameterLayout_named">parameters</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_named">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_named">view models</a> and <a href="#_rg_annotations_manpage-DomainServiceLayout_named">domain services</a>.</p>
 </div>
@@ -4214,7 +4231,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_paged">1.5.5. <code>paged()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_paged">2.5.5. <code>paged()</code></h4>
 <div class="paragraph">
 <p>The <code>paged()</code> attribute specifies the number of rows to display in a (parented) collection. This attribute can also be applied to <a href="#_rg_annotations_manpage-DomainObjectLayout_paged">domain objects</a> and <a href="#_rg_annotations_manpage-ViewModelLayout_paged">view models</a>.</p>
 </div>
@@ -4247,7 +4264,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="paragraph">
-<p>It is also possible to specify a global default for the page size of standalone collections, using the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.viewer.paged.parented</code>.</p>
+<p>It is also possible to specify a global default for the page size of standalone collections, using the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.viewer.paged.parented</code>.</p>
 </div>
 <div class="paragraph">
 <p>As an alternative to using the annotation, the dynamic <a href="#_rg_object-layout_dynamic"><code>.layout.json</code></a>
@@ -4264,7 +4281,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_render">1.5.6. <code>render()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_render">2.5.6. <code>render()</code></h4>
 <div class="paragraph">
 <p>The <code>render()</code> attribute specifies that the collection be rendered either "eagerly" (shown open, displaying its contents) or "lazily" (shown closed, hiding its contents). The terminology here is based on the similar concept of lazy loading of collections in the domain/persistence layer boundary (except that the rendering relates to the presentation/domain layer boundary).</p>
 </div>
@@ -4309,7 +4326,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-CollectionLayout_sortedBy">1.5.7. <code>sortedBy()</code></h4>
+<h4 id="_rg_annotations_manpage-CollectionLayout_sortedBy">2.5.7. <code>sortedBy()</code></h4>
 <div class="paragraph">
 <p>The <code>sortedBy()</code> attribute specifies that the collection be ordered using the specified comparator, rather than the natural ordering of the entity (as would usually be the case).</p>
 </div>
@@ -4395,7 +4412,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Column">1.6. <code>@Column</code> (<code>javax.jdo</code>)</h3>
+<h3 id="_rg_annotations_manpage-Column">2.6. <code>@Column</code> (<code>javax.jdo</code>)</h3>
 <div class="paragraph">
 <p>The JDO <code>@javax.jdo.annotation.Column</code> provides metadata describing how JDO/DataNucleus should persist the property to a database RDBMS table column (or equivalent concept for other persistence stores).</p>
 </div>
@@ -4423,7 +4440,7 @@ can be used instead, eg:</p>
 <p>This section identifies which attributes of <code>@Column</code> are recognized and used by Apache Isis.</p>
 </div>
 <div class="sect3">
-<h4 id="_nullability">1.6.1. Nullability</h4>
+<h4 id="_nullability">2.6.1. Nullability</h4>
 <div class="paragraph">
 <p>The <code>allowsNull()</code> attribute is used to specify if a property is mandatory or is optional.</p>
 </div>
@@ -4449,7 +4466,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_length_for_code_string_code_s">1.6.2. Length for <code>String</code>s</h4>
+<h4 id="_length_for_code_string_code_s">2.6.2. Length for <code>String</code>s</h4>
 <div class="paragraph">
 <p>The <code>length()</code> attribute is used to specify the length of <code>java.lang.String</code> property types as they map to <code>varchar(n)</code> columns.</p>
 </div>
@@ -4475,7 +4492,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_length_scale_for_code_bigdecimal_code_s">1.6.3. Length/scale for <code>BigDecimal</code>s</h4>
+<h4 id="_length_scale_for_code_bigdecimal_code_s">2.6.3. Length/scale for <code>BigDecimal</code>s</h4>
 <div class="paragraph">
 <p>The <code>length()</code> and <code>scale()</code> attributes are used to infer the precision/scale of <code>java.math.BigDecimal</code> property types as they map to <code>decimal(n,p)</code> columns.</p>
 </div>
@@ -4498,7 +4515,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_hints_and_tips">1.6.4. Hints and Tips</h4>
+<h4 id="_hints_and_tips">2.6.4. Hints and Tips</h4>
 <div class="paragraph">
 <p>This seems to be a good place to describe some additional common mappings that use <code>@Column</code>.  Unlike the sections above, the attributes specified in these hints and tips aren&#8217;t actually part of Apache Isis metamodel.</p>
 </div>
@@ -4526,7 +4543,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_mapping_code_blob_code_s_and_code_clob_code_s">1.6.5. Mapping <code>Blob</code>s and <code>Clob</code>s</h4>
+<h4 id="_mapping_code_blob_code_s_and_code_clob_code_s">2.6.5. Mapping <code>Blob</code>s and <code>Clob</code>s</h4>
 <div class="paragraph">
 <p>Isis provides custom value types for <a href="#_rg_classes_value-types_manpage-Blob"><code>Blob</code></a>s and <a href="#_rg_classes_value-types_manpage-Clob"><code>Clob</code></a>s.  These value types have multiple internal fields, meaning that they corresponding to multiple columns in the database.  Mapping this correctly requires using  <code>@Column</code> within JDO&#8217;s <code>@Persistent</code> annotation.</p>
 </div>
@@ -4570,7 +4587,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Digits">1.7. <code>@Digits</code> (<code>javax</code>)</h3>
+<h3 id="_rg_annotations_manpage-Digits">2.7. <code>@Digits</code> (<code>javax</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.validation.constraints.Digits</code> annotation is recognized by Apache Isis as a means to specify the precision for properties and action parameters of type <code>java.math.BigDecimal</code>.</p>
 </div>
@@ -4614,7 +4631,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Discriminator">1.8. <code>@Discriminator</code> (<code>javax.jdo</code>)</h3>
+<h3 id="_rg_annotations_manpage-Discriminator">2.8. <code>@Discriminator</code> (<code>javax.jdo</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.jdo.annotation.Discriminator</code> is used by JDO/DataNucleus to specify how to discriminate between subclasses of an inheritance hierarchy.</p>
 </div>
@@ -4716,7 +4733,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-DomainObject">1.9. <code>@DomainObject</code></h3>
+<h3 id="_rg_annotations_manpage-DomainObject">2.9. <code>@DomainObject</code></h3>
 <div class="paragraph">
 <p>The <code>@DomainObject</code> annotation applies to domain objects, collecting together all domain semantics within a single annotation.</p>
 </div>
@@ -4834,12 +4851,12 @@ can be used instead, eg:</p>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_auditing">1.9.1. <code>auditing()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_auditing">2.9.1. <code>auditing()</code></h4>
 <div class="paragraph">
 <p>The <code>auditing()</code> attribute indicates that if the object is modified, then each of its changed properties should be submitted to the <a href="#_rg_services-spi_manpage-AuditingService"><code>AuditingService</code></a>, if one has been configured.</p>
 </div>
 <div class="paragraph">
-<p>The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.services.audit.objects</code> is used to determine the whether the action is published:</p>
+<p>The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.services.audit.objects</code> is used to determine the whether the action is published:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -4886,7 +4903,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_autoCompleteRepository">1.9.2. <code>autoCompleteRepository()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_autoCompleteRepository">2.9.2. <code>autoCompleteRepository()</code></h4>
 <div class="paragraph">
 <p>The <code>autoCompleteRepository()</code> attribute nominates a single method on a domain service as the fallback means for lookuping up instances of the domain object using a simple string.</p>
 </div>
@@ -4978,7 +4995,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_bounded">1.9.3. <code>bounded()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_bounded">2.9.3. <code>bounded()</code></h4>
 <div class="paragraph">
 <p>Some domain classes are immutable to the user, and moreover have only a fixed number of instances.  Often these are "reference" ("standing") data, or lookup data/pick lists.  Typical examples could include categories, countries, states, and tax or interest rate tables.</p>
 </div>
@@ -5023,12 +5040,12 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_editing">1.9.4. <code>editing()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_editing">2.9.4. <code>editing()</code></h4>
 <div class="paragraph">
 <p>The <code>editing()</code> attribute determines whether a domain object&#8217;s properties and collections are not editable (are read-only).</p>
 </div>
 <div class="paragraph">
-<p>The default is <code>AS_CONFIGURED</code>, meaning that the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.objects.editing</code> is used to determine the whether the object is modifiable:</p>
+<p>The default is <code>AS_CONFIGURED</code>, meaning that the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.objects.editing</code> is used to determine the whether the object is modifiable:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -5107,7 +5124,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_nature">1.9.5. <code>nature()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_nature">2.9.5. <code>nature()</code></h4>
 <div class="paragraph">
 <p>The <code>nature()</code> attribute is used to characterize the domain object as either an entity (part of the domain layer) or as a view model (part of the application layer).  If the domain object should be thought of as an entity, it also captures how the persistence of that entity is managed.</p>
 </div>
@@ -5193,7 +5210,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_objectType">1.9.6. <code>objectType()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_objectType">2.9.6. <code>objectType()</code></h4>
 <div class="paragraph">
 <p>The <code>objectType()</code> attribute is used to provide a unique alias for the object&#8217;s class name.</p>
 </div>
@@ -5271,7 +5288,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObject_publishing">1.9.7. <code>publishing()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObject_publishing">2.9.7. <code>publishing()</code></h4>
 <div class="paragraph">
 <p>The <code>publishing()</code> attribute determines whether and how a modified object instance is published via the registered implementation of a <a href="#_rg_services-spi_manpage-PublishingService"><code>PublishingService</code></a>).  This attribute is also supported for <a href="#_rg_annotations_manpage-Action_publishing">actions</a>, where it controls whether action invocations are published as events.</p>
 </div>
@@ -5279,7 +5296,7 @@ can be used instead, eg:</p>
 <p>A common use case is to notify external "downstream" systems of changes in the state of the Isis application.</p>
 </div>
 <div class="paragraph">
-<p>The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.services.publish.objects</code> is used to determine the whether the action is published:</p>
+<p>The default value for the attribute is <code>AS_CONFIGURED</code>, meaning that the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.services.publish.objects</code> is used to determine the whether the action is published:</p>
 </div>
 <div class="ulist">
 <ul>
@@ -5336,7 +5353,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-DomainObjectLayout">1.10. <code>@DomainObjectLayout</code></h3>
+<h3 id="_rg_annotations_manpage-DomainObjectLayout">2.10. <code>@DomainObjectLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@DomainObjectLayout</code> annotation applies to domain classes, collecting together all UI hints within a single annotation.</p>
 </div>
@@ -5384,7 +5401,7 @@ can be used instead, eg:</p>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_rg_annotations_manpage-DomainObjectLayout_cssclass"><code>cssClass()</code></a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Any string valid as a CSS class</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>the css class that a domain class (type) should have, to allow more targetted styling in <a href="ug.html#_ug_runtime_application-specific_application-css"><code>application.css</code></a></p>
+<p>the css class that a domain class (type) should have, to allow more targetted styling in <a href="#_rg_runtime_application-specific_application-css"><code>application.css</code></a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -5468,7 +5485,7 @@ can be used instead, eg:</p>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_bookmarking">1.10.1. <code>bookmarking()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_bookmarking">2.10.1. <code>bookmarking()</code></h4>
 <div class="paragraph">
 <p>The <code>bookmarking()</code> attribute indicates that an entity is automatically bookmarked. This attribute is also supported for  <a href="#_rg_annotations_manpage-Action_bookmarking">domain objects</a>.</p>
 </div>
@@ -5556,9 +5573,9 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_cssClass">1.10.2. <code>cssClass()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_cssClass">2.10.2. <code>cssClass()</code></h4>
 <div class="paragraph">
-<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the domain object.   <a href="ug.html#_ug_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
+<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the domain object.   <a href="#_rg_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
 </div>
 <div class="paragraph">
 <p>This attribute can also be applied to <a href="#_rg_annotations_manpage-DomainObjectLayout_cssClass">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_cssClass">view models</a>, <a href="#_rg_annotations_manpage-ActionLayout_cssClass">actions</a> <a href="#_rg_annotations_manpage-PropertyLayout_cssClass">properties</a>,  <a href="#_rg_annotations_manpage-CollectionLayout_cssClass">collections</a> and <a href="#_rg_annotations_manpage-ParameterLayout_cssClass">parameters</a>.</p>
@@ -5591,7 +5608,7 @@ to be rendered as the icon for classes.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_cssClassFa">1.10.3. <code>cssClassFa()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_cssClassFa">2.10.3. <code>cssClassFa()</code></h4>
 <div class="paragraph">
 <p>The <code>cssClassFa()</code> attribute is used to specify the name of a <a href="http://fortawesome.github.io/Font-Awesome/icons/">Font Awesome icon</a> name, to be rendered as the domain object&#8217;s icon.</p>
 </div>
@@ -5636,7 +5653,7 @@ member so that it can be styled in an application-specific way.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_describedAs">1.10.4. <code>describedAs()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_describedAs">2.10.4. <code>describedAs()</code></h4>
 <div class="paragraph">
 <p>The <code>describedAs()</code> attribute is used to provide a short description of the domain object to the user.  In the <a href="ug.html#_ug_wicket-viewer">Wicket viewer</a> it is displayed as a 'tool tip'.  The attribute can also be specified for <a href="#_rg_annotations_manpage-CollectionLayout_describedAs">collections</a>,  <a href="#_rg_annotations_manpage-PropertyLayout_describedAs">properties</a>, <a href="#_rg_annotations_manpage-ActionLayout_describedAs">actions</a>, <a href="#_rg_annotations_manpage-ParameterLayout_describedAs">parameters</a> and <a href="#_rg_annotations_manpage-ViewModelLayout_describedAs">view models</a>.</p>
 </div>
@@ -5654,7 +5671,7 @@ member so that it can be styled in an application-specific way.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_named">1.10.5. <code>named()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_named">2.10.5. <code>named()</code></h4>
 <div class="paragraph">
 <p>The <code>named()</code> attribute explicitly specifies the domain object&#8217;s name, overriding the name that would normally be inferred from the Java source code.  The attribute can also be specified for <a href="#_rg_annotations_manpage-ActionLayout_named">actions</a>, <a href="#_rg_annotations_manpage-CollectionLayout_named">collections</a>, <a href="#_rg_annotations_manpage-PropertyLayout_named">properties</a>, <a href="#_rg_annotations_manpage-ParameterLayout_named">parameters</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_named">view models</a> and <a href="#_rg_annotations_manpage-DomainServiceLayout_named">domain services</a>.</p>
 </div>
@@ -5704,7 +5721,7 @@ member so that it can be styled in an application-specific way.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_paged">1.10.6. <code>paged()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_paged">2.10.6. <code>paged()</code></h4>
 <div class="paragraph">
 <p>The <code>paged()</code> attribute specifies the number of rows to display in a standalone collection, as returned from an action invocation. This attribute can also be applied to <a href="#_rg_annotations_manpage-CollectionLayout_paged">collections</a> and <a href="#_rg_annotations_manpage-ViewModelLayout_paged">view models</a>.</p>
 </div>
@@ -5737,11 +5754,11 @@ member so that it can be styled in an application-specific way.</p>
 </div>
 </div>
 <div class="paragraph">
-<p>It is also possible to specify a global default for the page size of standalone collections, using the <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> <code>isis.viewer.paged.standalone</code>.</p>
+<p>It is also possible to specify a global default for the page size of standalone collections, using the <a href="#_rg_runtime_configuring-core">configuration property</a> <code>isis.viewer.paged.standalone</code>.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainObjectLayout_plural">1.10.7. <code>plural()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainObjectLayout_plural">2.10.7. <code>plural()</code></h4>
 <div class="paragraph">
 <p>When Apache Isis displays a standalone collection of several objects, it will label the collection using the plural form of the object type.</p>
 </div>
@@ -5765,7 +5782,7 @@ member so that it can be styled in an application-specific way.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-DomainService">1.11. <code>@DomainService</code></h3>
+<h3 id="_rg_annotations_manpage-DomainService">2.11. <code>@DomainService</code></h3>
 <div class="paragraph">
 <p>The <code>@DomainService</code> annotation indicates that the (concrete) class should be automatically instantiated as a domain service.</p>
 </div>
@@ -5830,7 +5847,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainService_nature">1.11.1. <code>nature()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainService_nature">2.11.1. <code>nature()</code></h4>
 <div class="paragraph">
 <p>By default, a domain service&#8217;s actions will be rendered in the application menu bar <em>and</em> be contributed <em>and</em> appear in the REST API <em>and</em> (of course) be available to invoke programmatically wherever that domain service is injected.  This is great for initial prototyping, but later on you may prefer to add a little more structure.  This is the purpose of the <code>nature()</code> attribute: to indicates the intent of (all of) the actions defined within the domain service.</p>
 </div>
@@ -5961,7 +5978,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainService_repositoryFor">1.11.2. <code>repositoryFor()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainService_repositoryFor">2.11.2. <code>repositoryFor()</code></h4>
 <div class="paragraph">
 <p>The <code>repositoryFor()</code> attribute is intended for domain services (probably with a <a href="#_rg_annotations_manpage-DomainService_nature"><code>nature=DOMAIN</code></a>) that are intended to act as repositories for domain entities.</p>
 </div>
@@ -5986,7 +6003,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-DomainServiceLayout">1.12. <code>@DomainServiceLayout</code></h3>
+<h3 id="_rg_annotations_manpage-DomainServiceLayout">2.12. <code>@DomainServiceLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@DomainServiceLayout</code> annotation applies to domain services, collecting together all view layout semantics within a single annotation.</p>
 </div>
@@ -6076,7 +6093,7 @@ discovered automatically on the CLASSPATH.</p>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainServiceLayout_menuBar">1.12.1. <code>menuBar()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainServiceLayout_menuBar">2.12.1. <code>menuBar()</code></h4>
 <div class="paragraph">
 <p>The <code>menuBar()</code> attribute is a hint to specify where on the application menu a domain service&#8217;s actions should be rendered.</p>
 </div>
@@ -6135,7 +6152,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainServiceLayout_menuOrder">1.12.2. <code>menuOrder()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainServiceLayout_menuOrder">2.12.2. <code>menuOrder()</code></h4>
 <div class="paragraph">
 <p>The <code>menuOrder()</code> attribute determines the ordering of a domain service&#8217;s actions as menu items within a specified menu bar and top-level menu.</p>
 </div>
@@ -6242,7 +6259,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-DomainServiceLayout_named">1.12.3. <code>named()</code></h4>
+<h4 id="_rg_annotations_manpage-DomainServiceLayout_named">2.12.3. <code>named()</code></h4>
 <div class="paragraph">
 <p>The <code>named()</code> attribute explicitly specifies the domain service&#8217;s name, overriding the name that would normally be inferred from the Java source code.  This attribute can also be specified for <a href="#_rg_annotations_manpage-ActionLayout_named">actions</a>, <a href="#_rg_annotations_manpage-CollectionLayout_named">collections</a>, <a href="#_rg_annotations_manpage-PropertyLayout_named">properties</a>, <a href="#_rg_annotations_manpage-ParameterLayout_named">parameters</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_named">domain objects</a> and <a href="#_rg_annotations_manpage-ViewModelLayout_named">view models</a>.</p>
 </div>
@@ -6277,7 +6294,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Facets">1.13. <code>@Facets</code></h3>
+<h3 id="_rg_annotations_manpage-Facets">2.13. <code>@Facets</code></h3>
 <div class="paragraph">
 <p>The <code>@Facets</code> annotation allows <code>FacetFactory</code> implementations and so can be used to run install arbitrary <code>Facet`s for a type. Generally this is not needed, but can be useful for overriding a custom programming model where a `FacetFactory</code> is not typically included.</p>
 </div>
@@ -6297,7 +6314,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-HomePage">1.14. <code>@HomePage</code></h3>
+<h3 id="_rg_annotations_manpage-HomePage">2.14. <code>@HomePage</code></h3>
 <div class="paragraph">
 <p>The <code>@HomePage</code> annotation allows a <em>single</em> (no-arg, query-only) action on a <em>single</em> domain service to be nominated as the action to invoke for the default home page.  This often returns a view model that acts as some sort of dashboard, presenting key information and makeing the most commonly used actions easy to invoke.</p>
 </div>
@@ -6357,7 +6374,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Inject">1.15. <code>@Inject</code> (<code>javax</code>)</h3>
+<h3 id="_rg_annotations_manpage-Inject">2.15. <code>@Inject</code> (<code>javax</code>)</h3>
 <div class="paragraph">
 <p>Apache Isis automatically injects domain services into other domain services and also into domain objects and view models.  In fact, it also injects domain services into <a href="ug.html#_ug_testing_integ-test-support">integration tests</a> and <a href="ug.html#_ug_testing_fixture-scripts">fixture scripts</a>.</p>
 </div>
@@ -6405,7 +6422,7 @@ discovered automatically on the CLASSPATH.</p>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_alternative_syntaxes">1.15.1. Alternative syntaxes</h4>
+<h4 id="_alternative_syntaxes">2.15.1. Alternative syntaxes</h4>
 <div class="paragraph">
 <p>Isis also supports setter-based injection:</p>
 </div>
@@ -6433,7 +6450,7 @@ discovered automatically on the CLASSPATH.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_manually_injecting_services">1.15.2. Manually injecting services</h4>
+<h4 id="_manually_injecting_services">2.15.2. Manually injecting services</h4>
 <div class="paragraph">
 <p>Isis performs dependency injection when domain entities are recreated.  It will also perform dependency injection if an object is created through the <code>DomainObjectContainer</code>.</p>
 </div>
@@ -6504,7 +6521,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-MemberGroupLayout">1.16. <code>@MemberGroupLayout</code></h3>
+<h3 id="_rg_annotations_manpage-MemberGroupLayout">2.16. <code>@MemberGroupLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@MemberGroupLayout</code> annotation specifies how an object&#8217;s properties and collections are grouped together into columns, also specifying the relative positioning of those columns.  It works in conjunction with the <a href="#_rg_annotations_manpage-MemberOrder"><code>@MemberOrder</code></a> annotation.</p>
 </div>
@@ -6530,7 +6547,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-MemberOrder">1.17. <code>@MemberOrder</code></h3>
+<h3 id="_rg_annotations_manpage-MemberOrder">2.17. <code>@MemberOrder</code></h3>
 <div class="paragraph">
 <p>The <code>@MemberOrder</code> annotation is used to specify the relative order of domain object members, that is: properties, collections and actions.  It works in conjunction with the <a href="#_rg_annotations_manpage-MemberGroupLayout"><code>@MemberGroupLayout</code></a> annotation.</p>
 </div>
@@ -6572,7 +6589,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-NotPersistent">1.18. <code>@NotPersistent</code> (<code>javax.jdo</code>)</h3>
+<h3 id="_rg_annotations_manpage-NotPersistent">2.18. <code>@NotPersistent</code> (<code>javax.jdo</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.jdo.annotation.NotPersistent</code> annotation is used by JDO/DataNucleus to indicate that a property should not be persisted to the database.</p>
 </div>
@@ -6598,7 +6615,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-MinLength">1.19. <code>@MinLength</code></h3>
+<h3 id="_rg_annotations_manpage-MinLength">2.19. <code>@MinLength</code></h3>
 <div class="paragraph">
 <p>The <code>@MinLength</code> annotation is used to specify the minimum number of characters in a search of an <a href="#_rg_methods_prefixes_manpage-autoComplete"><code>autoComplete&#8230;&#8203;()</code></a> supporting method.</p>
 </div>
@@ -6628,7 +6645,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Parameter">1.20. <code>@Parameter</code></h3>
+<h3 id="_rg_annotations_manpage-Parameter">2.20. <code>@Parameter</code></h3>
 <div class="paragraph">
 <p>The <code>@Parameter</code> annotation applies to action parameters collecting together all domain semantics within a single annotation.</p>
 </div>
@@ -6741,7 +6758,7 @@ container.persist(cust);</code></pre>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Parameter_maxLength">1.20.1. <code>maxLength()</code></h4>
+<h4 id="_rg_annotations_manpage-Parameter_maxLength">2.20.1. <code>maxLength()</code></h4>
 <div class="paragraph">
 <p>The <code>maxLength()</code> attribute applies only to <code>String</code> parameters, indicating the maximum number of characters that the user may enter (for example in a text field in the UI).  It is ignored if applied to parameters of any other type.  This attribute can also be applied to <a href="#_rg_annotations_manpage-Property_maxLength">properties</a>.</p>
 </div>
@@ -6773,7 +6790,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Parameter_mustSatisfy">1.20.2. <code>mustSatisfy()</code></h4>
+<h4 id="_rg_annotations_manpage-Parameter_mustSatisfy">2.20.2. <code>mustSatisfy()</code></h4>
 <div class="paragraph">
 <p>The <code>mustSatisfy()</code> attribute allows arbitrary validation to be applied to parameters using an (implementation of a) <code>org.apache.isis.applib.spec.Specification</code> object.  The attribute is also supported on <a href="#_rg_annotations_manpage-Property_mustSatisfy">properties</a>.</p>
 </div>
@@ -6837,7 +6854,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Parameter_optionality">1.20.3. <code>optionality()</code></h4>
+<h4 id="_rg_annotations_manpage-Parameter_optionality">2.20.3. <code>optionality()</code></h4>
 <div class="paragraph">
 <p>By default, Apache Isis assumes that all parameters of an action are required (mandatory).  The <code>optionality()</code> attribute allows this to be relaxed.  The attribute is also supported for <a href="#_rg_annotations_manpage-Property_optionality">properties</a>.</p>
 </div>
@@ -6879,7 +6896,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Parameter_regexPattern">1.20.4. <code>regexPattern()</code></h4>
+<h4 id="_rg_annotations_manpage-Parameter_regexPattern">2.20.4. <code>regexPattern()</code></h4>
 <div class="paragraph">
 <p>The <code>regexPattern()</code> attribute validates the contents of any string parameter with respect to a regular expression pattern. It is ignored if applied to parameters of any other type. This attribute can also be specified for <a href="#_rg_annotations_manpage-Property_regexPattern">properties</a>.</p>
 </div>
@@ -6910,7 +6927,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-ParameterLayout">1.21. <code>@ParameterLayout</code></h3>
+<h3 id="_rg_annotations_manpage-ParameterLayout">2.21. <code>@ParameterLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@ParameterLayout</code> annotation applies to action parameters, collecting together all UI hints within a single annotation.</p>
 </div>
@@ -6936,7 +6953,7 @@ container.persist(cust);</code></pre>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_rg_annotations_manpage-ParameterLayout_cssClass"><code>cssClass()</code></a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Any string valid as a CSS class</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>the css class that a parameter should have, to allow more targetted styling in <a href="ug.html#_ug_runtime_application-specific_application-css"><code>application.css</code></a></p>
+<p>the css class that a parameter should have, to allow more targetted styling in <a href="#_rg_runtime_application-specific_application-css"><code>application.css</code></a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -7037,9 +7054,9 @@ container.persist(cust);</code></pre>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_cssClass">1.21.1. <code>cssClass()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_cssClass">2.21.1. <code>cssClass()</code></h4>
 <div class="paragraph">
-<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the action parameter.   <a href="ug.html#_ug_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
+<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the action parameter.   <a href="#_rg_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
 </div>
 <div class="paragraph">
 <p>This attribute can also be applied to <a href="#_rg_annotations_manpage-DomainObjectLayout_cssClass">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_cssClass">view models</a>, <a href="#_rg_annotations_manpage-ActionLayout_cssClass">actions</a> <a href="#_rg_annotations_manpage-PropertyLayout_cssClass">properties</a>,  <a href="#_rg_annotations_manpage-CollectionLayout_cssClass">collections</a> and <a href="#_rg_annotations_manpage-ParameterLayout_cssClass">parameters</a>.</p>
@@ -7063,7 +7080,7 @@ container.persist(cust);</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_describedAs">1.21.2. <code>describedAs()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_describedAs">2.21.2. <code>describedAs()</code></h4>
 <div class="paragraph">
 <p>The <code>describedAs()</code> attribute is used to provide a short description of the action parameter to the user.  In the <a href="ug.html#_ug_wicket-viewer">Wicket viewer</a> it is displayed as a 'tool tip'.  The <code>describedAs()</code> attribute can also be specified for <a href="#_rg_annotations_manpage-CollectionLayout_describedAs">collections</a>,  <a href="#_rg_annotations_manpage-PropertyLayout_describedAs">properties</a>, <a href="#_rg_annotations_manpage-ActionLayout_describedAs">actions</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_describedAs">domain objects</a> and <a href="#_rg_annotations_manpage-ViewModelLayout_describedAs">view models</a>.</p>
 </div>
@@ -7099,7 +7116,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_labelPosition">1.21.3. <code>labelPosition()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_labelPosition">2.21.3. <code>labelPosition()</code></h4>
 <div class="paragraph">
 <p>The <code>labelPosition()</code> attribute determines the positioning of labels for parameters.  This attribute can also be specified for <a href="#_rg_annotations_manpage-PropertyLayout_labelPosition">properties</a>.</p>
 </div>
@@ -7139,7 +7156,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_multiLine">1.21.4. <code>multiLine()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_multiLine">2.21.4. <code>multiLine()</code></h4>
 <div class="paragraph">
 <p>The <code>multiLine()</code> attribute specifies that the text field for a string parameter should span multiple lines.  It is ignored for other parameter types.  The attribute is also supported for <a href="#_rg_annotations_manpage-PropertyLayout_multiLine">properties</a>.</p>
 </div>
@@ -7177,7 +7194,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_named">1.21.5. <code>named()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_named">2.21.5. <code>named()</code></h4>
 <div class="paragraph">
 <p>The <code>named()</code> attribute explicitly specifies the action parameter&#8217;s name. This attribute can also be specified for <a href="#_rg_annotations_manpage-ActionLayout_named">actions</a>, <a href="#_rg_annotations_manpage-CollectionLayout_named">collections</a>, <a href="#_rg_annotations_manpage-PropertyLayout_named">properties</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_named">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_named">view models</a> and <a href="#_rg_annotations_manpage-DomainServiceLayout_named">domain services</a>.</p>
 </div>
@@ -7229,7 +7246,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_renderedAsDayBefore">1.21.6. <code>renderedAsDayBefore()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_renderedAsDayBefore">2.21.6. <code>renderedAsDayBefore()</code></h4>
 <div class="paragraph">
 <p>The <code>renderedAsDayBefore()</code> attribute applies only to date parameters whereby the date will be rendered as the day before the value actually held in the domain object.  It is ignored for parameters of other types.  This attribute is also supported for <a href="#_rg_annotations_manpage-PropertyLayout_renderedAsDayBefore">properties</a>.</p>
 </div>
@@ -7263,7 +7280,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-ParameterLayout_typicalLength">1.21.7. <code>typicalLength()</code></h4>
+<h4 id="_rg_annotations_manpage-ParameterLayout_typicalLength">2.21.7. <code>typicalLength()</code></h4>
 <div class="paragraph">
 <p>The <code>typicalLength()</code> attribute indicates the typical length of a string parameter.  It is ignored for parameters of other types.  The attribute is also supported for <a href="#_rg_annotations_manpage-PropertyLayout_typicalLength">properties</a>.</p>
 </div>
@@ -7298,7 +7315,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-PersistenceCapable">1.22. <code>@PersistenceCapable</code> (<code>javax.jdo</code>)</h3>
+<h3 id="_rg_annotations_manpage-PersistenceCapable">2.22. <code>@PersistenceCapable</code> (<code>javax.jdo</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.jdo.annotation.PersistenceCapable</code> is used by JDO/DataNucleus to indicate that a class is a domain entity to be persisted to the database.</p>
 </div>
@@ -7431,7 +7448,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-PostConstruct">1.23. <code>@PostConstruct</code> (<code>javax</code>)</h3>
+<h3 id="_rg_annotations_manpage-PostConstruct">2.23. <code>@PostConstruct</code> (<code>javax</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.annotation.PostConstruct</code> annotation, as defined in <a href="https://jcp.org/en/jsr/detail?id=250">JSR-250</a>,  is recognized by Apache Isis as a callback method on domain services to be called just after they have been constructed, in order that they initialize themselves.</p>
 </div>
@@ -7470,7 +7487,7 @@ declaration.</p>
 </div>
 </div>
 <div class="paragraph">
-<p>Isis uses argument to pass in the configuration properties read from all <a href="ug.html#_ug_runtime_configuration-files">configuration files</a>:</p>
+<p>Isis uses argument to pass in the configuration properties read from all <a href="#_rg_runtime_configuration-files">configuration files</a>:</p>
 </div>
 <div class="admonitionblock tip">
 <table>
@@ -7517,7 +7534,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-PreDestroy">1.24. <code>@PreDestroy</code> (<code>javax</code>)</h3>
+<h3 id="_rg_annotations_manpage-PreDestroy">2.24. <code>@PreDestroy</code> (<code>javax</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.annotation.PreDestroy</code> annotation, as defined in <a href="https://jcp.org/en/jsr/detail?id=250">JSR-250</a>, recognized by Apache Isis as a callback method on domain services to be called just as they go out of scope.</p>
 </div>
@@ -7576,7 +7593,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-PrimaryKey">1.25. <code>@PrimaryKey</code> (<code>javax.jdo</code>)</h3>
+<h3 id="_rg_annotations_manpage-PrimaryKey">2.25. <code>@PrimaryKey</code> (<code>javax.jdo</code>)</h3>
 <div class="paragraph">
 <p>The <code>@javax.jdo.annotation.PrimaryKey</code> annotation is used by JDO/DataNucleus to indicate that a property is used as the primary key for an entity with application-managed identity.</p>
 </div>
@@ -7602,7 +7619,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Programmatic">1.26. <code>@Programmatic</code></h3>
+<h3 id="_rg_annotations_manpage-Programmatic">2.26. <code>@Programmatic</code></h3>
 <div class="paragraph">
 <p>The <code>@Programmatic</code> annotation causes the method to be excluded completely from the Apache Isis metamodel. This means it won&#8217;t appear in any UI, and it won&#8217;t appear in any <a href="#_rg_services-api_manpage-MementoService">memento</a>s or <a href="#_rg_services-api_manpage-XmlSnapshotService">snapshot</a>s.</p>
 </div>
@@ -7626,7 +7643,7 @@ declaration.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-Property">1.27. <code>@Property</code></h3>
+<h3 id="_rg_annotations_manpage-Property">2.27. <code>@Property</code></h3>
 <div class="paragraph">
 <p>The <code>@Property</code> annotation applies to properties collecting together all domain semantics within a single annotation.</p>
 </div>
@@ -7777,7 +7794,7 @@ declaration.</p>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_domainEvent">1.27.1. <code>domainEvent()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_domainEvent">2.27.1. <code>domainEvent()</code></h4>
 <div class="paragraph">
 <p>Whenever a domain object (or list of domain objects) is to be rendered, the framework fires off multiple domain events for every property, collection and action of the domain object.  In the cases of the domain object&#8217;s properties, the events that are fired are:</p>
 </div>
@@ -7988,7 +8005,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_editing">1.27.2. <code>editing()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_editing">2.27.2. <code>editing()</code></h4>
 <div class="paragraph">
 <p>The <code>editing()</code> attribute can be used to prevent a property from being modified or cleared, ie to make it read-only. This attribute can also be specified for <a href="#_rg_annotations_manpage-Collection_editing">collections</a>, and can also be specified for the <a href="#_rg_annotations_manpage-DomainObject_editing">domain object</a>.</p>
 </div>
@@ -8004,7 +8021,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 <p>whether the domain object has been configured as immutable through the <a href="#_rg_annotations_manpage-DomainObject_editing"><code>@DomainObject#editing()</code></a> attribute</p>
 </li>
 <li>
-<p>else (that is, if the domain object&#8217;s editability is specified as being <code>AS_CONFIGURED</code>), then the value of the <a href="ug.html#<em>ug_runtime_configuring-core">configuration property</a> <code>isis.objects.editing</code>.  If set to <code>false</code>, then the object&#8217;s properties (and collections) are _not</em> editable</p>
+<p>else (that is, if the domain object&#8217;s editability is specified as being <code>AS_CONFIGURED</code>), then the value of the <a href="#<em>rg_runtime_configuring-core">configuration property</a> <code>isis.objects.editing</code>.  If set to <code>false</code>, then the object&#8217;s properties (and collections) are _not</em> editable</p>
 </li>
 <li>
 <p>else, then the value of the <code>@Property(editing=&#8230;&#8203;)</code> attribute itself</p>
@@ -8045,7 +8062,7 @@ wrapping the target object using the <a href="#_rg_services-api_manpage-WrapperF
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_hidden">1.27.3. <code>hidden()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_hidden">2.27.3. <code>hidden()</code></h4>
 <div class="paragraph">
 <p>Properties can be hidden at the domain-level, indicating that they are not visible to the end-user.  This attribute can also be applied to <a href="#_rg_annotations_manpage-ActionLayout_hidden">actions</a> and <a href="#_rg_annotations_manpage-CollectionLayout_hidden">collections</a>.</p>
 </div>
@@ -8146,7 +8163,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_maxLength">1.27.4. <code>maxLength()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_maxLength">2.27.4. <code>maxLength()</code></h4>
 <div class="paragraph">
 <p>The <code>maxLength()</code> attribute applies only to <code>String</code> properties, indicating the maximum number of characters that the user may enter (for example in a text field in the UI).  The attribute It is ignored if applied to properties of any other type.  This attribute can also be applied to <a href="#_rg_annotations_manpage-Parameter_maxLength">parameters</a>.</p>
 </div>
@@ -8207,7 +8224,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_mustSatisfy">1.27.5. <code>mustSatisfy()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_mustSatisfy">2.27.5. <code>mustSatisfy()</code></h4>
 <div class="paragraph">
 <p>The <code>mustSatisfy()</code> attribute allows arbitrary validation to be applied to properties using an (implementation of a) <code>org.apache.isis.applib.spec.Specification</code> object.
  The attribute is also supported on <a href="#_rg_annotations_manpage-Parameter_mustSatisfy">parameters</a>.</p>
@@ -8261,7 +8278,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_notPersisted">1.27.6. <code>notPersisted()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_notPersisted">2.27.6. <code>notPersisted()</code></h4>
 <div class="paragraph">
 <p>The (somewhat misnamed) <code>notPersisted()</code> attribute indicates that the collection should be excluded from any snapshots generated by the <a href="#_rg_services-api_manpage-XmlSnapshotService"><code>XmlSnapshotService</code></a>.  This attribute is also supported for <a href="#_rg_annotations_manpage-Collection_notPersisted">collections</a>.</p>
 </div>
@@ -8334,7 +8351,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_optionality">1.27.7. <code>optionality()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_optionality">2.27.7. <code>optionality()</code></h4>
 <div class="paragraph">
 <p>By default, Apache Isis assumes that all properties of an domain object or view model are required (mandatory).  The <code>optionality()</code> attribute allows this to be relaxed.  The attribute is also supported for <a href="#_rg_annotations_manpage-Parameter_optionality">parameters</a>.</p>
 </div>
@@ -8490,7 +8507,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-Property_regexPattern">1.27.8. <code>regexPattern()</code></h4>
+<h4 id="_rg_annotations_manpage-Property_regexPattern">2.27.8. <code>regexPattern()</code></h4>
 <div class="paragraph">
 <p>The <code>regexPattern()</code> attribute validates the contents of any string property with respect to a regular expression pattern. It is ignored if applied to properties of any other type. This attribute can also be specified for <a href="#_rg_annotations_manpage-Parameter_regexPattern">parameters</a>.</p>
 </div>
@@ -8514,7 +8531,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect2">
-<h3 id="_rg_annotations_manpage-PropertyLayout">1.28. <code>@PropertyLayout</code></h3>
+<h3 id="_rg_annotations_manpage-PropertyLayout">2.28. <code>@PropertyLayout</code></h3>
 <div class="paragraph">
 <p>The <code>@PropertyLayout</code> annotation applies to properties collecting together all UI hints within a single annotation.</p>
 </div>
@@ -8540,7 +8557,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_rg_annotations_manpage-PropertyLayout_cssClass"><code>cssClass()</code></a></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Any string valid as a CSS class</p></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>the css class that a property should have, to allow more targetted styling in <a href="ug.html#_ug_runtime_application-specific_application-css"><code>application.css</code></a></p>
+<p>the css class that a property should have, to allow more targetted styling in <a href="#_rg_runtime_application-specific_application-css"><code>application.css</code></a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -8569,7 +8586,7 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 <p>Defaults is <code>LEFT</code>, unless <a href="#_rg_annotations_manpage-PropertyLayout_multiLine"><code>multiLine</code></a> in which case <code>TOP</code>.  The value <code>RIGHT</code> is only supported for boolean properties.<br></p>
 </div>
 <div class="paragraph">
-<p>It is also possible to change the default through a <a href="ug.html#_ug_runtime_configuring-core_isis-viewers-propertyLayout-labelPosition">configuration property</a></p>
+<p>It is also possible to change the default through a <a href="#_rg_runtime_configuring-core_isis-viewers-propertyLayout-labelPosition">configuration property</a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -8655,9 +8672,9 @@ tables. Annotating with <code>@Property(where=Where.NOWHERE)</code> overrides th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-PropertyLayout_cssClass">1.28.1. <code>cssClass()</code></h4>
+<h4 id="_rg_annotations_manpage-PropertyLayout_cssClass">2.28.1. <code>cssClass()</code></h4>
 <div class="paragraph">
-<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the property.   <a href="ug.html#_ug_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
+<p>The <code>cssClass()</code> attribute can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the property.   <a href="#_rg_runtime_application-specific_application-css">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
 </div>
 <div class="paragraph">
 <p>This attribute can also be applied to <a href="#_rg_annotations_manpage-DomainObjectLayout_cssClass">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_cssClass">view models</a>, <a href="#_rg_annotations_manpage-ActionLayout_cssClass">actions</a> <a href="#_rg_annotations_manpage-CollectionLayout_cssClass">collections</a> and <a href="#_rg_annotations_manpage-ParameterLayout_cssClass">parameters</a>.</p>
@@ -8686,7 +8703,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-PropertyLayout_describedAs">1.28.2. <code>describedAs()</code></h4>
+<h4 id="_rg_annotations_manpage-PropertyLayout_describedAs">2.28.2. <code>describedAs()</code></h4>
 <div class="paragraph">
 <p>The <code>describedAs()</code> attribute is used to provide a short description of the property to the user.  In the <a href="ug.html#_ug_wicket-viewer">Wicket viewer</a> it is displayed as a 'tool tip'. The attribute can also be specified for <a href="#_rg_annotations_manpage-CollectionLayout_describedAs">collections</a>,  <a href="#_rg_annotations_manpage-ActionLayout_describedAs">actions</a>, <a href="#_rg_annotations_manpage-ParameterLayout_describedAs">parameters</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_describedAs">domain objects</a> and <a href="#_rg_annotations_manpage-ViewModelLayout_describedAs">view models</a>.</p>
 </div>
@@ -8717,7 +8734,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-PropertyLayout_labelPosition">1.28.3. <code>labelPosition()</code></h4>
+<h4 id="_rg_annotations_manpage-PropertyLayout_labelPosition">2.28.3. <code>labelPosition()</code></h4>
 <div class="paragraph">
 <p>The <code>labelPosition()</code> attribute determines the positioning of labels for properties.  This attribute can also be specified for <a href="#_rg_annotations_manpage-ParameterLayout_labelPosition">parameters</a>.</p>
 </div>
@@ -8813,7 +8830,7 @@ can be used instead, eg:</p>
 <p>If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it&#8217;d be rather frustrating to have to annotate every property.</p>
 </div>
 <div class="paragraph">
-<p>Instead, a default can be specified using a <a href="ug.html#_ug_runtime_configuring-core">configuration property</a> in <code>isis.properties</code>:</p>
+<p>Instead, a default can be specified using a <a href="#_rg_runtime_configuring-core">configuration property</a> in <code>isis.properties</code>:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -8837,7 +8854,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-PropertyLayout_multiLine">1.28.4. <code>multiLine()</code></h4>
+<h4 id="_rg_annotations_manpage-PropertyLayout_multiLine">2.28.4. <code>multiLine()</code></h4>
 <div class="paragraph">
 <p>The <code>multiLine()</code> attribute specifies that the text field for a string property should span multiple lines.  It is ignored for other property types.  The attribute is also supported for <a href="#_rg_annotations_manpage-ParameterLayout_multiLine">parameters</a>.</p>
 </div>
@@ -8888,7 +8905,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-PropertyLayout_named">1.28.5. named()</h4>
+<h4 id="_rg_annotations_manpage-PropertyLayout_named">2.28.5. named()</h4>
 <div class="paragraph">
 <p>The <code>named()</code> attribute explicitly specifies the property&#8217;s name, overriding the name that would normally be inferred from the Java source code.  This attribute can also be specified for <a href="#_rg_annotations_manpage-ActionLayout_named">actions</a>, <a href="#_rg_annotations_manpage-CollectionLayout_named">collections</a>, <a href="#_rg_annotations_manpage-ParameterLayout_named">parameters</a>, <a href="#_rg_annotations_manpage-DomainObjectLayout_named">domain objects</a>, <a href="#_rg_annotations_manpage-ViewModelLayout_named">view models</a> and <a href="#_rg_annotations_manpage-DomainServiceLayout_named">domain services</a>.</p>
 </div>
@@ -8954,7 +8971,7 @@ can be used instead, eg:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rg_annotations_manpage-PropertyLayout_renderedAsDayBefore">1.28.6. <code>renderedAsDayBefore()</code></h4>
+<h4 id="_rg_ann

<TRUNCATED>

[5/5] isis-site git commit: ISIS-1133: fix in Wicket UI customization chapter

Posted by da...@apache.org.
ISIS-1133: fix in Wicket UI customization chapter


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

Branch: refs/heads/asf-site
Commit: 3e76e8b0e31bedc7864c7654eec1e658ab3b3943
Parents: ddab015
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 14:41:46 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 14:41:46 2015 +0100

----------------------------------------------------------------------
 content/guides/ug.html | 117 +++++++-------------------------------------
 1 file changed, 18 insertions(+), 99 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis-site/blob/3e76e8b0/content/guides/ug.html
----------------------------------------------------------------------
diff --git a/content/guides/ug.html b/content/guides/ug.html
index d0181ae..4ddf9de 100644
--- a/content/guides/ug.html
+++ b/content/guides/ug.html
@@ -9930,112 +9930,36 @@ URL to be absolute.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_customisation_tweaking-css-classes">7.5.6. Tweaking CSS classes</h4>
+<h4 id="_ug_wicket-viewer_customisation_cheap-n-cheerful-theme">7.5.6. Cheap-n-cheerful theme</h4>
 <div class="paragraph">
-<p>The HTML generated by the Wicket viewer include plenty of CSS classes so that you can easily target the required elements as required. For example, you could use CSS to suppress the entity&#8217;s icon alongside its title. This would be done using:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="css"><span class="class">.entityIconAndTitlePanel</span> <span class="tag">a</span> <span class="tag">img</span> {
-    <span class="key">display</span>: <span class="value">none</span>;
-}</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>These customizations should generally be added to <a href="rg.html#_rg_runtime_application-specific_application-css"><code>application.css</a></code>; this file is included by default in every webpage served up by the Wicket viewer.</p>
-</div>
-<div class="sect4">
-<h5 id="_targeting_individual_members_2">Targeting individual members</h5>
-<div class="paragraph">
-<p>For example, the <code>ToDoItem</code> object of the Isis addons example <a href="https://github.com/isisaddons/isis-app-todoapp/">todoapp</a> (not ASF) has a <code>notes</code> property. The HTML for this will be something like:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="html"><span class="tag">&lt;div&gt;</span>
-    <span class="tag">&lt;div</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">property ToDoItem-notes</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
-        <span class="tag">&lt;div</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">multiLineStringPanel scalarNameAndValueComponentType</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
-            <span class="tag">&lt;label</span> <span class="attribute-name">for</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">id83</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">title</span>=<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
-                <span class="tag">&lt;span</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">scalarName</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>Notes<span class="tag">&lt;/span&gt;</span>
-                <span class="tag">&lt;span</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">scalarValue</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
-                    <span class="tag">&lt;textarea</span>
-                        <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">middleColumn:memberGroup:1:properties:4:property:scalarIfRegular:scalarValue</span><span class="delimiter">&quot;</span></span>
-                        <span class="attribute-name">disabled</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">disabled</span><span class="delimiter">&quot;</span></span>
-                        <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">id83</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">rows</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">5</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">maxlength</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">400</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">size</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">125</span><span class="delimiter">&quot;</span></span>
-                        <span class="attribute-name">title</span>=<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
-                    <span class="tag">&lt;/textarea&gt;</span>
-                    <span class="tag">&lt;span&gt;</span>
-                    <span class="tag">&lt;/span&gt;</span>
-                <span class="tag">&lt;/span&gt;</span>
-            <span class="tag">&lt;/label&gt;</span>
-       <span class="tag">&lt;/div&gt;</span>
-    <span class="tag">&lt;/div&gt;</span>
-<span class="tag">&lt;/div&gt;</span></code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>The <a href="rg.html#_rg_runtime_application-specific_application-css"><code>application.css</code></a> file is the place to add application-specific styles. By way of an example, if (for some reason) we wanted to completely hide the notes value, we could do so using:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="css"><span class="tag">div</span><span class="class">.ToDoItem-notes</span> <span class="tag">span</span><span class="class">.scalarValue</span> {
-    <span class="key">display</span>: <span class="value">none</span>;
-}</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>You can use a similar approach for collections and actions.</p>
-</div>
-</div>
-<div class="sect4">
-<h5 id="_targeting_members_through_a_custom_css_style_2">Targeting members through a custom CSS style</h5>
-<div class="paragraph">
-<p>The above technique works well if you know the class member to target, but you might instead want to apply a custom style to a set of members. For this, you can use the <code>@CssClass</code>.</p>
-</div>
-<div class="paragraph">
-<p>For example, in the <code>ToDoItem</code> class the following annotation (indicating that this is a key, important, property) :</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@PropertyLayout</span>(cssClass=<span class="string"><span class="delimiter">&quot;</span><span class="content">x-myapp-highlight</span><span class="delimiter">&quot;</span></span>)
-<span class="directive">public</span> LocalDate getDueBy() {
-    <span class="keyword">return</span> dueBy;
-}</code></pre>
-</div>
+<p>The application name (as defined in the <code>IsisWicketApplication</code> subclass) is also used (in sanitized form) as the CSS class in a <code>&lt;div&gt;</code> that wraps all the rendered content of every page.</p>
 </div>
 <div class="paragraph">
-<p>would generate the HTML:</p>
+<p>For example, if the application name is "ToDo App", then the <code>&lt;div&gt;</code> generated is:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="html"><span class="tag">&lt;div&gt;</span>
-    <span class="tag">&lt;div</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">property ToDoItem-dueBy x-myapp-highlight</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
-        ...
-    <span class="tag">&lt;/div&gt;</span>
+<pre class="CodeRay highlight"><code data-lang="html"><span class="tag">&lt;div</span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">todo-app</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
+    ...
 <span class="tag">&lt;/div&gt;</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>This can then be targeted, for example using:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="css"><span class="tag">div</span><span class="class">.x-myapp-highlight</span> <span class="tag">span</span><span class="class">.scalarName</span> {
-    <span class="key">color</span>: <span class="value">red</span>;
-}</code></pre>
-</div>
+<p>You can therefore use this CSS class as a way of building your own "theme" for the various elements of the wicket viewer pages.</p>
 </div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
 <div class="paragraph">
-<p>Note also that instead of using <code>@PropertyLayout(cssClass=&#8230;&#8203;)</code> annotation, you can also specify the CSS style using a <a href="rg.html#_rg_object-layout_dynamic">dynamic layout</a> JSON file:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="CodeRay highlight"><code data-lang="javascript"><span class="string"><span class="delimiter">&quot;</span><span class="content">dueBy</span><span class="delimiter">&quot;</span></span>: {
-    <span class="key"><span class="delimiter">&quot;</span><span class="content">propertyLayout</span><span class="delimiter">&quot;</span></span>: {
-        <span class="key"><span class="delimiter">&quot;</span><span class="content">cssClass</span><span class="delimiter">&quot;</span></span>: <span class="string"><span class="delimiter">&quot;</span><span class="content">x-myapp-important</span><span class="delimiter">&quot;</span></span>
-    }
-},</code></pre>
-</div>
+<p>Alternatively you could "do it properly" and create your <a href="#_ug_extending_wicket-viewer_custom-bootstrap-theme">own Bootstrap theme</a>, as described in the <a href="#_ug_extending">Extending</a> chapter.</p>
 </div>
+</td>
+</tr>
+</table>
 </div>
 </div>
 <div class="sect3">
@@ -16812,12 +16736,7 @@ TODO
 <li><a href="#_targeting_members_through_a_custom_css_style">Targeting members through a custom CSS style</a></li>
 </ul>
 </li>
-<li><a href="#_ug_wicket-viewer_customisation_tweaking-css-classes">7.5.6. Tweaking CSS classes</a>
-<ul class="sectlevel4">
-<li><a href="#_targeting_individual_members_2">Targeting individual members</a></li>
-<li><a href="#_targeting_members_through_a_custom_css_style_2">Targeting members through a custom CSS style</a></li>
-</ul>
-</li>
+<li><a href="#_ug_wicket-viewer_customisation_cheap-n-cheerful-theme">7.5.6. Cheap-n-cheerful theme</a></li>
 <li><a href="#_ug_wicket-viewer_customisation_using-different-css-file">7.5.7. Using a different CSS file</a></li>
 <li><a href="#_ug_wicket-viewer_customisation_custom-javascript">7.5.8. Custom Javascript</a></li>
 <li><a href="#_ug_wicket-viewer_customisation_auto-refresh">7.5.9. Auto-refresh page</a></li>


[2/5] isis-site git commit: ISIS-1133: web.xml

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/ug.html
----------------------------------------------------------------------
diff --git a/content/guides/ug.html b/content/guides/ug.html
index 1ef2e2d..d0181ae 100644
--- a/content/guides/ug.html
+++ b/content/guides/ug.html
@@ -482,7 +482,24 @@ table.CodeRay td.code>pre{padding:0}
 
         <div id="doc-content">
           <div class="sect1">
-<h2 id="_ug_core-concepts">1. Core Concepts</h2>
+<h2 id="_users_guide">1. Users' Guide</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This users' guide introduces the <a href="#_ug_core-concepts">core concepts</a> and ideas behind Apache Isis, tells you how to <a href="#_ug_getting-started">get started</a> with a Maven archetype, and provides <a href="#_ug_how-tos">how-to</a>s and <a href="#_ug_more-advanced">more advanced</a> guidance on writing maintainable larger applications.</p>
+</div>
+<div class="paragraph">
+<p>It goes on to discuss the <a href="#_ug_wicket-viewer">Wicket viewer</a>, both from an end-user perspective and also how as a programmer you can customize the UI.  There is a similar chapter discussing the <a href="#_ug_restfulobjects-viewer">Restful Objects viewer</a> which provides Apache Isis' REST API.  The guide also explains how to configure <a href="#_ug_security">security</a>, principally involving Apache Isis' integration with Apache Shiro.</p>
+</div>
+<div class="paragraph">
+<p>Later chapters discuss essential topics such as <a href="#_ug_testing">testing</a> and how to <a href="#_ug_deployment">deploy</a> your app, and discuss other ways in which you can <a href="#_ug_extending">extend</a> or adapt the framework itself to your particular needs.</p>
+</div>
+<div class="paragraph">
+<p>The users' guide is <em>not</em> intended as a reference manual; for that see the <a href="rg.html#">Reference Guide</a>.  The users' guide also does <em>not</em> explain how to setup your development environment; for that see the <a href="dg.html#">Developers' Guide</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ug_core-concepts">2. Core Concepts</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This introductory chapter should give you a good about what Apache Isis actually <strong>is</strong>: the fundamental ideas and principles that it builds upon, how it compares with other frameworks, what the fundamental building blocks are for actually writing an Isis application, and what services and features the framework provides for you to leverage in your own apps.</p>
@@ -502,15 +519,12 @@ table.CodeRay td.code>pre{padding:0}
 </table>
 </div>
 <div class="sect2">
-<h3 id="_ug_core-concepts_philosophy">1.1. Philosophy and Architecture</h3>
+<h3 id="_ug_core-concepts_philosophy">2.1. Philosophy and Architecture</h3>
 <div class="paragraph">
 <p>This section describes some of the core ideas and architectural patterns upon which Apache Isis builds.</p>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_philosophy_domain-driven-design">1.1.1. Domain-Driven Design</h4>
-<div class="paragraph">
-<p>This section describes some of the core ideas and architectural patterns upon which Apache Isis builds.</p>
-</div>
+<h4 id="_ug_core-concepts_philosophy_domain-driven-design">2.1.1. Domain-Driven Design</h4>
 <div class="paragraph">
 <p>There&#8217;s no doubt that we developers love the challenge of understanding and deploying complex technologies. But understanding the nuances and subtleties of the business domain itself is just as great a challenge, perhaps more so. If we devoted our efforts to understanding and addressing those subtleties, we could build better, cleaner, and more maintainable software that did a better job for our stakeholders. And there&#8217;s no doubt that our stakeholders would thank us for it.</p>
 </div>
@@ -617,7 +631,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_philosophy_naked-objects-pattern">1.1.2. Naked Objects Pattern</h4>
+<h4 id="_ug_core-concepts_philosophy_naked-objects-pattern">2.1.2. Naked Objects Pattern</h4>
 <div class="paragraph">
 <p>Apache Isis implements the naked objects pattern, originally formulated by Richard Pawson.  So who better than Richard to explain the origination of the idea?</p>
 </div>
@@ -725,7 +739,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_philosophy_hexagonal-architecture">1.1.3. Hexagonal Architecture</h4>
+<h4 id="_ug_core-concepts_philosophy_hexagonal-architecture">2.1.3. Hexagonal Architecture</h4>
 <div class="paragraph">
 <p>One of the patterns that Evans discusses in his book is that of a <strong>layered architecture</strong>.  In it he describes why the domain model lives in its own layer within the architecture. The other layers of the application (usually presentation, application, and persistence) have their own responsibilities, and are completely separate.  Each layer is cohesive and depending only on the layers below.  In particular, we have a layer dedicated to the domain model. The code in this layer is unencumbered with the (mostly technical) responsibilities of the other layers and so can evolve to tackle complex domains as well as simple ones.</p>
 </div>
@@ -766,7 +780,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_philosophy_aop">1.1.4. Aspect Oriented</h4>
+<h4 id="_ug_core-concepts_philosophy_aop">2.1.4. Aspect Oriented</h4>
 <div class="paragraph">
 <p>Although not a book about object modelling, Evans' "Domain Driven Design" does use object orientation as its primary modelling tool; while <a href="#_ug_core-concepts_philosophy_naked-objects-pattern">naked objects pattern</a> very much comes from an OO background (it even has 'object' in its name); Richard Pawson lists Alan Kay as a key influence.</p>
 </div>
@@ -814,7 +828,7 @@ table.CodeRay td.code>pre{padding:0}
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_philosophy_how-eases-ddd">1.1.5. How Apache Isis eases DDD</h4>
+<h4 id="_ug_core-concepts_philosophy_how-eases-ddd">2.1.5. How Apache Isis eases DDD</h4>
 <div class="paragraph">
 <p>The case for  <em>DDD</em> might be compelling, but that doesn&#8217;t necessarily make it easy to do. Let&#8217;s take a look at some of the
 challenges that  <em>DDD</em> throws up and see how Apache Isis (and its implementation of the naked objects pattern) helps address them.</p>
@@ -902,7 +916,7 @@ challenges that  <em>DDD</em> throws up and see how Apache Isis (and its impleme
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_core-concepts_principles">1.2. Principles and Values</h3>
+<h3 id="_ug_core-concepts_principles">2.2. Principles and Values</h3>
 <div class="paragraph">
 <p>This section describes some of the core principles and values that the framework aims to honour and support.</p>
 </div>
@@ -913,7 +927,7 @@ challenges that  <em>DDD</em> throws up and see how Apache Isis (and its impleme
 <p>The section concludes by contrasting the framework with some other open source frameworks commonly used.</p>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_principles_your-apps">1.2.1. Your Applications</h4>
+<h4 id="_ug_core-concepts_principles_your-apps">2.2.1. Your Applications</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1001,7 +1015,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_principles_isis-itself">1.2.2. Apache Isis itself</h4>
+<h4 id="_ug_core-concepts_principles_isis-itself">2.2.2. Apache Isis itself</h4>
 <div class="paragraph">
 <p>This section discusses some of the principles and values we apply to the development of the Apache Isis framework itself.</p>
 </div>
@@ -1094,7 +1108,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_core-concepts_principles_apache-isis-vs">1.2.3. Apache Isis vs &#8230;&#8203;</h4>
+<h4 id="_ug_core-concepts_principles_apache-isis-vs">2.2.3. Apache Isis vs &#8230;&#8203;</h4>
 <div class="paragraph">
 <p>Many other frameworks promise rapid application development and provide automatically generated user interfaces, so how
 do they compare to Apache Isis?</p>
@@ -1195,7 +1209,7 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_core-concepts_building-blocks">1.3. Building Blocks</h3>
+<h3 id="_ug_core-concepts_building-blocks">2.3. Building Blocks</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1209,7 +1223,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_a_metamodel_with_explicit_and_inferred_semantics">1.3.1. A MetaModel with Explicit and Inferred Semantics</h4>
+<h4 id="_a_metamodel_with_explicit_and_inferred_semantics">2.3.1. A MetaModel with Explicit and Inferred Semantics</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1241,7 +1255,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_domain_objects_and_domain_services">1.3.2. Domain Objects and Domain Services</h4>
+<h4 id="_domain_objects_and_domain_services">2.3.2. Domain Objects and Domain Services</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1289,7 +1303,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_properties_collections_and_actions">1.3.3. Properties, Collections and Actions</h4>
+<h4 id="_properties_collections_and_actions">2.3.3. Properties, Collections and Actions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1304,7 +1318,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_domain_entities_vs_view_models">1.3.4. Domain Entities vs View Models</h4>
+<h4 id="_domain_entities_vs_view_models">2.3.4. Domain Entities vs View Models</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1322,7 +1336,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_domain_services">1.3.5. Domain Services</h4>
+<h4 id="_domain_services">2.3.5. Domain Services</h4>
 <div class="paragraph">
 <p>Domain services consist of a set of logically grouped actions, and as such follow the same conventions as for entities. However, a service cannot have (persisted) properties, nor can it have (persisted) collections.</p>
 </div>
@@ -1363,7 +1377,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_value_objects_primitives">1.3.6. Value Objects (Primitives)</h4>
+<h4 id="_value_objects_primitives">2.3.6. Value Objects (Primitives)</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1378,7 +1392,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_contributions">1.3.7. Contributions</h4>
+<h4 id="_contributions">2.3.7. Contributions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1393,7 +1407,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_event_bus">1.3.8. Event Bus</h4>
+<h4 id="_event_bus">2.3.8. Event Bus</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -1409,7 +1423,7 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_core-concepts_framework-provided-services">1.4. Framework-provided Services</h3>
+<h3 id="_ug_core-concepts_framework-provided-services">2.4. Framework-provided Services</h3>
 <div class="paragraph">
 <p>Most framework domain services are API: they exist to provide support functionality to the application&#8217;s domain objects and services.  In this case an implementation of the service will be available, either by Apache Isis itself or by Isis Addons (non ASF).</p>
 </div>
@@ -1522,7 +1536,7 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_core-concepts_add-ons">1.5. Isis Add-ons</h3>
+<h3 id="_ug_core-concepts_add-ons">2.5. Isis Add-ons</h3>
 <div class="paragraph">
 <p>The <a href="http://www.isisaddons.org">Isis Addons</a> website provides a number of reusable modules and other extensions for Apache Isis.  This chapter focuses just on the modules, all of which have a name of the form <code>isis-module-xxx</code>.</p>
 </div>
@@ -1576,7 +1590,7 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_core-concepts_other-deployment-options">1.6. Other Deployment Options</h3>
+<h3 id="_ug_core-concepts_other-deployment-options">2.6. Other Deployment Options</h3>
 <div class="paragraph">
 <p>Apache Isis is a mature platform suitable for production deployment, with its "sweet spot" being line-of-business enterprise applications.  So if you&#8217;re looking to develop that sort of application, we certainly hope you&#8217;ll seriously evaluate it.</p>
 </div>
@@ -1584,7 +1598,7 @@ TODO
 <p>But there are other ways that you can make Apache Isis work for you; in this chapter we explore a few of them.</p>
 </div>
 <div class="sect3">
-<h4 id="_deploy_to_production">1.6.1. Deploy to production</h4>
+<h4 id="_deploy_to_production">2.6.1. Deploy to production</h4>
 <div class="paragraph">
 <p>Let&#8217;s start though with the default use case for Apache Isis: building line-of-business enterprise applications, on top of its Wicket viewer.</p>
 </div>
@@ -1599,7 +1613,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_use_for_prototyping">1.6.2. Use for prototyping</h4>
+<h4 id="_use_for_prototyping">2.6.2. Use for prototyping</h4>
 <div class="paragraph">
 <p>Even if you don&#8217;t intend to deploy your application on top of Apache Isis, there can be a lot of value in using Apache Isis for prototyping.  Because all you need do to get an app running is write domain objects, you can very quickly explore a domain object model and validate ideas with a domain expert.</p>
 </div>
@@ -1611,7 +1625,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_deploy_on_your_own_platform">1.6.3. Deploy on your own platform</h4>
+<h4 id="_deploy_on_your_own_platform">2.6.3. Deploy on your own platform</h4>
 <div class="paragraph">
 <p>The programming model defined by Apache Isis deliberately minimizes the dependencies on the rest of the framework. In fact, the only hard dependency that the domain model classes have on Apache Isis is through the <code>org.apache.isis.applib</code> classes, mostly to pick up annotations such as <code>@Disabled</code>.
 So, if you have used Apache Isis for prototyping (discussed above), then note that it&#8217;s quite feasible to take your domain model a the basis of your actual development effort; Apache Isis' annotations and programming conventions will help ensure that any subtle semantics you might have captured in your prototyping are not lost.</p>
@@ -1621,7 +1635,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_deploy_the_rest_api">1.6.4. Deploy the REST API</h4>
+<h4 id="_deploy_the_rest_api">2.6.4. Deploy the REST API</h4>
 <div class="paragraph">
 <p>REST (Representation State Transfer) is an architectural style for building highly scalable distributed systems, using the same principles as the World Wide Web. Many commercial web APIs (twitter, facebook, Amazon) are implemented as either pure REST APIs or some approximation therein.</p>
 </div>
@@ -1655,7 +1669,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_implement_your_own_viewer">1.6.5. Implement your own viewer</h4>
+<h4 id="_implement_your_own_viewer">2.6.5. Implement your own viewer</h4>
 <div class="paragraph">
 <p>Isis' architecture was always designed to support multiple viewers; and indeed Apache Isis out-of-the-box supports two: the Wicket viewer, and the Restful Objects viewer (or three, if one includes the Wrapper Factory).</p>
 </div>
@@ -1667,7 +1681,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 </div>
 </div>
 <div class="sect1">
-<h2 id="_ug_getting-started">2. Getting Started</h2>
+<h2 id="_ug_getting-started">3. Getting Started</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>To get you up and running quickly, Apache Isis provides a <a href="#_ug_getting-started_simpleapp-archetype">SimpleApp archetype</a> to setup a simple application as the basis of your own apps.  This is deliberately very minimal so that you won&#8217;t have to spend lots of time removing generated artifacts.  On the other hand, it does set up a standard multi-module maven structure with unit- and integration tests pre-configured, as well as a webapp module so that you can easily run your app.  We strongly recommend that you preserve this structure as you develop your own Isis application.</p>
@@ -1690,7 +1704,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 </table>
 </div>
 <div class="sect2">
-<h3 id="_prerequisites">2.1. Prerequisites</h3>
+<h3 id="_prerequisites">3.1. Prerequisites</h3>
 <div class="paragraph">
 <p>Apache Isis is a Java based framework, so in terms of prerequisites, you&#8217;ll need to install:</p>
 </div>
@@ -1715,7 +1729,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_getting-started_simpleapp-archetype">2.2. SimpleApp Archetype</h3>
+<h3 id="_ug_getting-started_simpleapp-archetype">3.2. SimpleApp Archetype</h3>
 <div class="paragraph">
 <p>The quickest way to get started with Apache Isis is to run the simple archetype.  This will generate a very simple one-class domain model, called <code>SimpleObject</code>, with a single property <code>name</code>.</p>
 </div>
@@ -1723,7 +1737,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 <p>There is also a corresponding <code>SimpleObjectRepository</code> domain service.  From this you can easily rename these initial classes, and extend to build up your own Apache Isis domain application.</p>
 </div>
 <div class="sect3">
-<h4 id="_generating_the_app">2.2.1. Generating the App</h4>
+<h4 id="_generating_the_app">3.2.1. Generating the App</h4>
 <div class="paragraph">
 <p>Create a new directory, and <code>cd</code> into that directory.</p>
 </div>
@@ -1814,7 +1828,7 @@ So, if you have used Apache Isis for prototyping (discussed above), then note th
 </div>
 </div>
 <div class="sect3">
-<h4 id="_building_the_app">2.2.2. Building the App</h4>
+<h4 id="_building_the_app">3.2.2. Building the App</h4>
 <div class="paragraph">
 <p>Switch into the root directory of your newly generated app, and build your app:</p>
 </div>
@@ -1829,7 +1843,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_running_the_app">2.2.3. Running the App</h4>
+<h4 id="_running_the_app">3.2.3. Running the App</h4>
 <div class="paragraph">
 <p>The <code>simpleapp</code> archetype generates a single WAR file, configured to run both the <a href="#_ug_wicket-viewer">Wicket viewer</a> and the <a href="#_ug_restfulobjects-viewer">Restful Objects viewer</a>.  The archetype also configures the [JDO Objectstore](../../components/objectstores/jdo/about.html) to use an in-memory HSQLDB connection.</p>
 </div>
@@ -1904,7 +1918,7 @@ mvn jetty:run -D jetty.port=9090</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_running_with_fixtures">2.2.4. Running with Fixtures</h4>
+<h4 id="_running_with_fixtures">3.2.4. Running with Fixtures</h4>
 <div class="paragraph">
 <p>It is also possible to start the application with a pre-defined set of data; useful for demos or manual exploratory testing.  This is done by specifying a <a href="#_ug_testing_fixture-scripts">fixture script</a> on the command line.</p>
 </div>
@@ -1932,7 +1946,7 @@ script to be run.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_using_the_app">2.2.5. Using the App</h4>
+<h4 id="_using_the_app">3.2.5. Using the App</h4>
 <div class="paragraph">
 <p>When you start the app, you&#8217;ll be presented with a welcome page from which you can access the webapp using either the <a href="#_ug_wicket-viewer">Wicket viewer</a> or the <a href="#_ug_restfulobjects-viewer">Restful Objects viewer</a>:</p>
 </div>
@@ -2093,7 +2107,7 @@ script to be run.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_modifying_the_app">2.2.6. Modifying the App</h4>
+<h4 id="_modifying_the_app">3.2.6. Modifying the App</h4>
 <div class="paragraph">
 <p>Once you are familiar with the generated app, you&#8217;ll want to start modifying it.  There is plenty of guidance on this site; check out the 'programming model how-tos' section on the main [documentation](../../documentation.html) page first).</p>
 </div>
@@ -2102,7 +2116,7 @@ script to be run.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_app_structure">2.2.7. App Structure</h4>
+<h4 id="_app_structure">3.2.7. App Structure</h4>
 <div class="paragraph">
 <p>As noted above, the generated app is a very simple application consisting of a single domain object that can be easily renamed and extended. The intention is not to showcase all of Apache Isis' capabilities; rather it is to allow you to very easily modify the generated application (eg rename <code>SimpleObject</code> to <code>Customer</code>) without having to waste time deleting lots of generated code.</p>
 </div>
@@ -2122,7 +2136,7 @@ script to be run.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_getting-started_datanucleus-enhancer">2.3. Datanucleus Enhancer</h3>
+<h3 id="_ug_getting-started_datanucleus-enhancer">3.3. Datanucleus Enhancer</h3>
 <div class="paragraph">
 <p><a href="http://www.datanucleus.org/">DataNucleus</a> is the reference implementation of the JDO (Java data objects) spec, and Apache Isis integrates with DataNucleus as its persistence layer.  Datanucleus is a very powerful library, allowing domain entities to be mapped not only to relational database tables, but also to NoSQL stores such as <a href="http://neo4j.com/">Neo4J</a>, <a href="http://www.mongodb.org/">MongoDB</a> and <a href="http://cassandra.apache.org/">Apache Cassandra</a>.</p>
 </div>
@@ -2217,7 +2231,7 @@ script to be run.</p>
 <p>The <a href="#_ug_getting-started_simpleapp-archetype">SimpleApp archetype</a>  sets up the plugin correctly in the <code>dom</code> (domain object model) module.  (It&#8217;s actually a little bit more complex to cater for users of the Eclipse IDE using Eclipse&#8217;s m2e plugin).</p>
 </div>
 <div class="sect3">
-<h4 id="__code_meta_inf_persistence_xml_code">2.3.1. <code>META-INF/persistence.xml</code></h4>
+<h4 id="__code_meta_inf_persistence_xml_code">3.3.1. <code>META-INF/persistence.xml</code></h4>
 <div class="paragraph">
 <p>It&#8217;s also a good idea to ensure that the <code>dom</code> module has a JDO <code>META-INF/persistence.xml</code> file:</p>
 </div>
@@ -2266,7 +2280,7 @@ script to be run.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_ug_tutorials">3. Tutorials</h2>
+<h2 id="_ug_tutorials">4. Tutorials</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This chapter contains a couple of tutorials for you to follow.</p>
@@ -2285,7 +2299,7 @@ script to be run.</p>
 <p>Have fun!</p>
 </div>
 <div class="sect2">
-<h3 id="_ug_tutorials_pet-clinic">3.1. Pet Clinic</h3>
+<h3 id="_ug_tutorials_pet-clinic">4.1. Pet Clinic</h3>
 <div class="paragraph">
 <p>This is a step-by-step tutorial to build up a simple "petclinic" application, starting from the <a href="#_ug_getting-started_simpleapp-archetype">SimpleApp archetype</a>.</p>
 </div>
@@ -2326,7 +2340,7 @@ script to be run.</p>
 <p>Either follow along or check out the tags from the corresponding <a href="https://github.com/danhaywood/isis-app-petclinic">github repo</a>.</p>
 </div>
 <div class="sect3">
-<h4 id="_prerequisites_2">3.1.1. Prerequisites</h4>
+<h4 id="_prerequisites_2">4.1.1. Prerequisites</h4>
 <div class="paragraph">
 <p>You&#8217;ll need:</p>
 </div>
@@ -2345,7 +2359,7 @@ script to be run.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_run_the_archetype">3.1.2. Run the archetype</h4>
+<h4 id="_run_the_archetype">4.1.2. Run the archetype</h4>
 <div class="paragraph">
 <p>Throughout this tutorial you can, if you wish, just checkout from the github repo wherever you see a "git checkout" note:</p>
 </div>
@@ -2406,7 +2420,7 @@ rmdir petclinic</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_build_and_run">3.1.3. Build and run</h4>
+<h4 id="_build_and_run">4.1.3. Build and run</h4>
 <div class="paragraph">
 <p>Start off by building the app from the command line:</p>
 </div>
@@ -2439,7 +2453,7 @@ rmdir petclinic</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_using_the_app_2">3.1.4. Using the app</h4>
+<h4 id="_using_the_app_2">4.1.4. Using the app</h4>
 <div class="paragraph">
 <p>Navigate to the Wicket UI (eg <a href="http://localhost:8080/wicket">http://localhost:8080/wicket</a>), and login (sven/pass).</p>
 </div>
@@ -2498,7 +2512,7 @@ rmdir petclinic</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_dev_environment">3.1.5. Dev environment</h4>
+<h4 id="_dev_environment">4.1.5. Dev environment</h4>
 <div class="paragraph">
 <p>Set up <a href="dg.adoc">an IDE</a> and import the project to be able to run and debug the app.</p>
 </div>
@@ -2529,7 +2543,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_explore_codebase">3.1.6. Explore codebase</h4>
+<h4 id="_explore_codebase">4.1.6. Explore codebase</h4>
 <div class="paragraph">
 <p>Apache Isis applications are organized into several Maven modules. Within your IDE navigate to the various classes and correlate back to the generated UI:</p>
 </div>
@@ -2578,7 +2592,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_testing">3.1.7. Testing</h4>
+<h4 id="_testing">4.1.7. Testing</h4>
 <div class="paragraph">
 <p>Testing is of course massively important, and Apache Isis makes both unit testing and (end-to-end) integration testing easy. Building the app from the Maven command line ("mvn clean install") will run all tests, but you should also run the tests from within the IDE.</p>
 </div>
@@ -2643,7 +2657,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_update_pom_files">3.1.8. Update POM files</h4>
+<h4 id="_update_pom_files">4.1.8. Update POM files</h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -2665,7 +2679,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_delete_the_bdd_specs">3.1.9. Delete the BDD specs</h4>
+<h4 id="_delete_the_bdd_specs">4.1.9. Delete the BDD specs</h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -2700,7 +2714,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rename_artifacts">3.1.10. Rename artifacts</h4>
+<h4 id="_rename_artifacts">4.1.10. Rename artifacts</h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -2928,7 +2942,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_update_package_names">3.1.11. Update package names</h4>
+<h4 id="_update_package_names">4.1.11. Update package names</h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -2971,7 +2985,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_add_code_petspecies_code_enum">3.1.12. Add <code>PetSpecies</code> enum</h4>
+<h4 id="_add_code_petspecies_code_enum">4.1.12. Add <code>PetSpecies</code> enum</h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -3022,7 +3036,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_icon_to_reflect_pet_species">3.1.13. Icon to reflect pet species</h4>
+<h4 id="_icon_to_reflect_pet_species">4.1.13. Icon to reflect pet species</h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -3074,7 +3088,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_add_pet_s_code_owner_code">3.1.14. Add pet&#8217;s <code>Owner</code></h4>
+<h4 id="_add_pet_s_code_owner_code">4.1.14. Add pet&#8217;s <code>Owner</code></h4>
 <div class="admonitionblock tip">
 <table>
 <tr>
@@ -3187,7 +3201,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_tutorials_stop-scaffolding-start-coding">3.2. Stop scaffolding, start coding</h3>
+<h3 id="_ug_tutorials_stop-scaffolding-start-coding">4.2. Stop scaffolding, start coding</h3>
 <div class="paragraph">
 <p>This is a half-day tutorial on developing domain-driven apps using Apache Isis.  Actually, you could probably spend a full day working through this tutorial if you wanted to, so pick and choose the bits that look interesting.</p>
 </div>
@@ -3195,7 +3209,7 @@ every time, specify the following system properties:</p>
 <p>There&#8217;s a bit of overlap with the <a href="#_ug_tutorials_pet-clinic">Pet Clinic</a> tutorial initially, but it then sets off on its own.</p>
 </div>
 <div class="sect3">
-<h4 id="_prerequisites_3">3.2.1. Prerequisites</h4>
+<h4 id="_prerequisites_3">4.2.1. Prerequisites</h4>
 <div class="paragraph">
 <p>You&#8217;ll need:</p>
 </div>
@@ -3214,7 +3228,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_run_the_archetype_2">3.2.2. Run the archetype</h4>
+<h4 id="_run_the_archetype_2">4.2.2. Run the archetype</h4>
 <div class="paragraph">
 <p>Run the simpleapp archetype to build an empty Isis application:</p>
 </div>
@@ -3233,7 +3247,7 @@ every time, specify the following system properties:</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_build_and_run_2">3.2.3. Build and run</h4>
+<h4 id="_build_and_run_2">4.2.3. Build and run</h4>
 <div class="paragraph">
 <p>Start off by building the app from the command line:</p>
 </div>
@@ -3267,7 +3281,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_using_the_app_3">3.2.4. Using the app</h4>
+<h4 id="_using_the_app_3">4.2.4. Using the app</h4>
 <div class="paragraph">
 <p>Navigate to the Wicket UI (eg <a href="http://localhost:8080/wicket">http://localhost:8080/wicket</a>), and login (sven/pass).</p>
 </div>
@@ -3295,7 +3309,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_dev_environment_2">3.2.5. Dev environment</h4>
+<h4 id="_dev_environment_2">4.2.5. Dev environment</h4>
 <div class="paragraph">
 <p>Set up <a href="dg.adoc">an IDE</a> and import the project to be able to run and debug the app.</p>
 </div>
@@ -3323,7 +3337,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_explore_codebase_2">3.2.6. Explore codebase</h4>
+<h4 id="_explore_codebase_2">4.2.6. Explore codebase</h4>
 <div class="paragraph">
 <p>Apache Isis applications are organized into several Maven modules. Within your IDE navigate to the various classes and correlate back to the generated UI:</p>
 </div>
@@ -3360,7 +3374,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_testing_2">3.2.7. Testing</h4>
+<h4 id="_testing_2">4.2.7. Testing</h4>
 <div class="paragraph">
 <p>Testing is of course massively important, and Apache Isis makes both unit testing and (end-to-end) integration testing easy. Building the app from the Maven command line ("mvn clean install") will run all tests, but you should also run the tests from within the IDE.</p>
 </div>
@@ -3425,7 +3439,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_prototyping">3.2.8. Prototyping</h4>
+<h4 id="_prototyping">4.2.8. Prototyping</h4>
 <div class="paragraph">
 <p>Although testing is important, in this tutorial we want to concentrate on how to write features and to iterate quickly. So for now, exclude the <code>integtests</code> module. Later on in the tutorial we&#8217;ll add the tests back in so you can learn how to write automated tests for the features of your app.</p>
 </div>
@@ -3459,7 +3473,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_build_a_domain_app">3.2.9. Build a domain app</h4>
+<h4 id="_build_a_domain_app">4.2.9. Build a domain app</h4>
 <div class="paragraph">
 <p>The remainder of the tutorial provides guidance on building a domain application. We don&#8217;t mandate any particular design, but we suggest one with no more than 3 to 6 domain entities in the first instance. If you&#8217;re stuck for ideas, then how about:</p>
 </div>
@@ -3499,7 +3513,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_domain_entity">3.2.10. Domain entity</h4>
+<h4 id="_domain_entity">4.2.10. Domain entity</h4>
 <div class="paragraph">
 <p>Most domain objects in Apache Isis applications are persistent entities. In the simpleapp archetype the <code>SimpleObject</code> is an example. We can start developing our app by refactoring that class:</p>
 </div>
@@ -3541,7 +3555,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_domain_service">3.2.11. Domain service</h4>
+<h4 id="_domain_service">4.2.11. Domain service</h4>
 <div class="paragraph">
 <p>Domain services often act as factories or repositories to entities; more generally can be used to "bridge across" to other domains/bounded contexts. Most are application-scoped, but they can also be request-scoped if required.</p>
 </div>
@@ -3619,7 +3633,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_fixture_scripts">3.2.12. Fixture scripts</h4>
+<h4 id="_fixture_scripts">4.2.12. Fixture scripts</h4>
 <div class="paragraph">
 <p>Fixture scripts are used to setup the app into a known state. They are great for demo&#8217;s and as a time-saver when implementing a feature, and they can also be reused in automated integration tests. We usually also have a fixture script to zap all the (non-reference) data (or some logical subset of the data)</p>
 </div>
@@ -3650,7 +3664,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_actions">3.2.13. Actions</h4>
+<h4 id="_actions">4.2.13. Actions</h4>
 <div class="paragraph">
 <p>Most business functionality is implemented using actions� basically a <code>public</code> 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.</p>
 </div>
@@ -3678,7 +3692,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_rest_api">3.2.14. REST API</h4>
+<h4 id="_rest_api">4.2.14. REST API</h4>
 <div class="paragraph">
 <p>As well as exposing the Wicket viewer, Isis also exposes a REST API (an implementation of the <a href="http://restfulobjects.org">Restful Objects spec</a>). All of the functionality of the domain object model is available through this REST API.</p>
 </div>
@@ -3715,7 +3729,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_specify_action_semantics">3.2.15. Specify Action semantics</h4>
+<h4 id="_specify_action_semantics">4.2.15. Specify Action semantics</h4>
 <div class="paragraph">
 <p>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.</p>
 </div>
@@ -3734,7 +3748,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_value_properties">3.2.16. Value properties</h4>
+<h4 id="_value_properties">4.2.16. Value properties</h4>
 <div class="paragraph">
 <p>Domain entities have state: either values (primitives, strings) or references to other entities. In this section we explore adding some value properties</p>
 </div>
@@ -3808,7 +3822,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_reference_properties">3.2.17. Reference properties</h4>
+<h4 id="_reference_properties">4.2.17. Reference properties</h4>
 <div class="paragraph">
 <p>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.</p>
 </div>
@@ -3860,7 +3874,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_usability_defaults">3.2.18. Usability: Defaults</h4>
+<h4 id="_usability_defaults">4.2.18. Usability: Defaults</h4>
 <div class="paragraph">
 <p>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.</p>
 </div>
@@ -3873,7 +3887,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_collections">3.2.19. Collections</h4>
+<h4 id="_collections">4.2.19. Collections</h4>
 <div class="paragraph">
 <p>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)</p>
 </div>
@@ -3916,7 +3930,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_actions_and_collections">3.2.20. Actions and Collections</h4>
+<h4 id="_actions_and_collections">4.2.20. Actions and Collections</h4>
 <div class="paragraph">
 <p>The Wicket UI doesn&#8217;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&#8217;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.</p>
 </div>
@@ -3945,7 +3959,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_css_ui_hints">3.2.21. CSS UI Hints</h4>
+<h4 id="_css_ui_hints">4.2.21. CSS UI Hints</h4>
 <div class="paragraph">
 <p>CSS classes can be associated with any class member (property, collection, action). But for actions in particular:</p>
 </div>
@@ -3968,7 +3982,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_dynamic_layout">3.2.22. Dynamic Layout</h4>
+<h4 id="_dynamic_layout">4.2.22. Dynamic Layout</h4>
 <div class="paragraph">
 <p>Up to this point we&#8217;ve been using annotations (<code>@MemberOrder</code>, <code>@MemberGroupLayout</code>, <code>@Named</code>, <code>@PropertyLayout</code>, <code>@ParameterLayout</code>, <code>@ActionLayout</code> 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 <code>.layout.json</code> file. If edited while the app is running, it will be reloaded automatically (in IntelliJ, use Run&gt;Reload Changed Classes):</p>
 </div>
@@ -3981,7 +3995,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_business_rules">3.2.23. Business rules</h4>
+<h4 id="_business_rules">4.2.23. Business rules</h4>
 <div class="paragraph">
 <p>Apache Isis excels for domains where there are complex business rules to enforce. The UI tries not to constrain the user from navigating around freely, however the domain objects nevertheless ensure that they cannot change into an invalid state. Such rules can be enforced either declaratively (using annotations) or imperatively (using code). The objects can do this in one of three ways:</p>
 </div>
@@ -4075,7 +4089,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_home_page">3.2.24. Home page</h4>
+<h4 id="_home_page">4.2.24. Home page</h4>
 <div class="paragraph">
 <p>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.</p>
 </div>
@@ -4088,7 +4102,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_clock_service">3.2.25. Clock Service</h4>
+<h4 id="_clock_service">4.2.25. Clock Service</h4>
 <div class="paragraph">
 <p>To ensure testability, there should be no dependencies on system time, for example usage of <code>LocalDate.now()</code>. Instead the domain objects should delegate to the provided <code>ClockService</code>.</p>
 </div>
@@ -4107,7 +4121,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_using_contributions">3.2.26. Using Contributions</h4>
+<h4 id="_using_contributions">4.2.26. Using Contributions</h4>
 <div class="paragraph">
 <p>One of Apache Isis' most powerful features is the ability for the UI to combine functionality from domain services into the representation of an entity. The effect is similar to traits or mix-ins in other languages, however the "mixing in" is done at runtime, within the Apache Isis metamodel. In Apache Isis' terminology, we say that the domain service action is contributed to the entity.</p>
 </div>
@@ -4230,7 +4244,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_using_the_event_bus">3.2.27. Using the Event Bus</h4>
+<h4 id="_using_the_event_bus">4.2.27. Using the Event Bus</h4>
 <div class="paragraph">
 <p>Another way in which Apache Isis helps you keep your application nicely modularized is through its event bus. Each action invocation, or property modification, can be used to generate a succession of events that allows subscribers to veto the interaction (the see it/use it/do it rules) or, if the action is allowed, to perform work prior to the execution of the action or after the execution of the action.</p>
 </div>
@@ -4258,7 +4272,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_bulk_actions">3.2.28. Bulk actions</h4>
+<h4 id="_bulk_actions">4.2.28. Bulk actions</h4>
 <div class="paragraph">
 <p>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 <a href="rg.html#_rg_annotations_manpage-Action_invokeOn"><code>@action(invokeOn=OBJECT_AND_COLLECTION)</code></a> annotation.</p>
 </div>
@@ -4302,7 +4316,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_performance_tuning">3.2.29. Performance tuning</h4>
+<h4 id="_performance_tuning">4.2.29. Performance tuning</h4>
 <div class="paragraph">
 <p>The <a href="rg.html#_rg_services-api_manpage-QueryResultsCache"><code>QueryResultsCache</code></a> (request-scoped) domain service allows arbitrary objects to be cached for the duration of a request.</p>
 </div>
@@ -4321,7 +4335,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_extending_the_wicket_ui">3.2.30. Extending the Wicket UI</h4>
+<h4 id="_extending_the_wicket_ui">4.2.30. Extending the Wicket UI</h4>
 <div class="paragraph">
 <p>Each element in the Wicket viewer (entity form, properties, collections, action button etc) is a component, each created by a internal API (<code>ComponentFactory</code>, described <a href="#_ug_extending_wicket-viewer">here</a>). For collections there can be multiple views, and the Wicket viewer provides a view selector drop down (top right of each collection panel).</p>
 </div>
@@ -4387,7 +4401,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_add_on_modules_optional">3.2.31. Add-on modules (optional)</h4>
+<h4 id="_add_on_modules_optional">4.2.31. Add-on modules (optional)</h4>
 <div class="paragraph">
 <p>In addition to providing Wicket viewer extensions, <a href="http://www.isisaddons.org/">Isis addons</a> also has a large number of modules. These address such cross-cutting concerns as security, command (profiling), auditing and publishing.</p>
 </div>
@@ -4406,7 +4420,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_view_models">3.2.32. View models</h4>
+<h4 id="_view_models">4.2.32. View models</h4>
 <div class="paragraph">
 <p>In most cases users can accomplish the business operations they need by invoking actions directly on domain entities. For some high-volume or specialized uses cases, though, there may be a requirement to bring together data or functionality that spans several entities.</p>
 </div>
@@ -4428,7 +4442,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_testing_3">3.2.33. Testing</h4>
+<h4 id="_testing_3">4.2.33. Testing</h4>
 <div class="paragraph">
 <p>Up to this point we&#8217;ve been introducing the features of Isis and building out our domain application, but with little regard to testing. Time to fix that.</p>
 </div>
@@ -4497,7 +4511,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_customising_the_rest_api">3.2.34. Customising the REST API</h4>
+<h4 id="_customising_the_rest_api">4.2.34. Customising the REST API</h4>
 <div class="paragraph">
 <p>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.</p>
 </div>
@@ -4515,7 +4529,7 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_configuring_to_use_an_external_database">3.2.35. Configuring to use an external database</h4>
+<h4 id="_configuring_to_use_an_external_database">4.2.35. Configuring to use an external database</h4>
 <div class="paragraph">
 <p>If you have an external database available, then update the <code>pom.xml</code> for the classpath and update the JDBC properties in <code>WEB-INF\persistor.properties</code> to point to your database.</p>
 </div>
@@ -4524,13 +4538,13 @@ mvn clean install</code></pre>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_ug_how-tos">4. How tos</h2>
+<h2 id="_ug_how-tos">5. How tos</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This chapter provides instructions on how to go about actually developing Apache Isis domain applications.</p>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_class-structure">4.1. Class Structure</h3>
+<h3 id="_ug_how-tos_class-structure">5.1. Class Structure</h3>
 <div class="paragraph">
 <p>Apache Isis works by building a metamodel of the domain objects: entities, view models and services.  The class members of both entities and view models represent both state&#8201;&#8212;&#8201;(single-valued) properties and (multi-valued) collections&#8201;&#8212;&#8201;and behaviour&#8201;&#8212;&#8201;actions.  The class members of domain services is simpler: just behaviour, ie actions.</p>
 </div>
@@ -4564,7 +4578,7 @@ mvn clean install</code></pre>
 </table>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_class-definition">4.1.1. Class Definition</h4>
+<h4 id="_ug_how-tos_class-structure_class-definition">5.1.1. Class Definition</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -4602,7 +4616,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_properties">4.1.2. Property</h4>
+<h4 id="_ug_how-tos_class-structure_properties">5.1.2. Property</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -4960,7 +4974,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_collections">4.1.3. Collections</h4>
+<h4 id="_ug_how-tos_class-structure_collections">5.1.3. Collections</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -4998,7 +5012,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_actions">4.1.4. Actions</h4>
+<h4 id="_ug_how-tos_class-structure_actions">5.1.4. Actions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5030,7 +5044,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_action-parameters">4.1.5. Action Parameters</h4>
+<h4 id="_ug_how-tos_class-structure_action-parameters">5.1.5. Action Parameters</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5090,7 +5104,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_inject-services">4.1.6. Injecting services</h4>
+<h4 id="_ug_how-tos_class-structure_inject-services">5.1.6. Injecting services</h4>
 <div class="paragraph">
 <p>Apache Isis autowires (automatically injects) domain services into each entity, as well as into the domain services themselves, using either method injection or field injection. The applib <code>DomainObjectContainer</code> is also a service, so can be injected in exactly the same manner.</p>
 </div>
@@ -5176,7 +5190,7 @@ public, and has a single parameter of the correct type.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_properties-vs-parameters">4.1.7. Properties vs Parameters</h4>
+<h4 id="_ug_how-tos_class-structure_properties-vs-parameters">5.1.7. Properties vs Parameters</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5240,7 +5254,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_class-structure_ignoring-methods">4.1.8. Ignoring Methods</h4>
+<h4 id="_ug_how-tos_class-structure_ignoring-methods">5.1.8. Ignoring Methods</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5262,12 +5276,12 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_ui-hints">4.2. UI Hints</h3>
+<h3 id="_ug_how-tos_ui-hints">5.2. UI Hints</h3>
 <div class="paragraph">
 <p>The Apache Isis programming model includes several mechanisms for a domain object to provide UI hints.  These range from their title (so an end-user can distinguish one object from another) through to hints that can impact their CSS styling.</p>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_ui-hints_object-titles-and-icons">4.2.1. Object Titles and Icons</h4>
+<h4 id="_ug_how-tos_ui-hints_object-titles-and-icons">5.2.1. Object Titles and Icons</h4>
 <div class="paragraph">
 <p>In Apache Isis every object is identified to the user by a title (label) and an icon.  This is shown in several places: as the main heading for an object; as a link text for an object referencing another object, and also in tables representing collections of objects.</p>
 </div>
@@ -5406,7 +5420,7 @@ TODO - <a href="rg.html#_rg_methods_reserved_manpage-cssClass"><code>cssClass()<
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_ui-hints_names-and-descriptions">4.2.2. Names and Descriptions</h4>
+<h4 id="_ug_how-tos_ui-hints_names-and-descriptions">5.2.2. Names and Descriptions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5522,13 +5536,13 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ParameterLayout_named"><code>@Pa
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_ui-hints_layout">4.2.3. Layout</h4>
+<h4 id="_ug_how-tos_ui-hints_layout">5.2.3. Layout</h4>
 <div class="paragraph">
 <p>See the <a href="rg.html#_rg_object-layout">object layout</a> chapter.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_ui-hints_eager-rendering">4.2.4. Eager rendering</h4>
+<h4 id="_ug_how-tos_ui-hints_eager-rendering">5.2.4. Eager rendering</h4>
 <div class="paragraph">
 <p>By default, collections all rendered lazily, in other words in a "collapsed" table view:</p>
 </div>
@@ -5616,7 +5630,7 @@ TODO - screenshot here
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_ui-hints_action-icons-and-css">4.2.5. Action Icons and CSS</h4>
+<h4 id="_ug_how-tos_ui-hints_action-icons-and-css">5.2.5. Action Icons and CSS</h4>
 <div class="paragraph">
 <p>Apache Isis allows <a href="http://fortawesome.github.io/Font-Awesome/icons/">font awesome</a> icons to be associated with each action, and for <a href="http://getbootstrap.com/css/#buttons">Bootstrap CSS</a> to be applied to action rendered as buttons.</p>
 </div>
@@ -5647,7 +5661,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClass"><code>@Ac
 <p>Rather than annotating every action with <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClassFa"><code>@ActionLayout#cssClassFa()</code></a> and <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClass"><code>@ActionLayout#cssClass()</code></a> you can instead specify the UI hint globally using regular expressions.</p>
 </div>
 <div class="paragraph">
-<p>The <a href="#_ug_runtime_configuring-core">configuration property</a> <code>isis.reflector.facet.cssClassFa.patterns</code> is a comma separated list of key:value pairs, eg:</p>
+<p>The <a href="rg.html#_rg_runtime_configuring-core">configuration property</a> <code>isis.reflector.facet.cssClassFa.patterns</code> is a comma separated list of key:value pairs, eg:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -5667,7 +5681,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClass"><code>@Ac
 <p>where the key is a regex matching action names (eg <code>create.*</code>) and the value is a <a href="http://fortawesome.github.io/Font-Awesome/icons/">font-awesome</a> icon name (eg <code>fa-plus</code>) to be applied (as per <code>@CssClassFa()</code>) to all action members matching the regex.</p>
 </div>
 <div class="paragraph">
-<p>Similarly, the <a href="#_ug_runtime_configuring-core">configuration property</a> <code>isis.reflector.facet.cssClass.patterns</code> is a comma separated list of key:value pairs, eg:</p>
+<p>Similarly, the <a href="rg.html#_rg_runtime_configuring-core">configuration property</a> <code>isis.reflector.facet.cssClass.patterns</code> is a comma separated list of key:value pairs, eg:</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -5696,7 +5710,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClass"><code>@Ac
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_domain-services">4.3. Domain Services</h3>
+<h3 id="_ug_how-tos_domain-services">5.3. Domain Services</h3>
 <div class="paragraph">
 <p>It&#8217;s worth extending the <a href="#_ug_core-concepts_philosophy_hexagonal-architecture">Hexagonal Architecture</a> to show where domain services&#8201;&#8212;&#8201;and in particular the domain services provided by <a href="http://www.isisaddons.org">Isis Addons</a> (non-ASF)&#8201;&#8212;&#8201;fit in:</p>
 </div>
@@ -5713,7 +5727,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClass"><code>@Ac
 <p>The Apache Isis framework also provides numerous in-built domain services.  These are catalogued in the reference guide, see <a href="rg.html#_rg_services-api">here</a> and <a href="rg.html#_rg_services-spi">here</a>.</p>
 </div>
 <div class="sect3">
-<h4 id="_scoped_services">4.3.1. Scoped services</h4>
+<h4 id="_scoped_services">5.3.1. Scoped services</h4>
 <div class="paragraph">
 <p>By default all domain services are considered to be singletons, and thread-safe.</p>
 </div>
@@ -5736,7 +5750,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ActionLayout_cssClass"><code>@Ac
 </div>
 </div>
 <div class="sect3">
-<h4 id="_registering_domain_services">4.3.2. Registering domain services</h4>
+<h4 id="_registering_domain_services">5.3.2. Registering domain services</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5784,7 +5798,7 @@ isis.services = employee.Employees,\
 </div>
 </div>
 <div class="sect3">
-<h4 id="_contributions_2">4.3.3. Contributions</h4>
+<h4 id="_contributions_2">5.3.3. Contributions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5799,7 +5813,7 @@ TODO - just xref <a href="#_ug_how-tos_contributed-members">contributed members<
 </div>
 </div>
 <div class="sect3">
-<h4 id="_menu_items">4.3.4. Menu items</h4>
+<h4 id="_menu_items">5.3.4. Menu items</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5842,7 +5856,7 @@ TODO - update to new annotations, including @DomainService(nature=&#8230;&#8203;
 </div>
 </div>
 <div class="sect3">
-<h4 id="_menus">4.3.5. Menus</h4>
+<h4 id="_menus">5.3.5. Menus</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5872,7 +5886,7 @@ TODO - update to new annotations, including @DomainService(nature=&#8230;&#8203;
 </div>
 </div>
 <div class="sect3">
-<h4 id="_initialization">4.3.6. Initialization</h4>
+<h4 id="_initialization">5.3.6. Initialization</h4>
 <div class="paragraph">
 <p>Services can optionally declare lifecycle callbacks to initialize them (when the app is deployed) and to shut them down (when the app is undeployed).</p>
 </div>
@@ -5893,14 +5907,14 @@ TODO - update to new annotations, including @DomainService(nature=&#8230;&#8203;
 </div>
 </div>
 <div class="sect3">
-<h4 id="_the_getid_method">4.3.7. The getId() method</h4>
+<h4 id="_the_getid_method">5.3.7. The getId() method</h4>
 <div class="paragraph">
 <p>Optionally, a service may provide a <a href="rg.html#_rg_methods_reserved_manpage-getId"><code>getId()</code></a> method.  This method returns a logical identifier for a service, independent of its implementation.</p>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_crud">4.4. Object Management (CRUD)</h3>
+<h3 id="_ug_how-tos_crud">5.4. Object Management (CRUD)</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5914,7 +5928,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_instantiating_and_persisting_objects">4.4.1. Instantiating and Persisting Objects</h4>
+<h4 id="_instantiating_and_persisting_objects">5.4.1. Instantiating and Persisting Objects</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5929,7 +5943,7 @@ TODO - using <code>DomainObjectContainer</code>'s support for  <a href="rg.html#
 </div>
 </div>
 <div class="sect3">
-<h4 id="_finding_objects">4.4.2. Finding Objects</h4>
+<h4 id="_finding_objects">5.4.2. Finding Objects</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5959,7 +5973,7 @@ TODO - as described <a href="rg.html#_rg_services-api_manpage-IsisJdoSupport_typ
 </div>
 </div>
 <div class="sect3">
-<h4 id="_deleting_objects">4.4.3. Deleting Objects</h4>
+<h4 id="_deleting_objects">5.4.3. Deleting Objects</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5975,7 +5989,7 @@ TODO using <code>DomainObjectContainer</code>'s support for  <a href="rg.html#_r
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_entity-relationships">4.5. Entity Relationships</h3>
+<h3 id="_ug_how-tos_entity-relationships">5.5. Entity Relationships</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -5989,7 +6003,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_mandatory_and_optional">4.5.1. Mandatory and Optional</h4>
+<h4 id="_mandatory_and_optional">5.5.1. Mandatory and Optional</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6004,7 +6018,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_how-tos_entity-relationships_managed-1-to-m-bidirectional-relationships">4.5.2. 1-m bidir relationships</h4>
+<h4 id="_ug_how-tos_entity-relationships_managed-1-to-m-bidirectional-relationships">5.5.2. 1-m bidir relationships</h4>
 <div class="paragraph">
 <p>When an object is added to a 1:m bidirectional relationship, the child object must refer to the parent and the child must be added to the parent&#8217;s children collection.</p>
 </div>
@@ -6089,7 +6103,7 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_contributed-members">4.6. Contributed Members</h3>
+<h3 id="_ug_how-tos_contributed-members">5.6. Contributed Members</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6158,7 +6172,7 @@ TODO - generalize to discussion on contributed collections/properties; update to
 <p>Note that an action annotated as being <code>@NotContributed</code> will still appear in the service menu for the service. If an action should neither be contributed nor appear in service menu items, then simply annotate it as <code>@Hidden</code>.</p>
 </div>
 <div class="sect3">
-<h4 id="_contributed_action">4.6.1. Contributed Action</h4>
+<h4 id="_contributed_action">5.6.1. Contributed Action</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6173,7 +6187,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_contributed_property">4.6.2. Contributed Property</h4>
+<h4 id="_contributed_property">5.6.2. Contributed Property</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6188,7 +6202,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_contributed_collection">4.6.3. Contributed Collection</h4>
+<h4 id="_contributed_collection">5.6.3. Contributed Collection</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6204,7 +6218,7 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_business-rules">4.7. Business Rules</h3>
+<h3 id="_ug_how-tos_business-rules">5.7. Business Rules</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6218,7 +6232,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_visibility_see_it">4.7.1. Visibility ("see it")</h4>
+<h4 id="_visibility_see_it">5.7.1. Visibility ("see it")</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6253,7 +6267,7 @@ TODO - <a href="rg.html#_rg_methods_prefixes_manpage-hide"><code>hide&#8230;&#82
 </div>
 </div>
 <div class="sect3">
-<h4 id="_usability_use_it">4.7.2. Usability ("use it")</h4>
+<h4 id="_usability_use_it">5.7.2. Usability ("use it")</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6303,7 +6317,7 @@ TODO - <a href="rg.html#_rg_methods_prefixes_manpage-disable"><code>disable&#823
 </div>
 </div>
 <div class="sect3">
-<h4 id="_validity_do_it">4.7.3. Validity ("do it")</h4>
+<h4 id="_validity_do_it">5.7.3. Validity ("do it")</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6350,7 +6364,7 @@ TODO - using <a href="rg.html#_rg_annotations_manpage-Parameter_mustSatisfy"><co
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_derived-members">4.8. Derived Members</h3>
+<h3 id="_ug_how-tos_derived-members">5.8. Derived Members</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6364,7 +6378,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_derived_property">4.8.1. Derived Property</h4>
+<h4 id="_derived_property">5.8.1. Derived Property</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6379,7 +6393,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_derived_collection">4.8.2. Derived Collection</h4>
+<h4 id="_derived_collection">5.8.2. Derived Collection</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6410,7 +6424,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_trigger_on_property_change">4.8.3. Trigger on property change</h4>
+<h4 id="_trigger_on_property_change">5.8.3. Trigger on property change</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6425,7 +6439,7 @@ TODO - <a href="rg.html#_rg_methods_prefixes_manpage-modify"><code>modify&#8230;
 </div>
 </div>
 <div class="sect3">
-<h4 id="_trigger_on_collection_change">4.8.4. Trigger on collection change</h4>
+<h4 id="_trigger_on_collection_change">5.8.4. Trigger on collection change</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6441,7 +6455,7 @@ TODO - <a href="rg.html#_rg_methods_prefixes_manpage-addTo"><code>addTo&#8230;&#
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_drop-downs-and-defaults">4.9. Drop Downs and Defaults</h3>
+<h3 id="_ug_how-tos_drop-downs-and-defaults">5.9. Drop Downs and Defaults</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6455,7 +6469,7 @@ TODO
 </table>
 </div>
 <div class="sect3">
-<h4 id="_for_properties">4.9.1. For Properties</h4>
+<h4 id="_for_properties">5.9.1. For Properties</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6515,7 +6529,7 @@ TODO -  <a href="rg.html#_rg_methods_prefixes_manpage-default"><code>default&#82
 </div>
 </div>
 <div class="sect3">
-<h4 id="_for_action_parameters">4.9.2. For Action Parameters</h4>
+<h4 id="_for_action_parameters">5.9.2. For Action Parameters</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6590,7 +6604,7 @@ TODO -  <a href="rg.html#_rg_methods_prefixes_manpage-default"><code>default&#82
 </div>
 </div>
 <div class="sect3">
-<h4 id="_for_both_properties_and_action_parameters">4.9.3. For both Properties and Action Parameters</h4>
+<h4 id="_for_both_properties_and_action_parameters">5.9.3. For both Properties and Action Parameters</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6627,7 +6641,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-DomainObject_bounded"><code>@Dom
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_how-tos_persisted-title">4.10. Persisted Title</h3>
+<h3 id="_ug_how-tos_persisted-title">5.10. Persisted Title</h3>
 <div class="paragraph">
 <p>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.</p>
 </div>
@@ -6691,13 +6705,13 @@ TODO - <a href="rg.html#_rg_annotations_manpage-DomainObject_bounded"><code>@Dom
 </div>
 </div>
 <div class="sect1">
-<h2 id="_ug_more-advanced">5. More Advanced Techniques</h2>
+<h2 id="_ug_more-advanced">6. More Advanced Techniques</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This chapter pulls together a number of more advanced techniques that we&#8217;ve discovered and developed while building our own Isis applications.</p>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_decoupling">5.1. Decoupling</h3>
+<h3 id="_ug_more-advanced_decoupling">6.1. Decoupling</h3>
 <div class="paragraph">
 <p>We use Java packages as a way to group related domain objects together; the package name forms a namespace. We can then
 reason about all the classes in that package/namespace as a single unit, or module.</p>
@@ -6723,7 +6737,7 @@ reason about all the classes in that package/namespace as a single unit, or modu
 </table>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_decoupling_db-schemas">5.1.1. Database Schemas</h4>
+<h4 id="_ug_more-advanced_decoupling_db-schemas">6.1.1. Database Schemas</h4>
 <div class="paragraph">
 <p>In the same way that Java packages act as a namespace for domain objects, it&#8217;s good practice to map domain entities to
 their own (database) schemas. As of 1.9.0-SNAPSHOT, all the <a href="http://www.isisaddons.org">Isis Addons</a> (non-ASF) modules do this, for example:</p>
@@ -6775,7 +6789,7 @@ their own (database) schemas. As of 1.9.0-SNAPSHOT, all the <a href="http://www.
 </td>
 <td class="content">
 <div class="paragraph">
-<p>If for some reason you don&#8217;t want to use schemas (though we strongly recommend that you do), then note that you can override the <code>@PersistenceCapable</code> annotation by providing XML metadata (the <code>mappings.jdo</code> file); see the section on <a href="#_ug_runtime_configuring-datanucleus">configuring DataNucleus Overriding Annotations</a> for more details.</p>
+<p>If for some reason you don&#8217;t want to use schemas (though we strongly recommend that you do), then note that you can override the <code>@PersistenceCapable</code> annotation by providing XML metadata (the <code>mappings.jdo</code> file); see the section on <a href="rg.html#_rg_runtime_configuring-datanucleus">configuring DataNucleus Overriding Annotations</a> for more details.</p>
 </div>
 </td>
 </tr>
@@ -6903,7 +6917,7 @@ need to tweak it to support other RDBMS'.  Any implementation must implement <co
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_decoupling_contributions">5.1.2. Contributions</h4>
+<h4 id="_ug_more-advanced_decoupling_contributions">6.1.2. Contributions</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6918,7 +6932,7 @@ TODO
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_decoupling_vetoing-visibility">5.1.3. Vetoing Visibility</h4>
+<h4 id="_ug_more-advanced_decoupling_vetoing-visibility">6.1.3. Vetoing Visibility</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6942,7 +6956,7 @@ TODO - a write-up of the "vetoing subscriber" design pattern, eg as described in
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_decoupling_event-bus">5.1.4. Event Bus</h4>
+<h4 id="_ug_more-advanced_decoupling_event-bus">6.1.4. Event Bus</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -6957,7 +6971,7 @@ TODO - see <a href="rg.html#_rg_services-api_manpage-EventBusService"><code>Even
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_decoupling_pushing-changes">5.1.5. Pushing Changes</h4>
+<h4 id="_ug_more-advanced_decoupling_pushing-changes">6.1.5. Pushing Changes</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7136,7 +7150,7 @@ methods for properties (see ?).</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_overriding-jdo-annotations">5.2. Overriding JDO Annotations</h3>
+<h3 id="_ug_more-advanced_overriding-jdo-annotations">6.2. Overriding JDO Annotations</h3>
 <div class="paragraph">
 <p>The JDO Objectstore (or rather, the underlying DataNucleus implementation) builds its own persistence metamodel by reading both annotations on the class and also by searching for metadata in XML files. The metadata in the XML files takes precedence over the annotations, and so can be used to override metadata that is "hard-coded" in annotations.</p>
 </div>
@@ -7206,7 +7220,7 @@ methods for properties (see ?).</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_bulk-actions">5.3. Bulk Actions</h3>
+<h3 id="_ug_more-advanced_bulk-actions">6.3. Bulk Actions</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7221,7 +7235,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-Action_invokeOn"><code>@Action#i
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_view-models">5.4. View Models</h3>
+<h3 id="_ug_more-advanced_view-models">6.4. View Models</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7268,7 +7282,7 @@ TODO - <a href="rg.html#_rg_annotations_manpage-ViewModel"><code>@ViewModel</cod
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_mapping-rdbms-views">5.5. Mapping RDBMS Views</h3>
+<h3 id="_ug_more-advanced_mapping-rdbms-views">6.5. Mapping RDBMS Views</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7283,7 +7297,7 @@ TODO - as used in <a href="http://github.com/estatio/estatio">Estatio</a>
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_transactions-and-errors">5.6. Transactions and Errors</h3>
+<h3 id="_ug_more-advanced_transactions-and-errors">6.6. Transactions and Errors</h3>
 <div class="paragraph">
 <p>In Apache Isis, every action invocation (in fact, every interaction) is automatically wrapped in a transaction, and any repository query automatically does a flush.</p>
 </div>
@@ -7291,7 +7305,7 @@ TODO - as used in <a href="http://github.com/estatio/estatio">Estatio</a>
 <p>What that means is that there&#8217;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 <code>PersistenceManager</code> exposed by the <a href="rg.html#_rg_services-api_manpage-IsisJdoSupport">IsisJdoSupport</a> domain service, then you are likely to confuse Isis and get a stack trace for your trouble.</p>
 </div>
 <div class="sect3">
-<h4 id="_aborting_transactions">5.6.1. Aborting Transactions</h4>
+<h4 id="_aborting_transactions">6.6.1. Aborting Transactions</h4>
 <div class="paragraph">
 <p>If you want to abort Apache Isis' transaction, this can be done by throwing <code>RecoverableException</code> (or any subclass, eg <code>ApplicationException</code>). The transaction will be aborted, and the exception message will be displayed to the user.</p>
 </div>
@@ -7300,7 +7314,7 @@ TODO - as used in <a href="http://github.com/estatio/estatio">Estatio</a>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_raise_message_errors_to_users">5.6.2. Raise message/errors to users</h4>
+<h4 id="_raise_message_errors_to_users">6.6.2. Raise message/errors to users</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7315,7 +7329,7 @@ TODO - <a href="rg.html#_rg_services-api_manpage-DomainObjectContainer_messages-
 </div>
 </div>
 <div class="sect3">
-<h4 id="_exception_recognizers">5.6.3. Exception Recognizers</h4>
+<h4 id="_exception_recognizers">6.6.3. Exception Recognizers</h4>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7331,7 +7345,7 @@ TODO - <a href="rg.html#_rg_services-spi_manpage-ExceptionRecognizer"><code>Exce
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_i18n">5.7. i18n</h3>
+<h3 id="_ug_more-advanced_i18n">6.7. i18n</h3>
 <div class="paragraph">
 <p>Apache Isis' support for i18n allows every element of the domain model (the class names, property names, action names, parameter names and so forth) to be translated.</p>
 </div>
@@ -7342,7 +7356,7 @@ TODO - <a href="rg.html#_rg_services-spi_manpage-ExceptionRecognizer"><code>Exce
 <p>Isis does not translate the values of your domain objects, though.  So, if you have a domain concept such as <code>Country</code> whose name is intended to be localized according to the current user, you will need to model</p>
 </div>
 <div class="sect3">
-<h4 id="_implementation_approach">5.7.1. Implementation Approach</h4>
+<h4 id="_implementation_approach">6.7.1. Implementation Approach</h4>
 <div class="paragraph">
 <p>Most Java frameworks tackle i18n by using Java&#8217;s own <code>ResourceBundle</code> API.  However, there are some serious drawbacks in this approach, such as:</p>
 </div>
@@ -7416,7 +7430,7 @@ TODO - <a href="rg.html#_rg_services-spi_manpage-ExceptionRecognizer"><code>Exce
 </div>
 </div>
 <div class="sect3">
-<h4 id="__code_translationservice_code">5.7.2. <code>TranslationService</code></h4>
+<h4 id="__code_translationservice_code">6.7.2. <code>TranslationService</code></h4>
 <div class="paragraph">
 <p>The cornerstone of Apache Isis' support for i18n is the <code>TranslationService</code> service. This is defined in the applib with the following API:</p>
 </div>
@@ -7478,10 +7492,10 @@ TODO - <a href="rg.html#_rg_services-spi_manpage-ExceptionRecognizer"><code>Exce
 <div class="ulist">
 <ul>
 <li>
-<p>if running in prototype mode <a href="#_ug_runtime_deployment-types">deployment type</a> or during integration tests, then the service runs in <strong>write</strong> mode, in which case it records all translations into the <code>.pot</code> file.  The <code>.pot</code> file is written out when the system is shutdown.</p>
+<p>if running in prototype mode <a href="rg.html#_rg_runtime_deployment-types">deployment type</a> or during integration tests, then the service runs in <strong>write</strong> mode, in which case it records all translations into the <code>.pot</code> file.  The <code>.pot</code> file is written out when the system is shutdown.</p>
 </li>
 <li>
-<p>if running in server (production) mode <a href="#_ug_runtime_deployment-types">deployment type</a>, then the service runs in <strong>read</strong> mode. It is also possible to set a configuration setting in <code>isis.properties</code> to force read mode even if running in prototype mode (useful to manually test/demo the translations).</p>
+<p>if running in server (production) mode <a href="rg.html#_rg_runtime_deployment-types">deployment type</a>, then the service runs in <strong>read</strong> mode. It is also possible to set a configuration setting in <code>isis.properties</code> to force read mode even if running in prototype mode (useful to manually test/demo the translations).</p>
 </li>
 </ul>
 </div>
@@ -7491,7 +7505,7 @@ TODO - <a href="rg.html#_rg_services-spi_manpage-ExceptionRecognizer"><code>Exce
 </div>
 </div>
 <div class="sect3">
-<h4 id="_imperative_messages">5.7.3. Imperative messages</h4>
+<h4 id="_imperative_messages">6.7.3. Imperative messages</h4>
 <div class="paragraph">
 <p>The <code>TranslationService</code> is used internally by Apache Isis when building up the metamodel; the name and description of every class, property, collection, action and action parameter is automatically translated.  Thus the simple act of bootstrapping Apache Isis will cause most of the messages requiring translation (that is: those for the Apache Isis metamodel) to be captured by the <code>TranslationService</code>.</p>
 </div>
@@ -7645,7 +7659,7 @@ msgstr &quot;Iche heisse {firstName} {lastName}.&quot;</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_integration_testing_2">5.7.4. Integration Testing</h4>
+<h4 id="_integration_testing_2">6.7.4. Integration Testing</h4>
 <div class="paragraph">
 <p>So much for the API; but as noted, it is also necessary to ensure that the required translations are recorded (by the <code>TranslationService</code>) into the <code>.pot</code> file.</p>
 </div>
@@ -7717,7 +7731,7 @@ FixtureScripts fixtureScripts;
 </div>
 </div>
 <div class="sect3">
-<h4 id="_configuration">5.7.5. Configuration</h4>
+<h4 id="_configuration">6.7.5. Configuration</h4>
 <div class="paragraph">
 <p>There are several different aspects of the translation service that can be configured.</p>
 </div>
@@ -7814,7 +7828,7 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
 </div>
 </div>
 <div class="sect3">
-<h4 id="_supporting_services">5.7.6. Supporting services</h4>
+<h4 id="_supporting_services">6.7.6. Supporting services</h4>
 <div class="paragraph">
 <p>The <code>TranslationServicePo</code> has a number of supporting/related services.</p>
 </div>
@@ -7883,7 +7897,7 @@ log4j.additivity.org.apache.isis.core.runtime.services.i18n.po.PotWriter=false</
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_multi-tenancy">5.8. Multi-tenancy</h3>
+<h3 id="_ug_more-advanced_multi-tenancy">6.8. Multi-tenancy</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7898,7 +7912,7 @@ TODO - as supported by (non-ASF) <a href="http://github.com/isisaddons/isis-modu
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_persistence-lifecycle">5.9. Persistence Lifecycle</h3>
+<h3 id="_ug_more-advanced_persistence-lifecycle">6.9. Persistence Lifecycle</h3>
 <div class="admonitionblock note">
 <table>
 <tr>
@@ -7913,12 +7927,12 @@ TODO
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_more-advanced_tips-n-tricks">5.10. Tips n Tricks</h3>
+<h3 id="_ug_more-advanced_tips-n-tricks">6.10. Tips n Tricks</h3>
 <div class="paragraph">
 <p>This section catalogues a miscellaneous collection of hints-and-tips.</p>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_tips-n-tricks_are-you-sure">5.10.1. 'Are you sure?' idiom</h4>
+<h4 id="_ug_more-advanced_tips-n-tricks_are-you-sure">6.10.1. 'Are you sure?' idiom</h4>
 <div class="paragraph">
 <p>If providing an action that will perform irreversible changes, include a
 mandatory boolean parameter that must be explicitly checked by the end-user
@@ -8000,7 +8014,7 @@ used by the supporting <a href="rg.html#_rg_methods_prefixes_manpage-validate"><
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_tips-n-tricks_simulating-collections-of-values">5.10.2. Collections of values</h4>
+<h4 id="_ug_more-advanced_tips-n-tricks_simulating-collections-of-values">6.10.2. Collections of values</h4>
 <div class="paragraph">
 <p>Although in Apache Isis you can have properties of either values (string, number, date etc) or of (references to other) entities, with collections the framework (currently) only supports collections of (references to) entities.  That is, collections of values (a bag of numbers, say) are not supported.</p>
 </div>
@@ -8039,7 +8053,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_tips-n-tricks_render-all-properties-in-tables">5.10.3. Subclass properties in tables</h4>
+<h4 id="_ug_more-advanced_tips-n-tricks_render-all-properties-in-tables">6.10.3. Subclass properties in tables</h4>
 <div class="paragraph">
 <p>Suppose you have a hierarchy of classes where a property is derived and abstract in the superclass, concrete implementations in the subclasses. For example:</p>
 </div>
@@ -8096,7 +8110,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_tips-n-tricks_per-user-themes">5.10.4. Per-user Themes</h4>
+<h4 id="_ug_more-advanced_tips-n-tricks_per-user-themes">6.10.4. Per-user Themes</h4>
 <div class="paragraph">
 <p>From the Apache Isis mailing list is:</p>
 </div>
@@ -8187,7 +8201,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_more-advanced_tips-n-tricks_enhance-only">5.10.5. Enhance only (IntelliJ)</h4>
+<h4 id="_ug_more-advanced_tips-n-tricks_enhance-only">6.10.5. Enhance only (IntelliJ)</h4>
 <div class="paragraph">
 <p>From the Apache Isis mailing list is:</p>
 </div>
@@ -8226,7 +8240,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect1">
-<h2 id="_ug_wicket-viewer">6. Wicket Viewer</h2>
+<h2 id="_ug_wicket-viewer">7. Wicket Viewer</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This chapter describes end-user features, configuration and customization of the Wicket viewer.</p>
@@ -8235,12 +8249,12 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 <p>Note that extending the Wicket viewer is described in the <a href="#_ug_extending">Extending</a> chapter.</p>
 </div>
 <div class="sect2">
-<h3 id="_ug_wicket-viewer_features">6.1. Features/end-user usage</h3>
+<h3 id="_ug_wicket-viewer_features">7.1. Features/end-user usage</h3>
 <div class="paragraph">
 <p>This section discusses features of the wicket viewer from the perspective of an end-user actually using your Isis application.</p>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_features_recent-pages">6.1.1. Recent pages (drop down)</h4>
+<h4 id="_ug_wicket-viewer_features_recent-pages">7.1.1. Recent pages (drop down)</h4>
 <div class="paragraph">
 <p>The Wicket viewer provides a recent pages drop-down that acts as a breadcrumb trail. Using it, the user can quickly open a recently accessed domain object.</p>
 </div>
@@ -8295,7 +8309,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_features_bookmarked-pages">6.1.2. Bookmarked pages</h4>
+<h4 id="_ug_wicket-viewer_features_bookmarked-pages">7.1.2. Bookmarked pages</h4>
 <div class="paragraph">
 <p>The Wicket viewer supports the bookmarking of both domain objects and query-only (<a href="rg.html#_rg_annotations_manpage-Action_semantics">@Action(semantics=&#8230;&#8203;)</a>) actions.</p>
 </div>
@@ -8427,7 +8441,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_features_hints-and-copy-url">6.1.3. Hints and copy URL</h4>
+<h4 id="_ug_wicket-viewer_features_hints-and-copy-url">7.1.3. Hints and copy URL</h4>
 <div class="paragraph">
 <p>While the user can often copy the URL of a domain object directly from the browser&#8217;s address bar, the Wicket viewer also allows the URL of domain objects to be easily copied from a dialog.</p>
 </div>
@@ -8542,7 +8556,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_features_titles-in-tables">6.1.4. Titles in Tables</h4>
+<h4 id="_ug_wicket-viewer_features_titles-in-tables">7.1.4. Titles in Tables</h4>
 <div class="paragraph">
 <p>Object titles can often be quite long if the intention is to uniquely identify the object.  While this is appropriate for the object view, it can be cumbersome within tables.</p>
 </div>
@@ -8644,7 +8658,7 @@ TODO -  easiest to simply store using DataNucleus' support for collections, mark
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_features_blob-attachments">6.1.5. File upload/download</h4>
+<h4 id="_ug_wicket-viewer_features_blob-attachments">7.1.5. File upload/download</h4>
 <div class="paragraph">
 <p>The Isis application library provides the <a href="rg.html#_rg_classes_value-types_manpage-Blob">Blob</a> value type (binary large objects) and also the <a href="rg.html#_rg_classes_value-types_manpage-Clob">Clob</a>
 value type (character large object), each of which also includes metadata about the data (specifically the filename and mime type).</p>
@@ -8792,7 +8806,7 @@ value type (character large object), each of which also includes metadata about
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_features_user-registration">6.1.6. User Registration</h4>
+<h4 id="_ug_wicket-viewer_features_user-registration">7.1.6. User Registration</h4>
 <div class="paragraph">
 <p>The Wicket viewer provides the ability for users to sign-up by providing a valid email address:</p>
 </div>
@@ -8924,7 +8938,7 @@ value type (character large object), each of which also includes metadata about
 </div>
 </div>
 <div class="sect2">
-<h3 id="_ug_wicket-viewer_configuration-properties">6.2. Configuration Properties</h3>
+<h3 id="_ug_wicket-viewer_configuration-properties">7.2. Configuration Properties</h3>
 <div class="paragraph">
 <p>Wicket configuration properties alter the way in which Apache Isis' Wicket viewer renders domain objects.  They are typically stored in <code>WEB-INF/viewer_wicket.properties</code>.</p>
 </div>
@@ -9077,7 +9091,7 @@ value type (character large object), each of which also includes metadata about
 </tbody>
 </table>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_configuration-properties_abbreviating-titles">6.2.1. Abbreviating/suppressing titles in tables</h4>
+<h4 id="_ug_wicket-viewer_configuration-properties_abbreviating-titles">7.2.1. Abbreviating/suppressing titles in tables</h4>
 <div class="paragraph">
 <p>Objects whose title is overly long can be cumbersome in titles.  The Wicket viewer has a <a href="#_ug_wicket-viewer_features_titles-in-tables">mechanism to automatically shorten</a> the titles of objects specified using <code>@Title</code>.  As an alternative/in addition, the viewer can also be configured to simply truncate titles longer than a certain length.</p>
 </div>
@@ -9106,7 +9120,7 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=8</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_configuration-properties_suppressing-remember-me">6.2.2. Suppressing 'remember me'</h4>
+<h4 id="_ug_wicket-viewer_configuration-properties_suppressing-remember-me">7.2.2. Suppressing 'remember me'</h4>
 <div class="paragraph">
 <p>The 'remember me' checkbox on the login page can be suppressed, if required, by setting a configuration flag.</p>
 </div>
@@ -9142,7 +9156,7 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=8</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_configuration-properties_suppressing-sign-up">6.2.3. Suppressing 'sign up'</h4>
+<h4 id="_ug_wicket-viewer_configuration-properties_suppressing-sign-up">7.2.3. Suppressing 'sign up'</h4>
 <div class="paragraph">
 <p>If <a href="#_user_registration">user registration</a> has been configured, then the Wicket viewer allows the user to sign-up a new account and to reset their password from the login page.</p>
 </div>
@@ -9187,7 +9201,7 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=8</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_configuration-properties_suppressing-password-reset">6.2.4. Suppressing 'password reset'</h4>
+<h4 id="_ug_wicket-viewer_configuration-properties_suppressing-password-reset">7.2.4. Suppressing 'password reset'</h4>
 <div class="paragraph">
 <p>If <a href="#_user_registration">user registration</a> has been configured, then the Wicket viewer allows the user to sign-up a new account and to reset their password from the login page.</p>
 </div>
@@ -9235,7 +9249,7 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=8</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_configuration-properties_stripped-wicket-tags">6.2.5. Stripped Wicket tags</h4>
+<h4 id="_ug_wicket-viewer_configuration-properties_stripped-wicket-tags">7.2.5. Stripped Wicket tags</h4>
 <div class="paragraph">
 <p>By default the Apache Isis Wicket viewer will always strip wicket tags. However, when running in prototype mode, this behaviour can be overridden using a configuration property:</p>
 </div>
@@ -9263,7 +9277,7 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=8</code></pre>
 </div>
 </div>
 <div class="sect3">
-<h4 id="_ug_wicket-viewer_configuration-properties_showing-theme-chooser">6.2.6. Showing a theme chooser</h4>
+<h4 id="_ug_wicket-viewer_configuration-properties_showing-theme-chooser">7.2.6. Showing a theme choose

<TRUNCATED>

[4/5] isis-site git commit: ISIS-1133: web.xml

Posted by da...@apache.org.
ISIS-1133: web.xml


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

Branch: refs/heads/asf-site
Commit: ddab015dc93dcb2fdc4591b8e5ea5b7317cb1c4b
Parents: 8f4afa1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jul 9 13:48:22 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jul 9 13:48:22 2015 +0100

----------------------------------------------------------------------
 content/editor-templates.html                   |   10 +-
 content/guides/dg.html                          |   44 +-
 content/guides/images/runtime/web-xml/key.png   |  Bin 0 -> 3195 bytes
 .../guides/images/runtime/web-xml/parts.pptx    |  Bin 0 -> 72386 bytes
 .../guides/images/runtime/web-xml/ro-only.png   |  Bin 0 -> 17937 bytes
 .../images/runtime/web-xml/wicket-and-ro.png    |  Bin 0 -> 32723 bytes
 .../images/runtime/web-xml/wicket-only.png      |  Bin 0 -> 16617 bytes
 content/guides/rg.html                          | 3776 +++++++++++++-----
 content/guides/ug.html                          | 2325 +++--------
 content/migration-notes.html                    |    2 +-
 content/support.html                            |    2 +-
 11 files changed, 3526 insertions(+), 2633 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/editor-templates.html
----------------------------------------------------------------------
diff --git a/content/editor-templates.html b/content/editor-templates.html
index 1132888..181405e 100644
--- a/content/editor-templates.html
+++ b/content/editor-templates.html
@@ -535,10 +535,10 @@ table.CodeRay td.code>pre{padding:0}
 <p>ju</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/junit-templates-idea.xml">Download</a></p>
+<p><a href="./resources/templates/junit4-templates-idea.xml">Download</a></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/junit-templates.xml">Download</a></p>
+<p><a href="./resources/templates/junit4-templates.xml">Download</a></p>
 </div></div></td>
 </tr>
 <tr>
@@ -546,13 +546,13 @@ table.CodeRay td.code>pre{padding:0}
 <p>JMock tests</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p>&lt;tt&gt;jm</p>
+<p>jm</p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/jmock-templates-idea.xml">Download</a></p>
+<p><a href="./resources/templates/jmock2-templates-idea.xml">Download</a></p>
 </div></div></td>
 <td class="tableblock halign-left valign-top"><div><div class="paragraph">
-<p><a href="./resources/templates/jmock-templates.xml">Download</a></p>
+<p><a href="./resources/templates/jmock2-templates.xml">Download</a></p>
 </div></div></td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/dg.html
----------------------------------------------------------------------
diff --git a/content/guides/dg.html b/content/guides/dg.html
index 6ae5ced..55d87be 100644
--- a/content/guides/dg.html
+++ b/content/guides/dg.html
@@ -481,30 +481,14 @@ table.CodeRay td.code>pre{padding:0}
 
 
         <div id="doc-content">
-          <div id="preamble">
+          <div class="sect1">
+<h2 id="_developers_guide">Developers' Guide</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p><br/><br/></p>
+<p>This developers' guide describes how to set up your development environment to develop your Apache Isis applications either within the <a href="#_dg_intellij">IntelliJ</a> IDE, or within the <a href="#_dg_eclipse">Eclipse</a> IDE, or from the <a href="#_dg_cmd-line">command line</a>.</p>
 </div>
 <div class="paragraph">
-<p>This guide describes how to build an Isis applications either from the command line (as per your <a href="http://en.wikipedia.org/wiki/Continuous_integration">continuous integration</a> server or within an IDE.</p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_dg_cmd-line">Developing from the Command Line</h2>
-<div class="sectionbody">
-<div class="admonitionblock note">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-note" title="Note"></i>
-</td>
-<td class="content">
-TODO
-</td>
-</tr>
-</table>
+<p>The developer' guide is <em>not</em> intended as a reference manual; for that see the <a href="rg.html#">Reference Guide</a>.  This guide also does <em>not</em> describe how to actually build an Apache Isis application; for that see the <a href="ug.html#">Users' Guide</a>.</p>
 </div>
 </div>
 </div>
@@ -1418,6 +1402,23 @@ TODO
 </div>
 </div>
 </div>
+<div class="sect1">
+<h2 id="_dg_cmd-line">Developing from the Command Line</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+TODO
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
         </div>
 
         <footer>
@@ -1435,7 +1436,7 @@ TODO
         <div id="toc" class="toc2">
             <div class="fallback-toc">
                 <ul class="sectlevel1">
-<li><a href="#_dg_cmd-line">Developing from the Command Line</a></li>
+<li><a href="#_developers_guide">Developers' Guide</a></li>
 <li><a href="#_dg_intellij">Setting up IntelliJ IDEA</a>
 <ul class="sectlevel2">
 <li><a href="#_installing_and_setting_up">Installing and Setting up</a>
@@ -1493,6 +1494,7 @@ TODO
 <li><a href="#_other_domain_projects">Other domain projects.</a></li>
 </ul>
 </li>
+<li><a href="#_dg_cmd-line">Developing from the Command Line</a></li>
 </ul>
             </div>
         </div>

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/images/runtime/web-xml/key.png
----------------------------------------------------------------------
diff --git a/content/guides/images/runtime/web-xml/key.png b/content/guides/images/runtime/web-xml/key.png
new file mode 100644
index 0000000..b6f6ae9
Binary files /dev/null and b/content/guides/images/runtime/web-xml/key.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/images/runtime/web-xml/parts.pptx
----------------------------------------------------------------------
diff --git a/content/guides/images/runtime/web-xml/parts.pptx b/content/guides/images/runtime/web-xml/parts.pptx
new file mode 100644
index 0000000..59c1eeb
Binary files /dev/null and b/content/guides/images/runtime/web-xml/parts.pptx differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/images/runtime/web-xml/ro-only.png
----------------------------------------------------------------------
diff --git a/content/guides/images/runtime/web-xml/ro-only.png b/content/guides/images/runtime/web-xml/ro-only.png
new file mode 100644
index 0000000..c96135c
Binary files /dev/null and b/content/guides/images/runtime/web-xml/ro-only.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/images/runtime/web-xml/wicket-and-ro.png
----------------------------------------------------------------------
diff --git a/content/guides/images/runtime/web-xml/wicket-and-ro.png b/content/guides/images/runtime/web-xml/wicket-and-ro.png
new file mode 100644
index 0000000..b8a2d05
Binary files /dev/null and b/content/guides/images/runtime/web-xml/wicket-and-ro.png differ

http://git-wip-us.apache.org/repos/asf/isis-site/blob/ddab015d/content/guides/images/runtime/web-xml/wicket-only.png
----------------------------------------------------------------------
diff --git a/content/guides/images/runtime/web-xml/wicket-only.png b/content/guides/images/runtime/web-xml/wicket-only.png
new file mode 100644
index 0000000..46070ce
Binary files /dev/null and b/content/guides/images/runtime/web-xml/wicket-only.png differ