You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/08/01 16:01:24 UTC

[44/46] isis-site git commit: ISIS-1674: fixes inclusion error in docs

http://git-wip-us.apache.org/repos/asf/isis-site/blob/1c75f263/content/guides/ugfun/ugfun.html
----------------------------------------------------------------------
diff --git a/content/guides/ugfun/ugfun.html b/content/guides/ugfun/ugfun.html
index 91e73a5..c89a454 100644
--- a/content/guides/ugfun/ugfun.html
+++ b/content/guides/ugfun/ugfun.html
@@ -2123,64 +2123,89 @@ table.CodeRay td.code>pre{padding:0}
           </tbody>
          </table> 
         </div> 
-        <div class="paragraph"> 
-         <p>Unresolved directive in _ugfun_getting-started.adoc - include::_ugfun_getting-started_prerequisites[leveloffset=+1] :leveloffset: +1</p> 
-        </div> 
-       </div> 
-      </div> 
-      <div class="sect1"> 
-       <h2 id="_ugfun_getting-started_helloworld-archetype">5. HelloWorld Archetype (<code>1.15.0-SNAPSHOT</code>)</h2>
-       <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
-        <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
-        <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
-        <ul class="dropdown-menu">
-         <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
-         <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
-         <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
-         <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
-        </ul>
-       </div> 
-       <div class="sectionbody"> 
-        <div class="paragraph"> 
-         <p>The quickest way to start learning about Apache Isis is to run the <code>helloworld</code> archetype. This will generate a tiny Apache Isis app, consisting of a simple one-class domain model, called <code>HelloWorldObject</code>, and a supporting <code>HelloWorldObjects</code> domain service. Both the business logic and supporting bootstrapping classes are in a single Maven module (in different Java packages).</p> 
-        </div> 
-        <div class="admonitionblock tip"> 
-         <table> 
-          <tbody>
-           <tr> 
-            <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
-            <td class="content"> 
-             <div class="paragraph"> 
-              <p>We don’t recommend that you use the helloworld archetype as the basis for your own applications. Instead, use the <a href="#_ugfun_getting-started_simpleapp-archetype">simpleapp archetype</a>. This also creates a minimal application, but provides more structure and example tests, useful as you build out your own app.</p> 
-             </div> </td> 
-           </tr> 
-          </tbody>
-         </table> 
+        <div class="sect2"> 
+         <h3 id="_ugfun_getting-started_prerequisites.adoc">4.1. Prerequisites</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_prerequisites.adoc.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
+         <div class="paragraph"> 
+          <p>Apache Isis is a Java based framework, so in terms of prerequisites, you’ll need to install:</p> 
+         </div> 
+         <div class="ulist"> 
+          <ul> 
+           <li> <p>Java 7 or 8 JDK</p> </li> 
+           <li> <p><a href="http://maven.apache.org">Apache Maven</a> 3.x</p> </li> 
+          </ul> 
+         </div> 
+         <div class="paragraph"> 
+          <p>You’ll probably also want to use an IDE; the Apache Isis committers use either IntelliJ or Eclipse; in the <a href="../dg/dg.html#_dg_ide">Developers' Guide</a> we have detailed setup instructions for using these two IDEs. If you’re a NetBeans user you should have no problems as it too has strong support for Maven.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>When building and running within an IDE, you’ll also need to configure the Datanucleus enhancer. This is implemented as a Maven plugin, so in the case of IntelliJ, it’s easy enough to run the enhancer as required. It should be just as straightforward for NetBeans too.</p> 
+         </div> 
+         <div class="paragraph"> 
+          <p>For Eclipse the maven integration story is a little less refined. All is not lost, however; DataNucleus also has an implementation of the enhancer as an Eclipse plugin, which usually works well enough.</p> 
+         </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="__ugfun_getting-started_helloworld-archetype_generating-the-app">5.1. Generating the App</h3> 
+         <h3 id="_ugfun_getting-started_helloworld-archetype">4.2. HelloWorld Archetype (<code>1.15.0-SNAPSHOT</code>)</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_helloworld-archetype.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
          <div class="paragraph"> 
-          <p>Create a new directory, and <code>cd</code> into that directory.</p> 
+          <p>The quickest way to start learning about Apache Isis is to run the <code>helloworld</code> archetype. This will generate a tiny Apache Isis app, consisting of a simple one-class domain model, called <code>HelloWorldObject</code>, and a supporting <code>HelloWorldObjects</code> domain service. Both the business logic and supporting bootstrapping classes are in a single Maven module (in different Java packages).</p> 
          </div> 
-         <div class="admonitionblock warning"> 
+         <div class="admonitionblock tip"> 
           <table> 
            <tbody>
             <tr> 
-             <td class="icon"> <i class="fa icon-warning" title="Warning"></i> </td> 
+             <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> 
              <td class="content"> 
               <div class="paragraph"> 
-               <p>This archetype was introduced in <code>1.15.0-SNAPSHOT</code>, and has not - yet - been released.</p> 
+               <p>We don’t recommend that you use the helloworld archetype as the basis for your own applications. Instead, use the <a href="#_ugfun_getting-started_simpleapp-archetype">simpleapp archetype</a>. This also creates a minimal application, but provides more structure and example tests, useful as you build out your own app.</p> 
               </div> </td> 
             </tr> 
            </tbody>
           </table> 
          </div> 
-         <div class="paragraph"> 
-          <p>To build the app from the latest stable release, then run the following command:</p> 
-         </div> 
-         <div class="listingblock"> 
-          <div class="content"> 
-           <pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate  \
+         <div class="sect3"> 
+          <h4 id="__ugfun_getting-started_helloworld-archetype_generating-the-app">4.2.1. Generating the App</h4> 
+          <div class="paragraph"> 
+           <p>Create a new directory, and <code>cd</code> into that directory.</p> 
+          </div> 
+          <div class="admonitionblock warning"> 
+           <table> 
+            <tbody>
+             <tr> 
+              <td class="icon"> <i class="fa icon-warning" title="Warning"></i> </td> 
+              <td class="content"> 
+               <div class="paragraph"> 
+                <p>This archetype was introduced in <code>1.15.0-SNAPSHOT</code>, and has not - yet - been released.</p> 
+               </div> </td> 
+             </tr> 
+            </tbody>
+           </table> 
+          </div> 
+          <div class="paragraph"> 
+           <p>To build the app from the latest stable release, then run the following command:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate  \
     -D archetypeGroupId=org.apache.isis.archetype \
     -D archetypeArtifactId=helloworld-archetype \
     -D archetypeVersion=1.15.0 \
@@ -2188,30 +2213,30 @@ table.CodeRay td.code>pre{padding:0}
     -D artifactId=myapp \
     -D version=1.0-SNAPSHOT \
     -B</code></pre> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>where:</p> 
-         </div> 
-         <div class="ulist"> 
-          <ul> 
-           <li> <p><code>groupId</code> represents your own organization, and</p> </li> 
-           <li> <p><code>artifactId</code> is a unique identifier for this app within your organization.</p> </li> 
-           <li> <p><code>version</code> is the initial (snapshot) version of your app</p> </li> 
-          </ul> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The archetype generation process will then run; it only takes a few seconds.</p> 
-         </div> 
-         <div class="paragraph"> 
-          <p>We also maintain the archetype for the most current <code>-SNAPSHOT</code>; an app generated with this archetype will contain the latest features of Apache Isis, but the usual caveats apply: some features still in development may be unstable.</p> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The process is almost identical to that for stable releases, however the <code>archetype:generate</code> goal is called with slightly different arguments:</p> 
-         </div> 
-         <div class="listingblock"> 
-          <div class="content"> 
-           <pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate  \
+          <div class="paragraph"> 
+           <p>where:</p> 
+          </div> 
+          <div class="ulist"> 
+           <ul> 
+            <li> <p><code>groupId</code> represents your own organization, and</p> </li> 
+            <li> <p><code>artifactId</code> is a unique identifier for this app within your organization.</p> </li> 
+            <li> <p><code>version</code> is the initial (snapshot) version of your app</p> </li> 
+           </ul> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The archetype generation process will then run; it only takes a few seconds.</p> 
+          </div> 
+          <div class="paragraph"> 
+           <p>We also maintain the archetype for the most current <code>-SNAPSHOT</code>; an app generated with this archetype will contain the latest features of Apache Isis, but the usual caveats apply: some features still in development may be unstable.</p> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The process is almost identical to that for stable releases, however the <code>archetype:generate</code> goal is called with slightly different arguments:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate  \
     -D archetypeGroupId=org.apache.isis.archetype \
     -D archetypeArtifactId=helloworld-archetype \
     -D archetypeVersion=1.15.0-SNAPSHOT \
@@ -2220,167 +2245,167 @@ table.CodeRay td.code>pre{padding:0}
     -D version=1.0-SNAPSHOT \
     -D archetypeRepository=http://repository-estatio.forge.cloudbees.com/snapshot/ \
     -B</code></pre> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>where as before:</p> 
-         </div> 
-         <div class="ulist"> 
-          <ul> 
-           <li> <p><code>groupId</code> represents your own organization, and</p> </li> 
-           <li> <p><code>artifactId</code> is a unique identifier for this app within your organization.</p> </li> 
-           <li> <p><code>version</code> is the initial (snapshot) version of your app</p> </li> 
-          </ul> 
-         </div> 
-         <div class="paragraph"> 
-          <p>but also:</p> 
-         </div> 
-         <div class="ulist"> 
-          <ul> 
-           <li> <p><code>archetypeVersion</code> is the SNAPSHOT version of Apache Isis.</p> </li> 
-           <li> <p><code>archetypeRepository</code> specifies the location of our snapshot repo (hosted on <a href="http://www.cloudbees.com">CloudBees</a>), and</p> </li> 
-          </ul> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The archetype generation process will then run; it only takes a few seconds.</p> 
-         </div> 
-        </div> 
-        <div class="sect2"> 
-         <h3 id="__ugfun_getting-started_helloworld-archetype_building-the-app">5.2. Building the App</h3> 
-         <div class="paragraph"> 
-          <p>Switch into the root directory of your newly generated app, and build your app:</p> 
-         </div> 
-         <div class="listingblock"> 
-          <div class="content"> 
-           <pre class="CodeRay highlight"><code data-lang="bash">cd myapp
-mvn clean install</code></pre> 
+          <div class="paragraph"> 
+           <p>where as before:</p> 
+          </div> 
+          <div class="ulist"> 
+           <ul> 
+            <li> <p><code>groupId</code> represents your own organization, and</p> </li> 
+            <li> <p><code>artifactId</code> is a unique identifier for this app within your organization.</p> </li> 
+            <li> <p><code>version</code> is the initial (snapshot) version of your app</p> </li> 
+           </ul> 
+          </div> 
+          <div class="paragraph"> 
+           <p>but also:</p> 
+          </div> 
+          <div class="ulist"> 
+           <ul> 
+            <li> <p><code>archetypeVersion</code> is the SNAPSHOT version of Apache Isis.</p> </li> 
+            <li> <p><code>archetypeRepository</code> specifies the location of our snapshot repo (hosted on <a href="http://www.cloudbees.com">CloudBees</a>), and</p> </li> 
+           </ul> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The archetype generation process will then run; it only takes a few seconds.</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>where <code>myapp</code> is the <code>artifactId</code> entered above.</p> 
-         </div> 
-        </div> 
-        <div class="sect2"> 
-         <h3 id="__ugfun_getting-started_helloworld-archetype_running-the-app">5.3. Running the App</h3> 
-         <div class="paragraph"> 
-          <p>The <code>helloworld</code> archetype generates a single WAR file, configured to run both the <a href="../ugvw/ugvw.html">Wicket viewer</a> and the <a href="../ugvro/ugvro.html">Restful Objects viewer</a>. The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.</p> 
-         </div> 
-         <div class="paragraph"> 
-          <p>Once you’ve built the app, you can run the WAR in a variety of ways.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_using_mvn_jetty_plugin">5.3.1. Using mvn Jetty plugin</h4> 
+          <h4 id="__ugfun_getting-started_helloworld-archetype_building-the-app">4.2.2. Building the App</h4> 
           <div class="paragraph"> 
-           <p>First, you could run the WAR in a Maven-hosted Jetty instance, though you need to <code>cd</code> into the <code>webapp</code> module:</p> 
+           <p>Switch into the root directory of your newly generated app, and build your app:</p> 
           </div> 
           <div class="listingblock"> 
            <div class="content"> 
-            <pre class="CodeRay highlight"><code data-lang="bash">mvn jetty:run</code></pre> 
+            <pre class="CodeRay highlight"><code data-lang="bash">cd myapp
+mvn clean install</code></pre> 
            </div> 
           </div> 
           <div class="paragraph"> 
-           <p>You can also provide a system property to change the port:</p> 
-          </div> 
-          <div class="listingblock"> 
-           <div class="content"> 
-            <pre class="CodeRay highlight"><code data-lang="bash">mvn jetty:run -D jetty.port=9090</code></pre> 
-           </div> 
+           <p>where <code>myapp</code> is the <code>artifactId</code> entered above.</p> 
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_using_a_regular_servlet_container">5.3.2. Using a regular servlet container</h4> 
+          <h4 id="__ugfun_getting-started_helloworld-archetype_running-the-app">4.2.3. Running the App</h4> 
+          <div class="paragraph"> 
+           <p>The <code>helloworld</code> archetype generates a single WAR file, configured to run both the <a href="../ugvw/ugvw.html">Wicket viewer</a> and the <a href="../ugvro/ugvro.html">Restful Objects viewer</a>. The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.</p> 
+          </div> 
           <div class="paragraph"> 
-           <p>You can also take the built WAR file and deploy it into a standalone servlet container such as [Tomcat](<a href="http://tomcat.apache.org" class="bare">http://tomcat.apache.org</a>). The default configuration does not require any configuration of the servlet container; just drop the WAR file into the <code>webapps</code> directory.</p> 
+           <p>Once you’ve built the app, you can run the WAR in a variety of ways.</p> 
+          </div> 
+          <div class="sect4"> 
+           <h5 id="_using_mvn_jetty_plugin">Using mvn Jetty plugin</h5> 
+           <div class="paragraph"> 
+            <p>First, you could run the WAR in a Maven-hosted Jetty instance, though you need to <code>cd</code> into the <code>webapp</code> module:</p> 
+           </div> 
+           <div class="listingblock"> 
+            <div class="content"> 
+             <pre class="CodeRay highlight"><code data-lang="bash">mvn jetty:run</code></pre> 
+            </div> 
+           </div> 
+           <div class="paragraph"> 
+            <p>You can also provide a system property to change the port:</p> 
+           </div> 
+           <div class="listingblock"> 
+            <div class="content"> 
+             <pre class="CodeRay highlight"><code data-lang="bash">mvn jetty:run -D jetty.port=9090</code></pre> 
+            </div> 
+           </div> 
+          </div> 
+          <div class="sect4"> 
+           <h5 id="_using_a_regular_servlet_container">Using a regular servlet container</h5> 
+           <div class="paragraph"> 
+            <p>You can also take the built WAR file and deploy it into a standalone servlet container such as [Tomcat](<a href="http://tomcat.apache.org" class="bare">http://tomcat.apache.org</a>). The default configuration does not require any configuration of the servlet container; just drop the WAR file into the <code>webapps</code> directory.</p> 
+           </div> 
+          </div> 
+          <div class="sect4"> 
+           <h5 id="_from_within_the_ide">From within the IDE</h5> 
+           <div class="paragraph"> 
+            <p>Most of the time, though, you’ll probably want to run the app from within your IDE. The mechanics of doing this will vary by IDE; see the <a href="../dg/dg.html#_dg_ide">Developers' Guide</a> for details of setting up Eclipse or IntelliJ IDEA. Basically, though, it amounts to running <code>org.apache.isis.WebServer</code>, and ensuring that the <a href="../ugfun/ugfun.html#_ugfun_getting-started_datanucleus-enhancer">DataNucleus enhancer</a> has properly processed all domain entities.</p> 
+           </div> 
+           <div class="paragraph"> 
+            <p>Here’s what the setup looks like in IntelliJ IDEA:</p> 
+           </div> 
+           <div class="imageblock"> 
+            <div class="content"> 
+             <a class="image" href="images/getting-started/helloworld.png"><img src="images/getting-started/helloworld.png" alt="helloworld" width="600px"></a> 
+            </div> 
+           </div> 
+           <div class="paragraph"> 
+            <p>with the maven goal to run the DataNucleus enhancer (discussed in more detail <a href="#_ugfun_getting-started_datanucleus-enhancer">here</a>) before launch defined as:</p> 
+           </div> 
+           <div class="imageblock"> 
+            <div class="content"> 
+             <a class="image" href="images/getting-started/helloworld-before-launch.png"><img src="images/getting-started/helloworld-before-launch.png" alt="helloworld before launch" width="600px"></a> 
+            </div> 
+           </div> 
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_from_within_the_ide">5.3.3. From within the IDE</h4> 
+          <h4 id="__ugfun_getting-started_helloworld-archetype_using-the-app">4.2.4. Using the App</h4> 
           <div class="paragraph"> 
-           <p>Most of the time, though, you’ll probably want to run the app from within your IDE. The mechanics of doing this will vary by IDE; see the <a href="../dg/dg.html#_dg_ide">Developers' Guide</a> for details of setting up Eclipse or IntelliJ IDEA. Basically, though, it amounts to running <code>org.apache.isis.WebServer</code>, and ensuring that the <a href="../ugfun/ugfun.html#_ugfun_getting-started_datanucleus-enhancer">DataNucleus enhancer</a> has properly processed all domain entities.</p> 
+           <p>When you start the app, you’ll be presented with a welcome page from which you can access the webapp using either the <a href="../ugvw/ugvw.html">Wicket viewer</a> or the <a href="../ugvro/ugvro.html">Restful Objects viewer</a>:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/010-root-page.png"><img src="images/getting-started/using-hello-world/010-root-page.png" alt="010 root page" width="600px"></a> 
+           </div> 
           </div> 
           <div class="paragraph"> 
-           <p>Here’s what the setup looks like in IntelliJ IDEA:</p> 
+           <p>The Wicket viewer provides a human usable web UI (implemented, as you might have guessed from its name, using <a href="http://wicket.apache.org">Apache Wicket</a>), so choose that and navigate to the login page:</p> 
           </div> 
           <div class="imageblock"> 
            <div class="content"> 
-            <a class="image" href="images/getting-started/helloworld.png"><img src="images/getting-started/helloworld.png" alt="helloworld" width="600px"></a> 
+            <a class="image" href="images/getting-started/using-hello-world/020-login-to-wicket-viewer.png"><img src="images/getting-started/using-hello-world/020-login-to-wicket-viewer.png" alt="020 login to wicket viewer" width="600px"></a> 
            </div> 
           </div> 
           <div class="paragraph"> 
-           <p>with the maven goal to run the DataNucleus enhancer (discussed in more detail <a href="#_ugfun_getting-started_datanucleus-enhancer">here</a>) before launch defined as:</p> 
+           <p>The app itself is configured to run using <a href="../ugsec/ugsec.html">shiro security</a>, as configured in the <code>WEB-INF/shiro.ini</code> config file. You can login with:</p> 
+          </div> 
+          <div class="ulist"> 
+           <ul> 
+            <li> <p>username: <em>sven</em></p> </li> 
+            <li> <p>password: <em>pass</em></p> </li> 
+           </ul> 
+          </div> 
+          <div class="paragraph"> 
+           <p>Once you’ve logged in you’ll see the default home page:</p> 
           </div> 
           <div class="imageblock"> 
            <div class="content"> 
-            <a class="image" href="images/getting-started/helloworld-before-launch.png"><img src="images/getting-started/helloworld-before-launch.png" alt="helloworld before launch" width="600px"></a> 
+            <a class="image" href="images/getting-started/using-hello-world/030-home-page.png"><img src="images/getting-started/using-hello-world/030-home-page.png" alt="030 home page" width="600px"></a> 
            </div> 
           </div> 
-         </div> 
-        </div> 
-        <div class="sect2"> 
-         <h3 id="__ugfun_getting-started_helloworld-archetype_using-the-app">5.4. Using the App</h3> 
-         <div class="paragraph"> 
-          <p>When you start the app, you’ll be presented with a welcome page from which you can access the webapp using either the <a href="../ugvw/ugvw.html">Wicket viewer</a> or the <a href="../ugvro/ugvro.html">Restful Objects viewer</a>:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/010-root-page.png"><img src="images/getting-started/using-hello-world/010-root-page.png" alt="010 root page" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>The application is configured to run with an in-memory database, so initially there is no data. Create an object using the menu:</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The Wicket viewer provides a human usable web UI (implemented, as you might have guessed from its name, using <a href="http://wicket.apache.org">Apache Wicket</a>), so choose that and navigate to the login page:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/020-login-to-wicket-viewer.png"><img src="images/getting-started/using-hello-world/020-login-to-wicket-viewer.png" alt="020 login to wicket viewer" width="600px"></a> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/040-create-object-from-menu.png"><img src="images/getting-started/using-hello-world/040-create-object-from-menu.png" alt="040 create object from menu" width="600px"></a> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The app itself is configured to run using <a href="../ugsec/ugsec.html">shiro security</a>, as configured in the <code>WEB-INF/shiro.ini</code> config file. You can login with:</p> 
-         </div> 
-         <div class="ulist"> 
-          <ul> 
-           <li> <p>username: <em>sven</em></p> </li> 
-           <li> <p>password: <em>pass</em></p> </li> 
-          </ul> 
-         </div> 
-         <div class="paragraph"> 
-          <p>Once you’ve logged in you’ll see the default home page:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/030-home-page.png"><img src="images/getting-started/using-hello-world/030-home-page.png" alt="030 home page" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>which brings up a modal dialog:</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The application is configured to run with an in-memory database, so initially there is no data. Create an object using the menu:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/040-create-object-from-menu.png"><img src="images/getting-started/using-hello-world/040-create-object-from-menu.png" alt="040 create object from menu" width="600px"></a> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png"><img src="images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png" alt="050 create object from menu prompt" width="600px"></a> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>which brings up a modal dialog:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png"><img src="images/getting-started/using-hello-world/050-create-object-from-menu-prompt.png" alt="050 create object from menu prompt" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>hitting OK returns the created object:</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>hitting OK returns the created object:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/060-created-object.png"><img src="images/getting-started/using-hello-world/060-created-object.png" alt="060 created object" width="600px"></a> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/060-created-object.png"><img src="images/getting-started/using-hello-world/060-created-object.png" alt="060 created object" width="600px"></a> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The above functionality is implemented by <a href="https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java#L43">this code</a>:</p> 
-         </div> 
-         <div class="listingblock"> 
-          <div class="content"> 
-           <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Action</span>(semantics = SemanticsOf.NON_IDEMPOTENT)
+          <div class="paragraph"> 
+           <p>The above functionality is implemented by <a href="https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java#L43">this code</a>:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Action</span>(semantics = SemanticsOf.NON_IDEMPOTENT)
 <span class="annotation">@MemberOrder</span>(sequence = <span class="string"><span class="delimiter">"</span><span class="content">1</span><span class="delimiter">"</span></span>)
 <span class="directive">public</span> HelloWorldObject create(
         <span class="annotation">@Parameter</span>(maxLength = <span class="integer">40</span>)
@@ -2391,28 +2416,28 @@ mvn clean install</code></pre>
     repositoryService.persist(object);
     <span class="keyword">return</span> object;
 }</code></pre> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The <code>HelloWorldObject</code> contains a couple of properties, and a single action to update that property.</p> 
-         </div> 
-         <div class="ulist"> 
-          <ul> 
-           <li> <p>The <code>name</code> property is read-only, and can only be modified using the <code>updateName</code> action.<br></p> 
-            <div class="paragraph"> 
-             <p>For example:</p> 
-            </div> 
-            <div class="imageblock"> 
-             <div class="content"> 
-              <a class="image" href="images/getting-started/using-hello-world/070-update-name.png"><img src="images/getting-started/using-hello-world/070-update-name.png" alt="070 update name" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>The <code>HelloWorldObject</code> contains a couple of properties, and a single action to update that property.</p> 
+          </div> 
+          <div class="ulist"> 
+           <ul> 
+            <li> <p>The <code>name</code> property is read-only, and can only be modified using the <code>updateName</code> action.<br></p> 
+             <div class="paragraph"> 
+              <p>For example:</p> 
              </div> 
-            </div> 
-            <div class="paragraph"> 
-             <p>The above functionality is implemented by <a href="https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java#L73">this code</a>:<br></p> 
-            </div> 
-            <div class="listingblock"> 
-             <div class="content"> 
-              <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Action</span>(
+             <div class="imageblock"> 
+              <div class="content"> 
+               <a class="image" href="images/getting-started/using-hello-world/070-update-name.png"><img src="images/getting-started/using-hello-world/070-update-name.png" alt="070 update name" width="600px"></a> 
+              </div> 
+             </div> 
+             <div class="paragraph"> 
+              <p>The above functionality is implemented by <a href="https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java#L73">this code</a>:<br></p> 
+             </div> 
+             <div class="listingblock"> 
+              <div class="content"> 
+               <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Action</span>(
     semantics = SemanticsOf.IDEMPOTENT,
     command = CommandReification.ENABLED,
     publishing = Publishing.ENABLED
@@ -2424,126 +2449,137 @@ mvn clean install</code></pre>
     setName(name);
     <span class="keyword">return</span> <span class="local-variable">this</span>;
 }</code></pre> 
+              </div> 
+             </div> </li> 
+            <li> <p>The <code>notes</code> property is editable, and can be edited in-place.<br></p> 
+             <div class="paragraph"> 
+              <p>For example:</p> 
              </div> 
-            </div> </li> 
-           <li> <p>The <code>notes</code> property is editable, and can be edited in-place.<br></p> 
-            <div class="paragraph"> 
-             <p>For example:</p> 
-            </div> 
-            <div class="imageblock"> 
-             <div class="content"> 
-              <a class="image" href="images/getting-started/using-hello-world/080-edit-notes.png"><img src="images/getting-started/using-hello-world/080-edit-notes.png" alt="080 edit notes" width="600px"></a> 
-             </div> 
-            </div> </li> 
-          </ul> 
-         </div> 
-         <div class="paragraph"> 
-          <p>It’s also possible to delete an object:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/090-delete-object.png"><img src="images/getting-started/using-hello-world/090-delete-object.png" alt="090 delete object" width="600px"></a> 
+             <div class="imageblock"> 
+              <div class="content"> 
+               <a class="image" href="images/getting-started/using-hello-world/080-edit-notes.png"><img src="images/getting-started/using-hello-world/080-edit-notes.png" alt="080 edit notes" width="600px"></a> 
+              </div> 
+             </div> </li> 
+           </ul> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The viewer displays a message confirming that the object has been deleted:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/100-object-deleted.png"><img src="images/getting-started/using-hello-world/100-object-deleted.png" alt="100 object deleted" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>It’s also possible to delete an object:</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The above functionality is implemented by <a href="https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java#L87">this code</a>:</p> 
-         </div> 
-         <div class="listingblock"> 
-          <div class="content"> 
-           <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Action</span>(semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE)
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/090-delete-object.png"><img src="images/getting-started/using-hello-world/090-delete-object.png" alt="090 delete object" width="600px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The viewer displays a message confirming that the object has been deleted:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/100-object-deleted.png"><img src="images/getting-started/using-hello-world/100-object-deleted.png" alt="100 object deleted" width="600px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The above functionality is implemented by <a href="https://github.com/apache/isis/blob/master/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java#L87">this code</a>:</p> 
+          </div> 
+          <div class="listingblock"> 
+           <div class="content"> 
+            <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@Action</span>(semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE)
 <span class="directive">public</span> <span class="type">void</span> delete() {
     <span class="directive">final</span> <span class="predefined-type">String</span> title = titleService.titleOf(<span class="local-variable">this</span>);
     messageService.informUser(<span class="predefined-type">String</span>.format(<span class="string"><span class="delimiter">"</span><span class="content">'%s' deleted</span><span class="delimiter">"</span></span>, title));
     repositoryService.removeAndFlush(<span class="local-variable">this</span>);
 }</code></pre> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>This uses three services provided by the framework; these are injected into the domain object automatically.</p> 
-         </div> 
-         <div class="paragraph"> 
-          <p>Going back to the home page (<a href="http://localhost:8080">localhost:8080</a>) we can use <a href="https://swagger.io/">Swagger UI</a> as a front-end to the REST API provided by the Restful Objects viewer.</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/200-swagger-ui-before-reload.png"><img src="images/getting-started/using-hello-world/200-swagger-ui-before-reload.png" alt="200 swagger ui before reload" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>This uses three services provided by the framework; these are injected into the domain object automatically.</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The Swagger UI is created dynamically from a Swagger schema definition (the schema definition file itself can be downloaded from the Wicket viewer’s "Prototyping" menu). This Swagger schema definition groups resources according to Apache Isis metadata:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/210-helloworld-resources.png"><img src="images/getting-started/using-hello-world/210-helloworld-resources.png" alt="210 helloworld resources" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>Going back to the home page (<a href="http://localhost:8080">localhost:8080</a>) we can use <a href="https://swagger.io/">Swagger UI</a> as a front-end to the REST API provided by the Restful Objects viewer.</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>For example, an object can be created using the resource that represents the <code>HelloWorldObjects#create</code> action:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/220-create-object-thru-rest-api.png"><img src="images/getting-started/using-hello-world/220-create-object-thru-rest-api.png" alt="220 create object thru rest api" width="600px"></a> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/200-swagger-ui-before-reload.png"><img src="images/getting-started/using-hello-world/200-swagger-ui-before-reload.png" alt="200 swagger ui before reload" width="600px"></a> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The response indicates that the object was successfully created:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png"><img src="images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png" alt="230 create object thru rest api response" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>The Swagger UI is created dynamically from a Swagger schema definition (the schema definition file itself can be downloaded from the Wicket viewer’s "Prototyping" menu). This Swagger schema definition groups resources according to Apache Isis metadata:</p> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>The Swagger UI also provides a resource to retrieve any object:</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png"><img src="images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png" alt="240 retrieve object using rest api" width="600px"></a> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/210-helloworld-resources.png"><img src="images/getting-started/using-hello-world/210-helloworld-resources.png" alt="210 helloworld resources" width="600px"></a> 
+           </div> 
           </div> 
-         </div> 
-         <div class="paragraph"> 
-          <p>This results in a representation of the domain object (as per the requested <code>Response Content Type</code>, ie <code>ACCEPT</code> header):</p> 
-         </div> 
-         <div class="imageblock"> 
-          <div class="content"> 
-           <a class="image" href="images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png"><img src="images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png" alt="250 retrieve object using rest api response" width="600px"></a> 
+          <div class="paragraph"> 
+           <p>For example, an object can be created using the resource that represents the <code>HelloWorldObjects#create</code> action:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/220-create-object-thru-rest-api.png"><img src="images/getting-started/using-hello-world/220-create-object-thru-rest-api.png" alt="220 create object thru rest api" width="600px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The response indicates that the object was successfully created:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png"><img src="images/getting-started/using-hello-world/230-create-object-thru-rest-api-response.png" alt="230 create object thru rest api response" width="600px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The Swagger UI also provides a resource to retrieve any object:</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png"><img src="images/getting-started/using-hello-world/240-retrieve-object-using-rest-api.png" alt="240 retrieve object using rest api" width="600px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>This results in a representation of the domain object (as per the requested <code>Response Content Type</code>, ie <code>ACCEPT</code> header):</p> 
+          </div> 
+          <div class="imageblock"> 
+           <div class="content"> 
+            <a class="image" href="images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png"><img src="images/getting-started/using-hello-world/250-retrieve-object-using-rest-api-response.png" alt="250 retrieve object using rest api response" width="600px"></a> 
+           </div> 
+          </div> 
+          <div class="paragraph"> 
+           <p>The Swagger UI is provided as a convenience; the REST API is actually a complete hypermedia API (in other words you can follow the links to access all the behaviour exposed in the regular Wicket app). The REST API implemented by Apache Isis is specified in the <a href="http://www.restfulobjects.org">Restful Object spec</a>.</p> 
           </div> 
          </div> 
-         <div class="paragraph"> 
-          <p>The Swagger UI is provided as a convenience; the REST API is actually a complete hypermedia API (in other words you can follow the links to access all the behaviour exposed in the regular Wicket app). The REST API implemented by Apache Isis is specified in the <a href="http://www.restfulobjects.org">Restful Object spec</a>.</p> 
-         </div> 
-        </div> 
-        <div class="sect2"> 
-         <h3 id="__ugfun_getting-started_helloworld-archetype_experimenting">5.5. Experimenting</h3> 
-         <div class="paragraph"> 
-          <p>Once you are familiar with the generated app, try modifying it. There is plenty of guidance on this site; start with this guide (fundamentals) and then look at the other guides available the main <a href="../../documentation.html">documentation</a> page.</p> 
-         </div> 
-         <div class="paragraph"> 
-          <p>If you use IntelliJ IDEA or Eclipse, do also install the <a href="../dg/dg.html#<em>dg_ide_intellij_live-templates">live templates (for IntelliJ)</a> / <a href="../dg/dg.html#</em>dg_ide_eclipse_editor-templates">editor templates (for Eclipse)</a>; these will help you follow the Apache Isis naming conventions.</p> 
+         <div class="sect3"> 
+          <h4 id="__ugfun_getting-started_helloworld-archetype_experimenting">4.2.5. Experimenting</h4> 
+          <div class="paragraph"> 
+           <p>Once you are familiar with the generated app, try modifying it. There is plenty of guidance on this site; start with this guide (fundamentals) and then look at the other guides available the main <a href="../../documentation.html">documentation</a> page.</p> 
+          </div> 
+          <div class="paragraph"> 
+           <p>If you use IntelliJ IDEA or Eclipse, do also install the <a href="../dg/dg.html#<em>dg_ide_intellij_live-templates">live templates (for IntelliJ)</a> / <a href="../dg/dg.html#</em>dg_ide_eclipse_editor-templates">editor templates (for Eclipse)</a>; these will help you follow the Apache Isis naming conventions.</p> 
+          </div> 
+          <div class="paragraph"> 
+           <p>If you run into issues, please don’t hesitate to ask for help on the <a href="http://isis.apache.org/help.html">users mailing list</a>.</p> 
+          </div> 
          </div> 
-         <div class="paragraph"> 
-          <p>If you run into issues, please don’t hesitate to ask for help on the <a href="http://isis.apache.org/help.html">users mailing list</a>.</p> 
+         <div class="sect3"> 
+          <h4 id="__ugfun_getting-started_helloworld-archetype_moving-on">4.2.6. Moving on</h4> 
+          <div class="paragraph"> 
+           <p>When you are ready to start working on your own app, we <em>don’t</em> recommend building on top of the helloworld app.</p> 
+          </div> 
+          <div class="paragraph"> 
+           <p>Instead, we suggest that you start with the <a href="#_ugfun_getting-started_simpleapp-archetype">simpleapp archetype</a> instead. Although a little more complex, it provides more structure and tests, all of which will help you as your application grows.</p> 
+          </div> 
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="__ugfun_getting-started_helloworld-archetype_moving-on">5.6. Moving on</h3> 
-         <div class="paragraph"> 
-          <p>When you are ready to start working on your own app, we <em>don’t</em> recommend building on top of the helloworld app.</p> 
-         </div> 
-         <div class="paragraph"> 
-          <p>Instead, we suggest that you start with the <a href="#_ugfun_getting-started_simpleapp-archetype">simpleapp archetype</a> instead. Although a little more complex, it provides more structure and tests, all of which will help you as your application grows.</p> 
+         <h3 id="_ugfun_getting-started_simpleapp-archetype">4.3. SimpleApp Archetype</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_simpleapp-archetype.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
          </div> 
-        </div> 
-        <div class="sect2"> 
-         <h3 id="_ugfun_getting-started_simpleapp-archetype">5.7. SimpleApp Archetype</h3> 
          <div class="paragraph"> 
           <p>The quickest way to get started building an application "for real" is to run the <code>simpleapp</code> archetype. Like the <a href="#_ugfun_getting-started_helloworld-archetype">helloworld archetype</a>, this too will generate a very simple one-class domain model (an entity called <code>SimpleObject</code> with a couple of properties).</p> 
          </div> 
@@ -2565,7 +2601,7 @@ mvn clean install</code></pre>
           <p>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="__ugfun_getting-started_simpleapp-archetype_generating-the-app">5.7.1. Generating the App</h4> 
+          <h4 id="__ugfun_getting-started_simpleapp-archetype_generating-the-app">4.3.1. Generating the App</h4> 
           <div class="paragraph"> 
            <p>Create a new directory, and <code>cd</code> into that directory.</p> 
           </div> 
@@ -2640,7 +2676,7 @@ mvn clean install</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_getting-started_simpleapp-archetype_building-the-app">5.7.2. Building the App</h4> 
+          <h4 id="__ugfun_getting-started_simpleapp-archetype_building-the-app">4.3.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> 
@@ -2655,7 +2691,7 @@ mvn clean install</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_getting-started_simpleapp-archetype_running-the-app">5.7.3. Running the App</h4> 
+          <h4 id="__ugfun_getting-started_simpleapp-archetype_running-the-app">4.3.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="../ugvw/ugvw.html">Wicket viewer</a> and the <a href="../ugvro/ugvro.html">Restful Objects viewer</a>. The archetype also configures the DataNucleus/JDO Objectstore to use an in-memory HSQLDB connection.</p> 
           </div> 
@@ -2759,7 +2795,7 @@ mvn clean install</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_getting-started_simpleapp-archetype_running-with-fixtures">5.7.4. Running with Fixtures</h4> 
+          <h4 id="__ugfun_getting-started_simpleapp-archetype_running-with-fixtures">4.3.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="../ugtst/ugtst.html#_ugtst_fixture-scripts">fixture script</a> on the command line.</p> 
           </div> 
@@ -2776,7 +2812,7 @@ mvn clean install</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_using_the_app">5.7.5. Using the App</h4> 
+          <h4 id="_using_the_app">4.3.5. Using the App</h4> 
           <div class="paragraph"> 
            <p>The generated application is almost identical similar to that generated by <a href="#_ugfun_getting-started_helloworld-archetype">helloworld archetype</a>; a description of how to use it can be found <a href="#_ugfun_getting-started_helloworld-archetype_using-the-app">here</a>.</p> 
           </div> 
@@ -2822,7 +2858,7 @@ mvn clean install</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_modifying_the_app">5.7.6. Modifying the App</h4> 
+          <h4 id="_modifying_the_app">4.3.6. Modifying the App</h4> 
           <div class="paragraph"> 
            <p>Once you are familiar with the generated app, you’ll want to start modifying it. There is plenty of guidance on this site; start with this guide (fundamentals) and then look at the other guides available the main <a href="../../documentation.html">documentation</a> page.</p> 
           </div> 
@@ -2831,7 +2867,7 @@ mvn clean install</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_app_structure">5.7.7. App Structure</h4> 
+          <h4 id="_app_structure">4.3.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> 
@@ -2879,7 +2915,17 @@ mvn clean install</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugfun_getting-started_datanucleus-enhancer">5.8. Datanucleus Enhancer</h3> 
+         <h3 id="_ugfun_getting-started_datanucleus-enhancer">4.4. Datanucleus Enhancer</h3>
+         <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
+          <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
+          <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
+          <ul class="dropdown-menu">
+           <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i>&nbsp; Edit</a></li>
+           <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i>&nbsp; History</a></li>
+           <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i>&nbsp; Raw</a></li>
+           <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_getting-started_datanucleus-enhancer.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i>&nbsp; Blame</a></li>
+          </ul>
+         </div> 
          <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> 
@@ -2909,7 +2955,7 @@ mvn clean install</code></pre>
           <p>Both the <a href="#_ugfun_getting-started_helloworld-archetype">HelloWorld</a> and <a href="#_ugfun_getting-started_simpleapp-archetype">SimpleApp</a> Maven archetypes generate applications that have this plugin pre-configured.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_meta_inf_persistence_xml">5.8.1. META-INF/persistence.xml</h4> 
+          <h4 id="_meta_inf_persistence_xml">4.4.1. META-INF/persistence.xml</h4> 
           <div class="paragraph"> 
            <p>It’s also a good idea to ensure that every domain module(s) containing entities has a JDO <code>META-INF/persistence.xml</code> file:</p> 
           </div> 
@@ -2959,7 +3005,7 @@ mvn clean install</code></pre>
        </div> 
       </div> 
       <div class="sect1"> 
-       <h2 id="_ugfun_programming-model">6. Programming Model</h2>
+       <h2 id="_ugfun_programming-model">5. Programming Model</h2>
        <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
         <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
         <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3038,7 +3084,7 @@ mvn clean install</code></pre>
          <p>The framework also defines supplementary annotations, <code>@DomainObjectLayout</code> and <code>@DomainServiceLayout</code>. These provide hints relating to the layout of the domain object in the user interface. (Alternatively, these UI hints can be defined in a supplementary <a href="../ugvw/ugvw.html#_ugvw_layout"><code>.layout.xml</code></a> file.</p> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugfun_programming-model_domain-entities">6.1. Domain Entities</h3>
+         <h3 id="_ugfun_programming-model_domain-entities">5.1. Domain Entities</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-entities.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3264,7 +3310,7 @@ RepositoryService repositoryService;</code></pre>
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugfun_programming-model_domain-services">6.2. Domain Services</h3>
+         <h3 id="_ugfun_programming-model_domain-services">5.2. Domain Services</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3279,7 +3325,7 @@ RepositoryService repositoryService;</code></pre>
           <p>This section looks at the programming model for writing your own domain services.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_organizing-services">6.2.1. Organizing Services</h4>
+          <h4 id="_ugfun_programming-model_domain-services_organizing-services">5.2.1. Organizing Services</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_organizing-services.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3326,7 +3372,7 @@ RepositoryService repositoryService;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_repository-and-factory">6.2.2. Repository and Factory</h4>
+          <h4 id="_ugfun_programming-model_domain-services_repository-and-factory">5.2.2. Repository and Factory</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_repository-and-factory.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3392,7 +3438,7 @@ RepositoryService repositoryService;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_menu">6.2.3. Menu</h4>
+          <h4 id="_ugfun_programming-model_domain-services_menu">5.2.3. Menu</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_menu.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3522,7 +3568,7 @@ RepositoryService repositoryService;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_event-subscribers">6.2.4. Event Subscribers</h4>
+          <h4 id="_ugfun_programming-model_domain-services_event-subscribers">5.2.4. Event Subscribers</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_event-subscribers.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3590,7 +3636,7 @@ RepositoryService repositoryService;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_contributions">6.2.5. Contributions (deprecated)</h4>
+          <h4 id="_ugfun_programming-model_domain-services_contributions">5.2.5. Contributions (deprecated)</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_contributions.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3665,7 +3711,7 @@ RepositoryService repositoryService;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_scoped-services">6.2.6. Scoped services</h4>
+          <h4 id="_ugfun_programming-model_domain-services_scoped-services">5.2.6. Scoped services</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_scoped-services.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3698,7 +3744,7 @@ RepositoryService repositoryService;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_registering">6.2.7. Registering</h4>
+          <h4 id="_ugfun_programming-model_domain-services_registering">5.2.7. Registering</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_registering.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3764,7 +3810,7 @@ isis.services = employee.Employees,\
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_ugfun_programming-model_domain-services_initialization">6.2.8. Initialization</h4>
+          <h4 id="_ugfun_programming-model_domain-services_initialization">5.2.8. Initialization</h4>
           <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
            <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_domain-services_initialization.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3790,7 +3836,7 @@ isis.services = employee.Employees,\
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugfun_programming-model_properties">6.3. Property</h3>
+         <h3 id="_ugfun_programming-model_properties">5.3. Property</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_properties.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -3824,7 +3870,7 @@ isis.services = employee.Employees,\
           <p>Since writing getter and setter methods adds quite a bit of boilerplate, it’s common to use <a href="https://projectlombok.org/">Project Lombok</a> to code generate these methods at compile time (using Java’s annotation processor) simply by adding the <code>@lombok.Getter</code> and <code>@lombok.Setter</code> annotations to the field. The <a href="#_ugfun_getting-started_helloworld-archetype">HelloWorld</a> and <a href="#_ugfun_getting-started_simpleapp-archetype">SimpleApp</a> archetypes use this approach.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_properties_value-vs-reference-types">6.3.1. Value vs Reference Types</h4> 
+          <h4 id="__ugfun_programming-model_properties_value-vs-reference-types">5.3.1. Value vs Reference Types</h4> 
           <div class="paragraph"> 
            <p>Properties can be either a value type (strings, int, date and so on) or be a reference to another object (for example, an <code>Order</code> referencing the <code>Customer</code> that placed it).</p> 
           </div> 
@@ -3890,7 +3936,7 @@ isis.services = employee.Employees,\
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_properties_optional-properties">6.3.2. Optional Properties</h4> 
+          <h4 id="__ugfun_programming-model_properties_optional-properties">5.3.2. Optional Properties</h4> 
           <div class="paragraph"> 
            <p>(For domain entities) JDO/DataNucleus' default is that a property is assumed to be mandatory if it is a primitive type (eg <code>int</code>, <code>boolean</code>), but optional if a reference type (eg <code>String</code>, <code>BigDecimal</code> etc). To override optionality in JDO/DataNucleus the <code>@Column(allowsNull="…​")</code> annotations is used.</p> 
           </div> 
@@ -3926,7 +3972,7 @@ isis.services = employee.Employees,\
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_properties_editable-properties">6.3.3. Editable Properties</h4> 
+          <h4 id="__ugfun_programming-model_properties_editable-properties">5.3.3. Editable Properties</h4> 
           <div class="paragraph"> 
            <p>Apache Isis provides the capability to allow individual properties to be modified. This is specified using the <code>@Property(editing=…​)</code> attribute.</p> 
           </div> 
@@ -3945,7 +3991,7 @@ isis.services = employee.Employees,\
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_properties_ignoring-properties">6.3.4. Ignoring Properties</h4> 
+          <h4 id="__ugfun_programming-model_properties_ignoring-properties">5.3.4. Ignoring Properties</h4> 
           <div class="paragraph"> 
            <p>By default Apache Isis will automatically render all properties in the <a href="../ugvw/ugvw.html">Wicket UI</a> or in the <a href="#../ugvro/ugvro.adoc">REST API</a>. To get Apache Isis to ignore a property (exclude it from its metamodel), annotate the getter using <code>@Programmatic</code>.</p> 
           </div> 
@@ -3957,7 +4003,7 @@ isis.services = employee.Employees,\
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_properties_derived-properties">6.3.5. Derived Properties</h4> 
+          <h4 id="__ugfun_programming-model_properties_derived-properties">5.3.5. Derived Properties</h4> 
           <div class="paragraph"> 
            <p>Derived properties are those with a getter but no setter. Provided that the property has not been annotated with <code>@Programmatic</code>, these will still be rendered in the UI, but they will be read-only (not editable) and their state will not be persisted.</p> 
           </div> 
@@ -4004,7 +4050,7 @@ AddressService addressService;
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_properties_datatypes">6.3.6. Data types</h4> 
+          <h4 id="__ugfun_programming-model_properties_datatypes">5.3.6. Data types</h4> 
           <div class="paragraph"> 
            <p>This section shows specific considerations for various datatypes, in particular how to annotate them for DataNucleus mapping to the persistence object store.</p> 
           </div> 
@@ -4223,7 +4269,7 @@ AddressService addressService;
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugfun_programming-model_collections">6.4. Collections</h3>
+         <h3 id="_ugfun_programming-model_collections">5.4. Collections</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_collections.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -4260,7 +4306,7 @@ AddressService addressService;
           <p>Since writing getter and setter methods adds quite a bit of boilerplate, it’s common to use <a href="https://projectlombok.org/">Project Lombok</a> to code generate these methods at compile time (using Java’s annotation processor) simply by adding the <code>@lombok.Getter</code> and <code>@lombok.Setter</code> annotations to the field.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_collections_mapping-bidir-1m">6.4.1. Mapping bidir 1:m</h4> 
+          <h4 id="__ugfun_programming-model_collections_mapping-bidir-1m">5.4.1. Mapping bidir 1:m</h4> 
           <div class="paragraph"> 
            <p>Bidirectional one-to-many collections are one of the most common types of associations between two entities. In the parent object, the collection can be defined as:</p> 
           </div> 
@@ -4358,7 +4404,7 @@ AddressService addressService;
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="_value_vs_reference_types">6.4.2. Value vs Reference Types</h4> 
+          <h4 id="_value_vs_reference_types">5.4.2. Value vs Reference Types</h4> 
           <div class="paragraph"> 
            <p>Apache Isis can (currently) only provide a UI for collections of references. While you can use DataNucleus to persist collections/arrays of value types, such properties must be annotated as <code>@Programmatic</code> so that they are ignored by Apache Isis.</p> 
           </div> 
@@ -4367,7 +4413,7 @@ AddressService addressService;
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_collections_derived-collections">6.4.3. Derived Collections</h4> 
+          <h4 id="__ugfun_programming-model_collections_derived-collections">5.4.3. Derived Collections</h4> 
           <div class="paragraph"> 
            <p>A derived collection is simply a getter (no setter) that returns a <code>java.util.Collection</code> (or subtype).</p> 
           </div> 
@@ -4390,7 +4436,7 @@ AddressService addressService;
          </div> 
         </div> 
         <div class="sect2"> 
-         <h3 id="_ugfun_programming-model_actions">6.5. Actions</h3>
+         <h3 id="_ugfun_programming-model_actions">5.5. Actions</h3>
          <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
           <button type="button" class="btn btn-xs btn-default" onclick="window.location.href=&quot;https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugfun/_ugfun_programming-model_actions.adoc&quot;"><i class="fa fa-pencil-square-o"></i>&nbsp;Edit</button>
           <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
@@ -4414,7 +4460,7 @@ AddressService addressService;
           <p>For simple domain applications, you may want to start prototyping only with properties, and only later introduce actions (representing the most common business operations). But an alternative approach, recommended for more complex applications, is actually to start the application with all properties non-editable. Then, as the end-user requires the ability to modify some state, there is a context in which to ask the question "why does this state need to change?" and "are their any side-effects?" (ie, other state that changes at the same time, or other behaviour that should occur). If the state change is simple, for example just being able to correct an invalid address, or adding a note or comment, then that can probably be modelled as a simple editable property. But if the state change is more complex, then most likely an action should be used instead.</p> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_actions_defining-actions">6.5.1. Defining actions</h4> 
+          <h4 id="__ugfun_programming-model_actions_defining-actions">5.5.1. Defining actions</h4> 
           <div class="paragraph"> 
            <p>Broadly speaking, actions are all the <code>public</code> methods that are not getters or setters which represent properties or collections. This is a slight simplification; there are a number of other method prefixes (such as <code>hide</code> or <code>validate</code>) that represent <a href="../ugfun/ugfun.html#_ugfun_business-rules">business rules</a>); these also not treated as actions. And, any method that are annotated with <code>@Programmatic</code> will also be excluded. But by and large, all other methods such as <code>placeOrder(…​)</code> or <code>approveInvoice(…​)</code> will be treated as actions.</p> 
           </div> 
@@ -4463,7 +4509,7 @@ AddressService addressService;
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_actions_reference-parameter-types">6.5.2. (Reference) Parameter types</h4> 
+          <h4 id="__ugfun_programming-model_actions_reference-parameter-types">5.5.2. (Reference) Parameter types</h4> 
           <div class="paragraph"> 
            <p>Parameter types can be value types or reference types. In the case of primitive types, the end-user can just enter the value directly through the parameter field. In the case of reference types however (such as <code>Product</code>), a drop-down must be provided from which the end-user to select. This is done using either a supporting <a href="../rgcms/rgcms.html#_rgcms_methods_prefixes_choices"><code>choices</code></a> or <a href="../rgcms/rgcms.html#_rgcms_methods_prefixes_autoComplete"><code>autoComplete</code></a> method. The "choices" is used when there is a limited set of options, while "autoComplete" is used when there are large set of options such that the end-user must provide some characters to use for a search.</p> 
           </div> 
@@ -4580,7 +4626,7 @@ ProductRepository productRepository;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_actions_collection-parameter-types">6.5.3. Collection Parameter types</h4> 
+          <h4 id="__ugfun_programming-model_actions_collection-parameter-types">5.5.3. Collection Parameter types</h4> 
           <div class="paragraph"> 
            <p>Action parameters can also be collections of values (for example <code>List&lt;String&gt;</code>), or can be collections of references (such as <code>List&lt;Customer&gt;</code>).</p> 
           </div> 
@@ -4607,7 +4653,7 @@ ProductRepository productRepository;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_actions_optional-parameters">6.5.4. Optional Parameters</h4> 
+          <h4 id="__ugfun_programming-model_actions_optional-parameters">5.5.4. Optional Parameters</h4> 
           <div class="paragraph"> 
            <p>Whereas the <a href="../ugfun/ugfun.html#__ugfun_programming-model_properties_optional-properties">optionality of properties</a> is defined using <a href="../rgant/rgant.html#_rgant_Column_allowsNull"><code>@javax.jdo.annotations.Column#allowsNull()</code></a>, that JDO annotation cannot be applied to parameter types. Instead, either the <a href="../rgant/rgant.html#_rgant_Nullable"><code>@Nullable</code></a> annotation or the <a href="../rgant/rgant.html#_rgant_Parameter_optionality"><code>@Parameter#optionality()</code></a> annotation/attribute is used.</p> 
           </div> 
@@ -4650,7 +4696,7 @@ ProductRepository productRepository;</code></pre>
           </div> 
          </div> 
          <div class="sect3"> 
-          <h4 id="__ugfun_programming-model_actions_string-parameters">6.5.5. <co

<TRUNCATED>